diff app/src/main/java/com/five_ten_sg/connectbot/HostListActivity.java @ 498:3feac274a27b

updates for android10+
author Carl Byington <carl@five-ten-sg.com>
date Mon, 06 Jun 2022 15:05:20 -0700
parents 73fa7329dc87
children 267e72057707
line wrap: on
line diff
--- a/app/src/main/java/com/five_ten_sg/connectbot/HostListActivity.java	Mon Jun 06 13:01:45 2022 -0700
+++ b/app/src/main/java/com/five_ten_sg/connectbot/HostListActivity.java	Mon Jun 06 15:05:20 2022 -0700
@@ -53,6 +53,7 @@
 import android.os.IBinder;
 import android.os.Message;
 import android.preference.PreferenceManager;
+import android.provider.Settings;
 import android.util.Log;
 import android.view.ContextMenu;
 import android.view.KeyEvent;
@@ -177,9 +178,26 @@
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
             String [] perms = {Manifest.permission.INTERNET,
                                Manifest.permission.ACCESS_NETWORK_STATE,
-                               Manifest.permission.WAKE_LOCK,
-                               Manifest.permission.WRITE_EXTERNAL_STORAGE};
+                               Manifest.permission.WAKE_LOCK};
             checkp(perms);
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
+                if (!Environment.isExternalStorageManager()) {
+                    try {
+                        Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
+                        intent.addCategory("android.intent.category.DEFAULT");
+                        intent.setData(Uri.parse(String.format("package:%s",getApplicationContext().getPackageName())));
+                        startActivity(intent);
+                    } catch (Exception e) {
+                        Intent intent = new Intent();
+                        intent.setAction(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION);
+                        startActivity(intent);
+                    }
+                }
+            }
+            else {
+                String [] perms2 = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
+                checkp(perms2);
+            }
         }
 
         // detect HTC Dream and apply special preferences