Loading src/com/android/contacts/editor/CompactKindSectionView.java +6 −19 Original line number Diff line number Diff line Loading @@ -25,10 +25,12 @@ import com.android.contacts.common.model.dataitem.DataKind; import android.content.Context; import android.database.Cursor; import android.provider.ContactsContract; import android.provider.ContactsContract.CommonDataKinds.Event; import android.provider.ContactsContract.CommonDataKinds.GroupMembership; import android.provider.ContactsContract.CommonDataKinds.Nickname; import android.provider.ContactsContract.CommonDataKinds.StructuredName; import android.text.TextUtils; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; Loading Loading @@ -344,24 +346,6 @@ public class CompactKindSectionView extends LinearLayout { final boolean readOnly = !accountType.areContactsWritable(); if (readOnly) { final View nameView = mLayoutInflater.inflate( R.layout.structured_name_readonly_editor_view, mEditors, /* attachToRoot =*/ false); // Display name ((TextView) nameView.findViewById(R.id.display_name)) .setText(valuesDelta.getDisplayName()); // Account type info final LinearLayout accountTypeLayout = (LinearLayout) nameView.findViewById(R.id.account_type); accountTypeLayout.setVisibility(View.VISIBLE); ((ImageView) accountTypeLayout.findViewById(R.id.account_type_icon)) .setImageDrawable(accountType.getDisplayIcon(getContext())); ((TextView) accountTypeLayout.findViewById(R.id.account_type_name)) .setText(accountType.getDisplayLabel(getContext())); mEditors.addView(nameView); return; } Loading Loading @@ -557,10 +541,13 @@ public class CompactKindSectionView extends LinearLayout { } // Add a new empty editor if (mShowOneEmptyEditor) { final String mimeType = mKindSectionDataList.getMimeType(); if (Nickname.CONTENT_ITEM_TYPE.equals(mimeType) && mEditors.getChildCount() > 0) { return; } final RawContactDelta rawContactDelta = mKindSectionDataList.get(0).getRawContactDelta(); final ValuesDelta values = RawContactModifier.insertChild(rawContactDelta, dataKind); final String mimeType = mKindSectionDataList.getMimeType(); final Editor.EditorListener editorListener = Event.CONTENT_ITEM_TYPE.equals(mimeType) ? new EventEditorListener() : new NonNameEditorListener(); final View view = addNonNameEditorView(rawContactDelta, dataKind, values, Loading src/com/android/contacts/editor/CompactRawContactsEditorView.java +15 −10 Original line number Diff line number Diff line Loading @@ -686,6 +686,7 @@ public class CompactRawContactsEditorView extends LinearLayout implements View.O mViewIdGenerator = viewIdGenerator; mPhotoId = photoId; mReadOnlyDisplayName = readOnlyDisplayName; mHasNewContact = hasNewContact; mIsUserProfile = isUserProfile; mPrimaryAccount = primaryAccount; Loading Loading @@ -762,12 +763,6 @@ public class CompactRawContactsEditorView extends LinearLayout implements View.O new KindSectionData(accountType, dataKind, rawContactDelta); kindSectionDataList.add(kindSectionData); // Note we must create nickname entries if (Nickname.CONTENT_ITEM_TYPE.equals(mimeType) && kindSectionData.getValuesDeltas().isEmpty()) { RawContactModifier.insertChild(rawContactDelta, dataKind); } vlog("parse: " + i + " " + dataKind.mimeType + " " + kindSectionData.getValuesDeltas().size() + " value(s)"); } Loading @@ -775,9 +770,6 @@ public class CompactRawContactsEditorView extends LinearLayout implements View.O } private KindSectionDataList getOrCreateKindSectionDataList(String mimeType) { // Put structured names and nicknames together mimeType = Nickname.CONTENT_ITEM_TYPE.equals(mimeType) ? StructuredName.CONTENT_ITEM_TYPE : mimeType; KindSectionDataList kindSectionDataList = mKindSectionDataMap.get(mimeType); if (kindSectionDataList == null) { kindSectionDataList = new KindSectionDataList(); Loading Loading @@ -1009,7 +1001,20 @@ public class CompactRawContactsEditorView extends LinearLayout implements View.O i++; final String mimeType = entry.getKey(); final KindSectionDataList kindSectionDataList = entry.getValue(); KindSectionDataList kindSectionDataList = entry.getValue(); if (StructuredName.CONTENT_ITEM_TYPE.equals(mimeType)) { // Only show one name editor view. Select one matched name to display according to // the order: super primary name, first non-empty name, first empty name, null. // The name should be the name displayed in Quick contact. final Pair<KindSectionData,ValuesDelta> nameToDisplay = kindSectionDataList.getEntryToDisplay(0L); if (nameToDisplay != null) { final KindSectionData nameKindSectionData = nameToDisplay.first; kindSectionDataList = new KindSectionDataList(); kindSectionDataList.add(nameKindSectionData); } } // Ignore mime types that we've already handled if (Photo.CONTENT_ITEM_TYPE.equals(mimeType)) { Loading src/com/android/contacts/editor/KindSectionDataList.java +2 −19 Original line number Diff line number Diff line Loading @@ -43,13 +43,7 @@ public class KindSectionDataList extends ArrayList<KindSectionData> { */ public String getMimeType() { if (isEmpty()) return null; final String mimeType = get(0).getDataKind().mimeType; // StructuredNames and Nicknames are a special case and go together under the // StructuredName mime type if (Nickname.CONTENT_ITEM_TYPE.equals(mimeType)) { return StructuredName.CONTENT_ITEM_TYPE; } return mimeType; return get(0).getDataKind().mimeType; } /** Loading Loading @@ -161,12 +155,7 @@ public class KindSectionDataList extends ArrayList<KindSectionData> { final String listMimeType = getMimeType(); if (listMimeType != null) { final String newEntryMimeType = kindSectionData.getDataKind().mimeType; if (isNameMimeType(listMimeType)) { if (!isNameMimeType(newEntryMimeType)) { throw new IllegalArgumentException( "Can't add " + newEntryMimeType + " to list with type " + listMimeType); } } else if (!listMimeType.equals(newEntryMimeType)) { if (!listMimeType.equals(newEntryMimeType)) { throw new IllegalArgumentException( "Can't add " + newEntryMimeType + " to list with type " + listMimeType); } Loading @@ -174,12 +163,6 @@ public class KindSectionDataList extends ArrayList<KindSectionData> { return super.add(kindSectionData); } // StructuredNames and Nicknames are a special case and go together private static boolean isNameMimeType(String mimeType) { return StructuredName.CONTENT_ITEM_TYPE.equals(mimeType) || Nickname.CONTENT_ITEM_TYPE.equals(mimeType); } private static void vlog(String message) { if (Log.isLoggable(TAG, Log.VERBOSE)) { Log.v(TAG, message); Loading Loading
src/com/android/contacts/editor/CompactKindSectionView.java +6 −19 Original line number Diff line number Diff line Loading @@ -25,10 +25,12 @@ import com.android.contacts.common.model.dataitem.DataKind; import android.content.Context; import android.database.Cursor; import android.provider.ContactsContract; import android.provider.ContactsContract.CommonDataKinds.Event; import android.provider.ContactsContract.CommonDataKinds.GroupMembership; import android.provider.ContactsContract.CommonDataKinds.Nickname; import android.provider.ContactsContract.CommonDataKinds.StructuredName; import android.text.TextUtils; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; Loading Loading @@ -344,24 +346,6 @@ public class CompactKindSectionView extends LinearLayout { final boolean readOnly = !accountType.areContactsWritable(); if (readOnly) { final View nameView = mLayoutInflater.inflate( R.layout.structured_name_readonly_editor_view, mEditors, /* attachToRoot =*/ false); // Display name ((TextView) nameView.findViewById(R.id.display_name)) .setText(valuesDelta.getDisplayName()); // Account type info final LinearLayout accountTypeLayout = (LinearLayout) nameView.findViewById(R.id.account_type); accountTypeLayout.setVisibility(View.VISIBLE); ((ImageView) accountTypeLayout.findViewById(R.id.account_type_icon)) .setImageDrawable(accountType.getDisplayIcon(getContext())); ((TextView) accountTypeLayout.findViewById(R.id.account_type_name)) .setText(accountType.getDisplayLabel(getContext())); mEditors.addView(nameView); return; } Loading Loading @@ -557,10 +541,13 @@ public class CompactKindSectionView extends LinearLayout { } // Add a new empty editor if (mShowOneEmptyEditor) { final String mimeType = mKindSectionDataList.getMimeType(); if (Nickname.CONTENT_ITEM_TYPE.equals(mimeType) && mEditors.getChildCount() > 0) { return; } final RawContactDelta rawContactDelta = mKindSectionDataList.get(0).getRawContactDelta(); final ValuesDelta values = RawContactModifier.insertChild(rawContactDelta, dataKind); final String mimeType = mKindSectionDataList.getMimeType(); final Editor.EditorListener editorListener = Event.CONTENT_ITEM_TYPE.equals(mimeType) ? new EventEditorListener() : new NonNameEditorListener(); final View view = addNonNameEditorView(rawContactDelta, dataKind, values, Loading
src/com/android/contacts/editor/CompactRawContactsEditorView.java +15 −10 Original line number Diff line number Diff line Loading @@ -686,6 +686,7 @@ public class CompactRawContactsEditorView extends LinearLayout implements View.O mViewIdGenerator = viewIdGenerator; mPhotoId = photoId; mReadOnlyDisplayName = readOnlyDisplayName; mHasNewContact = hasNewContact; mIsUserProfile = isUserProfile; mPrimaryAccount = primaryAccount; Loading Loading @@ -762,12 +763,6 @@ public class CompactRawContactsEditorView extends LinearLayout implements View.O new KindSectionData(accountType, dataKind, rawContactDelta); kindSectionDataList.add(kindSectionData); // Note we must create nickname entries if (Nickname.CONTENT_ITEM_TYPE.equals(mimeType) && kindSectionData.getValuesDeltas().isEmpty()) { RawContactModifier.insertChild(rawContactDelta, dataKind); } vlog("parse: " + i + " " + dataKind.mimeType + " " + kindSectionData.getValuesDeltas().size() + " value(s)"); } Loading @@ -775,9 +770,6 @@ public class CompactRawContactsEditorView extends LinearLayout implements View.O } private KindSectionDataList getOrCreateKindSectionDataList(String mimeType) { // Put structured names and nicknames together mimeType = Nickname.CONTENT_ITEM_TYPE.equals(mimeType) ? StructuredName.CONTENT_ITEM_TYPE : mimeType; KindSectionDataList kindSectionDataList = mKindSectionDataMap.get(mimeType); if (kindSectionDataList == null) { kindSectionDataList = new KindSectionDataList(); Loading Loading @@ -1009,7 +1001,20 @@ public class CompactRawContactsEditorView extends LinearLayout implements View.O i++; final String mimeType = entry.getKey(); final KindSectionDataList kindSectionDataList = entry.getValue(); KindSectionDataList kindSectionDataList = entry.getValue(); if (StructuredName.CONTENT_ITEM_TYPE.equals(mimeType)) { // Only show one name editor view. Select one matched name to display according to // the order: super primary name, first non-empty name, first empty name, null. // The name should be the name displayed in Quick contact. final Pair<KindSectionData,ValuesDelta> nameToDisplay = kindSectionDataList.getEntryToDisplay(0L); if (nameToDisplay != null) { final KindSectionData nameKindSectionData = nameToDisplay.first; kindSectionDataList = new KindSectionDataList(); kindSectionDataList.add(nameKindSectionData); } } // Ignore mime types that we've already handled if (Photo.CONTENT_ITEM_TYPE.equals(mimeType)) { Loading
src/com/android/contacts/editor/KindSectionDataList.java +2 −19 Original line number Diff line number Diff line Loading @@ -43,13 +43,7 @@ public class KindSectionDataList extends ArrayList<KindSectionData> { */ public String getMimeType() { if (isEmpty()) return null; final String mimeType = get(0).getDataKind().mimeType; // StructuredNames and Nicknames are a special case and go together under the // StructuredName mime type if (Nickname.CONTENT_ITEM_TYPE.equals(mimeType)) { return StructuredName.CONTENT_ITEM_TYPE; } return mimeType; return get(0).getDataKind().mimeType; } /** Loading Loading @@ -161,12 +155,7 @@ public class KindSectionDataList extends ArrayList<KindSectionData> { final String listMimeType = getMimeType(); if (listMimeType != null) { final String newEntryMimeType = kindSectionData.getDataKind().mimeType; if (isNameMimeType(listMimeType)) { if (!isNameMimeType(newEntryMimeType)) { throw new IllegalArgumentException( "Can't add " + newEntryMimeType + " to list with type " + listMimeType); } } else if (!listMimeType.equals(newEntryMimeType)) { if (!listMimeType.equals(newEntryMimeType)) { throw new IllegalArgumentException( "Can't add " + newEntryMimeType + " to list with type " + listMimeType); } Loading @@ -174,12 +163,6 @@ public class KindSectionDataList extends ArrayList<KindSectionData> { return super.add(kindSectionData); } // StructuredNames and Nicknames are a special case and go together private static boolean isNameMimeType(String mimeType) { return StructuredName.CONTENT_ITEM_TYPE.equals(mimeType) || Nickname.CONTENT_ITEM_TYPE.equals(mimeType); } private static void vlog(String message) { if (Log.isLoggable(TAG, Log.VERBOSE)) { Log.v(TAG, message); Loading