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

Commit 17444d41 authored by Julia Reynolds's avatar Julia Reynolds
Browse files

Migrate AmbientState to EntryAdapter

Test: AmbientStateTest
Bug: 395857098
Flag: com.android.systemui.notification_bundle_ui
Change-Id: I5d09349171b82f59d23e3722ee2d652fb3f622f0
parent 3f7eacaa
Loading
Loading
Loading
Loading
+37 −0
Original line number Diff line number Diff line
@@ -16,16 +16,22 @@

package com.android.systemui.statusbar.notification.stack

import android.app.Notification
import android.platform.test.annotations.DisableFlags
import android.platform.test.annotations.EnableFlags
import android.platform.test.flag.junit.FlagsParameterization
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.dump.DumpManager
import com.android.systemui.flags.DisableSceneContainer
import com.android.systemui.flags.andSceneContainer
import com.android.systemui.res.R
import com.android.systemui.shade.transition.LargeScreenShadeInterpolator
import com.android.systemui.statusbar.StatusBarState
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder
import com.android.systemui.statusbar.notification.data.repository.HeadsUpRepository
import com.android.systemui.statusbar.notification.headsup.AvalancheController
import com.android.systemui.statusbar.notification.shared.NotificationBundleUi
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager
import com.android.systemui.util.mockito.mock
import com.android.systemui.util.mockito.whenever
@@ -33,6 +39,7 @@ import com.google.common.truth.Truth.assertThat
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.ArgumentMatchers.anyString
import platform.test.runner.parameterized.ParameterizedAndroidJunit4
import platform.test.runner.parameterized.Parameters

@@ -389,6 +396,36 @@ class AmbientStateTest(flags: FlagsParameterization) : SysuiTestCase() {
        assertThat(sut.isClosing).isFalse()
    }
    // endregion

    // region isPulsing
    @Test
    @EnableFlags(NotificationBundleUi.FLAG_NAME)
    fun isPulsing_key() {
        whenever(headsupRepository.isHeadsUpEntry(anyString())).thenReturn(true);
        sut.isPulsing = true
        assertThat(sut.isPulsing("key")).isTrue()

        whenever(headsupRepository.isHeadsUpEntry(anyString())).thenReturn(false);
        sut.isPulsing = true
        assertThat(sut.isPulsing("key")).isFalse()
    }

    @Test
    @DisableFlags(NotificationBundleUi.FLAG_NAME)
    fun isPulsing_entry() {
        val notification: Notification =
            Notification.Builder(mContext, "").setSmallIcon(R.drawable.ic_person).build()
        val entry = NotificationEntryBuilder().setNotification(notification).build()

        sut.isPulsing = true
        entry.setIsHeadsUpEntry(true)
        assertThat(sut.isPulsing(entry)).isTrue()

        sut.isPulsing = true
        entry.setIsHeadsUpEntry(false)
        assertThat(sut.isPulsing(entry)).isFalse()
    }
    // endregion
}

// region Arrange helper methods.
+10 −4
Original line number Diff line number Diff line
@@ -696,10 +696,13 @@ public class AmbientState implements Dumpable {
        return mPulsing;
    }

    public boolean isPulsing(String entryKey) {
        boolean isHeadsUp = mHeadsUpRepository.isHeadsUpEntry(entryKey);
        return mPulsing && isHeadsUp;
    }

    public boolean isPulsing(NotificationEntry entry) {
        boolean isHeadsUp = NotificationBundleUi.isEnabled()
                ? mHeadsUpRepository.isHeadsUpEntry(entry.getKey())
                : entry.isHeadsUpEntry();
        boolean isHeadsUp = entry.isHeadsUpEntry();
        return mPulsing && isHeadsUp;
    }

@@ -750,7 +753,10 @@ public class AmbientState implements Dumpable {
     * @return whether a row is dozing and not pulsing right now
     */
    public boolean isDozingAndNotPulsing(ExpandableNotificationRow row) {
        return isDozing() && !isPulsing(row.getEntry());
        boolean isPulsing = NotificationBundleUi.isEnabled()
                ? isPulsing(row.getKey())
                : isPulsing(row.getEntryLegacy());
        return isDozing() && !isPulsing;
    }

    /**