From: Makoto Onuki Date: Wed, 11 Jan 2017 21:40:06 +0000 (-0800) Subject: Add ProviderStatus.DATABASE_CREATION_TIMESTAMP X-Git-Tag: android-x86-8.1-r1~5267^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=729a87b09ea844f8c7c23a45e636db2dca2cc7c7;p=android-x86%2Fframeworks-base.git Add ProviderStatus.DATABASE_CREATION_TIMESTAMP Bug 33390320 Test: Adding a constant only; "m -j32" Change-Id: Ie601978afd1f6da0e3fecd50e64d8af1f84a94af --- diff --git a/api/current.txt b/api/current.txt index 7f8693d86089..7ca4e74d7848 100644 --- a/api/current.txt +++ b/api/current.txt @@ -32355,7 +32355,7 @@ package android.provider { ctor public ContactsContract.Intents(); field public static final java.lang.String ACTION_VOICE_SEND_MESSAGE_TO_CONTACTS = "android.provider.action.VOICE_SEND_MESSAGE_TO_CONTACTS"; field public static final java.lang.String ATTACH_IMAGE = "com.android.contacts.action.ATTACH_IMAGE"; - field public static final java.lang.String CONTACTS_DATABASE_CREATED = "android.provider.Contacts.DATABASE_CREATED"; + field public static final deprecated java.lang.String CONTACTS_DATABASE_CREATED = "android.provider.Contacts.DATABASE_CREATED"; field public static final java.lang.String EXTRA_CREATE_DESCRIPTION = "com.android.contacts.action.CREATE_DESCRIPTION"; field public static final java.lang.String EXTRA_FORCE_CREATE = "com.android.contacts.action.FORCE_CREATE"; field public static final java.lang.String EXTRA_RECIPIENT_CONTACT_CHAT_ID = "android.provider.extra.RECIPIENT_CONTACT_CHAT_ID"; @@ -32465,8 +32465,10 @@ package android.provider { public static final class ContactsContract.ProviderStatus { field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/provider_status"; field public static final android.net.Uri CONTENT_URI; + field public static final java.lang.String DATABASE_CREATION_TIMESTAMP = "database_creation_timestamp"; field public static final java.lang.String STATUS = "status"; field public static final int STATUS_BUSY = 1; // 0x1 + field public static final android.net.Uri STATUS_CHANGE_NOTIFICATION_CONTENT_URI; field public static final int STATUS_EMPTY = 2; // 0x2 field public static final int STATUS_NORMAL = 0; // 0x0 } diff --git a/api/system-current.txt b/api/system-current.txt index f7c7d4154447..5fd5d31e90b6 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -35082,7 +35082,7 @@ package android.provider { ctor public ContactsContract.Intents(); field public static final java.lang.String ACTION_VOICE_SEND_MESSAGE_TO_CONTACTS = "android.provider.action.VOICE_SEND_MESSAGE_TO_CONTACTS"; field public static final java.lang.String ATTACH_IMAGE = "com.android.contacts.action.ATTACH_IMAGE"; - field public static final java.lang.String CONTACTS_DATABASE_CREATED = "android.provider.Contacts.DATABASE_CREATED"; + field public static final deprecated java.lang.String CONTACTS_DATABASE_CREATED = "android.provider.Contacts.DATABASE_CREATED"; field public static final java.lang.String EXTRA_CREATE_DESCRIPTION = "com.android.contacts.action.CREATE_DESCRIPTION"; field public static final java.lang.String EXTRA_FORCE_CREATE = "com.android.contacts.action.FORCE_CREATE"; field public static final java.lang.String EXTRA_RECIPIENT_CONTACT_CHAT_ID = "android.provider.extra.RECIPIENT_CONTACT_CHAT_ID"; @@ -35222,8 +35222,10 @@ package android.provider { public static final class ContactsContract.ProviderStatus { field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/provider_status"; field public static final android.net.Uri CONTENT_URI; + field public static final java.lang.String DATABASE_CREATION_TIMESTAMP = "database_creation_timestamp"; field public static final java.lang.String STATUS = "status"; field public static final int STATUS_BUSY = 1; // 0x1 + field public static final android.net.Uri STATUS_CHANGE_NOTIFICATION_CONTENT_URI; field public static final int STATUS_EMPTY = 2; // 0x2 field public static final int STATUS_NORMAL = 0; // 0x0 } diff --git a/api/test-current.txt b/api/test-current.txt index c4d17e286721..dddb4ac2b170 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -32469,7 +32469,7 @@ package android.provider { ctor public ContactsContract.Intents(); field public static final java.lang.String ACTION_VOICE_SEND_MESSAGE_TO_CONTACTS = "android.provider.action.VOICE_SEND_MESSAGE_TO_CONTACTS"; field public static final java.lang.String ATTACH_IMAGE = "com.android.contacts.action.ATTACH_IMAGE"; - field public static final java.lang.String CONTACTS_DATABASE_CREATED = "android.provider.Contacts.DATABASE_CREATED"; + field public static final deprecated java.lang.String CONTACTS_DATABASE_CREATED = "android.provider.Contacts.DATABASE_CREATED"; field public static final java.lang.String EXTRA_CREATE_DESCRIPTION = "com.android.contacts.action.CREATE_DESCRIPTION"; field public static final java.lang.String EXTRA_FORCE_CREATE = "com.android.contacts.action.FORCE_CREATE"; field public static final java.lang.String EXTRA_RECIPIENT_CONTACT_CHAT_ID = "android.provider.extra.RECIPIENT_CONTACT_CHAT_ID"; @@ -32579,8 +32579,10 @@ package android.provider { public static final class ContactsContract.ProviderStatus { field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/provider_status"; field public static final android.net.Uri CONTENT_URI; + field public static final java.lang.String DATABASE_CREATION_TIMESTAMP = "database_creation_timestamp"; field public static final java.lang.String STATUS = "status"; field public static final int STATUS_BUSY = 1; // 0x1 + field public static final android.net.Uri STATUS_CHANGE_NOTIFICATION_CONTENT_URI; field public static final int STATUS_EMPTY = 2; // 0x2 field public static final int STATUS_NORMAL = 0; // 0x0 } diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java index a07aee52cf53..1b512c69901f 100644 --- a/core/java/android/provider/ContactsContract.java +++ b/core/java/android/provider/ContactsContract.java @@ -8170,11 +8170,29 @@ public final class ContactsContract { /** * The content:// style URI for this table. Requests to this URI can be * performed on the UI thread because they are always unblocking. + * + *

Note when you listen on this URI (or any other sub-URIs), you'll be notified for + * regular contact change notifications too, which will be sent on the root URI. + * If you only want to be notified for provider status change notifications, listen on + * {@link #STATUS_CHANGE_NOTIFICATION_CONTENT_URI} instead. */ public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "provider_status"); /** + * URI to listen to provider status changes without listening to regular + * contact changes. If a client only wants to monitor {@link ProviderStatus} with + * {@link android.app.job.JobScheduler}, then this URI should be used instead of + * {@link #CONTENT_URI}, because a job on {@link #CONTENT_URI} will also be invoked + * when contacts are changed. + * + *

Note this URI cannot be queried. A query should be always made on + * {@link #CONTENT_URI}. + */ + public static final Uri STATUS_CHANGE_NOTIFICATION_CONTENT_URI = + Uri.parse("content://com.android.contacts.provider_status"); + + /** * The MIME-type of {@link #CONTENT_URI} providing a directory of * settings. */ @@ -8201,6 +8219,13 @@ public final class ContactsContract { * on the device. */ public static final int STATUS_EMPTY = 2; + + /** + * Timestamp (milliseconds since epoch) of when the provider's database was created. + * + *

Type: long + */ + public static final String DATABASE_CREATION_TIMESTAMP = "database_creation_timestamp"; } /** @@ -8768,7 +8793,14 @@ public final class ContactsContract { /** * This is the intent that is fired when the contacts database is created.

The * READ_CONTACT permission is required to receive these broadcasts. + * + *

As of O, this broadcast will no longer be sent. Applications can use + * use {@link android.app.job.JobScheduler} to monitor + * {@link ProviderStatus#STATUS_CHANGE_NOTIFICATION_CONTENT_URI}, and read + * {@link ProviderStatus#DATABASE_CREATION_TIMESTAMP} to get when + * the contacts database was initialized. */ + @Deprecated public static final String CONTACTS_DATABASE_CREATED = "android.provider.Contacts.DATABASE_CREATED";