Fix settings for adding 1 min to rest timer

Previously when adding one minute to the rest timer from
the notification, settings weren't being used (sound,
vibration).

Closes #113
This commit is contained in:
Brandon Presley 2022-11-07 15:56:07 +13:00
parent f87373479a
commit 3c17a12f6e

View File

@ -43,10 +43,10 @@ class AlarmModule constructor(context: ReactApplicationContext?) :
private val addReceiver = object : BroadcastReceiver() { private val addReceiver = object : BroadcastReceiver() {
@RequiresApi(Build.VERSION_CODES.O) @RequiresApi(Build.VERSION_CODES.O)
override fun onReceive(context: Context?, intent: Intent?) { override fun onReceive(context: Context?, intent: Intent?) {
Log.d("AlarmModule", "Received add broadcast intent")
val vibrate = intent?.extras?.getBoolean("vibrate") == true val vibrate = intent?.extras?.getBoolean("vibrate") == true
val sound = intent?.extras?.getString("sound") val sound = intent?.extras?.getString("sound")
val noSound = intent?.extras?.getBoolean("noSound") == true val noSound = intent?.extras?.getBoolean("noSound") == true
Log.d("AlarmModule", "vibrate=$vibrate,sound=$sound,noSound=$noSound")
add(vibrate, sound, noSound) add(vibrate, sound, noSound)
} }
} }
@ -160,7 +160,7 @@ class AlarmModule constructor(context: ReactApplicationContext?) :
sound: String?, sound: String?,
noSound: Boolean noSound: Boolean
): CountDownTimer { ): CountDownTimer {
val builder = getBuilder() val builder = getBuilder(vibrate, sound, noSound)
return object : CountDownTimer(endMs.toLong(), 1000) { return object : CountDownTimer(endMs.toLong(), 1000) {
@RequiresApi(Build.VERSION_CODES.O) @RequiresApi(Build.VERSION_CODES.O)
override fun onTick(current: Long) { override fun onTick(current: Long) {
@ -218,16 +218,23 @@ class AlarmModule constructor(context: ReactApplicationContext?) :
@SuppressLint("UnspecifiedImmutableFlag") @SuppressLint("UnspecifiedImmutableFlag")
@RequiresApi(Build.VERSION_CODES.M) @RequiresApi(Build.VERSION_CODES.M)
private fun getBuilder(): NotificationCompat.Builder { private fun getBuilder(
vibrate: Boolean,
sound: String?,
noSound: Boolean
): NotificationCompat.Builder {
val context = reactApplicationContext val context = reactApplicationContext
val contentIntent = Intent(context, MainActivity::class.java) val contentIntent = Intent(context, MainActivity::class.java)
val pendingContent = val pendingContent =
PendingIntent.getActivity(context, 0, contentIntent, PendingIntent.FLAG_IMMUTABLE) PendingIntent.getActivity(context, 0, contentIntent, PendingIntent.FLAG_IMMUTABLE)
val addBroadcast = Intent(ADD_BROADCAST).apply { val addBroadcast = Intent(ADD_BROADCAST).apply {
setPackage(reactApplicationContext.packageName) setPackage(reactApplicationContext.packageName)
putExtra("vibrate", vibrate)
putExtra("sound", sound)
putExtra("noSound", noSound)
} }
val pendingAdd = val pendingAdd =
PendingIntent.getBroadcast(context, 0, addBroadcast, PendingIntent.FLAG_IMMUTABLE) PendingIntent.getBroadcast(context, 0, addBroadcast, PendingIntent.FLAG_MUTABLE)
val stopBroadcast = Intent(STOP_BROADCAST) val stopBroadcast = Intent(STOP_BROADCAST)
stopBroadcast.setPackage(reactApplicationContext.packageName) stopBroadcast.setPackage(reactApplicationContext.packageName)
val pendingStop = val pendingStop =