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

Commit 308a2d93 authored by Doris Ling's avatar Doris Ling
Browse files

Move listening to brightness changes to onStart/onStop.

Currently, we register the brightness listener in onResume() and stop
listening in onPause(). When we launch the brightness selection bar, the
display settings is paused, and hence we don't get the brightness
update, and only refresh the percentage when the brightness bar is
dismissed.

Moving the listening logic to onStart()/onStop() instead, so that we
will get the updates all the time when the display settings is launched.

Change-Id: I6ed9c8485fdf7721374baff5cea5f7011b63d7ea
Fixes: 65981061
Test: make RunSettingsRoboTests
parent ac040e3b
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -34,13 +34,13 @@ import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause;
import com.android.settingslib.core.lifecycle.events.OnResume;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;

import java.text.NumberFormat;

public class BrightnessLevelPreferenceController extends AbstractPreferenceController implements
        PreferenceControllerMixin, LifecycleObserver, OnResume, OnPause {
        PreferenceControllerMixin, LifecycleObserver, OnStart, OnStop {

    private static final String TAG = "BrightnessPrefCtrl";
    private static final String KEY_BRIGHTNESS = "brightness";
@@ -113,7 +113,7 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr
    }

    @Override
    public void onResume() {
    public void onStart() {
        mContentResolver.registerContentObserver(BRIGHTNESS_MODE_URI, false, mBrightnessObserver);
        mContentResolver.registerContentObserver(BRIGHTNESS_URI, false, mBrightnessObserver);
        mContentResolver.registerContentObserver(BRIGHTNESS_FOR_VR_URI, false, mBrightnessObserver);
@@ -121,7 +121,7 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr
    }

    @Override
    public void onPause() {
    public void onStop() {
        mContentResolver.unregisterContentObserver(mBrightnessObserver);
    }

+5 −5
Original line number Diff line number Diff line
@@ -79,14 +79,14 @@ public class BrightnessLevelPreferenceControllerTest {
    }

    @Test
    public void onResume_shouldRegisterObserver() {
    public void onStart_shouldRegisterObserver() {
        Context context = RuntimeEnvironment.application;
        BrightnessLevelPreferenceController controller =
            new BrightnessLevelPreferenceController(context, null, mPowerManager);
        ShadowContentResolver shadowContentResolver =
            (ShadowContentResolver) ShadowExtractor.extract(context.getContentResolver());

        controller.onResume();
        controller.onStart();

        assertThat(shadowContentResolver.getContentObservers(
            System.getUriFor(System.SCREEN_BRIGHTNESS_MODE))).isNotEmpty();
@@ -99,7 +99,7 @@ public class BrightnessLevelPreferenceControllerTest {
    }

    @Test
    public void onPause_shouldUnregisterObserver() {
    public void onStop_shouldUnregisterObserver() {
        Context context = RuntimeEnvironment.application;
        BrightnessLevelPreferenceController controller =
            new BrightnessLevelPreferenceController(context, null, mPowerManager);
@@ -107,8 +107,8 @@ public class BrightnessLevelPreferenceControllerTest {
            (ShadowContentResolver) ShadowExtractor.extract(context.getContentResolver());

        controller.displayPreference(mScreen);
        controller.onResume();
        controller.onPause();
        controller.onStart();
        controller.onStop();

        assertThat(shadowContentResolver.getContentObservers(
            System.getUriFor(System.SCREEN_BRIGHTNESS_MODE))).isEmpty();