Improve talkback usability of SIM import dialog.
Test
Manual: navigated SIM import dialog with talkback enabled
Bug 31781331
Change-Id: Ie58866469f816fae586ae1fa1878c905daea0d60
diff --git a/res/layout/fragment_sim_import.xml b/res/layout/fragment_sim_import.xml
index 9e2f493..6b8c3fe 100644
--- a/res/layout/fragment_sim_import.xml
+++ b/res/layout/fragment_sim_import.xml
@@ -26,6 +26,7 @@
android:background="?attr/colorPrimary"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
+ app:navigationContentDescription="@string/sim_import_cancel_content_description"
app:navigationIcon="@drawable/ic_close_dk"
app:title="@string/sim_import_title_none_selected">
diff --git a/res/values/strings.xml b/res/values/strings.xml
index d170127..2c911c9 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1812,4 +1812,11 @@
<!-- Toast shown on settings screen when importing from SIM completes with an error -->
<string name="sim_import_failed_toast">Failed to import SIM contacts</string>
+ <!-- Title of SIM import dialog for accessibility; this isn't displayed but is announced
+ by talkback when the window is shown -->
+ <string name="sim_import_dialog_title">Select contacts to import</string>
+
+ <!-- Content description of the cancel navigation icon shown in SIM import dialog toolbar -->
+ <string name="sim_import_cancel_content_description">Cancel import</string>
+
</resources>
diff --git a/src/com/android/contacts/SimImportFragment.java b/src/com/android/contacts/SimImportFragment.java
index a9dcf97..7421df4 100644
--- a/src/com/android/contacts/SimImportFragment.java
+++ b/src/com/android/contacts/SimImportFragment.java
@@ -15,6 +15,7 @@
*/
package com.android.contacts;
+import android.app.Dialog;
import android.app.DialogFragment;
import android.app.LoaderManager;
import android.content.AsyncTaskLoader;
@@ -74,7 +75,7 @@
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setStyle(STYLE_NO_TITLE, R.style.PeopleThemeAppCompat_FullScreenDialog);
+ setStyle(STYLE_NORMAL, R.style.PeopleThemeAppCompat_FullScreenDialog);
mPreferences = new ContactsPreferences(getContext());
mAccountTypeManager = AccountTypeManager.getInstance(getActivity());
mAdapter = new SimContactAdapter(getActivity());
@@ -89,6 +90,15 @@
}
@Override
+ public Dialog onCreateDialog(Bundle savedInstanceState) {
+ Dialog dialog = super.onCreateDialog(savedInstanceState);
+ // Set the title for accessibility. It isn't displayed but will get announced when the
+ // window is shown
+ dialog.setTitle(R.string.sim_import_dialog_title);
+ return dialog;
+ }
+
+ @Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
getLoaderManager().initLoader(0, null, this);
@@ -248,6 +258,11 @@
ContactListItemView contactView = (ContactListItemView) itemView;
bindNameAndViewId(contactView, cursor);
bindPhoto(contactView, partition, cursor);
+
+ // For accessibility. Tapping the item checks this so we don't need it to be separately
+ // clickable
+ contactView.getCheckBox().setFocusable(false);
+ contactView.getCheckBox().setClickable(false);
}
public void setContacts(ArrayList<SimContact> contacts) {