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

Commit 19334163 authored by Bryce Lee's avatar Bryce Lee Committed by Android (Google) Code Review
Browse files

Merge "Show Glanceable Hub Edit Mode Message every 30 minutes." into main

parents 09175ac9 1fd43c4d
Loading
Loading
Loading
Loading
+0 −18
Original line number Diff line number Diff line
@@ -87,24 +87,6 @@ class CommunalPrefsRepositoryImplTest : SysuiTestCase() {
            assertThat(isCtaDismissed).isFalse()
        }

    @Test
    fun isDisclaimerDismissed_byDefault_isFalse() =
        testScope.runTest {
            val isDisclaimerDismissed by
                collectLastValue(underTest.isDisclaimerDismissed(MAIN_USER))
            assertThat(isDisclaimerDismissed).isFalse()
        }

    @Test
    fun isDisclaimerDismissed_onSet_isTrue() =
        testScope.runTest {
            val isDisclaimerDismissed by
                collectLastValue(underTest.isDisclaimerDismissed(MAIN_USER))

            underTest.setDisclaimerDismissed(MAIN_USER)
            assertThat(isDisclaimerDismissed).isTrue()
        }

    @Test
    fun getSharedPreferences_whenFileRestored() =
        testScope.runTest {
+20 −0
Original line number Diff line number Diff line
@@ -84,6 +84,7 @@ import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.test.advanceTimeBy
import kotlinx.coroutines.test.runCurrent
import kotlinx.coroutines.test.runTest
import org.junit.Before
@@ -1059,6 +1060,25 @@ class CommunalInteractorTest : SysuiTestCase() {
        )
    }

    @Test
    fun dismissDisclaimerSetsDismissedFlag() =
        testScope.runTest {
            val disclaimerDismissed by collectLastValue(underTest.isDisclaimerDismissed)
            assertThat(disclaimerDismissed).isFalse()
            underTest.setDisclaimerDismissed()
            assertThat(disclaimerDismissed).isTrue()
        }

    @Test
    fun dismissDisclaimerTimeoutResetsDismissedFlag() =
        testScope.runTest {
            val disclaimerDismissed by collectLastValue(underTest.isDisclaimerDismissed)
            underTest.setDisclaimerDismissed()
            assertThat(disclaimerDismissed).isTrue()
            advanceTimeBy(CommunalInteractor.DISCLAIMER_RESET_MILLIS)
            assertThat(disclaimerDismissed).isFalse()
        }

    private fun setKeyguardFeaturesDisabled(user: UserInfo, disabledFlags: Int) {
        whenever(kosmos.devicePolicyManager.getKeyguardDisabledFeatures(nullable(), eq(user.id)))
            .thenReturn(disabledFlags)
+0 −34
Original line number Diff line number Diff line
@@ -74,40 +74,6 @@ class CommunalPrefsInteractorTest : SysuiTestCase() {
            assertThat(isCtaDismissed).isFalse()
        }

    @Test
    fun setDisclaimerDismissed_currentUser() =
        testScope.runTest {
            setSelectedUser(MAIN_USER)
            val isDisclaimerDismissed by collectLastValue(underTest.isDisclaimerDismissed)

            assertThat(isDisclaimerDismissed).isFalse()
            underTest.setDisclaimerDismissed(MAIN_USER)
            assertThat(isDisclaimerDismissed).isTrue()
        }

    @Test
    fun setDisclaimerDismissed_anotherUser() =
        testScope.runTest {
            setSelectedUser(MAIN_USER)
            val isDisclaimerDismissed by collectLastValue(underTest.isDisclaimerDismissed)

            assertThat(isDisclaimerDismissed).isFalse()
            underTest.setDisclaimerDismissed(SECONDARY_USER)
            assertThat(isDisclaimerDismissed).isFalse()
        }

    @Test
    fun isDisclaimerDismissed_userSwitch() =
        testScope.runTest {
            setSelectedUser(MAIN_USER)
            underTest.setDisclaimerDismissed(MAIN_USER)
            val isDisclaimerDismissed by collectLastValue(underTest.isDisclaimerDismissed)

            assertThat(isDisclaimerDismissed).isTrue()
            setSelectedUser(SECONDARY_USER)
            assertThat(isDisclaimerDismissed).isFalse()
        }

    private suspend fun setSelectedUser(user: UserInfo) {
        with(kosmos.fakeUserRepository) {
            setUserInfos(listOf(user))
+16 −0
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ import com.android.systemui.user.data.repository.fakeUserRepository
import com.android.systemui.util.mockito.any
import com.android.systemui.util.mockito.whenever
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.test.advanceTimeBy
import kotlinx.coroutines.test.runTest
import org.junit.Assert.assertFalse
import org.junit.Assert.assertTrue
@@ -351,6 +352,21 @@ class CommunalEditModeViewModelTest : SysuiTestCase() {
            assertThat(showDisclaimer).isFalse()
        }

    @Test
    fun showDisclaimer_trueWhenTimeout() =
        testScope.runTest {
            underTest.setEditModeState(EditModeState.SHOWING)
            kosmos.fakeUserRepository.setSelectedUserInfo(MAIN_USER_INFO)

            val showDisclaimer by collectLastValue(underTest.showDisclaimer)

            assertThat(showDisclaimer).isTrue()
            underTest.onDisclaimerDismissed()
            assertThat(showDisclaimer).isFalse()
            advanceTimeBy(CommunalInteractor.DISCLAIMER_RESET_MILLIS)
            assertThat(showDisclaimer).isTrue()
        }

    @Test
    fun scrollPosition_persistedOnEditCleanup() {
        val index = 2
+0 −16
Original line number Diff line number Diff line
@@ -49,14 +49,8 @@ interface CommunalPrefsRepository {
    /** Whether the CTA tile has been dismissed. */
    fun isCtaDismissed(user: UserInfo): Flow<Boolean>

    /** Whether the lock screen widget disclaimer has been dismissed by the user. */
    fun isDisclaimerDismissed(user: UserInfo): Flow<Boolean>

    /** Save the CTA tile dismissed state for the current user. */
    suspend fun setCtaDismissed(user: UserInfo)

    /** Save the lock screen widget disclaimer dismissed state for the current user. */
    suspend fun setDisclaimerDismissed(user: UserInfo)
}

@OptIn(ExperimentalCoroutinesApi::class)
@@ -74,9 +68,6 @@ constructor(
    override fun isCtaDismissed(user: UserInfo): Flow<Boolean> =
        readKeyForUser(user, CTA_DISMISSED_STATE)

    override fun isDisclaimerDismissed(user: UserInfo): Flow<Boolean> =
        readKeyForUser(user, DISCLAIMER_DISMISSED_STATE)

    /**
     * Emits an event each time a Backup & Restore restoration job is completed, and once at the
     * start of collection.
@@ -97,12 +88,6 @@ constructor(
            logger.i("Dismissed CTA tile")
        }

    override suspend fun setDisclaimerDismissed(user: UserInfo) =
        withContext(bgDispatcher) {
            getSharedPrefsForUser(user).edit().putBoolean(DISCLAIMER_DISMISSED_STATE, true).apply()
            logger.i("Dismissed widget disclaimer")
        }

    private fun getSharedPrefsForUser(user: UserInfo): SharedPreferences {
        return userFileManager.getSharedPreferences(
            FILE_NAME,
@@ -124,6 +109,5 @@ constructor(
        const val TAG = "CommunalPrefsRepository"
        const val FILE_NAME = "communal_hub_prefs"
        const val CTA_DISMISSED_STATE = "cta_dismissed"
        const val DISCLAIMER_DISMISSED_STATE = "disclaimer_dismissed"
    }
}
Loading