Merge "Hide spinner options for locked users" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
2d2fc79edd
@@ -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)
|
||||
|
@@ -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),
|
||||
id = it.ordinal,
|
||||
text = context.getString(it.stringResId),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private fun formatLastSent(lastSent: Long) =
|
||||
StringUtil.formatRelativeTime(
|
||||
|
Reference in New Issue
Block a user