Browse Source

Merge pull request #1546 from nextcloud/sdk30

Bump to SDK 30
Andy Scherzinger 3 years ago
parent
commit
2315701b3a

+ 2 - 2
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)

+ 4 - 1
app/src/main/AndroidManifest.xml

@@ -62,7 +62,10 @@
     <uses-permission
         android:name="android.permission.USE_CREDENTIALS"
         android:maxSdkVersion="22" />
-    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+    <uses-permission
+        android:name="android.permission.WRITE_EXTERNAL_STORAGE"
+        android:maxSdkVersion="29"
+        tools:ignore="ScopedStorage" />
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.WAKE_LOCK" />
 

+ 3 - 3
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
     }
 

+ 50 - 19
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
-                ) {
+            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")
-                    true
-                } else {
-                    Log.d(TAG, "Permission is revoked")
-                    false
+                    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
+                }
+            }
         }
     }
 }

+ 4 - 1
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) {