From 8a13f7d8f3f43fbc469e871ec8220b84e746be58 Mon Sep 17 00:00:00 2001 From: Inseob Kim Date: Wed, 21 Nov 2018 11:39:49 +0900 Subject: Schematize Contacts system properties Properties accessed across partitions are now schematized and will become APIs to make explicit interfaces among partitions. Bug: 117924132 Test: mma -j Change-Id: I3c270dd0364629aacabf489c5c01277111b98ad9 --- .../contacts/ContactDirectoryManager.java | 4 ++-- .../providers/contacts/ContactsProvider2.java | 27 +++++----------------- .../android/providers/contacts/PhotoProcessor.java | 15 ++++-------- 3 files changed, 12 insertions(+), 34 deletions(-) diff --git a/src/com/android/providers/contacts/ContactDirectoryManager.java b/src/com/android/providers/contacts/ContactDirectoryManager.java index 33e541d3..8a1c88bb 100644 --- a/src/com/android/providers/contacts/ContactDirectoryManager.java +++ b/src/com/android/providers/contacts/ContactDirectoryManager.java @@ -30,9 +30,9 @@ import android.database.sqlite.SQLiteDatabase; import android.net.Uri; import android.os.Bundle; import android.os.SystemClock; -import android.os.SystemProperties; import android.provider.ContactsContract; import android.provider.ContactsContract.Directory; +import android.sysprop.ContactsProperties; import android.text.TextUtils; import android.util.Log; @@ -194,7 +194,7 @@ public class ContactDirectoryManager { @VisibleForTesting boolean isRescanNeeded() { - if ("1".equals(SystemProperties.get("debug.cp2.scan_all_packages", "0"))) { + if (ContactsProperties.debug_scan_all_packages().orElse(false)) { Log.w(TAG, "debug.cp2.scan_all_packages set to 1."); return true; // For debugging. } diff --git a/src/com/android/providers/contacts/ContactsProvider2.java b/src/com/android/providers/contacts/ContactsProvider2.java index 54b4a27d..52f493b2 100644 --- a/src/com/android/providers/contacts/ContactsProvider2.java +++ b/src/com/android/providers/contacts/ContactsProvider2.java @@ -62,7 +62,6 @@ import android.os.ParcelFileDescriptor.AutoCloseInputStream; import android.os.RemoteException; import android.os.StrictMode; import android.os.SystemClock; -import android.os.SystemProperties; import android.os.UserHandle; import android.preference.PreferenceManager; import android.provider.BaseColumns; @@ -107,6 +106,7 @@ import android.provider.ContactsContract.StreamItems; import android.provider.OpenableColumns; import android.provider.Settings.Global; import android.provider.SyncStateContract; +import android.sysprop.ContactsProperties; import android.telephony.PhoneNumberUtils; import android.telephony.TelephonyManager; import android.text.TextUtils; @@ -291,22 +291,8 @@ public class ContactsProvider2 extends AbstractContactsProvider private static final int AGGREGATION_ALGORITHM_NEW_VERSION = 5; - private static final String AGGREGATE_CONTACTS = "sync.contacts.aggregate"; - private static final String CONTACT_MEMORY_FILE_NAME = "contactAssetFile"; - /** - * If set to "1", we don't remove account data when accounts have been removed. - * - * This should be used sparingly; even though there are data still available, the UI - * don't know anything about them, so they won't show up in the contact filter screen, and - * the contact card/editor may get confused to see unknown custom mimetypes. - * - * We can't spell it out because a property name must be less than 32 chars. - */ - private static final String DEBUG_PROPERTY_KEEP_STALE_ACCOUNT_DATA = - "debug.contacts.ksad"; - public static final ProfileAwareUriMatcher sUriMatcher = new ProfileAwareUriMatcher(UriMatcher.NO_MATCH); @@ -1644,7 +1630,7 @@ public class ContactsProvider2 extends AbstractContactsProvider createPhotoPriorityResolver(getContext()), mNameSplitter, mCommonNicknameCache) : new ContactAggregator(this, mContactsHelper, createPhotoPriorityResolver(getContext()), mNameSplitter, mCommonNicknameCache); - mContactAggregator.setEnabled(SystemProperties.getBoolean(AGGREGATE_CONTACTS, true)); + mContactAggregator.setEnabled(ContactsProperties.aggregate_contacts().orElse(true)); initDataRowHandlers(mDataRowHandlers, mContactsHelper, mContactAggregator, mContactsPhotoStore); } @@ -1676,10 +1662,10 @@ public class ContactsProvider2 extends AbstractContactsProvider : new ContactAggregator2(this, mContactsHelper, createPhotoPriorityResolver(context), mNameSplitter, mCommonNicknameCache); - mContactAggregator.setEnabled(SystemProperties.getBoolean(AGGREGATE_CONTACTS, true)); + mContactAggregator.setEnabled(ContactsProperties.aggregate_contacts().orElse(true)); mProfileAggregator = new ProfileAggregator(this, mProfileHelper, createPhotoPriorityResolver(context), mNameSplitter, mCommonNicknameCache); - mProfileAggregator.setEnabled(SystemProperties.getBoolean(AGGREGATE_CONTACTS, true)); + mProfileAggregator.setEnabled(ContactsProperties.aggregate_contacts().orElse(true)); mSearchIndexManager = new SearchIndexManager(this); mContactsPhotoStore = new PhotoStore(getContext().getFilesDir(), mContactsHelper); mProfilePhotoStore = @@ -5232,9 +5218,8 @@ public class ContactsProvider2 extends AbstractContactsProvider if (!haveAccountsChanged(systemAccounts)) { return false; } - if ("1".equals(SystemProperties.get(DEBUG_PROPERTY_KEEP_STALE_ACCOUNT_DATA))) { - Log.w(TAG, "Accounts changed, but not removing stale data for " + - DEBUG_PROPERTY_KEEP_STALE_ACCOUNT_DATA); + if (ContactsProperties.keep_stale_account_data().orElse(false)) { + Log.w(TAG, "Accounts changed, but not removing stale data for debug.contacts.ksad"); return true; } Log.i(TAG, "Accounts changed"); diff --git a/src/com/android/providers/contacts/PhotoProcessor.java b/src/com/android/providers/contacts/PhotoProcessor.java index b49e7924..643d92df 100644 --- a/src/com/android/providers/contacts/PhotoProcessor.java +++ b/src/com/android/providers/contacts/PhotoProcessor.java @@ -22,7 +22,7 @@ import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import android.graphics.RectF; -import android.os.SystemProperties; +import android.sysprop.ContactsProperties; import com.android.providers.contacts.util.MemoryUtils; import com.google.common.annotations.VisibleForTesting; @@ -61,11 +61,10 @@ import java.io.IOException; final boolean isExpensiveDevice = MemoryUtils.getTotalMemorySize() >= PhotoSizes.LARGE_RAM_THRESHOLD; - sMaxThumbnailDim = SystemProperties.getInt( - PhotoSizes.SYS_PROPERTY_THUMBNAIL_SIZE, PhotoSizes.DEFAULT_THUMBNAIL); + sMaxThumbnailDim = ContactsProperties.thumbnail_size().orElse( + PhotoSizes.DEFAULT_THUMBNAIL); - sMaxDisplayPhotoDim = SystemProperties.getInt( - PhotoSizes.SYS_PROPERTY_DISPLAY_PHOTO_SIZE, + sMaxDisplayPhotoDim = ContactsProperties.display_photo_size().orElse( isExpensiveDevice ? PhotoSizes.DEFAULT_DISPLAY_PHOTO_LARGE_MEMORY : PhotoSizes.DEFAULT_DISPLAY_PHOTO_MEMORY_CONSTRAINED); @@ -95,12 +94,6 @@ import java.io.IOException; * photos */ public static final int LARGE_RAM_THRESHOLD = 640 * 1024 * 1024; - - /** If present, overrides the size given in {@link #DEFAULT_THUMBNAIL} */ - public static final String SYS_PROPERTY_THUMBNAIL_SIZE = "contacts.thumbnail_size"; - - /** If present, overrides the size determined for the display photo */ - public static final String SYS_PROPERTY_DISPLAY_PHOTO_SIZE = "contacts.display_photo_size"; } private final int mMaxDisplayPhotoDim; -- cgit v1.2.3