Notif redesign: Account for low ram icon size
These sizes are technically the same by default, but we should still
respect the contract of the declared dimensions.
Bug: 371174789
Test: cannot test, will be unit tested in follow-up
Flag: android.app.notifications_redesign_app_icons
Change-Id: Ic23f2c4132ef25585a8546ed02901820fdf2ca6d
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/icon/AppIconProvider.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/icon/AppIconProvider.kt
index 1377988..24b5cf1a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/icon/AppIconProvider.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/icon/AppIconProvider.kt
@@ -16,6 +16,7 @@
package com.android.systemui.statusbar.notification.row.icon
+import android.app.ActivityManager
import android.app.Flags
import android.content.Context
import android.content.pm.PackageManager.NameNotFoundException
@@ -41,12 +42,16 @@
@SysUISingleton
class AppIconProviderImpl @Inject constructor(private val sysuiContext: Context) : AppIconProvider {
private val iconFactory: BaseIconFactory
- get() =
- BaseIconFactory(
- sysuiContext,
- sysuiContext.resources.configuration.densityDpi,
- sysuiContext.resources.getDimensionPixelSize(R.dimen.notification_icon_circle_size),
- )
+ get() {
+ val isLowRam = ActivityManager.isLowRamDeviceStatic()
+ val res = sysuiContext.resources
+ val iconSize: Int =
+ res.getDimensionPixelSize(
+ if (isLowRam) R.dimen.notification_small_icon_size_low_ram
+ else R.dimen.notification_small_icon_size
+ )
+ return BaseIconFactory(sysuiContext, res.configuration.densityDpi, iconSize)
+ }
override fun getOrFetchAppIcon(packageName: String, context: Context): Drawable {
val icon = context.packageManager.getApplicationIcon(packageName)