Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 654e43b2 authored by Roy Chou's avatar Roy Chou
Browse files

chore(magnification): remove onResume overrides for controllers in...

chore(magnification): remove onResume overrides for controllers in ToggleScreenMagnificationPreferenceFragment

As b/186731461, so far MagnificationModePreferenceController and other
magnification preference controllers are only used in
ToggleScreenMagnificationPreferenceFragment, which is DashboardFragment.
Since DashboardFragment already updates preference state in its
onResume, so we can remove the onResume overrides in those controllers.
Besides, we can also remove the LifeCycle dependency for the controllers
since it's not used anymore.

Bug: 186731461
Flag: NA
Test: manually
      atest ToggleScreenMagnificationPreferenceFragmentTest
      atest MagnificationAlwaysOnPreferenceControllerTest
      atest MagnificationFollowTypingPreferenceControllerTest
      atest MagnificationJoystickPreferenceControllerTest
      atest MagnificationModePreferenceControllerTest
Change-Id: I379a6a3a985c9d8b7a37bbb878b84cee1bd6adfb
parent d6006b79
Loading
Loading
Loading
Loading
+1 −30
Original line number Diff line number Diff line
@@ -22,12 +22,6 @@ import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
import android.content.Context;
import android.provider.Settings;

import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.PreferenceScreen;
import androidx.preference.TwoStatePreference;

import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;

@@ -36,15 +30,12 @@ import com.android.settings.core.TogglePreferenceController;
 * feature, where the magnifier will not deactivate on Activity transitions; it will only zoom out
 * to 100%.
 */
public class MagnificationAlwaysOnPreferenceController extends TogglePreferenceController
        implements LifecycleObserver {
public class MagnificationAlwaysOnPreferenceController extends TogglePreferenceController {

    private static final String TAG =
            MagnificationAlwaysOnPreferenceController.class.getSimpleName();
    static final String PREF_KEY = Settings.Secure.ACCESSIBILITY_MAGNIFICATION_ALWAYS_ON_ENABLED;

    private TwoStatePreference mSwitchPreference;

    public MagnificationAlwaysOnPreferenceController(Context context, String preferenceKey) {
        super(context, preferenceKey);
    }
@@ -71,24 +62,4 @@ public class MagnificationAlwaysOnPreferenceController extends TogglePreferenceC
    public int getSliceHighlightMenuRes() {
        return R.string.menu_key_accessibility;
    }

    @Override
    public void displayPreference(PreferenceScreen screen) {
        super.displayPreference(screen);
        mSwitchPreference = screen.findPreference(getPreferenceKey());
    }

    // TODO(b/186731461): Remove it when this controller is used in DashBoardFragment only.
    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    void onResume() {
        updateState();
    }

    /**
     * Updates the state of preference components which has been displayed by
     * {@link MagnificationAlwaysOnPreferenceController#displayPreference}.
     */
    void updateState() {
        updateState(mSwitchPreference);
    }
}
+1 −30
Original line number Diff line number Diff line
@@ -22,25 +22,16 @@ import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
import android.content.Context;
import android.provider.Settings;

import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.PreferenceScreen;
import androidx.preference.TwoStatePreference;

import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;

/** Controller that accesses and switches the preference status of following typing feature */
public class MagnificationFollowTypingPreferenceController extends TogglePreferenceController
        implements LifecycleObserver {
public class MagnificationFollowTypingPreferenceController extends TogglePreferenceController {

    private static final String TAG =
            MagnificationFollowTypingPreferenceController.class.getSimpleName();
    static final String PREF_KEY = "magnification_follow_typing";

    private TwoStatePreference mFollowTypingPreference;

    public MagnificationFollowTypingPreferenceController(Context context, String preferenceKey) {
        super(context, preferenceKey);
    }
@@ -67,24 +58,4 @@ public class MagnificationFollowTypingPreferenceController extends TogglePrefere
    public int getSliceHighlightMenuRes() {
        return R.string.menu_key_accessibility;
    }

    @Override
    public void displayPreference(PreferenceScreen screen) {
        super.displayPreference(screen);
        mFollowTypingPreference = screen.findPreference(getPreferenceKey());
    }

    // TODO(b/186731461): Remove it when this controller is used in DashBoardFragment only.
    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    void onResume() {
        updateState();
    }

    /**
     * Updates the state of preference components which has been displayed by
     * {@link MagnificationFollowTypingPreferenceController#displayPreference}.
     */
    void updateState() {
        updateState(mFollowTypingPreference);
    }
}
+1 −30
Original line number Diff line number Diff line
@@ -22,27 +22,18 @@ import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
import android.content.Context;
import android.provider.Settings;

import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.PreferenceScreen;
import androidx.preference.TwoStatePreference;

import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;

/**
 * Controller that accesses and switches the preference status of the magnification joystick feature
 */
public class MagnificationJoystickPreferenceController extends TogglePreferenceController
        implements LifecycleObserver {
public class MagnificationJoystickPreferenceController extends TogglePreferenceController {

    private static final String TAG =
            MagnificationJoystickPreferenceController.class.getSimpleName();
    static final String PREF_KEY = Settings.Secure.ACCESSIBILITY_MAGNIFICATION_JOYSTICK_ENABLED;

    private TwoStatePreference mSwitchPreference;

    public MagnificationJoystickPreferenceController(Context context, String preferenceKey) {
        super(context, preferenceKey);
    }
@@ -69,24 +60,4 @@ public class MagnificationJoystickPreferenceController extends TogglePreferenceC
    public int getSliceHighlightMenuRes() {
        return R.string.menu_key_accessibility;
    }

    @Override
    public void displayPreference(PreferenceScreen screen) {
        super.displayPreference(screen);
        mSwitchPreference = screen.findPreference(getPreferenceKey());
    }

    // TODO(b/186731461): Remove it when this controller is used in DashBoardFragment only.
    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    void onResume() {
        updateState();
    }

    /**
     * Updates the state of preference components which has been displayed by
     * {@link MagnificationJoystickPreferenceController#displayPreference}.
     */
    void updateState() {
        updateState(mSwitchPreference);
    }
}
+1 −8
Original line number Diff line number Diff line
@@ -47,7 +47,6 @@ import com.android.settings.core.BasePreferenceController;
import com.android.settings.utils.AnnotationSpan;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnCreate;
import com.android.settingslib.core.lifecycle.events.OnResume;
import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState;

import java.util.ArrayList;
@@ -55,7 +54,7 @@ import java.util.List;

/** Controller that shows the magnification area mode summary and the preference click behavior. */
public class MagnificationModePreferenceController extends BasePreferenceController implements
        DialogCreatable, LifecycleObserver, OnCreate, OnResume, OnSaveInstanceState {
        DialogCreatable, LifecycleObserver, OnCreate, OnSaveInstanceState {

    static final String PREF_KEY = "screen_magnification_mode";
    private static final int DIALOG_ID_BASE = 10;
@@ -297,12 +296,6 @@ public class MagnificationModePreferenceController extends BasePreferenceControl
        updateCapabilitiesAndSummary(mModeCache);
    }

    // TODO(b/186731461): Remove it when this controller is used in DashBoardFragment only.
    @Override
    public void onResume() {
        updateState(mModePreference);
    }

    /**
     * An interface to help the delegate to show the dialog. It will be injected to the delegate.
     */
+18 −17
Original line number Diff line number Diff line
@@ -206,22 +206,9 @@ public class ToggleScreenMagnificationPreferenceFragment extends
        magnificationModePreferenceController.setDialogHelper(this);
        getSettingsLifecycle().addObserver(magnificationModePreferenceController);
        magnificationModePreferenceController.displayPreference(getPreferenceScreen());
        addPreferenceController(magnificationModePreferenceController);

        mFollowingTypingSwitchPreference = new SwitchPreferenceCompat(getPrefContext());
        mFollowingTypingSwitchPreference.setTitle(
                R.string.accessibility_screen_magnification_follow_typing_title);
        mFollowingTypingSwitchPreference.setSummary(
                R.string.accessibility_screen_magnification_follow_typing_summary);
        mFollowingTypingSwitchPreference.setKey(
                MagnificationFollowTypingPreferenceController.PREF_KEY);
        generalCategory.addPreference(mFollowingTypingSwitchPreference);

        mFollowTypingPreferenceController = new MagnificationFollowTypingPreferenceController(
                getContext(), MagnificationFollowTypingPreferenceController.PREF_KEY);
        getSettingsLifecycle().addObserver(mFollowTypingPreferenceController);
        mFollowTypingPreferenceController.displayPreference(getPreferenceScreen());
        addPreferenceController(mFollowTypingPreferenceController);

        addFollowTypingSetting(generalCategory);
        addAlwaysOnSetting(generalCategory);
        addJoystickSetting(generalCategory);
    }
@@ -250,6 +237,22 @@ public class ToggleScreenMagnificationPreferenceFragment extends
        super.onProcessArguments(arguments);
    }

    private void addFollowTypingSetting(PreferenceCategory generalCategory) {
        var followTypingSwitchPreference = new SwitchPreferenceCompat(getPrefContext());
        followTypingSwitchPreference.setTitle(
                R.string.accessibility_screen_magnification_follow_typing_title);
        followTypingSwitchPreference.setSummary(
                R.string.accessibility_screen_magnification_follow_typing_summary);
        followTypingSwitchPreference.setKey(
                MagnificationFollowTypingPreferenceController.PREF_KEY);
        generalCategory.addPreference(followTypingSwitchPreference);

        var followTypingPreferenceController = new MagnificationFollowTypingPreferenceController(
                getContext(), MagnificationFollowTypingPreferenceController.PREF_KEY);
        followTypingPreferenceController.displayPreference(getPreferenceScreen());
        addPreferenceController(followTypingPreferenceController);
    }

    private boolean isAlwaysOnSettingEnabled() {
        final boolean defaultValue = getContext().getResources().getBoolean(
                com.android.internal.R.bool.config_magnification_always_on_enabled);
@@ -276,7 +279,6 @@ public class ToggleScreenMagnificationPreferenceFragment extends

        var alwaysOnPreferenceController = new MagnificationAlwaysOnPreferenceController(
                getContext(), MagnificationAlwaysOnPreferenceController.PREF_KEY);
        getSettingsLifecycle().addObserver(alwaysOnPreferenceController);
        alwaysOnPreferenceController.displayPreference(getPreferenceScreen());
        addPreferenceController(alwaysOnPreferenceController);
    }
@@ -304,7 +306,6 @@ public class ToggleScreenMagnificationPreferenceFragment extends
                        getContext(),
                        MagnificationJoystickPreferenceController.PREF_KEY
                );
        getSettingsLifecycle().addObserver(joystickPreferenceController);
        joystickPreferenceController.displayPreference(getPreferenceScreen());
        addPreferenceController(joystickPreferenceController);
    }
Loading