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

Commit 1e754b11 authored by Justin Weir's avatar Justin Weir Committed by Android (Google) Code Review
Browse files

Merge "Delete ShadeExpansionStateManager.addQsExpansionListener" into main

parents c03c3b9e 1a1040f1
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -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;
@@ -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;
@@ -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);
+0 −20
Original line number Diff line number Diff line
@@ -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>()

@@ -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)
@@ -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(
+17 −12
Original line number Diff line number Diff line
@@ -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
@@ -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
@@ -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)
    }
@@ -183,7 +189,6 @@ class VariableDateViewController(
    override fun onViewDetached() {
        dateFormat = null
        mView.onAttach(null)
        shadeExpansionStateManager.removeQsExpansionFractionListener(::onQsExpansionFractionChanged)
        broadcastDispatcher.unregisterReceiver(intentReceiver)
    }

@@ -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
    ) {
@@ -245,7 +250,7 @@ class VariableDateViewController(
            return VariableDateViewController(
                systemClock,
                broadcastDispatcher,
                    shadeExpansionStateManager,
                shadeInteractor,
                shadeLogger,
                handler,
                view
+18 −13
Original line number Diff line number Diff line
@@ -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() {

@@ -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
@@ -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)
@@ -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))
@@ -105,7 +110,7 @@ class VariableDateViewControllerTest : SysuiTestCase() {
        controller = VariableDateViewController(
            systemClock,
            broadcastDispatcher,
                shadeExpansionStateManager,
            shadeInteractor,
            mock(),
            testableHandler,
            view
@@ -180,7 +185,7 @@ class VariableDateViewControllerTest : SysuiTestCase() {

    @Test
    fun testQsExpansionTrue_ignoreAtMostMeasureRequests() {
        shadeExpansionStateManager.onQsExpansionFractionChanged(0f)
        qsExpansion.value = 0f

        onMeasureListenerCaptor.value.onMeasureAction(
                getTextLength(shortText).toInt(),
@@ -195,7 +200,7 @@ class VariableDateViewControllerTest : SysuiTestCase() {

    @Test
    fun testQsExpansionFalse_acceptAtMostMeasureRequests() {
        shadeExpansionStateManager.onQsExpansionFractionChanged(1f)
        qsExpansion.value = 1f

        onMeasureListenerCaptor.value.onMeasureAction(
                getTextLength(shortText).toInt(),