Loading packages/SystemUI/src/com/android/systemui/shade/QuickSettingsController.java +1 −2 Original line number Diff line number Diff line Loading @@ -65,7 +65,6 @@ import com.android.keyguard.FaceAuthApiRequestReason; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.systemui.DejankUtils; import com.android.systemui.Dumpable; import com.android.systemui.res.R; import com.android.systemui.classifier.Classifier; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dump.DumpManager; Loading @@ -77,6 +76,7 @@ import com.android.systemui.media.controls.pipeline.MediaDataManager; import com.android.systemui.media.controls.ui.MediaHierarchyManager; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.qs.QS; import com.android.systemui.res.R; import com.android.systemui.screenrecord.RecordingController; import com.android.systemui.shade.data.repository.ShadeRepository; import com.android.systemui.shade.domain.interactor.ShadeInteractor; Loading Loading @@ -1026,7 +1026,6 @@ public class QuickSettingsController implements Dumpable { && mPanelViewControllerLazy.get().mAnimateBack) { mPanelViewControllerLazy.get().adjustBackAnimationScale(adjustedExpansionFraction); } mShadeExpansionStateManager.onQsExpansionFractionChanged(qsExpansionFraction); mMediaHierarchyManager.setQsExpansion(qsExpansionFraction); int qsPanelBottomY = calculateBottomPosition(qsExpansionFraction); mScrimController.setQsPosition(qsExpansionFraction, qsPanelBottomY); Loading packages/SystemUI/src/com/android/systemui/shade/ShadeExpansionStateManager.kt +0 −20 Original line number Diff line number Diff line Loading @@ -37,8 +37,6 @@ class ShadeExpansionStateManager @Inject constructor() : ShadeStateEvents { private val expansionListeners = CopyOnWriteArrayList<ShadeExpansionListener>() private val qsExpansionListeners = CopyOnWriteArrayList<ShadeQsExpansionListener>() private val qsExpansionFractionListeners = CopyOnWriteArrayList<ShadeQsExpansionFractionListener>() private val stateListeners = CopyOnWriteArrayList<ShadeStateListener>() private val shadeStateEventsListeners = CopyOnWriteArrayList<ShadeStateEventsListener>() Loading Loading @@ -75,15 +73,6 @@ class ShadeExpansionStateManager @Inject constructor() : ShadeStateEvents { qsExpansionListeners.remove(listener) } fun addQsExpansionFractionListener(listener: ShadeQsExpansionFractionListener) { qsExpansionFractionListeners.add(listener) listener.onQsExpansionFractionChanged(qsExpansionFraction) } fun removeQsExpansionFractionListener(listener: ShadeQsExpansionFractionListener) { qsExpansionFractionListeners.remove(listener) } /** Adds a listener that will be notified when the panel state has changed. */ fun addStateListener(listener: ShadeStateListener) { stateListeners.add(listener) Loading Loading @@ -172,15 +161,6 @@ class ShadeExpansionStateManager @Inject constructor() : ShadeStateEvents { qsExpansionListeners.forEach { it.onQsExpansionChanged(qsExpanded) } } fun onQsExpansionFractionChanged(qsExpansionFraction: Float) { this.qsExpansionFraction = qsExpansionFraction debugLog("qsExpansionFraction=$qsExpansionFraction") qsExpansionFractionListeners.forEach { it.onQsExpansionFractionChanged(qsExpansionFraction) } } /** Updates the panel state if necessary. */ fun updateState(@PanelState state: Int) { debugLog( Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/VariableDateViewController.kt +17 −12 Original line number Diff line number Diff line Loading @@ -30,10 +30,13 @@ import android.text.TextUtils import android.util.Log import android.view.View.MeasureSpec import androidx.annotation.VisibleForTesting import androidx.lifecycle.Lifecycle import androidx.lifecycle.repeatOnLifecycle import com.android.systemui.Dependency import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.shade.ShadeExpansionStateManager import com.android.systemui.lifecycle.repeatWhenAttached import com.android.systemui.shade.ShadeLogger import com.android.systemui.shade.domain.interactor.ShadeInteractor import com.android.systemui.util.ViewController import com.android.systemui.util.time.SystemClock import java.text.FieldPosition Loading Loading @@ -83,7 +86,7 @@ private const val TAG = "VariableDateViewController" class VariableDateViewController( private val systemClock: SystemClock, private val broadcastDispatcher: BroadcastDispatcher, private val shadeExpansionStateManager: ShadeExpansionStateManager, private val shadeInteractor: ShadeInteractor, private val shadeLogger: ShadeLogger, private val timeTickHandler: Handler, view: VariableDateView Loading Loading @@ -174,8 +177,11 @@ class VariableDateViewController( broadcastDispatcher.registerReceiver(intentReceiver, filter, HandlerExecutor(timeTickHandler), UserHandle.SYSTEM) shadeExpansionStateManager.addQsExpansionFractionListener(::onQsExpansionFractionChanged) mView.repeatWhenAttached { repeatOnLifecycle(Lifecycle.State.STARTED) { shadeInteractor.qsExpansion.collect(::onQsExpansionFractionChanged) } } post(::updateClock) mView.onAttach(onMeasureListener) } Loading @@ -183,7 +189,6 @@ class VariableDateViewController( override fun onViewDetached() { dateFormat = null mView.onAttach(null) shadeExpansionStateManager.removeQsExpansionFractionListener(::onQsExpansionFractionChanged) broadcastDispatcher.unregisterReceiver(intentReceiver) } Loading Loading @@ -237,7 +242,7 @@ class VariableDateViewController( class Factory @Inject constructor( private val systemClock: SystemClock, private val broadcastDispatcher: BroadcastDispatcher, private val shadeExpansionStateManager: ShadeExpansionStateManager, private val shadeInteractor: ShadeInteractor, private val shadeLogger: ShadeLogger, @Named(Dependency.TIME_TICK_HANDLER_NAME) private val handler: Handler ) { Loading @@ -245,7 +250,7 @@ class VariableDateViewController( return VariableDateViewController( systemClock, broadcastDispatcher, shadeExpansionStateManager, shadeInteractor, shadeLogger, handler, view Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/VariableDateViewControllerTest.kt +18 −13 Original line number Diff line number Diff line Loading @@ -23,26 +23,27 @@ import android.view.View import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.shade.ShadeExpansionStateManager import com.android.systemui.shade.domain.interactor.ShadeInteractor import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.capture import com.android.systemui.util.mockito.mock import com.android.systemui.util.time.FakeSystemClock import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.flow.MutableStateFlow import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.ArgumentCaptor import org.mockito.Captor import org.mockito.Mock import org.mockito.Mockito.`when` import org.mockito.Mockito.anyString import org.mockito.Mockito.verify import org.mockito.Mockito.`when` import org.mockito.MockitoAnnotations import java.util.Date @RunWith(AndroidTestingRunner::class) @TestableLooper.RunWithLooper @TestableLooper.RunWithLooper(setAsMainLooper = true) @SmallTest class VariableDateViewControllerTest : SysuiTestCase() { Loading @@ -57,12 +58,15 @@ class VariableDateViewControllerTest : SysuiTestCase() { private lateinit var broadcastDispatcher: BroadcastDispatcher @Mock private lateinit var view: VariableDateView @Mock private lateinit var shadeInteractor: ShadeInteractor @Captor private lateinit var onMeasureListenerCaptor: ArgumentCaptor<VariableDateView.OnMeasureListener> private val qsExpansion = MutableStateFlow(0F) private var lastText: String? = null private lateinit var shadeExpansionStateManager: ShadeExpansionStateManager private lateinit var systemClock: FakeSystemClock private lateinit var testableLooper: TestableLooper private lateinit var testableHandler: Handler Loading @@ -80,7 +84,7 @@ class VariableDateViewControllerTest : SysuiTestCase() { systemClock = FakeSystemClock() systemClock.setCurrentTimeMillis(TIME_STAMP) shadeExpansionStateManager = ShadeExpansionStateManager() `when`(shadeInteractor.qsExpansion).thenReturn(qsExpansion) `when`(view.longerPattern).thenReturn(LONG_PATTERN) `when`(view.shorterPattern).thenReturn(SHORT_PATTERN) Loading @@ -91,6 +95,7 @@ class VariableDateViewControllerTest : SysuiTestCase() { Unit } `when`(view.isAttachedToWindow).thenReturn(true) `when`(view.viewTreeObserver).thenReturn(mock()) val date = Date(TIME_STAMP) longText = getTextForFormat(date, getFormatFromPattern(LONG_PATTERN)) Loading @@ -105,7 +110,7 @@ class VariableDateViewControllerTest : SysuiTestCase() { controller = VariableDateViewController( systemClock, broadcastDispatcher, shadeExpansionStateManager, shadeInteractor, mock(), testableHandler, view Loading Loading @@ -180,7 +185,7 @@ class VariableDateViewControllerTest : SysuiTestCase() { @Test fun testQsExpansionTrue_ignoreAtMostMeasureRequests() { shadeExpansionStateManager.onQsExpansionFractionChanged(0f) qsExpansion.value = 0f onMeasureListenerCaptor.value.onMeasureAction( getTextLength(shortText).toInt(), Loading @@ -195,7 +200,7 @@ class VariableDateViewControllerTest : SysuiTestCase() { @Test fun testQsExpansionFalse_acceptAtMostMeasureRequests() { shadeExpansionStateManager.onQsExpansionFractionChanged(1f) qsExpansion.value = 1f onMeasureListenerCaptor.value.onMeasureAction( getTextLength(shortText).toInt(), Loading Loading
packages/SystemUI/src/com/android/systemui/shade/QuickSettingsController.java +1 −2 Original line number Diff line number Diff line Loading @@ -65,7 +65,6 @@ import com.android.keyguard.FaceAuthApiRequestReason; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.systemui.DejankUtils; import com.android.systemui.Dumpable; import com.android.systemui.res.R; import com.android.systemui.classifier.Classifier; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dump.DumpManager; Loading @@ -77,6 +76,7 @@ import com.android.systemui.media.controls.pipeline.MediaDataManager; import com.android.systemui.media.controls.ui.MediaHierarchyManager; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.qs.QS; import com.android.systemui.res.R; import com.android.systemui.screenrecord.RecordingController; import com.android.systemui.shade.data.repository.ShadeRepository; import com.android.systemui.shade.domain.interactor.ShadeInteractor; Loading Loading @@ -1026,7 +1026,6 @@ public class QuickSettingsController implements Dumpable { && mPanelViewControllerLazy.get().mAnimateBack) { mPanelViewControllerLazy.get().adjustBackAnimationScale(adjustedExpansionFraction); } mShadeExpansionStateManager.onQsExpansionFractionChanged(qsExpansionFraction); mMediaHierarchyManager.setQsExpansion(qsExpansionFraction); int qsPanelBottomY = calculateBottomPosition(qsExpansionFraction); mScrimController.setQsPosition(qsExpansionFraction, qsPanelBottomY); Loading
packages/SystemUI/src/com/android/systemui/shade/ShadeExpansionStateManager.kt +0 −20 Original line number Diff line number Diff line Loading @@ -37,8 +37,6 @@ class ShadeExpansionStateManager @Inject constructor() : ShadeStateEvents { private val expansionListeners = CopyOnWriteArrayList<ShadeExpansionListener>() private val qsExpansionListeners = CopyOnWriteArrayList<ShadeQsExpansionListener>() private val qsExpansionFractionListeners = CopyOnWriteArrayList<ShadeQsExpansionFractionListener>() private val stateListeners = CopyOnWriteArrayList<ShadeStateListener>() private val shadeStateEventsListeners = CopyOnWriteArrayList<ShadeStateEventsListener>() Loading Loading @@ -75,15 +73,6 @@ class ShadeExpansionStateManager @Inject constructor() : ShadeStateEvents { qsExpansionListeners.remove(listener) } fun addQsExpansionFractionListener(listener: ShadeQsExpansionFractionListener) { qsExpansionFractionListeners.add(listener) listener.onQsExpansionFractionChanged(qsExpansionFraction) } fun removeQsExpansionFractionListener(listener: ShadeQsExpansionFractionListener) { qsExpansionFractionListeners.remove(listener) } /** Adds a listener that will be notified when the panel state has changed. */ fun addStateListener(listener: ShadeStateListener) { stateListeners.add(listener) Loading Loading @@ -172,15 +161,6 @@ class ShadeExpansionStateManager @Inject constructor() : ShadeStateEvents { qsExpansionListeners.forEach { it.onQsExpansionChanged(qsExpanded) } } fun onQsExpansionFractionChanged(qsExpansionFraction: Float) { this.qsExpansionFraction = qsExpansionFraction debugLog("qsExpansionFraction=$qsExpansionFraction") qsExpansionFractionListeners.forEach { it.onQsExpansionFractionChanged(qsExpansionFraction) } } /** Updates the panel state if necessary. */ fun updateState(@PanelState state: Int) { debugLog( Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/VariableDateViewController.kt +17 −12 Original line number Diff line number Diff line Loading @@ -30,10 +30,13 @@ import android.text.TextUtils import android.util.Log import android.view.View.MeasureSpec import androidx.annotation.VisibleForTesting import androidx.lifecycle.Lifecycle import androidx.lifecycle.repeatOnLifecycle import com.android.systemui.Dependency import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.shade.ShadeExpansionStateManager import com.android.systemui.lifecycle.repeatWhenAttached import com.android.systemui.shade.ShadeLogger import com.android.systemui.shade.domain.interactor.ShadeInteractor import com.android.systemui.util.ViewController import com.android.systemui.util.time.SystemClock import java.text.FieldPosition Loading Loading @@ -83,7 +86,7 @@ private const val TAG = "VariableDateViewController" class VariableDateViewController( private val systemClock: SystemClock, private val broadcastDispatcher: BroadcastDispatcher, private val shadeExpansionStateManager: ShadeExpansionStateManager, private val shadeInteractor: ShadeInteractor, private val shadeLogger: ShadeLogger, private val timeTickHandler: Handler, view: VariableDateView Loading Loading @@ -174,8 +177,11 @@ class VariableDateViewController( broadcastDispatcher.registerReceiver(intentReceiver, filter, HandlerExecutor(timeTickHandler), UserHandle.SYSTEM) shadeExpansionStateManager.addQsExpansionFractionListener(::onQsExpansionFractionChanged) mView.repeatWhenAttached { repeatOnLifecycle(Lifecycle.State.STARTED) { shadeInteractor.qsExpansion.collect(::onQsExpansionFractionChanged) } } post(::updateClock) mView.onAttach(onMeasureListener) } Loading @@ -183,7 +189,6 @@ class VariableDateViewController( override fun onViewDetached() { dateFormat = null mView.onAttach(null) shadeExpansionStateManager.removeQsExpansionFractionListener(::onQsExpansionFractionChanged) broadcastDispatcher.unregisterReceiver(intentReceiver) } Loading Loading @@ -237,7 +242,7 @@ class VariableDateViewController( class Factory @Inject constructor( private val systemClock: SystemClock, private val broadcastDispatcher: BroadcastDispatcher, private val shadeExpansionStateManager: ShadeExpansionStateManager, private val shadeInteractor: ShadeInteractor, private val shadeLogger: ShadeLogger, @Named(Dependency.TIME_TICK_HANDLER_NAME) private val handler: Handler ) { Loading @@ -245,7 +250,7 @@ class VariableDateViewController( return VariableDateViewController( systemClock, broadcastDispatcher, shadeExpansionStateManager, shadeInteractor, shadeLogger, handler, view Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/VariableDateViewControllerTest.kt +18 −13 Original line number Diff line number Diff line Loading @@ -23,26 +23,27 @@ import android.view.View import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.shade.ShadeExpansionStateManager import com.android.systemui.shade.domain.interactor.ShadeInteractor import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.capture import com.android.systemui.util.mockito.mock import com.android.systemui.util.time.FakeSystemClock import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.flow.MutableStateFlow import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.ArgumentCaptor import org.mockito.Captor import org.mockito.Mock import org.mockito.Mockito.`when` import org.mockito.Mockito.anyString import org.mockito.Mockito.verify import org.mockito.Mockito.`when` import org.mockito.MockitoAnnotations import java.util.Date @RunWith(AndroidTestingRunner::class) @TestableLooper.RunWithLooper @TestableLooper.RunWithLooper(setAsMainLooper = true) @SmallTest class VariableDateViewControllerTest : SysuiTestCase() { Loading @@ -57,12 +58,15 @@ class VariableDateViewControllerTest : SysuiTestCase() { private lateinit var broadcastDispatcher: BroadcastDispatcher @Mock private lateinit var view: VariableDateView @Mock private lateinit var shadeInteractor: ShadeInteractor @Captor private lateinit var onMeasureListenerCaptor: ArgumentCaptor<VariableDateView.OnMeasureListener> private val qsExpansion = MutableStateFlow(0F) private var lastText: String? = null private lateinit var shadeExpansionStateManager: ShadeExpansionStateManager private lateinit var systemClock: FakeSystemClock private lateinit var testableLooper: TestableLooper private lateinit var testableHandler: Handler Loading @@ -80,7 +84,7 @@ class VariableDateViewControllerTest : SysuiTestCase() { systemClock = FakeSystemClock() systemClock.setCurrentTimeMillis(TIME_STAMP) shadeExpansionStateManager = ShadeExpansionStateManager() `when`(shadeInteractor.qsExpansion).thenReturn(qsExpansion) `when`(view.longerPattern).thenReturn(LONG_PATTERN) `when`(view.shorterPattern).thenReturn(SHORT_PATTERN) Loading @@ -91,6 +95,7 @@ class VariableDateViewControllerTest : SysuiTestCase() { Unit } `when`(view.isAttachedToWindow).thenReturn(true) `when`(view.viewTreeObserver).thenReturn(mock()) val date = Date(TIME_STAMP) longText = getTextForFormat(date, getFormatFromPattern(LONG_PATTERN)) Loading @@ -105,7 +110,7 @@ class VariableDateViewControllerTest : SysuiTestCase() { controller = VariableDateViewController( systemClock, broadcastDispatcher, shadeExpansionStateManager, shadeInteractor, mock(), testableHandler, view Loading Loading @@ -180,7 +185,7 @@ class VariableDateViewControllerTest : SysuiTestCase() { @Test fun testQsExpansionTrue_ignoreAtMostMeasureRequests() { shadeExpansionStateManager.onQsExpansionFractionChanged(0f) qsExpansion.value = 0f onMeasureListenerCaptor.value.onMeasureAction( getTextLength(shortText).toInt(), Loading @@ -195,7 +200,7 @@ class VariableDateViewControllerTest : SysuiTestCase() { @Test fun testQsExpansionFalse_acceptAtMostMeasureRequests() { shadeExpansionStateManager.onQsExpansionFractionChanged(1f) qsExpansion.value = 1f onMeasureListenerCaptor.value.onMeasureAction( getTextLength(shortText).toInt(), Loading