Move Magnification Mode Settings to the main page

We move the mode settings because currently there is
only one item in the settings page. To fully test all logic,
we don't use fragament anymore in the controllerTest, and
test the interaction between the controller and the fragment
in the test of these two fragments.

Bug: 182992338
Test: atest ToggleScreenMagnificationPreferenceFragmentTest
      atest MagnificationModePreferenceControllerTest
      atest MagnificationSettingsFragmentTest
      manually test
Change-Id: Ia6b0ea4f116f3215407637d7aeaddb8d8196d8fb
This commit is contained in:
ryanlwlin
2021-04-27 20:03:21 +08:00
parent 95b5d0393d
commit 6269a92e16
9 changed files with 317 additions and 107 deletions

View File

@@ -20,6 +20,7 @@ import android.app.Dialog;
import android.app.settings.SettingsEnums;
import android.content.Context;
import com.android.settings.DialogCreatable;
import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.search.BaseSearchIndexProvider;
@@ -27,11 +28,13 @@ import com.android.settingslib.search.SearchIndexable;
/** Settings page for magnification. */
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
public class MagnificationSettingsFragment extends DashboardFragment {
public class MagnificationSettingsFragment extends DashboardFragment implements
MagnificationModePreferenceController.DialogHelper {
private static final String TAG = "MagnificationSettingsFragment";
private MagnificationModePreferenceController mMagnificationModePreferenceController;
private DialogCreatable mDialogDelegate;
@Override
public int getMetricsCategory() {
@@ -41,19 +44,23 @@ public class MagnificationSettingsFragment extends DashboardFragment {
@Override
public void onAttach(Context context) {
super.onAttach(context);
mMagnificationModePreferenceController = use(MagnificationModePreferenceController.class);
mMagnificationModePreferenceController.setParentFragment(this);
use(MagnificationModePreferenceController.class).setDialogHelper(this);
}
@Override
protected void showDialog(int dialogId) {
public void showDialog(int dialogId) {
super.showDialog(dialogId);
}
@Override
public void setDialogDelegate(DialogCreatable delegate) {
mDialogDelegate = delegate;
}
@Override
public int getDialogMetricsCategory(int dialogId) {
if (mMagnificationModePreferenceController != null) {
return mMagnificationModePreferenceController.getDialogMetricsCategory(dialogId);
if (mDialogDelegate != null) {
return mDialogDelegate.getDialogMetricsCategory(dialogId);
}
return 0;
}
@@ -70,8 +77,8 @@ public class MagnificationSettingsFragment extends DashboardFragment {
@Override
public Dialog onCreateDialog(int dialogId) {
if (mMagnificationModePreferenceController != null) {
final Dialog dialog = mMagnificationModePreferenceController.onCreateDialog(dialogId);
if (mDialogDelegate != null) {
final Dialog dialog = mDialogDelegate.onCreateDialog(dialogId);
if (dialog != null) {
return dialog;
}