Editor expander changes
am: 1c6298b67f
Change-Id: Ic2a545e5344bcae36a8d940d9200d1c3ce52c6a4
diff --git a/res/layout/name_edit_expansion_view.xml b/res/layout/name_edit_expansion_view.xml
index 4d1bd61..066850f 100644
--- a/res/layout/name_edit_expansion_view.xml
+++ b/res/layout/name_edit_expansion_view.xml
@@ -22,7 +22,6 @@
android:layout_width="wrap_content"
android:layout_height="@dimen/editor_min_line_item_height"
android:layout_gravity="top"
- android:contentDescription="@string/expand_collapse_name_fields_description"
android:importantForAccessibility="yes"
android:focusable="true"
android:clickable="true">
diff --git a/res/layout/phonetic_name_edit_expansion_view.xml b/res/layout/phonetic_name_edit_expansion_view.xml
deleted file mode 100644
index 1613391..0000000
--- a/res/layout/phonetic_name_edit_expansion_view.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2015 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<FrameLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="wrap_content"
- android:layout_height="@dimen/editor_min_line_item_height"
- android:layout_gravity="top"
- android:contentDescription="@string/expand_collapse_phonetic_name_fields_description"
- android:importantForAccessibility="yes"
- android:focusable="true"
- android:clickable="true">
- <ImageView
- android:id="@+id/expansion_view"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:duplicateParentState="true"
- android:background="?android:attr/selectableItemBackground"
- android:paddingLeft="@dimen/editor_round_button_padding_left"
- android:paddingRight="@dimen/editor_round_button_padding_right"
- android:paddingStart="@dimen/editor_round_button_padding_left"
- android:paddingEnd="@dimen/editor_round_button_padding_right"
- android:paddingTop="@dimen/editor_round_button_padding_top"
- android:paddingBottom="@dimen/editor_round_button_padding_bottom" />
-</FrameLayout>
diff --git a/res/layout/phonetic_name_editor_view.xml b/res/layout/phonetic_name_editor_view.xml
index f51d3df..efaf644 100644
--- a/res/layout/phonetic_name_editor_view.xml
+++ b/res/layout/phonetic_name_editor_view.xml
@@ -35,7 +35,7 @@
<include
android:id="@+id/expansion_view_container"
- layout="@layout/phonetic_name_edit_expansion_view"
+ layout="@layout/name_edit_expansion_view"
android:visibility="visible" />
<!-- This isn't used in PhoneticNameEditorView. It is only included so that
diff --git a/res/values/strings.xml b/res/values/strings.xml
index e87fe26..44b9f44 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1278,11 +1278,28 @@
fields corresponding to each part of the name (Name Prefix, First Name,
Middle Name, Last Name, Name Suffix).
[CHAR LIMIT=NONE] -->
- <string name="expand_collapse_name_fields_description">Expand or collapse name fields</string>
+ <string name="expand_name_fields_description">Expand name fields</string>
- <!-- Content description for the expand or collapse phonetic name fields button. [CHAR LIMIT=100] -->
- <string name="expand_collapse_phonetic_name_fields_description">Expand or collapse phonetic
- name fields</string>
+ <!-- Content description for the collapse name fields button. [CHAR LIMIT=NONE] -->
+ <string name="collapse_name_fields_description">Collapse name fields</string>
+
+ <!-- Content description for the expand phonetic name fields button. [CHAR LIMIT=NONE] -->
+ <string name="expand_phonetic_name_fields_description">Expand phonetic name fields</string>
+
+ <!-- Content description for the collapse phonetic name fields button. [CHAR LIMIT=NONE] -->
+ <string name="collapse_phonetic_name_fields_description">Collapse phonetic name fields</string>
+
+ <!-- Content description for a generic expand fields button. [CHAR LIMIT=NONE] -->
+ <string name="expand_fields_description">Expand</string>
+
+ <!-- Content description for a generic collapse fields button. [CHAR LIMIT=NONE] -->
+ <string name="collapse_fields_description">Collapse</string>
+
+ <!-- A11y announcement text for when a expand fields button is actioned. [CHAR LIMIT=NONE] -->
+ <string name="announce_expanded_fields">Expanded</string>
+
+ <!-- A11y announcement text for when a collapse fields button is actioned. [CHAR LIMIT=NONE] -->
+ <string name="announce_collapsed_fields">Collapsed</string>
<!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
<string name="list_filter_all_accounts">All contacts</string>
diff --git a/src/com/android/contacts/editor/PhoneticNameEditorView.java b/src/com/android/contacts/editor/PhoneticNameEditorView.java
index 420575c..1c6f6a1 100644
--- a/src/com/android/contacts/editor/PhoneticNameEditorView.java
+++ b/src/com/android/contacts/editor/PhoneticNameEditorView.java
@@ -17,9 +17,11 @@
package com.android.contacts.editor;
import android.content.Context;
+import android.content.res.Resources;
import android.text.TextUtils;
import android.util.AttributeSet;
+import com.android.contacts.R;
import com.android.contacts.common.model.RawContactDelta;
import com.android.contacts.common.model.ValuesDelta;
import com.android.contacts.common.model.dataitem.DataKind;
@@ -102,6 +104,16 @@
}
@Override
+ protected void onFinishInflate() {
+ super.onFinishInflate();
+ final Resources res = getResources();
+ mCollapseButtonDescription = res
+ .getString(R.string.collapse_phonetic_name_fields_description);
+ mExpandButtonDescription = res
+ .getString(R.string.expand_phonetic_name_fields_description);
+ }
+
+ @Override
public void setValues(DataKind kind, ValuesDelta entry, RawContactDelta state, boolean readOnly,
ViewIdGenerator vig) {
if (!(entry instanceof PhoneticValuesDelta)) {
diff --git a/src/com/android/contacts/editor/StructuredNameEditorView.java b/src/com/android/contacts/editor/StructuredNameEditorView.java
index 1a9c693..2fcc19d 100644
--- a/src/com/android/contacts/editor/StructuredNameEditorView.java
+++ b/src/com/android/contacts/editor/StructuredNameEditorView.java
@@ -16,9 +16,9 @@
package com.android.contacts.editor;
-import com.android.contacts.R;
import android.content.ContentValues;
import android.content.Context;
+import android.content.res.Resources;
import android.os.Parcel;
import android.os.Parcelable;
import android.provider.ContactsContract.CommonDataKinds.StructuredName;
@@ -29,13 +29,14 @@
import android.widget.LinearLayout;
import android.widget.TextView;
+import com.android.contacts.R;
import com.android.contacts.common.model.RawContactDelta;
import com.android.contacts.common.model.ValuesDelta;
import com.android.contacts.common.model.account.AccountType;
import com.android.contacts.common.model.dataitem.DataItem;
import com.android.contacts.common.model.dataitem.DataKind;
-import com.android.contacts.common.util.NameConverter;
import com.android.contacts.common.model.dataitem.StructuredNameDataItem;
+import com.android.contacts.common.util.NameConverter;
import java.util.HashMap;
import java.util.Map;
@@ -68,6 +69,16 @@
}
@Override
+ protected void onFinishInflate() {
+ super.onFinishInflate();
+ final Resources res = getResources();
+ mCollapseButtonDescription = res
+ .getString(R.string.collapse_name_fields_description);
+ mExpandButtonDescription = res
+ .getString(R.string.expand_name_fields_description);
+ }
+
+ @Override
public void setValues(DataKind kind, ValuesDelta entry, RawContactDelta state, boolean readOnly,
ViewIdGenerator vig) {
super.setValues(kind, entry, state, readOnly, vig);
diff --git a/src/com/android/contacts/editor/TextFieldsEditorView.java b/src/com/android/contacts/editor/TextFieldsEditorView.java
index 564a9f5..8bdbcd4 100644
--- a/src/com/android/contacts/editor/TextFieldsEditorView.java
+++ b/src/com/android/contacts/editor/TextFieldsEditorView.java
@@ -58,8 +58,12 @@
private EditText[] mFieldEditTexts = null;
private ViewGroup mFields = null;
- private View mExpansionViewContainer;
- private ImageView mExpansionView;
+ protected View mExpansionViewContainer;
+ protected ImageView mExpansionView;
+ protected String mCollapseButtonDescription;
+ protected String mExpandButtonDescription;
+ protected String mCollapsedAnnouncement;
+ protected String mExpandedAnnouncement;
private boolean mHideOptional = true;
private boolean mHasShortAndLongForms;
private int mMinFieldHeight;
@@ -91,6 +95,15 @@
mFields = (ViewGroup) findViewById(R.id.editors);
mHintTextColorUnfocused = getResources().getColor(R.color.editor_disabled_text_color);
mExpansionView = (ImageView) findViewById(R.id.expansion_view);
+ mCollapseButtonDescription = getResources()
+ .getString(R.string.collapse_fields_description);
+ mCollapsedAnnouncement = getResources()
+ .getString(R.string.announce_collapsed_fields);
+ mExpandButtonDescription = getResources()
+ .getString(R.string.expand_fields_description);
+ mExpandedAnnouncement = getResources()
+ .getString(R.string.announce_expanded_fields);
+
mExpansionViewContainer = findViewById(R.id.expansion_view_container);
if (mExpansionViewContainer != null) {
mExpansionViewContainer.setOnClickListener(new OnClickListener() {
@@ -116,6 +129,8 @@
newFocusView.requestFocus();
EditorAnimator.getInstance().slideAndFadeIn(mFields, mPreviousViewHeight);
+ announceForAccessibility(mHideOptional ?
+ mCollapsedAnnouncement : mExpandedAnnouncement);
}
});
}
@@ -170,6 +185,8 @@
? R.drawable.ic_menu_expand_minimized_24dp
: R.drawable.ic_menu_expand_maximized_24dp);
mExpansionView.setImageDrawable(expandIcon);
+ mExpansionView.setContentDescription(collapsed ? mExpandButtonDescription
+ : mCollapseButtonDescription);
mExpansionViewContainer.setVisibility(shouldExist ? View.VISIBLE : View.INVISIBLE);
}
@@ -390,6 +407,7 @@
for (int i = 0; i < numChildren; i++) {
mFieldEditTexts[i].setVisibility(ss.mVisibilities[i]);
}
+ rebuildValues();
}
private static class SavedState extends BaseSavedState {