Use AlertDialog to enable Talkback on account selection

Three cases are affected: 0/1/2+ writable accounts.

Bug: 19102305
Change-Id: I9c232af7ab2bce153100717c41a147716ff894d3
diff --git a/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java b/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
index a922ca1..404d4cc 100644
--- a/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
+++ b/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
@@ -17,6 +17,8 @@
 package com.android.contacts.activities;
 
 import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.DialogInterface;
 import android.content.Intent;
 import android.os.Bundle;
 import android.provider.ContactsContract.Intents;
@@ -84,19 +86,21 @@
             throw new IllegalStateException("Cannot have a negative number of accounts");
         }
 
+        final View view;
         if (numAccounts >= 2) {
             // When the user has 2+ writable accounts, show a list of accounts so the user can pick
             // which account to create a contact in.
-            setContentView(R.layout.contact_editor_accounts_changed_activity_with_picker);
+            view = View.inflate(this,
+                    R.layout.contact_editor_accounts_changed_activity_with_picker, null);
 
-            final TextView textView = (TextView) findViewById(R.id.text);
+            final TextView textView = (TextView) view.findViewById(R.id.text);
             textView.setText(getString(R.string.contact_editor_prompt_multiple_accounts));
 
-            final Button button = (Button) findViewById(R.id.add_account_button);
+            final Button button = (Button) view.findViewById(R.id.add_account_button);
             button.setText(getString(R.string.add_new_account));
             button.setOnClickListener(mAddAccountClickListener);
 
-            final ListView accountListView = (ListView) findViewById(R.id.account_list);
+            final ListView accountListView = (ListView) view.findViewById(R.id.account_list);
             mAccountListAdapter = new AccountsListAdapter(this,
                     AccountListFilter.ACCOUNTS_CONTACT_WRITABLE);
             accountListView.setAdapter(mAccountListAdapter);
@@ -104,11 +108,12 @@
         } else if (numAccounts == 1) {
             // If the user has 1 writable account we will just show the user a message with 2
             // possible action buttons.
-            setContentView(R.layout.contact_editor_accounts_changed_activity_with_text);
+            view = View.inflate(this,
+                    R.layout.contact_editor_accounts_changed_activity_with_text, null);
 
-            final TextView textView = (TextView) findViewById(R.id.text);
-            final Button leftButton = (Button) findViewById(R.id.left_button);
-            final Button rightButton = (Button) findViewById(R.id.right_button);
+            final TextView textView = (TextView) view.findViewById(R.id.text);
+            final Button leftButton = (Button) view.findViewById(R.id.left_button);
+            final Button rightButton = (Button) view.findViewById(R.id.right_button);
 
             final AccountWithDataSet account = accounts.get(0);
             textView.setText(getString(R.string.contact_editor_prompt_one_account,
@@ -131,11 +136,12 @@
         } else {
             // If the user has 0 writable accounts, we will just show the user a message with 2
             // possible action buttons.
-            setContentView(R.layout.contact_editor_accounts_changed_activity_with_text);
+            view = View.inflate(this,
+                    R.layout.contact_editor_accounts_changed_activity_with_text, null);
 
-            final TextView textView = (TextView) findViewById(R.id.text);
-            final Button leftButton = (Button) findViewById(R.id.left_button);
-            final Button rightButton = (Button) findViewById(R.id.right_button);
+            final TextView textView = (TextView) view.findViewById(R.id.text);
+            final Button leftButton = (Button) view.findViewById(R.id.left_button);
+            final Button rightButton = (Button) view.findViewById(R.id.right_button);
 
             textView.setText(getString(R.string.contact_editor_prompt_zero_accounts));
 
@@ -158,6 +164,17 @@
             rightButton.setText(getString(R.string.add_account));
             rightButton.setOnClickListener(mAddAccountClickListener);
         }
+
+        new AlertDialog.Builder(this)
+                .setView(view)
+                .setOnCancelListener(new DialogInterface.OnCancelListener() {
+                    @Override
+                    public void onCancel(DialogInterface dialog) {
+                        finish();
+                    }
+                })
+                .create()
+                .show();
     }
 
     @Override