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

Commit 2d2fc79e authored by Julia Reynolds's avatar Julia Reynolds Committed by Android (Google) Code Review
Browse files

Merge "Hide spinner options for locked users" into main

parents b26ae73c 2890ac71
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.app.usage.UsageEvents
import android.content.Context
import android.content.pm.ApplicationInfo
import android.os.Build
import android.os.IUserManager
import android.os.RemoteException
import android.os.ServiceManager
import android.util.Log
@@ -66,6 +67,9 @@ class AppNotificationRepository(
    private val notificationManager: INotificationManager = INotificationManager.Stub.asInterface(
        ServiceManager.getService(Context.NOTIFICATION_SERVICE)
    ),
    private val userManager: IUserManager = IUserManager.Stub.asInterface(
            ServiceManager.getService(Context.USER_SERVICE)
    ),
) : IAppNotificationRepository {
    fun getAggregatedUsageEvents(userIdFlow: Flow<Int>): Flow<Map<String, NotificationSentState>> =
        userIdFlow.map { userId ->
@@ -122,6 +126,15 @@ class AppNotificationRepository(
        }
    }

    fun isUserUnlocked(user: Int): Boolean {
        return try {
            userManager.isUserUnlocked(user)
        } catch (e: Exception) {
            Log.w(TAG, "Error calling UserManager", e)
            false
        }
    }

    override fun getNotificationSummary(app: ApplicationInfo): String {
        if (!isEnabled(app)) return context.getString(R.string.notifications_disabled)
        val channelCount = getChannelCount(app)
+13 −4
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import com.android.settingslib.spa.widget.ui.SpinnerOption
import com.android.settingslib.spaprivileged.model.app.AppEntry
import com.android.settingslib.spaprivileged.model.app.AppListModel
import com.android.settingslib.spaprivileged.model.app.AppRecord
import com.android.settingslib.spaprivileged.model.app.userId
import com.android.settingslib.spaprivileged.template.app.AppListItemModel
import com.android.settingslib.spaprivileged.template.app.AppListTwoTargetSwitchItem
import com.android.settingslib.utils.StringUtil
@@ -102,13 +103,21 @@ class AppNotificationsListModel(
            }
        }

    override fun getSpinnerOptions(recordList: List<AppNotificationsRecord>): List<SpinnerOption> =
        SpinnerItem.entries.map {
    override fun getSpinnerOptions(recordList: List<AppNotificationsRecord>): List<SpinnerOption> {
        val options = mutableListOf(SpinnerItem.AllApps, SpinnerItem.TurnedOff)
        if (repository.isUserUnlocked(recordList[0].app.userId)) {
            options.add(0, SpinnerItem.MostRecent)
            options.add(1, SpinnerItem.MostFrequent)
        }

        return options.map {
            SpinnerOption(
                    id = it.ordinal,
                    text = context.getString(it.stringResId),
            )
        }
    }


    private fun formatLastSent(lastSent: Long) =
        StringUtil.formatRelativeTime(