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

Commit b80aee94 authored by Fan Zhang's avatar Fan Zhang
Browse files

Fix NPE when querying AmbientDisply through ExternalSeting

Bug: 110403709
Test: manual
Change-Id: Iee9994061c2b5c4bdd7aefe2d25a73e8ed4c9db0
parent 78ea7da5
Loading
Loading
Loading
Loading
+7 −11
Original line number Diff line number Diff line
@@ -43,10 +43,7 @@ public class AmbientDisplayAlwaysOnPreferenceController extends TogglePreference

    @Override
    public int getAvailabilityStatus() {
        if (mConfig == null) {
            mConfig = new AmbientDisplayConfiguration(mContext);
        }
        return isAvailable(mConfig) ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
        return isAvailable(getConfig()) ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
    }

    @Override
@@ -56,7 +53,7 @@ public class AmbientDisplayAlwaysOnPreferenceController extends TogglePreference

    @Override
    public boolean isChecked() {
        return mConfig.alwaysOnEnabled(MY_USER);
        return getConfig().alwaysOnEnabled(MY_USER);
    }

    @Override
@@ -82,15 +79,14 @@ public class AmbientDisplayAlwaysOnPreferenceController extends TogglePreference
        return this;
    }

    public static boolean isAlwaysOnEnabled(AmbientDisplayConfiguration config) {
        return config.alwaysOnEnabled(MY_USER);
    }

    public static boolean isAvailable(AmbientDisplayConfiguration config) {
        return config.alwaysOnAvailableForUser(MY_USER);
    }

    public static boolean accessibilityInversionEnabled(AmbientDisplayConfiguration config) {
        return config.accessibilityInversionEnabled(MY_USER);
    private AmbientDisplayConfiguration getConfig() {
        if (mConfig == null) {
            mConfig = new AmbientDisplayConfiguration(mContext);
        }
        return mConfig;
    }
}
+12 −11
Original line number Diff line number Diff line
@@ -35,7 +35,6 @@ public class DoubleTapScreenPreferenceController extends GesturePreferenceContro
    private final int OFF = 0;

    private static final String PREF_KEY_VIDEO = "gesture_double_tap_screen_video";
    private final String mDoubleTapScreenPrefKey;

    private final String SECURE_KEY = DOZE_PULSE_ON_DOUBLE_TAP;

@@ -46,7 +45,6 @@ public class DoubleTapScreenPreferenceController extends GesturePreferenceContro
    public DoubleTapScreenPreferenceController(Context context, String key) {
        super(context, key);
        mUserId = UserHandle.myUserId();
        mDoubleTapScreenPrefKey = key;
    }

    public DoubleTapScreenPreferenceController setConfig(AmbientDisplayConfiguration config) {
@@ -67,17 +65,13 @@ public class DoubleTapScreenPreferenceController extends GesturePreferenceContro

    @Override
    public int getAvailabilityStatus() {
        if (mAmbientConfig == null) {
            mAmbientConfig = new AmbientDisplayConfiguration(mContext);
        }

        // No hardware support for Double Tap
        if (!mAmbientConfig.doubleTapSensorAvailable()) {
        if (!getAmbientConfig().doubleTapSensorAvailable()) {
            return UNSUPPORTED_ON_DEVICE;
        }

        // Can't change Double Tap when AOD is enabled.
        if (!mAmbientConfig.ambientDisplayAvailable()) {
        if (!getAmbientConfig().ambientDisplayAvailable()) {
            return DISABLED_DEPENDENT_SETTING;
        }

@@ -102,11 +96,18 @@ public class DoubleTapScreenPreferenceController extends GesturePreferenceContro

    @Override
    public boolean isChecked() {
        return mAmbientConfig.pulseOnDoubleTapEnabled(mUserId);
        return getAmbientConfig().pulseOnDoubleTapEnabled(mUserId);
    }

    @Override
    protected boolean canHandleClicks() {
        return !mAmbientConfig.alwaysOnEnabled(mUserId);
        return !getAmbientConfig().alwaysOnEnabled(mUserId);
    }

    private AmbientDisplayConfiguration getAmbientConfig() {
        if (mAmbientConfig == null) {
            mAmbientConfig = new AmbientDisplayConfiguration(mContext);
        }
        return mAmbientConfig;
    }
}