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) {