@@ -5,7 +5,10 @@ import android.app.NotificationChannel
55import android.app.NotificationManager
66import android.app.PendingIntent
77import android.content.Context
8+ import android.graphics.Bitmap
9+ import android.graphics.Canvas
810import android.graphics.Color
11+ import android.graphics.Paint
912import android.graphics.drawable.Icon
1013import android.os.Build
1114import com.facebook.react.bridge.ReactApplicationContext
@@ -80,6 +83,29 @@ class LiveUpdateModule(reactContext: ReactApplicationContext) :
8083 getNotificationManager().cancel(NOTIFICATION_ID )
8184 }
8285
86+ private fun createTrackerIcon (color : Int ): Icon {
87+ val density = reactApplicationContext.resources.displayMetrics.density
88+ val sizePx = (24 * density).toInt()
89+ val bitmap = Bitmap .createBitmap(sizePx, sizePx, Bitmap .Config .ARGB_8888 )
90+ val canvas = Canvas (bitmap)
91+ val paint = Paint (Paint .ANTI_ALIAS_FLAG )
92+ val cx = sizePx / 2f
93+ val cy = sizePx / 2f
94+ val strokeWidth = 2f * density
95+ val radius = cx - strokeWidth / 2f
96+
97+ paint.style = Paint .Style .FILL
98+ paint.color = color
99+ canvas.drawCircle(cx, cy, radius, paint)
100+
101+ paint.style = Paint .Style .STROKE
102+ paint.color = Color .WHITE
103+ paint.strokeWidth = strokeWidth
104+ canvas.drawCircle(cx, cy, radius, paint)
105+
106+ return Icon .createWithBitmap(bitmap)
107+ }
108+
83109 @Suppress(" NewApi" )
84110 private fun postProgressNotification (state : ReadableMap ) {
85111 ensureChannel()
@@ -120,10 +146,7 @@ class LiveUpdateModule(reactContext: ReactApplicationContext) :
120146
121147 val subText = lineName
122148
123- val trackerIcon = Icon .createWithResource(
124- reactApplicationContext,
125- R .drawable.ic_notification_live_update
126- )
149+ val trackerIcon = createTrackerIcon(parsedColor)
127150
128151 val progressStyle = Notification .ProgressStyle ()
129152 .setStyledByProgress(true )
0 commit comments