diff options
| author | 0xD34D <clark@scheffsblend.com> | 2013-10-20 16:59:25 -0700 |
|---|---|---|
| committer | LorDClockaN <davor@losinj.com> | 2014-06-30 15:57:19 +0200 |
| commit | 88164403f10b46262c59143a0f03c8108f6b36bd (patch) | |
| tree | 6009c75f3f4067ff1aaea7ce7b16a22c7df6b496 | |
| parent | e7ddbbdc17a11066912b4cebe77144a82c072496 (diff) | |
When enabled, new contacts will be assigned a unique
5x5 identicon as the contact photo instead of the boring
default one.
PS2:
Use the new GithubIdenticon class for now.
PS3:
Make use of the IdenticonFactory
PS4:
Add proper annotations for ChaOS Lab.
Change-Id: I8c166504571baf6acaacfb95eda33b13c14ffa61
| -rw-r--r-- | src/com/android/providers/contacts/DataRowHandlerForStructuredName.java | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/com/android/providers/contacts/DataRowHandlerForStructuredName.java b/src/com/android/providers/contacts/DataRowHandlerForStructuredName.java index 8781d2f2..6af6c9e8 100644 --- a/src/com/android/providers/contacts/DataRowHandlerForStructuredName.java +++ b/src/com/android/providers/contacts/DataRowHandlerForStructuredName.java @@ -15,18 +15,26 @@ */ package com.android.providers.contacts; +import android.annotation.ChaosLab; +import android.annotation.ChaosLab.Classification; +import android.content.ContentResolver; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; +import android.provider.ContactsContract; import android.provider.ContactsContract.CommonDataKinds.StructuredName; import android.provider.ContactsContract.FullNameStyle; import android.provider.ContactsContract.PhoneticNameStyle; +import android.provider.Settings; import android.text.TextUtils; import com.android.providers.contacts.SearchIndexManager.IndexBuilder; import com.android.providers.contacts.aggregation.ContactAggregator; +import com.android.internal.util.chaos.identicons.Identicon; +import com.android.internal.util.chaos.identicons.IdenticonFactory; + /** * Handler for email address data rows. */ @@ -35,15 +43,21 @@ public class DataRowHandlerForStructuredName extends DataRowHandler { private final NameLookupBuilder mNameLookupBuilder; private final StringBuilder mSb = new StringBuilder(); + @ChaosLab(name="QuickStats", classification=Classification.NEW_FIELD) + private final ContentResolver mResolver; + + @ChaosLab(name="QuickStats", classification=Classification.CHANGE_CODE) public DataRowHandlerForStructuredName(Context context, ContactsDatabaseHelper dbHelper, ContactAggregator aggregator, NameSplitter splitter, NameLookupBuilder nameLookupBuilder) { super(context, dbHelper, aggregator, StructuredName.CONTENT_ITEM_TYPE); mSplitter = splitter; mNameLookupBuilder = nameLookupBuilder; + mResolver = context.getContentResolver(); } @Override + @ChaosLab(name="QuickStats", classification=Classification.CHANGE_CODE) public long insert(SQLiteDatabase db, TransactionContext txContext, long rawContactId, ContentValues values) { fixStructuredNameComponents(values, values); @@ -58,6 +72,9 @@ public class DataRowHandlerForStructuredName extends DataRowHandler { : FullNameStyle.UNDEFINED); insertNameLookupForPhoneticName(rawContactId, dataId, values); fixRawContactDisplayName(db, txContext, rawContactId); + if (Settings.System.getInt(mResolver, Settings.System.IDENTICONS_ENABLED, 0) == 1) { + insertIdenticon(db, txContext, rawContactId, name); + } triggerAggregation(txContext, rawContactId); return dataId; } @@ -234,4 +251,19 @@ public class DataRowHandlerForStructuredName extends DataRowHandler { phoneticNameStyle); } } + + @ChaosLab(name="QuickStats", classification=Classification.NEW_METHOD) + private void insertIdenticon(SQLiteDatabase db, TransactionContext txContext, + long rawContactId, String name) { + if (!TextUtils.isEmpty(name)) { + ContentValues values = new ContentValues(); + final Identicon identicon = IdenticonFactory.makeIdenticon( + Settings.System.getInt(mResolver, Settings.System.IDENTICONS_STYLE, 0)); + values.put("mimetype_id", 10); + values.put(ContactsDatabaseHelper.NameLookupColumns.RAW_CONTACT_ID, rawContactId); + values.put(ContactsContract.CommonDataKinds.Photo.PHOTO, + identicon.generateIdenticonByteArray(name)); + super.insert(db, txContext, rawContactId, values); + } + } } |
