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

Commit fb01df17 authored by Fiona Campbell's avatar Fiona Campbell Committed by Android (Google) Code Review
Browse files

Merge "Show even dimmer upgrade dialog on QS" into main

parents 43dcc0ef 571fea26
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.systemui.accessibility.extradim
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.animation.DialogTransitionAnimator
import com.android.systemui.plugins.ActivityStarter
import javax.inject.Provider
import org.junit.Before
@@ -41,10 +42,12 @@ class ExtraDimDialogManagerTest : SysuiTestCase() {

    @Mock private lateinit var activityStarter: ActivityStarter
    @Mock private lateinit var dialogProvider: Provider<ExtraDimDialogDelegate>
    @Mock private lateinit var dialogTransitionAnimator: DialogTransitionAnimator

    @Before
    fun setUp() {
        extraDimDialogManager = ExtraDimDialogManager(dialogProvider, activityStarter)
        extraDimDialogManager =
            ExtraDimDialogManager(dialogProvider, activityStarter, dialogTransitionAnimator)
    }

    @Test
@@ -56,7 +59,7 @@ class ExtraDimDialogManagerTest : SysuiTestCase() {
                /* cancelAction= */ eq(null),
                /* dismissShade= */ eq(false),
                /* afterKeyguardGone= */ eq(true),
                /* deferred= */ eq(false)
                /* deferred= */ eq(false),
            )
    }
}
+39 −24
Original line number Diff line number Diff line
@@ -16,15 +16,17 @@

package com.android.systemui.qs.tiles.impl.reducebrightness.domain.interactor

import android.platform.test.annotations.EnabledOnRavenwood
import android.platform.test.annotations.RequiresFlagsDisabled
import android.platform.test.annotations.RequiresFlagsEnabled
import android.platform.test.flag.junit.CheckFlagsRule
import android.platform.test.flag.junit.DeviceFlagsValueProvider
import android.provider.Settings
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.internal.R
import com.android.server.display.feature.flags.Flags
import com.android.systemui.SysuiTestCase
import com.android.systemui.accessibility.extradim.ExtraDimDialogManager
import com.android.systemui.accessibility.reduceBrightColorsController
import com.android.systemui.kosmos.Kosmos
import com.android.systemui.qs.tiles.base.actions.FakeQSTileIntentUserInputHandler
@@ -33,11 +35,16 @@ import com.android.systemui.qs.tiles.base.interactor.QSTileInputTestKtx
import com.android.systemui.qs.tiles.impl.reducebrightness.domain.model.ReduceBrightColorsTileModel
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.test.runTest
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.MockitoAnnotations
import org.mockito.kotlin.anyOrNull
import org.mockito.kotlin.verify

@SmallTest
@EnabledOnRavenwood
@RunWith(AndroidJUnit4::class)
class ReduceBrightColorsTileUserActionInteractorTest : SysuiTestCase() {

@@ -45,21 +52,34 @@ class ReduceBrightColorsTileUserActionInteractorTest : SysuiTestCase() {
    private val inputHandler = FakeQSTileIntentUserInputHandler()
    private val controller = kosmos.reduceBrightColorsController

    private val underTest =
    @Mock private lateinit var mExtraDimDialogManager: ExtraDimDialogManager

    @get:Rule val checkFlagsRule: CheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule()

    private lateinit var underTest: ReduceBrightColorsTileUserActionInteractor
    private lateinit var underTestEvenDimmerEnabled: ReduceBrightColorsTileUserActionInteractor

    @Before
    fun setup() {
        MockitoAnnotations.initMocks(this)
        underTest =
            ReduceBrightColorsTileUserActionInteractor(
                context.resources,
                inputHandler,
                controller,
                mExtraDimDialogManager,
            )

    private val underTestEvenDimmerEnabled =
        underTestEvenDimmerEnabled =
            ReduceBrightColorsTileUserActionInteractor(
                context.orCreateTestableResources
                    .apply { addOverride(R.bool.config_evenDimmerEnabled, true) }
                    .resources,
                inputHandler,
                controller,
                mExtraDimDialogManager,
            )
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_EVEN_DIMMER)
@@ -142,9 +162,7 @@ class ReduceBrightColorsTileUserActionInteractorTest : SysuiTestCase() {
            QSTileInputTestKtx.longClick(ReduceBrightColorsTileModel(enabled))
        )

        QSTileIntentUserInputHandlerSubject.assertThat(inputHandler).handledOneIntentInput {
            assertThat(it.intent.action).isEqualTo(Settings.ACTION_DISPLAY_SETTINGS)
        }
        verify(mExtraDimDialogManager).dismissKeyguardIfNeededAndShowDialog(anyOrNull())
    }

    @Test
@@ -155,9 +173,6 @@ class ReduceBrightColorsTileUserActionInteractorTest : SysuiTestCase() {
        underTestEvenDimmerEnabled.handleInput(
            QSTileInputTestKtx.longClick(ReduceBrightColorsTileModel(enabled))
        )

        QSTileIntentUserInputHandlerSubject.assertThat(inputHandler).handledOneIntentInput {
            assertThat(it.intent.action).isEqualTo(Settings.ACTION_DISPLAY_SETTINGS)
        }
        verify(mExtraDimDialogManager).dismissKeyguardIfNeededAndShowDialog(anyOrNull())
    }
}
+21 −9
Original line number Diff line number Diff line
@@ -15,7 +15,9 @@
 */
package com.android.systemui.accessibility.extradim

import androidx.annotation.VisibleForTesting
import com.android.systemui.animation.DialogCuj
import com.android.systemui.animation.DialogTransitionAnimator
import com.android.systemui.animation.Expandable
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.statusbar.phone.SystemUIDialog
@@ -28,25 +30,35 @@ class ExtraDimDialogManager
@Inject
constructor(
    private val extraDimDialogDelegateProvider: Provider<ExtraDimDialogDelegate>,
    private val mActivityStarter: ActivityStarter
    private val mActivityStarter: ActivityStarter,
    private val dialogTransitionAnimator: DialogTransitionAnimator,
) {
    private var dialog: SystemUIDialog? = null

    @VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
    fun dismissKeyguardIfNeededAndShowDialog() {
    @JvmOverloads
    fun dismissKeyguardIfNeededAndShowDialog(expandable: Expandable? = null) {
        mActivityStarter.executeRunnableDismissingKeyguard(
            { showRemoveExtraDimShortcutsDialog() },
            { showRemoveExtraDimShortcutsDialog(expandable) },
            /* cancelAction= */ null,
            /* dismissShade= */ false,
            /* afterKeyguardGone= */ true,
            /* deferred= */ false
            /* deferred= */ false,
        )
    }

    /** Show the dialog for removing all Extra Dim shortcuts. */
    private fun showRemoveExtraDimShortcutsDialog() {
    private fun showRemoveExtraDimShortcutsDialog(expandable: Expandable?) {
        dialog?.dismiss()
        dialog = extraDimDialogDelegateProvider.get().createDialog()
        dialog!!.show()
        val dialog2 = extraDimDialogDelegateProvider.get().createDialog()
        dialog = dialog2

        val controller =
            expandable?.dialogTransitionController(
                DialogCuj(com.android.internal.jank.Cuj.CUJ_SHADE_DIALOG_OPEN)
            )

        controller?.let {
            dialogTransitionAnimator.show(dialog2, it, animateBackgroundBoundsChange = true)
        } ?: dialog2.show()
    }
}
+0 −13
Original line number Diff line number Diff line
@@ -29,12 +29,6 @@ public interface ReduceBrightColorsController extends
    /** Sets the activation state of Reduce Bright Colors */
    void setReduceBrightColorsActivated(boolean activated);

    /** Sets whether Reduce Bright Colors is enabled */
    void setReduceBrightColorsFeatureAvailable(boolean enabled);

    /** Gets whether Reduce Bright Colors is enabled */
    boolean isReduceBrightColorsFeatureAvailable();

    /** Gets whether Reduce Bright Colors is being transitioned to Even Dimmer */
    boolean isInUpgradeMode(Resources resources);
    /**
@@ -48,12 +42,5 @@ public interface ReduceBrightColorsController extends
         */
        default void onActivated(boolean activated) {
        }
        /**
         * Listener invoked when the feature enabled state changes.
         *
         * @param enabled {@code true} if Reduce Bright Colors feature is enabled.
         */
        default void onFeatureEnabledChanged(boolean enabled) {
        }
    }
}
 No newline at end of file
+0 −20
Original line number Diff line number Diff line
@@ -48,7 +48,6 @@ public class ReduceBrightColorsControllerImpl implements
    private final ContentObserver mContentObserver;
    private final SecureSettings mSecureSettings;
    private final ArrayList<ReduceBrightColorsController.Listener> mListeners = new ArrayList<>();
    private boolean mAvailable = true;

    @Inject
    public ReduceBrightColorsControllerImpl(UserTracker userTracker,
@@ -77,7 +76,6 @@ public class ReduceBrightColorsControllerImpl implements
        mCurrentUserTrackerCallback = new UserTracker.Callback() {
            @Override
            public void onUserChanged(int newUser, Context userContext) {
                mAvailable = true;
                synchronized (mListeners) {
                    if (mListeners.size() > 0) {
                        if (com.android.systemui.Flags.registerContentObserversAsync()) {
@@ -141,17 +139,6 @@ public class ReduceBrightColorsControllerImpl implements
        mManager.setReduceBrightColorsActivated(activated);
    }

    @Override
    public void setReduceBrightColorsFeatureAvailable(boolean enabled) {
        mAvailable = enabled;
        dispatchOnEnabledChanged(enabled);
        mAvailable = true;
    }

    @Override
    public boolean isReduceBrightColorsFeatureAvailable() {
        return mAvailable;
    }

    @Override
    public boolean isInUpgradeMode(Resources resources) {
@@ -166,11 +153,4 @@ public class ReduceBrightColorsControllerImpl implements
            l.onActivated(activated);
        }
    }

    private void dispatchOnEnabledChanged(boolean enabled) {
        ArrayList<Listener> copy = new ArrayList<>(mListeners);
        for (Listener l : copy) {
            l.onFeatureEnabledChanged(enabled);
        }
    }
}
Loading