blob: 35d514e21f47cb1d9ffb74b288a2fb04fd2af772 [file] [log] [blame]
Wenyi Wang14cb7fa2016-06-09 16:50:20 -07001
2/*
3 * Copyright (C) 2015 The Android Open Source Project
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
Gary Mai69c182a2016-12-05 13:07:03 -080018package com.android.contacts.compat;
Wenyi Wang14cb7fa2016-06-09 16:50:20 -070019
Wenyi Wang14cb7fa2016-06-09 16:50:20 -070020import android.provider.ContactsContract.ProviderStatus;
21
Wenyi Wang14cb7fa2016-06-09 16:50:20 -070022/**
23 * This class contains constants from the pre-M version of ContactsContract.ProviderStatus class
24 * and also the mappings between pre-M constants and M constants for compatibility purpose,
25 * because ProviderStatus class constant names and values changed and the class became visible in
26 * API level 23.
27 */
28public class ProviderStatusCompat {
29 /**
30 * Not instantiable.
31 */
32 private ProviderStatusCompat() {
33 }
34
35 public static final boolean USE_CURRENT_VERSION = CompatUtils.isMarshmallowCompatible();
36
37 public static final int STATUS_EMPTY = USE_CURRENT_VERSION ?
38 ProviderStatus.STATUS_EMPTY : ProviderStatusCompat.STATUS_NO_ACCOUNTS_NO_CONTACTS;
39
40 public static final int STATUS_BUSY = USE_CURRENT_VERSION ?
41 ProviderStatus.STATUS_BUSY : ProviderStatusCompat.STATUS_UPGRADING;
42
43 /**
44 * Default status of the provider, using the actual constant to guard against errors
45 */
46 public static final int STATUS_NORMAL = ProviderStatus.STATUS_NORMAL;
47
48 /**
49 * The following three constants are from pre-M.
50 *
51 * The status used when the provider is in the process of upgrading. Contacts
52 * are temporarily unaccessible.
53 */
54 private static final int STATUS_UPGRADING = 1;
55
56 /**
57 * The status used during a locale change.
58 */
59 public static final int STATUS_CHANGING_LOCALE = 3;
60
61 /**
62 * The status that indicates that there are no accounts and no contacts
63 * on the device.
64 */
65 private static final int STATUS_NO_ACCOUNTS_NO_CONTACTS = 4;
66}