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

Commit eb3fb4aa authored by Candice Lo's avatar Candice Lo Committed by Tyler Freeman
Browse files

Add feature flag to Font Scaling Tile

1. Return the flag for isAvailable in the tile
2. Update tests to verify the dialog would showup

Bug: 242326166
Test: manually test the feature flag
Test: atest FontScalingTileTest
Change-Id: I5f44abfe6d37d0d6904195864a0ad7eafb0aedf5
parent d82af723
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@ import com.android.systemui.animation.DialogCuj
import com.android.systemui.animation.DialogLaunchAnimator
import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.flags.FeatureFlags
import com.android.systemui.flags.Flags
import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.plugins.FalsingManager
import com.android.systemui.plugins.qs.QSTile
@@ -50,7 +52,8 @@ constructor(
    activityStarter: ActivityStarter,
    qsLogger: QSLogger,
    private val dialogLaunchAnimator: DialogLaunchAnimator,
    private val systemSettings: SystemSettings
    private val systemSettings: SystemSettings,
    private val featureFlags: FeatureFlags
) :
    QSTileImpl<QSTile.State?>(
        host,
@@ -65,7 +68,7 @@ constructor(
    private val icon = ResourceIcon.get(R.drawable.ic_qs_font_scaling)

    override fun isAvailable(): Boolean {
        return false
        return featureFlags.isEnabled(Flags.ENABLE_FONT_SCALING_TILE)
    }

    override fun newTileState(): QSTile.State {
+38 −2
Original line number Diff line number Diff line
@@ -18,21 +18,30 @@ package com.android.systemui.qs.tiles
import android.os.Handler
import android.testing.AndroidTestingRunner
import android.testing.TestableLooper
import android.view.View
import androidx.test.filters.SmallTest
import com.android.internal.logging.MetricsLogger
import com.android.internal.logging.UiEventLogger
import com.android.systemui.SysuiTestCase
import com.android.systemui.animation.DialogLaunchAnimator
import com.android.systemui.classifier.FalsingManagerFake
import com.android.systemui.flags.FakeFeatureFlags
import com.android.systemui.flags.Flags
import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.plugins.statusbar.StatusBarStateController
import com.android.systemui.qs.QSTileHost
import com.android.systemui.qs.logging.QSLogger
import com.android.systemui.util.mockito.any
import com.android.systemui.util.mockito.eq
import com.android.systemui.util.mockito.nullable
import com.android.systemui.util.settings.FakeSettings
import com.google.common.truth.Truth.assertThat
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.Mockito.anyBoolean
import org.mockito.Mockito.verify
import org.mockito.Mockito.`when`
import org.mockito.MockitoAnnotations

@@ -46,15 +55,20 @@ class FontScalingTileTest : SysuiTestCase() {
    @Mock private lateinit var activityStarter: ActivityStarter
    @Mock private lateinit var qsLogger: QSLogger
    @Mock private lateinit var dialogLaunchAnimator: DialogLaunchAnimator
    @Mock private lateinit var uiEventLogger: UiEventLogger

    private lateinit var testableLooper: TestableLooper
    private lateinit var fontScalingTile: FontScalingTile

    val featureFlags = FakeFeatureFlags()

    @Before
    fun setUp() {
        MockitoAnnotations.initMocks(this)
        testableLooper = TestableLooper.get(this)
        `when`(qsHost.getContext()).thenReturn(mContext)
        `when`(qsHost.uiEventLogger).thenReturn(uiEventLogger)

        fontScalingTile =
            FontScalingTile(
                qsHost,
@@ -66,15 +80,37 @@ class FontScalingTileTest : SysuiTestCase() {
                activityStarter,
                qsLogger,
                dialogLaunchAnimator,
                FakeSettings()
                FakeSettings(),
                featureFlags
            )
        fontScalingTile.initialize()
        testableLooper.processAllMessages()
    }

    @Test
    fun isNotAvailable_whenNotSupportedDevice_returnsFalse() {
    fun isAvailable_whenFlagIsFalse_returnsFalse() {
        featureFlags.set(Flags.ENABLE_FONT_SCALING_TILE, false)

        val isAvailable = fontScalingTile.isAvailable()

        assertThat(isAvailable).isFalse()
    }

    @Test
    fun isAvailable_whenFlagIsTrue_returnsTrue() {
        featureFlags.set(Flags.ENABLE_FONT_SCALING_TILE, true)

        val isAvailable = fontScalingTile.isAvailable()

        assertThat(isAvailable).isTrue()
    }

    @Test
    fun clickTile_showDialog() {
        val view = View(context)
        fontScalingTile.click(view)
        testableLooper.processAllMessages()

        verify(dialogLaunchAnimator).showFromView(any(), eq(view), nullable(), anyBoolean())
    }
}