diff options
author | Brian Attwell <brianattwell@google.com> | 2014-11-04 19:04:42 -0800 |
---|---|---|
committer | Brian Attwell <brianattwell@google.com> | 2014-11-05 03:17:49 +0000 |
commit | 2ebade8924bb6d2734b603938f418959cc79e2ad (patch) | |
tree | a3cc58006f25dd89b77f992b8ceb277b5ed3459e | |
parent | 043fba637b421dcd554c634f769f0e883fb5ff8b (diff) | |
download | packages_apps_Contacts-2ebade8924bb6d2734b603938f418959cc79e2ad.tar.gz packages_apps_Contacts-2ebade8924bb6d2734b603938f418959cc79e2ad.tar.bz2 packages_apps_Contacts-2ebade8924bb6d2734b603938f418959cc79e2ad.zip |
Editor name fields
The mocks show all name fields collapsed into a single field.
After deeper inspection, this proved to be poor UX. Instead
we show the three name types inside a single name section.
Screenshot: go/ba_screen_captures/contacts/b18004959_edit_screen_material/name_fields.png
Bug: 18004959
Change-Id: Ic06abcd151a64746cce32832b27e8f47ec6b981d
-rw-r--r-- | res/layout/edit_field_list.xml | 3 | ||||
-rw-r--r-- | res/layout/phonetic_name_editor_view.xml | 36 | ||||
-rw-r--r-- | res/layout/raw_contact_editor_view.xml | 4 | ||||
-rw-r--r-- | res/layout/structured_name_editor_view.xml | 2 | ||||
-rw-r--r-- | res/values/dimens.xml | 3 | ||||
-rw-r--r-- | src/com/android/contacts/editor/PhoneticNameEditorView.java | 8 | ||||
-rw-r--r-- | src/com/android/contacts/editor/RawContactEditorView.java | 11 | ||||
-rw-r--r-- | src/com/android/contacts/editor/StructuredNameEditorView.java | 8 |
8 files changed, 52 insertions, 23 deletions
diff --git a/res/layout/edit_field_list.xml b/res/layout/edit_field_list.xml index 0073112d3..066810a3c 100644 --- a/res/layout/edit_field_list.xml +++ b/res/layout/edit_field_list.xml @@ -20,6 +20,7 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/editors" - android:layout_width="match_parent" + android:layout_width="0dip" android:layout_height="wrap_content" + android:layout_weight="1" android:orientation="vertical" /> diff --git a/res/layout/phonetic_name_editor_view.xml b/res/layout/phonetic_name_editor_view.xml index d67dcf560..efaf64458 100644 --- a/res/layout/phonetic_name_editor_view.xml +++ b/res/layout/phonetic_name_editor_view.xml @@ -20,33 +20,29 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="@dimen/editor_min_line_item_height" - android:orientation="vertical"> + android:layout_marginStart="@dimen/editor_kind_icon_total_width"> + <!-- This isn't used in PhoneticNameEditorView. It is only included so that + StructuredNameEditorView's base classes don't need extra null checks. --> <include android:id="@+id/spinner" layout="@layout/edit_spinner" android:visibility="gone" /> - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="horizontal" - android:gravity="center_vertical"> - - <include - android:id="@+id/editors" - layout="@layout/edit_field_list" /> - - <include - android:id="@+id/expansion_view_container" - layout="@layout/name_edit_expansion_view" - android:visibility="gone" /> + <include + android:id="@+id/editors" + layout="@layout/edit_field_list" /> - <include - android:id="@+id/delete_button_container" - layout="@layout/edit_delete_button" - android:visibility="gone" /> + <include + android:id="@+id/expansion_view_container" + layout="@layout/name_edit_expansion_view" + android:visibility="visible" /> - </LinearLayout> + <!-- This isn't used in PhoneticNameEditorView. It is only included so that + StructuredNameEditorView's base classes don't need extra null checks. --> + <include + android:id="@+id/delete_button_container" + layout="@layout/edit_delete_button" + android:visibility="gone" /> </com.android.contacts.editor.PhoneticNameEditorView> diff --git a/res/layout/raw_contact_editor_view.xml b/res/layout/raw_contact_editor_view.xml index 03996b515..ace6c8f0d 100644 --- a/res/layout/raw_contact_editor_view.xml +++ b/res/layout/raw_contact_editor_view.xml @@ -38,6 +38,10 @@ layout="@layout/phonetic_name_editor_view" /> <include + android:id="@+id/edit_nick_name" + layout="@layout/item_kind_section" /> + + <include android:id="@+id/edit_photo" android:layout_marginRight="8dip" android:layout_marginEnd="8dip" diff --git a/res/layout/structured_name_editor_view.xml b/res/layout/structured_name_editor_view.xml index fc57159e1..b6d6ecaa7 100644 --- a/res/layout/structured_name_editor_view.xml +++ b/res/layout/structured_name_editor_view.xml @@ -42,6 +42,8 @@ layout="@layout/name_edit_expansion_view" android:visibility="gone" /> + <!-- This isn't used in StructuredNameEditorView. It is only included so that + StructuredNameEditorView's base classes don't need extra null checks. --> <include android:id="@+id/delete_button_container" layout="@layout/edit_delete_button" diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 69b56dcf4..53855ba05 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -57,6 +57,9 @@ <!-- Width and height of the mime-type icons inside the editor --> <dimen name="editor_kind_icon_size">24dp</dimen> + <!-- Total width of data-kind icon, including its start and end padding --> + <dimen name="editor_kind_icon_total_width">72dp</dimen> + <!-- Padding below every editor view, such as LabeledEditorView --> <dimen name="editor_padding_between_editor_views">24dp</dimen> diff --git a/src/com/android/contacts/editor/PhoneticNameEditorView.java b/src/com/android/contacts/editor/PhoneticNameEditorView.java index 420575cbd..e64568721 100644 --- a/src/com/android/contacts/editor/PhoneticNameEditorView.java +++ b/src/com/android/contacts/editor/PhoneticNameEditorView.java @@ -151,4 +151,12 @@ public class PhoneticNameEditorView extends TextFieldsEditorView { return !TextUtils.isEmpty(family) || !TextUtils.isEmpty(middle) || !TextUtils.isEmpty(given); } + + /** {@inheritDoc} */ + @Override + protected void onFinishInflate() { + super.onFinishInflate(); + // Remove padding below this view. + setPadding(getPaddingLeft(), getPaddingTop(), getPaddingRight(), 0); + } } diff --git a/src/com/android/contacts/editor/RawContactEditorView.java b/src/com/android/contacts/editor/RawContactEditorView.java index f0fbc4abe..4a05d7abb 100644 --- a/src/com/android/contacts/editor/RawContactEditorView.java +++ b/src/com/android/contacts/editor/RawContactEditorView.java @@ -64,6 +64,7 @@ public class RawContactEditorView extends BaseRawContactEditorView { private StructuredNameEditorView mName; private PhoneticNameEditorView mPhoneticName; + private KindSectionView mNickNameSectionView; private GroupMembershipView mGroupMembershipView; private ViewGroup mFields; @@ -127,6 +128,8 @@ public class RawContactEditorView extends BaseRawContactEditorView { mPhoneticName = (PhoneticNameEditorView)findViewById(R.id.edit_phonetic_name); mPhoneticName.setDeletable(false); + mNickNameSectionView = (KindSectionView)findViewById(R.id.edit_nick_name); + mFields = (ViewGroup)findViewById(R.id.sect_fields); mAccountIcon = (ImageView) findViewById(R.id.account_icon); @@ -243,6 +246,11 @@ public class RawContactEditorView extends BaseRawContactEditorView { mPhoneticName.setValues( type.getKindForMimetype(DataKind.PSEUDO_MIME_TYPE_PHONETIC_NAME), primary, state, false, vig); + // Special case for nick name, so it gets inserted in the header section. It + // should look like it belongs to the same KindSectionView as the other name fields. + mNickNameSectionView.setEnabled(isEnabled()); + mNickNameSectionView.setState(type.getKindForMimetype(Nickname.CONTENT_ITEM_TYPE), + state, false, vig); } else if (Photo.CONTENT_ITEM_TYPE.equals(mimeType)) { // Handle special case editor for photos final ValuesDelta primary = state.getPrimaryEntry(mimeType); @@ -255,8 +263,7 @@ public class RawContactEditorView extends BaseRawContactEditorView { } else if (DataKind.PSEUDO_MIME_TYPE_DISPLAY_NAME.equals(mimeType) || DataKind.PSEUDO_MIME_TYPE_PHONETIC_NAME.equals(mimeType) || Nickname.CONTENT_ITEM_TYPE.equals(mimeType)) { - // Don't create fields for each of these mime-types. Instead, a single merged - // field is created for these mime-types. + // Don't create fields for each of these mime-types. They are handled specially. continue; } else { // Otherwise use generic section-based editors diff --git a/src/com/android/contacts/editor/StructuredNameEditorView.java b/src/com/android/contacts/editor/StructuredNameEditorView.java index a607ccaaf..b24f7f149 100644 --- a/src/com/android/contacts/editor/StructuredNameEditorView.java +++ b/src/com/android/contacts/editor/StructuredNameEditorView.java @@ -275,4 +275,12 @@ public class StructuredNameEditorView extends TextFieldsEditorView { return 0; } } + + /** {@inheritDoc} */ + @Override + protected void onFinishInflate() { + super.onFinishInflate(); + // Remove padding below this view. + setPadding(getPaddingLeft(), getPaddingTop(), getPaddingRight(), 0); + } } |