Add more preference controllers to network page.
- To support Mobile plan preference controller, extended LifecycleObserver pattern to also observe onCreate and onSaveInstance. Bug: 31799836 Test: RunSettingsRoboTests Change-Id: Ie98db7efa91f0a8b4c8a06a784d3351237e59fe0
This commit is contained in:
@@ -15,8 +15,12 @@
|
||||
*/
|
||||
package com.android.settings.network;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.internal.logging.MetricsProto;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.core.PreferenceController;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
@@ -25,7 +29,11 @@ import com.android.settingslib.drawer.CategoryKey;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class NetworkDashboardFragment extends DashboardFragment {
|
||||
import static com.android.settings.network.MobilePlanPreferenceController
|
||||
.MANAGE_MOBILE_PLAN_DIALOG_ID;
|
||||
|
||||
public class NetworkDashboardFragment extends DashboardFragment implements
|
||||
MobilePlanPreferenceController.MobilePlanPreferenceHost {
|
||||
|
||||
private static final String TAG = "NetworkDashboardFrag";
|
||||
|
||||
@@ -53,13 +61,50 @@ public class NetworkDashboardFragment extends DashboardFragment {
|
||||
protected List<PreferenceController> getPreferenceControllers(Context context) {
|
||||
final AirplaneModePreferenceController airplaneModePreferenceController =
|
||||
new AirplaneModePreferenceController(context, this /* fragment */);
|
||||
final MobilePlanPreferenceController mobilePlanPreferenceController =
|
||||
new MobilePlanPreferenceController(context, this);
|
||||
getLifecycle().addObserver(airplaneModePreferenceController);
|
||||
getLifecycle().addObserver(mobilePlanPreferenceController);
|
||||
|
||||
final List<PreferenceController> controllers = new ArrayList<>();
|
||||
controllers.add(airplaneModePreferenceController);
|
||||
controllers.add(new TetherPreferenceController(context));
|
||||
controllers.add(new MobileNetworkPreferenceController(context));
|
||||
controllers.add(new TetherPreferenceController(context));
|
||||
controllers.add(new VpnPreferenceController(context));
|
||||
controllers.add(new WifiCallingPreferenceController(context));
|
||||
controllers.add(new NetworkResetPreferenceController(context));
|
||||
controllers.add(new ProxyPreferenceController(context));
|
||||
controllers.add(mobilePlanPreferenceController);
|
||||
return controllers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showMobilePlanMessageDialog() {
|
||||
showDialog(MANAGE_MOBILE_PLAN_DIALOG_ID);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dialog onCreateDialog(int dialogId) {
|
||||
Log.d(TAG, "onCreateDialog: dialogId=" + dialogId);
|
||||
switch (dialogId) {
|
||||
case MANAGE_MOBILE_PLAN_DIALOG_ID:
|
||||
final MobilePlanPreferenceController controller =
|
||||
getPreferenceController(MobilePlanPreferenceController.class);
|
||||
return new AlertDialog.Builder(getActivity())
|
||||
.setMessage(controller.getMobilePlanDialogMessage())
|
||||
.setCancelable(false)
|
||||
.setPositiveButton(com.android.internal.R.string.ok,
|
||||
(dialog, id) -> controller.setMobilePlanDialogMessage(null))
|
||||
.create();
|
||||
}
|
||||
return super.onCreateDialog(dialogId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDialogMetricsCategory(int dialogId) {
|
||||
if (MANAGE_MOBILE_PLAN_DIALOG_ID == dialogId) {
|
||||
return MetricsProto.MetricsEvent.DIALOG_MANAGE_MOBILE_PLAN;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user