diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index ab5ba11b..3088e68b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -19,6 +19,7 @@
+
diff --git a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt
index 78a1b1e1..ebacb4a7 100644
--- a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt
+++ b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt
@@ -630,7 +630,10 @@ class MainActivity : AppCompatActivity() {
BaresipService.callActionUri = URLDecoder.decode(intent.data.toString(), "UTF-8")
}
- if (!BaresipService.isServiceRunning)
+ requestPermissionLauncher =
+ registerForActivityResult(ActivityResultContracts.RequestPermission()) {}
+
+ if (!BaresipService.isServiceRunning) {
if (File(filesDir.absolutePath + "/accounts").exists()) {
val accounts = String(
Utils.getFileContents(filesDir.absolutePath + "/accounts")!!,
@@ -642,15 +645,13 @@ class MainActivity : AppCompatActivity() {
firstRun = true
startBaresip()
}
+ }
if (Preferences(applicationContext).displayTheme != AppCompatDelegate.getDefaultNightMode()) {
AppCompatDelegate.setDefaultNightMode(Preferences(applicationContext).displayTheme)
delegate.applyDayNight()
}
- requestPermissionLauncher =
- registerForActivityResult(ActivityResultContracts.RequestPermission()) {}
-
} // OnCreate
override fun onStart() {
@@ -1180,7 +1181,6 @@ class MainActivity : AppCompatActivity() {
}
handleNextEvent()
-
}
private fun reStart() {
@@ -1560,10 +1560,40 @@ class MainActivity : AppCompatActivity() {
}
private fun startBaresip() {
- baresipService.action = "Start"
- startService(baresipService)
- if (atStartup)
- moveTaskToBack(true)
+ if (Build.VERSION.SDK_INT >= 33) {
+ when {
+ ContextCompat.checkSelfPermission(
+ this,
+ Manifest.permission.POST_NOTIFICATIONS
+ ) == PackageManager.PERMISSION_GRANTED -> {
+ Log.d(TAG, "Notifications permission granted")
+ baresipService.action = "Start"
+ startService(baresipService)
+ if (atStartup)
+ moveTaskToBack(true)
+ }
+ ActivityCompat.shouldShowRequestPermissionRationale(
+ this, Manifest.permission.POST_NOTIFICATIONS
+ ) -> {
+ layout.showSnackBar(
+ binding.root,
+ getString(R.string.no_notifications),
+ Snackbar.LENGTH_INDEFINITE,
+ getString(R.string.ok)
+ ) {
+ requestPermissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS)
+ }
+ }
+ else -> {
+ requestPermissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS)
+ }
+ }
+ } else {
+ baresipService.action = "Start"
+ startService(baresipService)
+ if (atStartup)
+ moveTaskToBack(true)
+ }
}
private fun backup(password: String) {
diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml
index 02c6ff41..cdb2ae79 100644
--- a/app/src/main/res/values-fi/strings.xml
+++ b/app/src/main/res/values-fi/strings.xml
@@ -534,12 +534,11 @@
Android versioon 9 saakka tarkista myös Asetukset → Sovellukset → baresip → Käyttöluvat →
Tallennustila ja että tiedosto \'%1$s\' on Download-kansiossa.
- Et voi soittaa puheluita tai vastata niihin ilman Mikrofoni-käyttöoikeutta.
- Salli Kamera-sovelluslupa jotta voit soittaa videopuheluita ja vastata niihin.
- Et voi tallentaa sovelluksen tietoja ilman
- Tallennustila-käyttöoikeutta.
- Et voi palauttaa sovelluksen tietoja ilman
- Tallennustila-käyttöoikeutta.
+ Et voi käyttää tätä sovellusta ilman Ilmoitukset-lupaa.
+ Et voi soittaa puheluita tai vastata niihin ilman Mikrofoni-lupaa.
+ Salli Kamera-lupa jotta voit soittaa videopuheluita ja vastata niihin.
+ Et voi tallentaa sovelluksen tietoja ilman Tallennustila-lupaa.
+ Et voi palauttaa sovelluksen tietoja ilman Tallennustila-lupaa.
Sinulla ei ole yhtään tuettua video-kameraa.
Näytä salasana
Ei verkkoyhteyttä!
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index ca2242da..69b29b31 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -506,6 +506,8 @@
also check Apps → baresip → Permissions → Storage and that file \'%1$s\' exists
in Download folder.
+ You are not able to use this application without \"Notifications\"
+ permission.
You are not able to make or answer calls without \"Microphone\"
permission.
Grant \"Camera\" permission to make or answer video calls.