diff options
author | Brandon Maxwell <maxwelb@google.com> | 2016-03-15 22:46:49 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2016-03-15 22:46:50 +0000 |
commit | a98b35c260a8527dd7a952fe0dd3342fce06b89a (patch) | |
tree | a6c295179ec6510e10d631dc7fd4d42f1bbb6ff8 /src/com | |
parent | 60d449f45f52c22d7f7e669760457b717352f8de (diff) | |
parent | b1e450864849436c7c7708ceca5c8f4142492c68 (diff) |
Merge "Keeping migration dialog up while migration in progress" into nyc-dev
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/dialer/filterednumber/BlockedNumbersMigrator.java | 1 | ||||
-rw-r--r-- | src/com/android/dialer/filterednumber/MigrateBlockedNumbersDialogFragment.java | 41 |
2 files changed, 33 insertions, 9 deletions
diff --git a/src/com/android/dialer/filterednumber/BlockedNumbersMigrator.java b/src/com/android/dialer/filterednumber/BlockedNumbersMigrator.java index de201d98a..555e647bc 100644 --- a/src/com/android/dialer/filterednumber/BlockedNumbersMigrator.java +++ b/src/com/android/dialer/filterednumber/BlockedNumbersMigrator.java @@ -22,7 +22,6 @@ import android.content.ContentResolver; import android.content.ContentValues; import android.database.Cursor; import android.os.AsyncTask; -import android.support.annotation.Nullable; import com.android.dialer.compat.BlockedNumbersSdkCompat; import com.android.dialer.compat.FilteredNumberCompat; diff --git a/src/com/android/dialer/filterednumber/MigrateBlockedNumbersDialogFragment.java b/src/com/android/dialer/filterednumber/MigrateBlockedNumbersDialogFragment.java index efcb50591..f29796125 100644 --- a/src/com/android/dialer/filterednumber/MigrateBlockedNumbersDialogFragment.java +++ b/src/com/android/dialer/filterednumber/MigrateBlockedNumbersDialogFragment.java @@ -22,10 +22,12 @@ import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; import android.content.DialogInterface; -import android.content.DialogInterface.OnClickListener; +import android.content.DialogInterface.OnShowListener; import android.os.Bundle; +import android.view.View; import com.android.dialer.R; +import com.android.dialer.filterednumber.BlockedNumbersMigrator.Listener; /** * Dialog fragment shown to users when they need to migrate to use @@ -57,20 +59,43 @@ public class MigrateBlockedNumbersDialogFragment extends DialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { super.onCreateDialog(savedInstanceState); - return new AlertDialog.Builder(getActivity()) + AlertDialog dialog = new AlertDialog.Builder(getActivity()) .setTitle(R.string.migrate_blocked_numbers_dialog_title) .setMessage(R.string.migrate_blocked_numbers_dialog_message) - .setPositiveButton(R.string.migrate_blocked_numbers_dialog_allow_button, - newPositiveButtonOnClickListener()) + .setPositiveButton(R.string.migrate_blocked_numbers_dialog_allow_button, null) .setNegativeButton(R.string.migrate_blocked_numbers_dialog_cancel_button, null) .create(); + // The Dialog's buttons aren't available until show is called, so an OnShowListener + // is used to set the positive button callback. + dialog.setOnShowListener(new OnShowListener() { + @Override + public void onShow(DialogInterface dialog) { + final AlertDialog alertDialog = (AlertDialog) dialog; + alertDialog.getButton(AlertDialog.BUTTON_POSITIVE) + .setOnClickListener(newPositiveButtonOnClickListener(alertDialog)); + } + }); + return dialog; } - private DialogInterface.OnClickListener newPositiveButtonOnClickListener() { - return new OnClickListener() { + /* + * Creates a new View.OnClickListener to be used as the positive button in this dialog. The + * OnClickListener will grey out the dialog's positive and negative buttons while the migration + * is underway, and close the dialog once the migrate is complete. + */ + private View.OnClickListener newPositiveButtonOnClickListener(final AlertDialog alertDialog) { + return new View.OnClickListener() { @Override - public void onClick(DialogInterface dialog, int which) { - mBlockedNumbersMigrator.migrate(mMigrationListener); + public void onClick(View v) { + alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false); + alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE).setEnabled(false); + mBlockedNumbersMigrator.migrate(new Listener() { + @Override + public void onComplete() { + alertDialog.dismiss(); + mMigrationListener.onComplete(); + } + }); } }; } |