summaryrefslogtreecommitdiff
path: root/PermissionController/src/com/android/permissioncontroller/permission/utils
diff options
context:
space:
mode:
authorNate Myren <ntmyren@google.com>2023-04-17 12:05:54 -0700
committerNate Myren <ntmyren@google.com>2023-04-24 13:38:41 -0700
commit31f59231a7b86e1f7a0c276b73f32d8cfe348efd (patch)
treef03dd2b0f29bdce6a7ea44a66d31d1ccf727bc0d /PermissionController/src/com/android/permissioncontroller/permission/utils
parentfbf57d89135a9eb394794ddf81eed7b80a518f50 (diff)
downloadPermission-31f59231a7b86e1f7a0c276b73f32d8cfe348efd.tar.gz
Update text and icon of privacy source notifications
This brings the privacy source UX in line with the new spec. Also updatest the Safety Label Change notification to match Fixes: 275734262 Fixes: 279214752 Test: atest NotificationListenerCheckTest, LocationAccessCheckTest Change-Id: I60508d2401025bdda076a145d439b10105baa3d3
Diffstat (limited to 'PermissionController/src/com/android/permissioncontroller/permission/utils')
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/utils/KotlinUtils.kt36
1 files changed, 36 insertions, 0 deletions
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/utils/KotlinUtils.kt b/PermissionController/src/com/android/permissioncontroller/permission/utils/KotlinUtils.kt
index 8f5a62303..f9345ef58 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/utils/KotlinUtils.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/utils/KotlinUtils.kt
@@ -54,6 +54,7 @@ import android.content.res.Resources
import android.graphics.Bitmap
import android.graphics.Canvas
import android.graphics.drawable.Drawable
+import android.graphics.drawable.Icon
import android.health.connect.HealthConnectManager
import android.os.Build
import android.os.Bundle
@@ -63,6 +64,7 @@ import android.provider.DeviceConfig
import android.provider.Settings
import android.safetylabel.SafetyLabelConstants.PERMISSION_RATIONALE_ENABLED
import android.safetylabel.SafetyLabelConstants.SAFETY_LABEL_CHANGE_NOTIFICATIONS_ENABLED
+import android.text.Html
import android.text.TextUtils
import android.util.Log
import androidx.annotation.ChecksSdkIntAtLeast
@@ -84,6 +86,7 @@ import com.android.permissioncontroller.permission.model.livedatatypes.LightPerm
import com.android.permissioncontroller.permission.model.livedatatypes.PermState
import com.android.permissioncontroller.permission.service.LocationAccessCheck
import com.android.permissioncontroller.permission.ui.handheld.SettingsWithLargeHeader
+import com.android.safetycenter.resources.SafetyCenterResourcesContext
import java.time.Duration
import java.util.concurrent.atomic.AtomicReference
import kotlin.coroutines.Continuation
@@ -1500,6 +1503,39 @@ object KotlinUtils {
null
}
}
+
+ data class NotificationResources(val appLabel: String, val smallIcon: Icon, val color: Int)
+
+ fun getSafetyCenterNotificationResources(context: Context): NotificationResources {
+ val appLabel: String
+ val smallIcon: Icon
+ val color: Int
+ // If U resources are available, and this is a U+ device, use those
+ if (SdkLevel.isAtLeastU()) {
+ val scContext = SafetyCenterResourcesContext(context)
+ val uIcon = scContext.getIconByDrawableName("ic_notification_badge_general")
+ val uColor = scContext.getColorByName("notification_tint_normal")
+ if (uIcon != null && uColor != null) {
+ appLabel = context.getString(R.string.safety_privacy_qs_tile_title)
+ return NotificationResources(appLabel, uIcon, uColor)
+ }
+ }
+
+ // Use PbA branding if available, otherwise default to more generic branding
+ if (shouldShowSafetyProtectionResources(context)) {
+ appLabel = Html.fromHtml(context.getString(
+ android.R.string.safety_protection_display_text), 0).toString()
+ smallIcon =
+ Icon.createWithResource(context, android.R.drawable.ic_safety_protection)
+ color = context.getColor(R.color.safety_center_info)
+ } else {
+ appLabel = context.getString(R.string.safety_center_notification_app_label)
+ smallIcon =
+ Icon.createWithResource(context, R.drawable.ic_settings_notification)
+ color = context.getColor(android.R.color.system_notification_accent_color)
+ }
+ return NotificationResources(appLabel, smallIcon, color)
+ }
}
/**