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

Commit 02ba1a40 authored by George Lin's avatar George Lin
Browse files

[WPP logging] Wire logLockScreenNotificationApplied

Test: Manually tested. See bug.
Fixes: 305753308
Flag: NONE
Change-Id: I0be9a454d6cb6f8634dd00f3a25814aeb6323086
parent 0768fb09
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -134,9 +134,7 @@ internal constructor(
                        wallpaperColorsRepository = getWallpaperColorsRepository(),
                    ),
                    getKeyguardQuickAffordancePickerViewModelFactory(appContext),
                    NotificationSectionViewModel.Factory(
                        interactor = getNotificationsInteractor(appContext),
                    ),
                    getNotificationSectionViewModelFactory(appContext),
                    getFlags(),
                    getClockCarouselViewModelFactory(
                        interactor = getClockPickerInteractor(appContext),
@@ -286,6 +284,7 @@ internal constructor(
        return notificationSectionViewModelFactory
            ?: NotificationSectionViewModel.Factory(
                    interactor = getNotificationsInteractor(context),
                    logger = getUserEventLogger(context),
                )
                .also { notificationSectionViewModelFactory = it }
    }
+10 −1
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import androidx.annotation.VisibleForTesting
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewModelScope
import com.android.customization.module.logging.ThemesUserEventLogger
import com.android.customization.picker.notifications.domain.interactor.NotificationsInteractor
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
@@ -31,6 +32,7 @@ class NotificationSectionViewModel
@VisibleForTesting
constructor(
    private val interactor: NotificationsInteractor,
    private val logger: ThemesUserEventLogger,
) : ViewModel() {

    /** Whether the switch should be on. */
@@ -39,16 +41,23 @@ constructor(

    /** Notifies that the section has been clicked. */
    fun onClicked() {
        viewModelScope.launch { interactor.toggleShowNotificationsOnLockScreenEnabled() }
        viewModelScope.launch {
            interactor.toggleShowNotificationsOnLockScreenEnabled()
            logger.logLockScreenNotificationApplied(
                interactor.getSettings().isShowNotificationsOnLockScreenEnabled
            )
        }
    }

    class Factory(
        private val interactor: NotificationsInteractor,
        private val logger: ThemesUserEventLogger,
    ) : ViewModelProvider.Factory {
        @Suppress("UNCHECKED_CAST")
        override fun <T : ViewModel> create(modelClass: Class<T>): T {
            return NotificationSectionViewModel(
                interactor = interactor,
                logger = logger,
            )
                as T
        }
+5 −0
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@
package com.android.customization.picker.notifications.ui.viewmodel

import androidx.test.filters.SmallTest
import com.android.customization.module.logging.TestThemesUserEventLogger
import com.android.customization.module.logging.ThemesUserEventLogger
import com.android.customization.picker.notifications.data.repository.NotificationsRepository
import com.android.customization.picker.notifications.domain.interactor.NotificationsInteractor
import com.android.customization.picker.notifications.domain.interactor.NotificationsSnapshotRestorer
@@ -44,6 +46,8 @@ import org.robolectric.RobolectricTestRunner
@RunWith(RobolectricTestRunner::class)
class NotificationSectionViewModelTest {

    private val logger: ThemesUserEventLogger = TestThemesUserEventLogger()

    private lateinit var underTest: NotificationSectionViewModel

    private lateinit var testScope: TestScope
@@ -73,6 +77,7 @@ class NotificationSectionViewModelTest {
        underTest =
            NotificationSectionViewModel(
                interactor = interactor,
                logger = logger,
            )
    }