diff --git a/app/build.gradle b/app/build.gradle
index 850492cd8..3d46efabd 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -45,11 +45,11 @@ for (TaskExecutionRequest tr : getGradle().getStartParameter().getTaskRequests()
}
android {
- compileSdkVersion 29
+ compileSdkVersion 30
buildToolsVersion '30.0.3'
defaultConfig {
minSdkVersion 21
- targetSdkVersion 29
+ targetSdkVersion 30
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
// mayor.minor.hotfix.increment (for increment: 01-50=Alpha / 51-89=RC / 90-99=stable)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index acca95c7a..48f9390e2 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -62,7 +62,10 @@
-
+
diff --git a/app/src/main/java/com/nextcloud/talk/controllers/LocationPickerController.kt b/app/src/main/java/com/nextcloud/talk/controllers/LocationPickerController.kt
index 899d78296..a4654d3f8 100644
--- a/app/src/main/java/com/nextcloud/talk/controllers/LocationPickerController.kt
+++ b/app/src/main/java/com/nextcloud/talk/controllers/LocationPickerController.kt
@@ -519,7 +519,7 @@ class LocationPickerController(args: Bundle) :
}
}
- override fun onLocationChanged(location: Location?) {
+ override fun onLocationChanged(location: Location) {
myLocation = GeoPoint(location)
}
@@ -527,11 +527,11 @@ class LocationPickerController(args: Bundle) :
// empty
}
- override fun onProviderEnabled(provider: String?) {
+ override fun onProviderEnabled(provider: String) {
// empty
}
- override fun onProviderDisabled(provider: String?) {
+ override fun onProviderDisabled(provider: String) {
// empty
}
diff --git a/app/src/main/java/com/nextcloud/talk/jobs/UploadAndShareFilesWorker.kt b/app/src/main/java/com/nextcloud/talk/jobs/UploadAndShareFilesWorker.kt
index c5e20bffe..ee7f29db1 100644
--- a/app/src/main/java/com/nextcloud/talk/jobs/UploadAndShareFilesWorker.kt
+++ b/app/src/main/java/com/nextcloud/talk/jobs/UploadAndShareFilesWorker.kt
@@ -213,31 +213,62 @@ class UploadAndShareFilesWorker(val context: Context, workerParameters: WorkerPa
const val META_DATA = "META_DATA"
fun isStoragePermissionGranted(context: Context): Boolean {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- return if (PermissionChecker.checkSelfPermission(
- context,
- Manifest.permission.WRITE_EXTERNAL_STORAGE
- ) == PermissionChecker.PERMISSION_GRANTED
- ) {
- Log.d(TAG, "Permission is granted")
- true
- } else {
- Log.d(TAG, "Permission is revoked")
- false
+ when {
+ Build.VERSION.SDK_INT > Build.VERSION_CODES.Q -> {
+ return if (PermissionChecker.checkSelfPermission(
+ context,
+ Manifest.permission.READ_EXTERNAL_STORAGE
+ ) == PermissionChecker.PERMISSION_GRANTED
+ ) {
+ Log.d(TAG, "Permission is granted (SDK 30 or greater)")
+ true
+ } else {
+ Log.d(TAG, "Permission is revoked (SDK 30 or greater)")
+ false
+ }
+ }
+ Build.VERSION.SDK_INT >= Build.VERSION_CODES.M -> {
+ return if (PermissionChecker.checkSelfPermission(
+ context,
+ Manifest.permission.WRITE_EXTERNAL_STORAGE
+ ) == PermissionChecker.PERMISSION_GRANTED
+ ) {
+ Log.d(TAG, "Permission is granted")
+ true
+ } else {
+ Log.d(TAG, "Permission is revoked")
+ false
+ }
+ }
+ else -> { // permission is automatically granted on sdk<23 upon installation
+ Log.d(TAG, "Permission is granted")
+ return true
}
- } else { // permission is automatically granted on sdk<23 upon installation
- Log.d(TAG, "Permission is granted")
- return true
}
}
fun requestStoragePermission(controller: Controller) {
- controller.requestPermissions(
- arrayOf(
- Manifest.permission.WRITE_EXTERNAL_STORAGE
- ),
- REQUEST_PERMISSION
- )
+
+ when {
+ Build.VERSION.SDK_INT > Build.VERSION_CODES.Q -> {
+ controller.requestPermissions(
+ arrayOf(
+ Manifest.permission.READ_EXTERNAL_STORAGE
+ ),
+ REQUEST_PERMISSION
+ )
+ }
+ Build.VERSION.SDK_INT >= Build.VERSION_CODES.M -> {
+ controller.requestPermissions(
+ arrayOf(
+ Manifest.permission.WRITE_EXTERNAL_STORAGE
+ ),
+ REQUEST_PERMISSION
+ )
+ }
+ else -> { // permission is automatically granted on sdk<23 upon installation
+ }
+ }
}
}
}
diff --git a/app/src/main/java/com/nextcloud/talk/webrtc/MagicAudioManager.java b/app/src/main/java/com/nextcloud/talk/webrtc/MagicAudioManager.java
index a631d7d05..7eba93239 100644
--- a/app/src/main/java/com/nextcloud/talk/webrtc/MagicAudioManager.java
+++ b/app/src/main/java/com/nextcloud/talk/webrtc/MagicAudioManager.java
@@ -31,6 +31,7 @@
package com.nextcloud.talk.webrtc;
+import android.annotation.SuppressLint;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -193,6 +194,7 @@ public class MagicAudioManager {
}
}
+ @SuppressLint("WrongConstant")
public void start(AudioManagerEvents audioManagerEvents) {
Log.d(TAG, "start");
ThreadUtils.checkIsOnMainThread();
@@ -291,6 +293,7 @@ public class MagicAudioManager {
Log.d(TAG, "AudioManager started");
}
+ @SuppressLint("WrongConstant")
public void stop() {
Log.d(TAG, "stop");
ThreadUtils.checkIsOnMainThread();
@@ -464,7 +467,7 @@ public class MagicAudioManager {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
return audioManager.isWiredHeadsetOn();
} else {
- final AudioDeviceInfo[] devices = audioManager.getDevices(AudioManager.GET_DEVICES_ALL);
+ @SuppressLint("WrongConstant") final AudioDeviceInfo[] devices = audioManager.getDevices(AudioManager.GET_DEVICES_ALL);
for (AudioDeviceInfo device : devices) {
final int type = device.getType();
if (type == AudioDeviceInfo.TYPE_WIRED_HEADSET) {