Skip to content

Commit d8c7229

Browse files
committed
ProgressStyleのトラッカーアイコンをラインカラー塗りつぶし+白ボーダーの円に変更
https://claude.ai/code/session_016hTeobTKcEKjphKCN5p9nz
1 parent 38d9501 commit d8c7229

File tree

1 file changed

+27
-4
lines changed

1 file changed

+27
-4
lines changed

android/app/src/main/java/me/tinykitten/trainlcd/LiveUpdateModule.kt

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ import android.app.NotificationChannel
55
import android.app.NotificationManager
66
import android.app.PendingIntent
77
import android.content.Context
8+
import android.graphics.Bitmap
9+
import android.graphics.Canvas
810
import android.graphics.Color
11+
import android.graphics.Paint
912
import android.graphics.drawable.Icon
1013
import android.os.Build
1114
import 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

Comments
 (0)