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.Context
|
||||||
import android.content.pm.ApplicationInfo
|
import android.content.pm.ApplicationInfo
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
|
import android.os.IUserManager
|
||||||
import android.os.RemoteException
|
import android.os.RemoteException
|
||||||
import android.os.ServiceManager
|
import android.os.ServiceManager
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
@@ -66,6 +67,9 @@ class AppNotificationRepository(
|
|||||||
private val notificationManager: INotificationManager = INotificationManager.Stub.asInterface(
|
private val notificationManager: INotificationManager = INotificationManager.Stub.asInterface(
|
||||||
ServiceManager.getService(Context.NOTIFICATION_SERVICE)
|
ServiceManager.getService(Context.NOTIFICATION_SERVICE)
|
||||||
),
|
),
|
||||||
|
private val userManager: IUserManager = IUserManager.Stub.asInterface(
|
||||||
|
ServiceManager.getService(Context.USER_SERVICE)
|
||||||
|
),
|
||||||
) : IAppNotificationRepository {
|
) : IAppNotificationRepository {
|
||||||
fun getAggregatedUsageEvents(userIdFlow: Flow<Int>): Flow<Map<String, NotificationSentState>> =
|
fun getAggregatedUsageEvents(userIdFlow: Flow<Int>): Flow<Map<String, NotificationSentState>> =
|
||||||
userIdFlow.map { userId ->
|
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 {
|
override fun getNotificationSummary(app: ApplicationInfo): String {
|
||||||
if (!isEnabled(app)) return context.getString(R.string.notifications_disabled)
|
if (!isEnabled(app)) return context.getString(R.string.notifications_disabled)
|
||||||
val channelCount = getChannelCount(app)
|
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.AppEntry
|
||||||
import com.android.settingslib.spaprivileged.model.app.AppListModel
|
import com.android.settingslib.spaprivileged.model.app.AppListModel
|
||||||
import com.android.settingslib.spaprivileged.model.app.AppRecord
|
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.AppListItemModel
|
||||||
import com.android.settingslib.spaprivileged.template.app.AppListTwoTargetSwitchItem
|
import com.android.settingslib.spaprivileged.template.app.AppListTwoTargetSwitchItem
|
||||||
import com.android.settingslib.utils.StringUtil
|
import com.android.settingslib.utils.StringUtil
|
||||||
@@ -102,13 +103,21 @@ class AppNotificationsListModel(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getSpinnerOptions(recordList: List<AppNotificationsRecord>): List<SpinnerOption> =
|
override fun getSpinnerOptions(recordList: List<AppNotificationsRecord>): List<SpinnerOption> {
|
||||||
SpinnerItem.entries.map {
|
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(
|
SpinnerOption(
|
||||||
id = it.ordinal,
|
id = it.ordinal,
|
||||||
text = context.getString(it.stringResId),
|
text = context.getString(it.stringResId),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun formatLastSent(lastSent: Long) =
|
private fun formatLastSent(lastSent: Long) =
|
||||||
StringUtil.formatRelativeTime(
|
StringUtil.formatRelativeTime(
|
||||||
|
|||||||
Reference in New Issue
Block a user