Merge "Add feature flag to Font Scaling Tile" into tm-qpr-dev

This commit is contained in:
Candice Lo
2023-02-16 02:48:14 +00:00
committed by Android (Google) Code Review
2 changed files with 43 additions and 4 deletions

View File

@@ -27,6 +27,8 @@ import com.android.systemui.animation.DialogCuj
import com.android.systemui.animation.DialogLaunchAnimator import com.android.systemui.animation.DialogLaunchAnimator
import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.dagger.qualifiers.Main 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.ActivityStarter
import com.android.systemui.plugins.FalsingManager import com.android.systemui.plugins.FalsingManager
import com.android.systemui.plugins.qs.QSTile import com.android.systemui.plugins.qs.QSTile
@@ -50,7 +52,8 @@ constructor(
activityStarter: ActivityStarter, activityStarter: ActivityStarter,
qsLogger: QSLogger, qsLogger: QSLogger,
private val dialogLaunchAnimator: DialogLaunchAnimator, private val dialogLaunchAnimator: DialogLaunchAnimator,
private val systemSettings: SystemSettings private val systemSettings: SystemSettings,
private val featureFlags: FeatureFlags
) : ) :
QSTileImpl<QSTile.State?>( QSTileImpl<QSTile.State?>(
host, host,
@@ -65,7 +68,7 @@ constructor(
private val icon = ResourceIcon.get(R.drawable.ic_qs_font_scaling) private val icon = ResourceIcon.get(R.drawable.ic_qs_font_scaling)
override fun isAvailable(): Boolean { override fun isAvailable(): Boolean {
return false return featureFlags.isEnabled(Flags.ENABLE_FONT_SCALING_TILE)
} }
override fun newTileState(): QSTile.State { override fun newTileState(): QSTile.State {

View File

@@ -18,21 +18,30 @@ package com.android.systemui.qs.tiles
import android.os.Handler import android.os.Handler
import android.testing.AndroidTestingRunner import android.testing.AndroidTestingRunner
import android.testing.TestableLooper import android.testing.TestableLooper
import android.view.View
import androidx.test.filters.SmallTest import androidx.test.filters.SmallTest
import com.android.internal.logging.MetricsLogger import com.android.internal.logging.MetricsLogger
import com.android.internal.logging.UiEventLogger
import com.android.systemui.SysuiTestCase import com.android.systemui.SysuiTestCase
import com.android.systemui.animation.DialogLaunchAnimator import com.android.systemui.animation.DialogLaunchAnimator
import com.android.systemui.classifier.FalsingManagerFake 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.ActivityStarter
import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.plugins.statusbar.StatusBarStateController
import com.android.systemui.qs.QSTileHost import com.android.systemui.qs.QSTileHost
import com.android.systemui.qs.logging.QSLogger 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.android.systemui.util.settings.FakeSettings
import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat
import org.junit.Before import org.junit.Before
import org.junit.Test import org.junit.Test
import org.junit.runner.RunWith import org.junit.runner.RunWith
import org.mockito.Mock import org.mockito.Mock
import org.mockito.Mockito.anyBoolean
import org.mockito.Mockito.verify
import org.mockito.Mockito.`when` import org.mockito.Mockito.`when`
import org.mockito.MockitoAnnotations import org.mockito.MockitoAnnotations
@@ -46,15 +55,20 @@ class FontScalingTileTest : SysuiTestCase() {
@Mock private lateinit var activityStarter: ActivityStarter @Mock private lateinit var activityStarter: ActivityStarter
@Mock private lateinit var qsLogger: QSLogger @Mock private lateinit var qsLogger: QSLogger
@Mock private lateinit var dialogLaunchAnimator: DialogLaunchAnimator @Mock private lateinit var dialogLaunchAnimator: DialogLaunchAnimator
@Mock private lateinit var uiEventLogger: UiEventLogger
private lateinit var testableLooper: TestableLooper private lateinit var testableLooper: TestableLooper
private lateinit var fontScalingTile: FontScalingTile private lateinit var fontScalingTile: FontScalingTile
val featureFlags = FakeFeatureFlags()
@Before @Before
fun setUp() { fun setUp() {
MockitoAnnotations.initMocks(this) MockitoAnnotations.initMocks(this)
testableLooper = TestableLooper.get(this) testableLooper = TestableLooper.get(this)
`when`(qsHost.getContext()).thenReturn(mContext) `when`(qsHost.getContext()).thenReturn(mContext)
`when`(qsHost.uiEventLogger).thenReturn(uiEventLogger)
fontScalingTile = fontScalingTile =
FontScalingTile( FontScalingTile(
qsHost, qsHost,
@@ -66,15 +80,37 @@ class FontScalingTileTest : SysuiTestCase() {
activityStarter, activityStarter,
qsLogger, qsLogger,
dialogLaunchAnimator, dialogLaunchAnimator,
FakeSettings() FakeSettings(),
featureFlags
) )
fontScalingTile.initialize() fontScalingTile.initialize()
testableLooper.processAllMessages()
} }
@Test @Test
fun isNotAvailable_whenNotSupportedDevice_returnsFalse() { fun isAvailable_whenFlagIsFalse_returnsFalse() {
featureFlags.set(Flags.ENABLE_FONT_SCALING_TILE, false)
val isAvailable = fontScalingTile.isAvailable() val isAvailable = fontScalingTile.isAvailable()
assertThat(isAvailable).isFalse() 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())
}
} }