diff app/src/main/java/com/five_ten_sg/connectbot/HostListActivity.java @ 499:267e72057707

updates for android10+
author Carl Byington <carl@five-ten-sg.com>
date Tue, 07 Jun 2022 16:04:52 -0700
parents 3feac274a27b
children 11d714165a2d
line wrap: on
line diff
--- a/app/src/main/java/com/five_ten_sg/connectbot/HostListActivity.java	Mon Jun 06 15:05:20 2022 -0700
+++ b/app/src/main/java/com/five_ten_sg/connectbot/HostListActivity.java	Tue Jun 07 16:04:52 2022 -0700
@@ -176,27 +176,14 @@
 
         // ask for permissions, must match AndroidManifest.xml
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
-            String [] perms = {Manifest.permission.INTERNET,
-                               Manifest.permission.ACCESS_NETWORK_STATE,
-                               Manifest.permission.WAKE_LOCK};
-            checkp(perms);
+            get_permissions(new String[] {Manifest.permission.ACCESS_NETWORK_STATE,
+                                          Manifest.permission.INTERNET,
+                                          Manifest.permission.WAKE_LOCK});
             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);
-                    }
-                }
+                get_storage_manager();
             }
             else {
-                String [] perms2 = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
-                checkp(perms2);
+                get_permissions(new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE});
             }
         }
 
@@ -291,7 +278,34 @@
         }
     }
 
-    public void checkp(String [] perms) {
+    public void get_storage_manager() {
+        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())));
+                startActivityForResult(intent, 31415);
+            } catch (Exception e) {
+                Intent intent = new Intent();
+                intent.setAction(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION);
+                startActivityForResult(intent, 31415);
+            }
+        }
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (requestCode == 31415) {
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
+                if (!Environment.isExternalStorageManager()) {
+                    Toast.makeText(this, "Allow permission for storage access!", Toast.LENGTH_SHORT).show();
+                }
+            }
+        }
+    }
+
+    public void get_permissions(String [] perms) {
         boolean need = false;
         for (String perm : perms) {
             if (ContextCompat.checkSelfPermission(this, perm) != PackageManager.PERMISSION_GRANTED) {