Merge "Add ability to set onShowListener to custom dialog pref" into pi-dev

This commit is contained in:
TreeHugger Robot
2018-04-20 00:15:45 +00:00
committed by Android (Google) Code Review

View File

@@ -28,6 +28,7 @@ import android.view.View;
public class CustomDialogPreference extends DialogPreference {
private CustomPreferenceDialogFragment mFragment;
private DialogInterface.OnShowListener mOnShowListener;
public CustomDialogPreference(Context context, AttributeSet attrs, int defStyleAttr,
int defStyleRes) {
@@ -54,6 +55,10 @@ public class CustomDialogPreference extends DialogPreference {
return mFragment != null ? mFragment.getDialog() : null;
}
public void setOnShowListener(DialogInterface.OnShowListener listner) {
mOnShowListener = listner;
}
protected void onPrepareDialogBuilder(AlertDialog.Builder builder,
DialogInterface.OnClickListener listener) {
}
@@ -71,6 +76,10 @@ public class CustomDialogPreference extends DialogPreference {
mFragment = fragment;
}
private DialogInterface.OnShowListener getOnShowListener() {
return mOnShowListener;
}
public static class CustomPreferenceDialogFragment extends PreferenceDialogFragment {
public static CustomPreferenceDialogFragment newInstance(String key) {
@@ -103,6 +112,13 @@ public class CustomDialogPreference extends DialogPreference {
getCustomizablePreference().onBindDialogView(view);
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Dialog dialog = super.onCreateDialog(savedInstanceState);
dialog.setOnShowListener(getCustomizablePreference().getOnShowListener());
return dialog;
}
@Override
public void onClick(DialogInterface dialog, int which) {
super.onClick(dialog, which);