diff --git a/README.md b/README.md
index 4a88992dc..70e0be875 100644
--- a/README.md
+++ b/README.md
@@ -79,7 +79,7 @@ As the name alludes, BCR intends to be a basic as possible. The project will hav
* Needed to monitor the phone call state for starting and stopping the recording and gathering call information for the output filename.
* `RECORD_AUDIO` (**must be granted by the user**)
* Needed to capture the call audio stream.
-* `FOREGROUND_SERVICE` (**automatically granted at install time**)
+* `FOREGROUND_SERVICE`, `FOREGROUND_SERVICE_MICROPHONE` (**automatically granted at install time**)
* Needed to run the call recording service.
* `POST_NOTIFICATIONS` (**must be granted by the user on Android 13+**)
* Needed to show notifications.
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 034dcd9b0..d2e7c40d1 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -109,13 +109,13 @@ val archiveDir = File(extraDir, "archive")
android {
namespace = "com.chiller3.bcr"
- compileSdk = 33
- buildToolsVersion = "33.0.2"
+ compileSdk = 34
+ buildToolsVersion = "34.0.0"
defaultConfig {
applicationId = "com.chiller3.bcr"
minSdk = 28
- targetSdk = 33
+ targetSdk = 34
versionCode = gitVersionCode
versionName = gitVersionName
resourceConfigurations.addAll(listOf(
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 50378fe45..4987f3074 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -18,6 +18,7 @@
+
diff --git a/app/src/main/java/com/chiller3/bcr/RecorderTileService.kt b/app/src/main/java/com/chiller3/bcr/RecorderTileService.kt
index d035a4c05..9bddc7c80 100644
--- a/app/src/main/java/com/chiller3/bcr/RecorderTileService.kt
+++ b/app/src/main/java/com/chiller3/bcr/RecorderTileService.kt
@@ -1,7 +1,9 @@
package com.chiller3.bcr
+import android.app.PendingIntent
import android.content.Intent
import android.content.SharedPreferences
+import android.os.Build
import android.service.quicksettings.Tile
import android.service.quicksettings.TileService
import android.util.Log
@@ -35,9 +37,17 @@ class RecorderTileService : TileService(), SharedPreferences.OnSharedPreferenceC
super.onClick()
if (!Permissions.haveRequired(this)) {
- val intent = Intent(this, SettingsActivity::class.java)
- intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
- startActivityAndCollapse(intent)
+ val intent = Intent(this, SettingsActivity::class.java).apply {
+ flags = Intent.FLAG_ACTIVITY_NEW_TASK
+ }
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
+ startActivityAndCollapse(PendingIntent.getActivity(
+ this, 0, intent, PendingIntent.FLAG_IMMUTABLE))
+ } else {
+ @Suppress("DEPRECATION")
+ startActivityAndCollapse(intent)
+ }
} else {
prefs.isCallRecordingEnabled = !prefs.isCallRecordingEnabled
}