Log visibility change for DialogCreatable in Settings.
Bug: 30681529 Test: adb logcat -b events | egrep "(sysui_|notification_)" Test: make RunSettingsRoboTests Change-Id: I51754d258ba1ddfae24323681f21cd02de4dbb4e
This commit is contained in:
@@ -46,9 +46,11 @@ import android.widget.Button;
|
||||
|
||||
import com.android.settings.applications.LayoutPreference;
|
||||
import com.android.settings.core.InstrumentedFragment;
|
||||
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
||||
import com.android.settingslib.HelpUtils;
|
||||
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
/**
|
||||
* Base class for Settings fragments, with some helper functions and dialog management.
|
||||
@@ -501,10 +503,16 @@ public abstract class SettingsPreferenceFragment extends InstrumentedFragment
|
||||
mDialogFragment.show(getChildFragmentManager(), Integer.toString(dialogId));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dialog onCreateDialog(int dialogId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDialogMetricsCategory(int dialogId) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
protected void removeDialog(int dialogId) {
|
||||
// mDialogFragment may not be visible yet in parent fragment's onResume().
|
||||
// To be able to dismiss dialog at that time, don't check
|
||||
@@ -569,12 +577,10 @@ public abstract class SettingsPreferenceFragment extends InstrumentedFragment
|
||||
onDialogShowing();
|
||||
}
|
||||
|
||||
public static class SettingsDialogFragment extends DialogFragment {
|
||||
public static class SettingsDialogFragment extends InstrumentedDialogFragment {
|
||||
private static final String KEY_DIALOG_ID = "key_dialog_id";
|
||||
private static final String KEY_PARENT_FRAGMENT_ID = "key_parent_fragment_id";
|
||||
|
||||
private int mDialogId;
|
||||
|
||||
private Fragment mParentFragment;
|
||||
|
||||
private DialogInterface.OnCancelListener mOnCancelListener;
|
||||
@@ -585,7 +591,7 @@ public abstract class SettingsPreferenceFragment extends InstrumentedFragment
|
||||
}
|
||||
|
||||
public SettingsDialogFragment(DialogCreatable fragment, int dialogId) {
|
||||
mDialogId = dialogId;
|
||||
super(fragment, dialogId);
|
||||
if (!(fragment instanceof Fragment)) {
|
||||
throw new IllegalArgumentException("fragment argument must be an instance of "
|
||||
+ Fragment.class.getName());
|
||||
@@ -593,6 +599,16 @@ public abstract class SettingsPreferenceFragment extends InstrumentedFragment
|
||||
mParentFragment = (Fragment) fragment;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int getMetricsCategory() {
|
||||
final int metricsCategory = mDialogCreatable.getDialogMetricsCategory(mDialogId);
|
||||
if (metricsCategory <= 0) {
|
||||
throw new IllegalStateException("Dialog must provide a metrics category");
|
||||
}
|
||||
return metricsCategory;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
|
Reference in New Issue
Block a user