diff options
author | Dave Santoro <dsantoro@google.com> | 2011-10-04 15:46:10 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-10-04 15:46:10 -0700 |
commit | 2aeecb7aa57242aae29dddff2b9ebd5d21aa3824 (patch) | |
tree | 74a255ee4071f39cc05de76d94d02868de7011c7 | |
parent | a1aebdf787443413ba870fc9203639405a5ff7bf (diff) | |
parent | 0b61f59d77153e7d63a33fc5d47805feb99d918b (diff) | |
download | frameworks_base-2aeecb7aa57242aae29dddff2b9ebd5d21aa3824.zip frameworks_base-2aeecb7aa57242aae29dddff2b9ebd5d21aa3824.tar.gz frameworks_base-2aeecb7aa57242aae29dddff2b9ebd5d21aa3824.tar.bz2 |
Merge "Add new permissions for read/write social stream."
-rw-r--r-- | api/14.txt | 58 | ||||
-rw-r--r-- | api/current.txt | 58 | ||||
-rw-r--r-- | core/java/android/provider/ContactsContract.java | 37 | ||||
-rw-r--r-- | core/res/AndroidManifest.xml | 17 | ||||
-rwxr-xr-x | core/res/res/values/strings.xml | 14 |
5 files changed, 67 insertions, 117 deletions
@@ -16583,10 +16583,6 @@ package android.provider { field public static final java.lang.String PHOTO_FILE_ID = "data14"; } - public static final class ContactsContract.Contacts.StreamItems implements android.provider.ContactsContract.StreamItemsColumns { - field public static final java.lang.String CONTENT_DIRECTORY = "stream_items"; - } - protected static abstract interface ContactsContract.ContactsColumns { field public static final java.lang.String DISPLAY_NAME = "display_name"; field public static final java.lang.String HAS_PHONE_NUMBER = "has_phone_number"; @@ -16844,10 +16840,6 @@ package android.provider { field public static final java.lang.String DATA_ID = "data_id"; } - public static final class ContactsContract.RawContacts.StreamItems implements android.provider.BaseColumns android.provider.ContactsContract.StreamItemsColumns { - field public static final java.lang.String CONTENT_DIRECTORY = "stream_items"; - } - protected static abstract interface ContactsContract.RawContactsColumns { field public static final java.lang.String AGGREGATION_MODE = "aggregation_mode"; field public static final java.lang.String CONTACT_ID = "contact_id"; @@ -16911,56 +16903,6 @@ package android.provider { field public static final android.net.Uri PROFILE_CONTENT_URI; } - public static final class ContactsContract.StreamItemPhotos implements android.provider.BaseColumns android.provider.ContactsContract.StreamItemPhotosColumns { - field public static final java.lang.String PHOTO = "photo"; - } - - protected static abstract interface ContactsContract.StreamItemPhotosColumns { - field public static final java.lang.String PHOTO_FILE_ID = "photo_file_id"; - field public static final java.lang.String PHOTO_URI = "photo_uri"; - field public static final java.lang.String SORT_INDEX = "sort_index"; - field public static final java.lang.String STREAM_ITEM_ID = "stream_item_id"; - field public static final java.lang.String SYNC1 = "stream_item_photo_sync1"; - field public static final java.lang.String SYNC2 = "stream_item_photo_sync2"; - field public static final java.lang.String SYNC3 = "stream_item_photo_sync3"; - field public static final java.lang.String SYNC4 = "stream_item_photo_sync4"; - } - - public static final class ContactsContract.StreamItems implements android.provider.BaseColumns android.provider.ContactsContract.StreamItemsColumns { - field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/stream_item"; - field public static final android.net.Uri CONTENT_LIMIT_URI; - field public static final android.net.Uri CONTENT_PHOTO_URI; - field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/stream_item"; - field public static final android.net.Uri CONTENT_URI; - field public static final java.lang.String MAX_ITEMS = "max_items"; - } - - public static final class ContactsContract.StreamItems.StreamItemPhotos implements android.provider.BaseColumns android.provider.ContactsContract.StreamItemPhotosColumns { - field public static final java.lang.String CONTENT_DIRECTORY = "photo"; - field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/stream_item_photo"; - field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/stream_item_photo"; - } - - protected static abstract interface ContactsContract.StreamItemsColumns { - field public static final java.lang.String ACCOUNT_NAME = "account_name"; - field public static final java.lang.String ACCOUNT_TYPE = "account_type"; - field public static final java.lang.String COMMENTS = "comments"; - field public static final java.lang.String CONTACT_ID = "contact_id"; - field public static final java.lang.String CONTACT_LOOKUP_KEY = "contact_lookup"; - field public static final java.lang.String DATA_SET = "data_set"; - field public static final java.lang.String RAW_CONTACT_ID = "raw_contact_id"; - field public static final java.lang.String RAW_CONTACT_SOURCE_ID = "raw_contact_source_id"; - field public static final java.lang.String RES_ICON = "icon"; - field public static final java.lang.String RES_LABEL = "label"; - field public static final java.lang.String RES_PACKAGE = "res_package"; - field public static final java.lang.String SYNC1 = "stream_item_sync1"; - field public static final java.lang.String SYNC2 = "stream_item_sync2"; - field public static final java.lang.String SYNC3 = "stream_item_sync3"; - field public static final java.lang.String SYNC4 = "stream_item_sync4"; - field public static final java.lang.String TEXT = "text"; - field public static final java.lang.String TIMESTAMP = "timestamp"; - } - protected static abstract interface ContactsContract.SyncColumns implements android.provider.ContactsContract.BaseSyncColumns { field public static final java.lang.String ACCOUNT_NAME = "account_name"; field public static final java.lang.String ACCOUNT_TYPE = "account_type"; diff --git a/api/current.txt b/api/current.txt index 9f2a6df..e26311f 100644 --- a/api/current.txt +++ b/api/current.txt @@ -16583,10 +16583,6 @@ package android.provider { field public static final java.lang.String PHOTO_FILE_ID = "data14"; } - public static final class ContactsContract.Contacts.StreamItems implements android.provider.ContactsContract.StreamItemsColumns { - field public static final java.lang.String CONTENT_DIRECTORY = "stream_items"; - } - protected static abstract interface ContactsContract.ContactsColumns { field public static final java.lang.String DISPLAY_NAME = "display_name"; field public static final java.lang.String HAS_PHONE_NUMBER = "has_phone_number"; @@ -16844,10 +16840,6 @@ package android.provider { field public static final java.lang.String DATA_ID = "data_id"; } - public static final class ContactsContract.RawContacts.StreamItems implements android.provider.BaseColumns android.provider.ContactsContract.StreamItemsColumns { - field public static final java.lang.String CONTENT_DIRECTORY = "stream_items"; - } - protected static abstract interface ContactsContract.RawContactsColumns { field public static final java.lang.String AGGREGATION_MODE = "aggregation_mode"; field public static final java.lang.String CONTACT_ID = "contact_id"; @@ -16911,56 +16903,6 @@ package android.provider { field public static final android.net.Uri PROFILE_CONTENT_URI; } - public static final class ContactsContract.StreamItemPhotos implements android.provider.BaseColumns android.provider.ContactsContract.StreamItemPhotosColumns { - field public static final java.lang.String PHOTO = "photo"; - } - - protected static abstract interface ContactsContract.StreamItemPhotosColumns { - field public static final java.lang.String PHOTO_FILE_ID = "photo_file_id"; - field public static final java.lang.String PHOTO_URI = "photo_uri"; - field public static final java.lang.String SORT_INDEX = "sort_index"; - field public static final java.lang.String STREAM_ITEM_ID = "stream_item_id"; - field public static final java.lang.String SYNC1 = "stream_item_photo_sync1"; - field public static final java.lang.String SYNC2 = "stream_item_photo_sync2"; - field public static final java.lang.String SYNC3 = "stream_item_photo_sync3"; - field public static final java.lang.String SYNC4 = "stream_item_photo_sync4"; - } - - public static final class ContactsContract.StreamItems implements android.provider.BaseColumns android.provider.ContactsContract.StreamItemsColumns { - field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/stream_item"; - field public static final android.net.Uri CONTENT_LIMIT_URI; - field public static final android.net.Uri CONTENT_PHOTO_URI; - field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/stream_item"; - field public static final android.net.Uri CONTENT_URI; - field public static final java.lang.String MAX_ITEMS = "max_items"; - } - - public static final class ContactsContract.StreamItems.StreamItemPhotos implements android.provider.BaseColumns android.provider.ContactsContract.StreamItemPhotosColumns { - field public static final java.lang.String CONTENT_DIRECTORY = "photo"; - field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/stream_item_photo"; - field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/stream_item_photo"; - } - - protected static abstract interface ContactsContract.StreamItemsColumns { - field public static final java.lang.String ACCOUNT_NAME = "account_name"; - field public static final java.lang.String ACCOUNT_TYPE = "account_type"; - field public static final java.lang.String COMMENTS = "comments"; - field public static final java.lang.String CONTACT_ID = "contact_id"; - field public static final java.lang.String CONTACT_LOOKUP_KEY = "contact_lookup"; - field public static final java.lang.String DATA_SET = "data_set"; - field public static final java.lang.String RAW_CONTACT_ID = "raw_contact_id"; - field public static final java.lang.String RAW_CONTACT_SOURCE_ID = "raw_contact_source_id"; - field public static final java.lang.String RES_ICON = "icon"; - field public static final java.lang.String RES_LABEL = "label"; - field public static final java.lang.String RES_PACKAGE = "res_package"; - field public static final java.lang.String SYNC1 = "stream_item_sync1"; - field public static final java.lang.String SYNC2 = "stream_item_sync2"; - field public static final java.lang.String SYNC3 = "stream_item_sync3"; - field public static final java.lang.String SYNC4 = "stream_item_sync4"; - field public static final java.lang.String TEXT = "text"; - field public static final java.lang.String TIMESTAMP = "timestamp"; - } - protected static abstract interface ContactsContract.SyncColumns implements android.provider.ContactsContract.BaseSyncColumns { field public static final java.lang.String ACCOUNT_NAME = "account_name"; field public static final java.lang.String ACCOUNT_TYPE = "account_type"; diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java index fb119b3..8483b4f 100644 --- a/core/java/android/provider/ContactsContract.java +++ b/core/java/android/provider/ContactsContract.java @@ -1611,9 +1611,16 @@ public final class ContactsContract { } /** + * <p> * A sub-directory of a single contact that contains all of the constituent raw contact * {@link ContactsContract.StreamItems} rows. This directory can be used either * with a {@link #CONTENT_URI} or {@link #CONTENT_LOOKUP_URI}. + * </p> + * <p> + * Querying for social stream data requires android.permission.READ_SOCIAL_STREAM + * permission. + * </p> + * @hide */ public static final class StreamItems implements StreamItemsColumns { /** @@ -2669,6 +2676,14 @@ public final class ContactsContract { * {@link ContactsContract.StreamItems} for a stand-alone table containing the * same data. * </p> + * <p> + * Access to the social stream through this sub-directory requires additional permissions + * beyond the read/write contact permissions required by the provider. Querying for + * social stream data requires android.permission.READ_SOCIAL_STREAM permission, and + * inserting or updating social stream items requires android.permission.WRITE_SOCIAL_STREAM + * permission. + * </p> + * @hide */ public static final class StreamItems implements BaseColumns, StreamItemsColumns { /** @@ -2963,6 +2978,12 @@ public final class ContactsContract { * transaction correspondingly. Insertion of more items beyond the limit will * automatically lead to deletion of the oldest items, by {@link StreamItems#TIMESTAMP}. * </p> + * <p> + * Access to the social stream through these URIs requires additional permissions beyond the + * read/write contact permissions required by the provider. Querying for social stream data + * requires android.permission.READ_SOCIAL_STREAM permission, and inserting or updating social + * stream items requires android.permission.WRITE_SOCIAL_STREAM permission. + * </p> * <h3>Operations</h3> * <dl> * <dt><b>Insert</b></dt> @@ -3075,6 +3096,7 @@ public final class ContactsContract { * </pre> * </dd> * </dl> + * @hide */ public static final class StreamItems implements BaseColumns, StreamItemsColumns { /** @@ -3135,6 +3157,12 @@ public final class ContactsContract { * directory append {@link StreamItems.StreamItemPhotos#CONTENT_DIRECTORY} to * an individual stream item URI. * </p> + * <p> + * Access to social stream photos requires additional permissions beyond the read/write + * contact permissions required by the provider. Querying for social stream photos + * requires android.permission.READ_SOCIAL_STREAM permission, and inserting or updating + * social stream photos requires android.permission.WRITE_SOCIAL_STREAM permission. + * </p> */ public static final class StreamItemPhotos implements BaseColumns, StreamItemPhotosColumns { @@ -3166,6 +3194,7 @@ public final class ContactsContract { * Columns in the StreamItems table. * * @see ContactsContract.StreamItems + * @hide */ protected interface StreamItemsColumns { /** @@ -3312,6 +3341,12 @@ public final class ContactsContract { * Constants for the stream_item_photos table, which contains photos associated with * social stream updates. * </p> + * <p> + * Access to social stream photos requires additional permissions beyond the read/write + * contact permissions required by the provider. Querying for social stream photos + * requires android.permission.READ_SOCIAL_STREAM permission, and inserting or updating + * social stream photos requires android.permission.WRITE_SOCIAL_STREAM permission. + * </p> * <h3>Operations</h3> * <dl> * <dt><b>Insert</b></dt> @@ -3450,6 +3485,7 @@ public final class ContactsContract { * <pre> * </dd> * </dl> + * @hide */ public static final class StreamItemPhotos implements BaseColumns, StreamItemPhotosColumns { /** @@ -3477,6 +3513,7 @@ public final class ContactsContract { * Columns in the StreamItemPhotos table. * * @see ContactsContract.StreamItemPhotos + * @hide */ protected interface StreamItemPhotosColumns { /** diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index 9755f22..18194ee 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -263,6 +263,23 @@ android:label="@string/permlab_writeProfile" android:description="@string/permdesc_writeProfile" /> + <!-- Allows an application to read from the user's social stream. + @hide --> + <permission android:name="android.permission.READ_SOCIAL_STREAM" + android:permissionGroup="android.permission-group.PERSONAL_INFO" + android:protectionLevel="dangerous" + android:label="@string/permlab_readSocialStream" + android:description="@string/permdesc_readSocialStream" /> + + <!-- Allows an application to write (but not read) the user's + social stream data. + @hide --> + <permission android:name="android.permission.WRITE_SOCIAL_STREAM" + android:permissionGroup="android.permission-group.PERSONAL_INFO" + android:protectionLevel="dangerous" + android:label="@string/permlab_writeSocialStream" + android:description="@string/permdesc_writeSocialStream" /> + <!-- Allows an application to read the user's calendar data. --> <permission android:name="android.permission.READ_CALENDAR" android:permissionGroup="android.permission-group.PERSONAL_INFO" diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index 1e0151a..86ce5ef 100755 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -941,6 +941,18 @@ information. This means other applications can identify you and send your profile information to others.</string> + <!-- Title of the read social stream permission, listed so the user can decide whether to allow the application to read information from the user's social stream. [CHAR LIMIT=30] --> + <string name="permlab_readSocialStream" product="default">read your social stream</string> + <string name="permdesc_readSocialStream" product="default">Allows the application to access and + sync social updates from your friends. Malicious apps can use this to access private + communications between you and your friends on social networks.</string> + + <!-- Title of the write social stream permission, listed so the user can decide whether to allow the application to write information to the user's social stream. [CHAR LIMIT=30] --> + <string name="permlab_writeSocialStream" product="default">write to your social stream</string> + <string name="permdesc_writeSocialStream" product="default">Allows the application to provide + social updates from your friends. Malicious apps can use this to fake updates from your + friends, for instance to phish confidential information from you.</string> + <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. --> <string name="permlab_readCalendar">read calendar events plus confidential information</string> <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. --> @@ -3316,4 +3328,4 @@ <!-- Delimeter used between each item in a textual list; for example "Alpha, Beta". [CHAR LIMIT=3] --> <string name="list_delimeter">", "</string> -</resources>
\ No newline at end of file +</resources> |