Show permission rationale only then baresip is started the first time
This commit is contained in:
@@ -662,9 +662,6 @@ class MainActivity : AppCompatActivity() {
|
|||||||
BaresipService.callActionUri = URLDecoder.decode(intent.data.toString(), "UTF-8")
|
BaresipService.callActionUri = URLDecoder.decode(intent.data.toString(), "UTF-8")
|
||||||
}
|
}
|
||||||
|
|
||||||
requestPermissionLauncher =
|
|
||||||
registerForActivityResult(ActivityResultContracts.RequestPermission()) {}
|
|
||||||
|
|
||||||
if (!BaresipService.isServiceRunning) {
|
if (!BaresipService.isServiceRunning) {
|
||||||
if (File(filesDir.absolutePath + "/accounts").exists()) {
|
if (File(filesDir.absolutePath + "/accounts").exists()) {
|
||||||
val accounts = String(
|
val accounts = String(
|
||||||
@@ -684,11 +681,10 @@ class MainActivity : AppCompatActivity() {
|
|||||||
else
|
else
|
||||||
arrayOf(RECORD_AUDIO)
|
arrayOf(RECORD_AUDIO)
|
||||||
|
|
||||||
|
requestPermissionLauncher =
|
||||||
|
registerForActivityResult(ActivityResultContracts.RequestPermission()) {}
|
||||||
requestPermissionsLauncher =
|
requestPermissionsLauncher =
|
||||||
registerForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) { isGranted: Map<String, Boolean> ->
|
registerForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) {}
|
||||||
if (firstRun && isGranted.isEmpty())
|
|
||||||
askPermissions(permissions)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Preferences(applicationContext).displayTheme != AppCompatDelegate.getDefaultNightMode()) {
|
if (Preferences(applicationContext).displayTheme != AppCompatDelegate.getDefaultNightMode()) {
|
||||||
AppCompatDelegate.setDefaultNightMode(Preferences(applicationContext).displayTheme)
|
AppCompatDelegate.setDefaultNightMode(Preferences(applicationContext).displayTheme)
|
||||||
@@ -701,10 +697,10 @@ class MainActivity : AppCompatActivity() {
|
|||||||
super.onStart()
|
super.onStart()
|
||||||
Log.e(TAG, "Main onStart")
|
Log.e(TAG, "Main onStart")
|
||||||
|
|
||||||
|
|
||||||
if (!Utils.checkPermissions(this, permissions))
|
if (!Utils.checkPermissions(this, permissions))
|
||||||
if (ActivityCompat.shouldShowRequestPermissionRationale(this, RECORD_AUDIO) ||
|
if (firstRun) {
|
||||||
((BLUETOOTH_CONNECT in permissions) &&
|
firstRun = false
|
||||||
ActivityCompat.shouldShowRequestPermissionRationale(this, BLUETOOTH_CONNECT))) {
|
|
||||||
askPermissions(permissions)
|
askPermissions(permissions)
|
||||||
} else {
|
} else {
|
||||||
requestPermissionsLauncher.launch(permissions)
|
requestPermissionsLauncher.launch(permissions)
|
||||||
@@ -1319,7 +1315,7 @@ class MainActivity : AppCompatActivity() {
|
|||||||
Build.VERSION.SDK_INT >= 29 -> pickupFileFromDownloads("backup")
|
Build.VERSION.SDK_INT >= 29 -> pickupFileFromDownloads("backup")
|
||||||
ContextCompat.checkSelfPermission(
|
ContextCompat.checkSelfPermission(
|
||||||
this,
|
this,
|
||||||
Manifest.permission.WRITE_EXTERNAL_STORAGE
|
WRITE_EXTERNAL_STORAGE
|
||||||
) == PackageManager.PERMISSION_GRANTED -> {
|
) == PackageManager.PERMISSION_GRANTED -> {
|
||||||
Log.d(TAG, "Write External Storage permission granted")
|
Log.d(TAG, "Write External Storage permission granted")
|
||||||
val path = Utils.downloadsPath("baresip.bs")
|
val path = Utils.downloadsPath("baresip.bs")
|
||||||
@@ -1328,18 +1324,18 @@ class MainActivity : AppCompatActivity() {
|
|||||||
}
|
}
|
||||||
ActivityCompat.shouldShowRequestPermissionRationale(
|
ActivityCompat.shouldShowRequestPermissionRationale(
|
||||||
this,
|
this,
|
||||||
Manifest.permission.WRITE_EXTERNAL_STORAGE) -> {
|
WRITE_EXTERNAL_STORAGE) -> {
|
||||||
layout.showSnackBar(
|
layout.showSnackBar(
|
||||||
binding.root,
|
binding.root,
|
||||||
getString(R.string.no_backup),
|
getString(R.string.no_backup),
|
||||||
Snackbar.LENGTH_INDEFINITE,
|
Snackbar.LENGTH_INDEFINITE,
|
||||||
getString(R.string.ok)
|
getString(R.string.ok)
|
||||||
) {
|
) {
|
||||||
requestPermissionLauncher.launch(Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
requestPermissionLauncher.launch(WRITE_EXTERNAL_STORAGE)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
requestPermissionLauncher.launch(Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
requestPermissionLauncher.launch(WRITE_EXTERNAL_STORAGE)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1350,7 +1346,7 @@ class MainActivity : AppCompatActivity() {
|
|||||||
pickupFileFromDownloads("restore")
|
pickupFileFromDownloads("restore")
|
||||||
ContextCompat.checkSelfPermission(
|
ContextCompat.checkSelfPermission(
|
||||||
this,
|
this,
|
||||||
Manifest.permission.READ_EXTERNAL_STORAGE
|
READ_EXTERNAL_STORAGE
|
||||||
) == PackageManager.PERMISSION_GRANTED -> {
|
) == PackageManager.PERMISSION_GRANTED -> {
|
||||||
Log.d(TAG, "Read External Storage permission granted")
|
Log.d(TAG, "Read External Storage permission granted")
|
||||||
val path = Utils.downloadsPath("baresip.bs")
|
val path = Utils.downloadsPath("baresip.bs")
|
||||||
@@ -1359,18 +1355,18 @@ class MainActivity : AppCompatActivity() {
|
|||||||
}
|
}
|
||||||
ActivityCompat.shouldShowRequestPermissionRationale(
|
ActivityCompat.shouldShowRequestPermissionRationale(
|
||||||
this,
|
this,
|
||||||
Manifest.permission.READ_EXTERNAL_STORAGE) -> {
|
READ_EXTERNAL_STORAGE) -> {
|
||||||
layout.showSnackBar(
|
layout.showSnackBar(
|
||||||
binding.root,
|
binding.root,
|
||||||
getString(R.string.no_restore),
|
getString(R.string.no_restore),
|
||||||
Snackbar.LENGTH_INDEFINITE,
|
Snackbar.LENGTH_INDEFINITE,
|
||||||
getString(R.string.ok)
|
getString(R.string.ok)
|
||||||
) {
|
) {
|
||||||
requestPermissionLauncher.launch(Manifest.permission.READ_EXTERNAL_STORAGE)
|
requestPermissionLauncher.launch(READ_EXTERNAL_STORAGE)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
requestPermissionLauncher.launch(Manifest.permission.READ_EXTERNAL_STORAGE)
|
requestPermissionLauncher.launch(READ_EXTERNAL_STORAGE)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1605,7 +1601,7 @@ class MainActivity : AppCompatActivity() {
|
|||||||
when {
|
when {
|
||||||
ContextCompat.checkSelfPermission(
|
ContextCompat.checkSelfPermission(
|
||||||
this,
|
this,
|
||||||
Manifest.permission.POST_NOTIFICATIONS
|
POST_NOTIFICATIONS
|
||||||
) == PackageManager.PERMISSION_GRANTED -> {
|
) == PackageManager.PERMISSION_GRANTED -> {
|
||||||
Log.d(TAG, "Notifications permission granted")
|
Log.d(TAG, "Notifications permission granted")
|
||||||
baresipService.action = "Start"
|
baresipService.action = "Start"
|
||||||
@@ -1614,7 +1610,7 @@ class MainActivity : AppCompatActivity() {
|
|||||||
moveTaskToBack(true)
|
moveTaskToBack(true)
|
||||||
}
|
}
|
||||||
ActivityCompat.shouldShowRequestPermissionRationale(
|
ActivityCompat.shouldShowRequestPermissionRationale(
|
||||||
this, Manifest.permission.POST_NOTIFICATIONS
|
this, POST_NOTIFICATIONS
|
||||||
) -> {
|
) -> {
|
||||||
layout.showSnackBar(
|
layout.showSnackBar(
|
||||||
binding.root,
|
binding.root,
|
||||||
@@ -1622,11 +1618,11 @@ class MainActivity : AppCompatActivity() {
|
|||||||
Snackbar.LENGTH_INDEFINITE,
|
Snackbar.LENGTH_INDEFINITE,
|
||||||
getString(R.string.ok)
|
getString(R.string.ok)
|
||||||
) {
|
) {
|
||||||
requestPermissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS)
|
requestPermissionLauncher.launch(POST_NOTIFICATIONS)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
requestPermissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS)
|
requestPermissionLauncher.launch(POST_NOTIFICATIONS)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -543,8 +543,9 @@
|
|||||||
<string name="permissions_rationale">Tarvittavat luvat</string>
|
<string name="permissions_rationale">Tarvittavat luvat</string>
|
||||||
<string name="audio_permissions">baresip tarvitsee Mikrofoni-luvan puheluita varten ja
|
<string name="audio_permissions">baresip tarvitsee Mikrofoni-luvan puheluita varten ja
|
||||||
Lähellä olevat laitteet -luvan Bluetooth-mikrofonin/kaiuttimen havaitsemista varten, mikäli
|
Lähellä olevat laitteet -luvan Bluetooth-mikrofonin/kaiuttimen havaitsemista varten, mikäli
|
||||||
sellaista halutaan käyttää.</string>
|
sellaista halutaan käyttää, ja Ilmoitukset-luvan ilmoitusten lähettämistä varten.</string>
|
||||||
<string name="audio_and_video_permissions">baresip tarvitsee Mikrofoni-luvan puheluita varten,
|
<string name="audio_and_video_permissions">baresip tarvitsee Mikrofoni-luvan puheluita varten,
|
||||||
Kamera-luvan videopuheluita varten ja Lähellä olevat laitteet -luvan Bluetooth-mikrofonin/kaiuttimen
|
Kamera-luvan videopuheluita varten ja Lähellä olevat laitteet -luvan Bluetooth-mikrofonin/kaiuttimen
|
||||||
havaitsemista varten, mikäli sellaista halutaan käyttää.</string>
|
havaitsemista varten, mikäli sellaista halutaan käyttää, ja Ilmoitukset-luvan ilmoitusten
|
||||||
|
lähettämistä varten.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -521,10 +521,11 @@
|
|||||||
<string name="no_network">No network connection!</string>
|
<string name="no_network">No network connection!</string>
|
||||||
<string name="audio_focus_denied">Audio focus denied!</string>
|
<string name="audio_focus_denied">Audio focus denied!</string>
|
||||||
<string name="permissions_rationale">Permissions rationale</string>
|
<string name="permissions_rationale">Permissions rationale</string>
|
||||||
<string name="audio_permissions">baresip needs \"Microphone\" permission for voice calls and
|
<string name="audio_permissions">baresip needs \"Microphone\" permission for voice calls,
|
||||||
\"Nearby devices\" permission for Bluetooth microphone/speaker detection if you want to use
|
\"Nearby devices\" permission for Bluetooth microphone/speaker detection if you want to use
|
||||||
such a device.</string>
|
such a device, and \"Notifications\" permission for sending notifications.</string>
|
||||||
<string name="audio_and_video_permissions">baresip needs \"Microphone\" permission for voice calls,
|
<string name="audio_and_video_permissions">baresip needs \"Microphone\" permission for voice calls,
|
||||||
\"Camera\" permission for video calls, and \"Nearby devices\" permission for Bluetooth
|
\"Camera\" permission for video calls, and \"Nearby devices\" permission for Bluetooth
|
||||||
microphone/speaker detection if you want to use such a device.</string>
|
microphone/speaker detection if you want to use such a device, and \"Notifications\"
|
||||||
|
permission for sending notifications.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
Reference in New Issue
Block a user