@@ -43,10 +43,16 @@ class BatteryNotificationService : Service() {
4343 settingsRepository = SettingsRepository (this )
4444 createNotificationChannel()
4545 settingsRepository.registerOnSharedPreferenceChangeListener(preferenceChangeListener)
46+
47+ startForeground(NOTIF_ID , buildBaseNotification(getString(R .string.feat_batteries_title), " " ))
48+
4649 updateNotification()
4750 }
4851
4952 override fun onStartCommand (intent : Intent ? , flags : Int , startId : Int ): Int {
53+ if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .O ) {
54+ startForeground(NOTIF_ID , buildBaseNotification(getString(R .string.feat_batteries_title), " " ))
55+ }
5056 updateNotification()
5157 return START_STICKY
5258 }
@@ -77,26 +83,39 @@ class BatteryNotificationService : Service() {
7783
7884 private fun updateNotification () {
7985 val batteryItems = fetchBatteryData()
80- if (batteryItems.isEmpty()) {
81- stopForeground(true )
82- stopSelf()
83- return
86+
87+ val notification = if (batteryItems.isEmpty()) {
88+ buildBaseNotification(
89+ getString(R .string.feat_batteries_title),
90+ getString(R .string.battery_notification_no_devices)
91+ )
92+ } else {
93+ val bitmap = createCompositeBitmap(batteryItems)
94+ NotificationCompat .Builder (this , CHANNEL_ID )
95+ .setSmallIcon(R .drawable.rounded_battery_charging_60_24)
96+ .setLargeIcon(bitmap)
97+ .setStyle(NotificationCompat .BigPictureStyle ()
98+ .bigPicture(bitmap)
99+ .bigLargeIcon(null as Bitmap ? ))
100+ .setContentTitle(getString(R .string.feat_batteries_title))
101+ .setPriority(NotificationCompat .PRIORITY_LOW )
102+ .setOngoing(true )
103+ .setSilent(true )
104+ .build()
84105 }
85106
86- val bitmap = createCompositeBitmap(batteryItems)
87- val notification = NotificationCompat .Builder (this , CHANNEL_ID )
107+ startForeground(NOTIF_ID , notification)
108+ }
109+
110+ private fun buildBaseNotification (title : String , content : String ): Notification {
111+ return NotificationCompat .Builder (this , CHANNEL_ID )
88112 .setSmallIcon(R .drawable.rounded_battery_charging_60_24)
89- .setLargeIcon(bitmap)
90- .setStyle(NotificationCompat .BigPictureStyle ()
91- .bigPicture(bitmap)
92- .bigLargeIcon(null as Bitmap ? ))
93- .setContentTitle(getString(R .string.feat_batteries_title))
113+ .setContentTitle(title)
114+ .setContentText(content)
94115 .setPriority(NotificationCompat .PRIORITY_LOW )
95116 .setOngoing(true )
96117 .setSilent(true )
97118 .build()
98-
99- startForeground(NOTIF_ID , notification)
100119 }
101120
102121 private fun fetchBatteryData (): List <BatteryItemData > {
0 commit comments