diff options
author | Nate Myren <ntmyren@google.com> | 2023-04-17 12:05:54 -0700 |
---|---|---|
committer | Nate Myren <ntmyren@google.com> | 2023-04-24 13:38:41 -0700 |
commit | 31f59231a7b86e1f7a0c276b73f32d8cfe348efd (patch) | |
tree | f03dd2b0f29bdce6a7ea44a66d31d1ccf727bc0d /PermissionController/src/com/android/permissioncontroller/permission/utils | |
parent | fbf57d89135a9eb394794ddf81eed7b80a518f50 (diff) | |
download | Permission-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.kt | 36 |
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) + } } /** |