Loading core/java/android/preference/DialogPreference.java +78 −50 Original line number Diff line number Diff line Loading @@ -68,6 +68,14 @@ public abstract class DialogPreference extends Preference implements /** Which button was clicked. */ private int mWhichButtonClicked; /** Dismiss the dialog on the UI thread, but not inline with handlers */ private final Runnable mDismissRunnable = new Runnable() { @Override public void run() { mDialog.dismiss(); } }; public DialogPreference( Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); Loading Loading @@ -315,10 +323,29 @@ public abstract class DialogPreference extends Preference implements if (needInputMethod()) { requestInputMethod(dialog); } dialog.setOnShowListener(new DialogInterface.OnShowListener() { @Override public void onShow(DialogInterface dialog) { removeDismissCallbacks(); } }); dialog.setOnDismissListener(this); dialog.show(); } void postDismiss() { removeDismissCallbacks(); View decorView = mDialog.getWindow().getDecorView(); decorView.post(mDismissRunnable); } private void removeDismissCallbacks() { if (mDialog != null && mDialog.getWindow() != null && mDialog.getWindow().getDecorView() != null) { mDialog.getWindow().getDecorView().removeCallbacks(mDismissRunnable); } } /** * Returns whether the preference needs to display a soft input method when the dialog * is displayed. Default is false. Subclasses should override this method if they need Loading Loading @@ -387,8 +414,9 @@ public abstract class DialogPreference extends Preference implements mWhichButtonClicked = which; } @Override public void onDismiss(DialogInterface dialog) { removeDismissCallbacks(); getPreferenceManager().unregisterOnActivityDestroyListener(this); mDialog = null; Loading core/java/android/preference/ListPreference.java +22 −22 Original line number Diff line number Diff line Loading @@ -261,7 +261,7 @@ public class ListPreference extends DialogPreference { * click, and dismisses the dialog. */ ListPreference.this.onClick(dialog, DialogInterface.BUTTON_POSITIVE); dialog.dismiss(); postDismiss(); } }); Loading Loading
core/java/android/preference/DialogPreference.java +78 −50 Original line number Diff line number Diff line Loading @@ -68,6 +68,14 @@ public abstract class DialogPreference extends Preference implements /** Which button was clicked. */ private int mWhichButtonClicked; /** Dismiss the dialog on the UI thread, but not inline with handlers */ private final Runnable mDismissRunnable = new Runnable() { @Override public void run() { mDialog.dismiss(); } }; public DialogPreference( Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); Loading Loading @@ -315,10 +323,29 @@ public abstract class DialogPreference extends Preference implements if (needInputMethod()) { requestInputMethod(dialog); } dialog.setOnShowListener(new DialogInterface.OnShowListener() { @Override public void onShow(DialogInterface dialog) { removeDismissCallbacks(); } }); dialog.setOnDismissListener(this); dialog.show(); } void postDismiss() { removeDismissCallbacks(); View decorView = mDialog.getWindow().getDecorView(); decorView.post(mDismissRunnable); } private void removeDismissCallbacks() { if (mDialog != null && mDialog.getWindow() != null && mDialog.getWindow().getDecorView() != null) { mDialog.getWindow().getDecorView().removeCallbacks(mDismissRunnable); } } /** * Returns whether the preference needs to display a soft input method when the dialog * is displayed. Default is false. Subclasses should override this method if they need Loading Loading @@ -387,8 +414,9 @@ public abstract class DialogPreference extends Preference implements mWhichButtonClicked = which; } @Override public void onDismiss(DialogInterface dialog) { removeDismissCallbacks(); getPreferenceManager().unregisterOnActivityDestroyListener(this); mDialog = null; Loading
core/java/android/preference/ListPreference.java +22 −22 Original line number Diff line number Diff line Loading @@ -261,7 +261,7 @@ public class ListPreference extends DialogPreference { * click, and dismisses the dialog. */ ListPreference.this.onClick(dialog, DialogInterface.BUTTON_POSITIVE); dialog.dismiss(); postDismiss(); } }); Loading