Skip to content

Commit dc83a90

Browse files
Merge remote-tracking branch 'origin/master'
2 parents c1e0706 + b9d728c commit dc83a90

File tree

2 files changed

+43
-18
lines changed

2 files changed

+43
-18
lines changed

app/src/main/kotlin/com/d4rk/musicsleeptimer/plus/notifications/SleepNotification.kt

Lines changed: 43 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import android.content.Context
1212
import android.content.Intent
1313
import android.graphics.drawable.Icon
1414
import android.os.Build
15-
import androidx.annotation.RequiresApi
1615
import com.d4rk.musicsleeptimer.plus.R
1716
import com.d4rk.musicsleeptimer.plus.notifications.SleepNotification.Action.CANCEL
1817
import com.d4rk.musicsleeptimer.plus.notifications.SleepNotification.Action.DECREMENT
@@ -26,7 +25,6 @@ import java.util.Date
2625
import java.util.concurrent.TimeUnit.MILLISECONDS
2726
import java.util.concurrent.TimeUnit.MINUTES
2827

29-
@RequiresApi(Build.VERSION_CODES.O)
3028
object SleepNotification {
3129
private val TIMEOUT_INITIAL_MILLIS : Long = MINUTES.toMillis(30)
3230
private val TIMEOUT_INCREMENT_MILLIS : Long = MINUTES.toMillis(10)
@@ -86,23 +84,52 @@ object SleepNotification {
8684
private fun Context.show(timeout : Long = TIMEOUT_INITIAL_MILLIS) {
8785
require(timeout > 0)
8886
val eta : Long = currentTimeMillis() + timeout
89-
val notification : Notification =
90-
Notification.Builder(this , getString(R.string.notification_channel_id)).setCategory(CATEGORY_EVENT).setVisibility(VISIBILITY_PUBLIC).setOnlyAlertOnce(true).setOngoing(true).setSmallIcon(R.drawable.ic_music_off).setSubText(DateFormat.getTimeInstance(SHORT).format(Date(eta)))
91-
.setShowWhen(true).setWhen(eta).setUsesChronometer(true).setChronometerCountDown(true).setTimeoutAfter(timeout).setDeleteIntent(SleepAudioWorker.pendingIntent(this)) // FIXME: Unresolved reference: pendingIntent
92-
.addAction(INCREMENT.action(this).build()).addAction(
93-
DECREMENT.action(this , cancel = timeout <= TIMEOUT_DECREMENT_MILLIS).build()
94-
).addAction(CANCEL.action(this).build()).build()
95-
createNotificationChannel()
96-
notificationManager()?.notify(R.id.notification_id , notification)
87+
val builder : Notification.Builder = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
88+
Notification.Builder(this, getString(R.string.notification_channel_id))
89+
} else {
90+
@Suppress("DEPRECATION")
91+
Notification.Builder(this)
92+
}
93+
94+
val notification : Notification = builder
95+
.setCategory(CATEGORY_EVENT)
96+
.setVisibility(VISIBILITY_PUBLIC)
97+
.setOnlyAlertOnce(true)
98+
.setOngoing(true)
99+
.setSmallIcon(R.drawable.ic_music_off)
100+
.setSubText(DateFormat.getTimeInstance(SHORT).format(Date(eta)))
101+
.setShowWhen(true)
102+
.setWhen(eta)
103+
.setUsesChronometer(true)
104+
.setChronometerCountDown(true)
105+
.setTimeoutAfter(timeout)
106+
.apply {
107+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
108+
setDeleteIntent(SleepAudioWorker.pendingIntent(this@show))
109+
}
110+
}
111+
.addAction(INCREMENT.action(this).build())
112+
.addAction(
113+
DECREMENT.action(this, cancel = timeout <= TIMEOUT_DECREMENT_MILLIS).build()
114+
)
115+
.addAction(CANCEL.action(this).build())
116+
.build()
117+
118+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
119+
createNotificationChannel()
120+
}
121+
notificationManager()?.notify(R.id.notification_id, notification)
97122
}
98123

99124
private fun Context.createNotificationChannel() {
100-
val id : String = getString(R.string.notification_channel_id)
101-
val name : CharSequence = getString(R.string.app_name)
102-
val channel : NotificationChannel = NotificationChannel(id , name , IMPORTANCE_LOW).apply {
103-
setBypassDnd(true)
104-
lockscreenVisibility = VISIBILITY_PUBLIC
125+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
126+
val id : String = getString(R.string.notification_channel_id)
127+
val name : CharSequence = getString(R.string.app_name)
128+
val channel : NotificationChannel = NotificationChannel(id, name, IMPORTANCE_LOW).apply {
129+
setBypassDnd(true)
130+
lockscreenVisibility = VISIBILITY_PUBLIC
131+
}
132+
notificationManager()?.createNotificationChannel(channel)
105133
}
106-
notificationManager()?.createNotificationChannel(channel)
107134
}
108135
}

app/src/main/kotlin/com/d4rk/musicsleeptimer/plus/services/SleepTileService.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import android.provider.Settings
1111
import android.service.quicksettings.Tile.STATE_ACTIVE
1212
import android.service.quicksettings.Tile.STATE_INACTIVE
1313
import android.service.quicksettings.TileService
14-
import androidx.annotation.RequiresApi
1514
import com.d4rk.musicsleeptimer.plus.R
1615
import com.d4rk.musicsleeptimer.plus.notifications.SleepNotification.find
1716
import com.d4rk.musicsleeptimer.plus.notifications.SleepNotification.handle
@@ -21,7 +20,6 @@ import java.text.DateFormat.SHORT
2120
import java.text.DateFormat.getTimeInstance
2221
import java.util.Date
2322

24-
@RequiresApi(Build.VERSION_CODES.O)
2523
class SleepTileService : TileService() {
2624
companion object {
2725
fun Context.requestTileUpdate() =

0 commit comments

Comments
 (0)