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

Commit 8f131105 authored by Ming-Shin Lu's avatar Ming-Shin Lu Committed by Android (Google) Code Review
Browse files

Merge "Show the warning toast when the brightness slider unable to control" into main

parents 3426f8b9 4bb7e51f
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -113,16 +113,24 @@ public final class BrightnessInfo implements Parcelable {
     */
    public final int brightnessMaxReason;

    /**
     * Whether the current brightness value is overridden by the application window via
     * {@link android.view.WindowManager.LayoutParams#screenBrightness}.
     */
    public final boolean isBrightnessOverrideByWindow;

    public BrightnessInfo(float brightness, float brightnessMinimum, float brightnessMaximum,
            @HighBrightnessMode int highBrightnessMode, float highBrightnessTransitionPoint,
            @BrightnessMaxReason int brightnessMaxReason) {
        this(brightness, brightness, brightnessMinimum, brightnessMaximum, highBrightnessMode,
                highBrightnessTransitionPoint, brightnessMaxReason);
                highBrightnessTransitionPoint, brightnessMaxReason,
                false /* isBrightnessOverrideByWindow */);
    }

    public BrightnessInfo(float brightness, float adjustedBrightness, float brightnessMinimum,
            float brightnessMaximum, @HighBrightnessMode int highBrightnessMode,
            float highBrightnessTransitionPoint, @BrightnessMaxReason int brightnessMaxReason) {
            float highBrightnessTransitionPoint, @BrightnessMaxReason int brightnessMaxReason,
            boolean isBrightnessOverrideByWindow) {
        this.brightness = brightness;
        this.adjustedBrightness = adjustedBrightness;
        this.brightnessMinimum = brightnessMinimum;
@@ -130,6 +138,7 @@ public final class BrightnessInfo implements Parcelable {
        this.highBrightnessMode = highBrightnessMode;
        this.highBrightnessTransitionPoint = highBrightnessTransitionPoint;
        this.brightnessMaxReason =  brightnessMaxReason;
        this.isBrightnessOverrideByWindow = isBrightnessOverrideByWindow;
    }

    /**
@@ -178,6 +187,7 @@ public final class BrightnessInfo implements Parcelable {
        dest.writeInt(highBrightnessMode);
        dest.writeFloat(highBrightnessTransitionPoint);
        dest.writeInt(brightnessMaxReason);
        dest.writeBoolean(isBrightnessOverrideByWindow);
    }

    public static final @android.annotation.NonNull Creator<BrightnessInfo> CREATOR =
@@ -201,6 +211,7 @@ public final class BrightnessInfo implements Parcelable {
        highBrightnessMode = source.readInt();
        highBrightnessTransitionPoint = source.readFloat();
        brightnessMaxReason = source.readInt();
        isBrightnessOverrideByWindow = source.readBoolean();
    }

}
+10 −0
Original line number Diff line number Diff line
@@ -1675,6 +1675,16 @@ flag {
  }
}

flag {
   name: "show_toast_when_app_control_brightness"
   namespace: "systemui"
   description: "Showing the warning toast if the current running app window has controlled the brightness value."
   bug: "363225340"
   metadata {
       purpose: PURPOSE_BUGFIX
   }
}

flag {
  name: "home_controls_dream_hsum"
  namespace: "systemui"
+2 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import com.android.systemui.common.shared.model.Icon
import com.android.systemui.common.shared.model.Text
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.haptics.slider.sliderHapticsViewModelFactory
import com.android.systemui.kosmos.brightnessWarningToast
import com.android.systemui.kosmos.testScope
import com.android.systemui.lifecycle.activateIn
import com.android.systemui.res.R
@@ -61,6 +62,7 @@ class BrightnessSliderViewModelTest : SysuiTestCase() {
                sliderHapticsViewModelFactory,
                brightnessMirrorShowingInteractor,
                supportsMirroring = true,
                brightnessWarningToast,
            )
        }
    }
+32 −2
Original line number Diff line number Diff line
@@ -16,13 +16,19 @@

package com.android.systemui.settings.brightness

import android.hardware.display.BrightnessInfo
import android.hardware.display.DisplayManager
import android.os.Handler
import android.platform.test.annotations.RequiresFlagsEnabled
import android.platform.test.flag.junit.CheckFlagsRule
import android.platform.test.flag.junit.DeviceFlagsValueProvider
import android.service.vr.IVrManager
import android.testing.TestableLooper
import android.testing.TestableLooper.RunWithLooper
import android.view.Display
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.Flags
import com.android.systemui.SysuiTestCase
import com.android.systemui.log.LogBuffer
import com.android.systemui.settings.DisplayTracker
@@ -30,13 +36,16 @@ import com.android.systemui.settings.UserTracker
import com.android.systemui.util.concurrency.FakeExecutor
import com.android.systemui.util.mockito.any
import com.android.systemui.util.mockito.mock
import com.android.systemui.util.mockito.whenever
import com.android.systemui.util.settings.FakeSettings
import com.android.systemui.util.time.FakeSystemClock
import com.google.common.truth.Truth.assertThat
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.Mockito.spy
import org.mockito.Mockito.verify
import org.mockito.MockitoAnnotations

@@ -44,7 +53,8 @@ import org.mockito.MockitoAnnotations
@RunWith(AndroidJUnit4::class)
@RunWithLooper
class BrightnessControllerTest : SysuiTestCase() {

    @get:Rule
    public val mCheckFlagsRule: CheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule()
    private val executor = FakeExecutor(FakeSystemClock())
    private val secureSettings = FakeSettings()
    @Mock private lateinit var toggleSlider: ToggleSlider
@@ -53,6 +63,7 @@ class BrightnessControllerTest : SysuiTestCase() {
    @Mock private lateinit var displayManager: DisplayManager
    @Mock private lateinit var iVrManager: IVrManager
    @Mock private lateinit var logger: LogBuffer
    @Mock private lateinit var display: Display

    private lateinit var testableLooper: TestableLooper

@@ -63,9 +74,11 @@ class BrightnessControllerTest : SysuiTestCase() {
        MockitoAnnotations.initMocks(this)
        testableLooper = TestableLooper.get(this)

        val contextSpy = spy(context)
        whenever(contextSpy.getDisplay()).thenReturn(display)
        underTest =
            BrightnessController(
                context,
                contextSpy,
                toggleSlider,
                userTracker,
                displayTracker,
@@ -105,4 +118,21 @@ class BrightnessControllerTest : SysuiTestCase() {

        assertThat(messagesProcessed).isEqualTo(1)
    }

    @Test
    @RequiresFlagsEnabled(Flags.FLAG_SHOW_TOAST_WHEN_APP_CONTROL_BRIGHTNESS)
    fun testOnChange_showToastWhenAppOverridesBrightness() {
        val brightnessInfo = BrightnessInfo(
            0.45f, 0.45f, 0.0f, 1.0f, BrightnessInfo.HIGH_BRIGHTNESS_MODE_OFF,
            1.0f /* highBrightnessTransitionPoint */,
            BrightnessInfo.BRIGHTNESS_MAX_REASON_NONE,
            true /* isBrightnessOverrideByWindow */
        )
        whenever(display.brightnessInfo).thenReturn(brightnessInfo)
        underTest.registerCallbacks()
        testableLooper.processAllMessages()

        underTest.onChanged(true /* tracking */, 100 /* value */, false /* stopTracking */)
        verify(toggleSlider).showToast(any())
    }
}
+3 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import com.android.systemui.classifier.FalsingManagerFake
import com.android.systemui.haptics.slider.HapticSlider
import com.android.systemui.haptics.slider.HapticSliderPlugin
import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.settings.brightness.ui.BrightnessWarningToast
import com.android.systemui.statusbar.VibratorHelper
import com.android.systemui.statusbar.policy.BrightnessMirrorController
import com.android.systemui.util.mockito.any
@@ -64,6 +65,7 @@ class BrightnessSliderControllerTest : SysuiTestCase() {
    @Mock private lateinit var vibratorHelper: VibratorHelper
    @Mock private lateinit var msdlPlayer: MSDLPlayer
    @Mock private lateinit var activityStarter: ActivityStarter
    @Mock private lateinit var brightnessWarningToast: BrightnessWarningToast

    @Captor
    private lateinit var seekBarChangeCaptor: ArgumentCaptor<SeekBar.OnSeekBarChangeListener>
@@ -94,6 +96,7 @@ class BrightnessSliderControllerTest : SysuiTestCase() {
                    HapticSlider.SeekBar(seekBar),
                ),
                activityStarter,
                brightnessWarningToast,
            )
        mController.init()
        mController.setOnChangedListener(listener)
Loading