READ_EXTERNAL_STORAGE for android Q
This commit is contained in:
		@ -227,7 +227,7 @@ public class MainActivity extends AppCompatActivity {
 | 
			
		||||
 | 
			
		||||
    public static final int REQUEST_ID_READ_EXTERNAL_STORAGE = 2001;
 | 
			
		||||
 | 
			
		||||
    private  boolean checkAndRequestPermissions() {
 | 
			
		||||
    private boolean checkAndRequestPermissions() {
 | 
			
		||||
 | 
			
		||||
        if (ContextCompat.checkSelfPermission(
 | 
			
		||||
                this, Manifest.permission.READ_EXTERNAL_STORAGE) ==
 | 
			
		||||
 | 
			
		||||
@ -1,8 +1,10 @@
 | 
			
		||||
package com.localtransfer;
 | 
			
		||||
 | 
			
		||||
import android.Manifest;
 | 
			
		||||
import android.app.Activity;
 | 
			
		||||
import android.content.Intent;
 | 
			
		||||
import android.content.SharedPreferences;
 | 
			
		||||
import android.content.pm.PackageManager;
 | 
			
		||||
import android.os.Bundle;
 | 
			
		||||
import android.os.Environment;
 | 
			
		||||
import android.util.Log;
 | 
			
		||||
@ -10,6 +12,8 @@ import android.view.MenuItem;
 | 
			
		||||
 | 
			
		||||
import androidx.appcompat.app.ActionBar;
 | 
			
		||||
import androidx.appcompat.app.AppCompatActivity;
 | 
			
		||||
import androidx.core.app.ActivityCompat;
 | 
			
		||||
import androidx.core.content.ContextCompat;
 | 
			
		||||
import androidx.preference.Preference;
 | 
			
		||||
import androidx.preference.PreferenceFragmentCompat;
 | 
			
		||||
import androidx.preference.PreferenceManager;
 | 
			
		||||
@ -49,14 +53,22 @@ public class SettingsActivity extends AppCompatActivity {
 | 
			
		||||
 | 
			
		||||
            SwitchPreference shared;
 | 
			
		||||
            shared = findPreference("use_shared_storage");
 | 
			
		||||
            if(shared.isChecked())
 | 
			
		||||
                directory.setVisible(true);
 | 
			
		||||
            if(shared.isChecked()) {
 | 
			
		||||
                if(checkAndRequestPermissions())
 | 
			
		||||
                    directory.setVisible(true);
 | 
			
		||||
                else
 | 
			
		||||
                    shared.setChecked(false);
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
                directory.setVisible(false);
 | 
			
		||||
 | 
			
		||||
            shared.setOnPreferenceClickListener(preference -> {
 | 
			
		||||
                if(shared.isChecked())
 | 
			
		||||
                    directory.setVisible(true);
 | 
			
		||||
                if(shared.isChecked()) {
 | 
			
		||||
                    if(checkAndRequestPermissions())
 | 
			
		||||
                        directory.setVisible(true);
 | 
			
		||||
                    else
 | 
			
		||||
                        shared.setChecked(false);
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
                    directory.setVisible(false);
 | 
			
		||||
                return false;
 | 
			
		||||
@ -71,6 +83,35 @@ public class SettingsActivity extends AppCompatActivity {
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private boolean checkAndRequestPermissions() {
 | 
			
		||||
 | 
			
		||||
            if (ContextCompat.checkSelfPermission(
 | 
			
		||||
                    getActivity(), Manifest.permission.READ_EXTERNAL_STORAGE) ==
 | 
			
		||||
                    PackageManager.PERMISSION_GRANTED) {
 | 
			
		||||
                Log.d("READ_EXTERNAL_STORAGE", "already granted");
 | 
			
		||||
                return true;
 | 
			
		||||
            }
 | 
			
		||||
            else {
 | 
			
		||||
                ActivityCompat.requestPermissions(getActivity(), new String[] {android.Manifest.permission.READ_EXTERNAL_STORAGE}, MainActivity.REQUEST_ID_READ_EXTERNAL_STORAGE);
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
        @Override
 | 
			
		||||
        public void onRequestPermissionsResult(int requestCode,
 | 
			
		||||
                                               String permissions[],
 | 
			
		||||
                                               int[] grantResults) {
 | 
			
		||||
            switch (requestCode) {
 | 
			
		||||
                case MainActivity.REQUEST_ID_READ_EXTERNAL_STORAGE:
 | 
			
		||||
                    if (grantResults.length > 0 &&
 | 
			
		||||
                            grantResults[0] == PackageManager.PERMISSION_GRANTED) {
 | 
			
		||||
                        Log.d("READ_EXTERNAL_STORAGE", "granted");
 | 
			
		||||
                    }  else {
 | 
			
		||||
                        Log.d("READ_EXTERNAL_STORAGE", "No granted");
 | 
			
		||||
                    }
 | 
			
		||||
                    return;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        @Override
 | 
			
		||||
        public void onActivityResult(int requestCode, int resultCode, Intent data) {
 | 
			
		||||
            super.onActivityResult(requestCode, resultCode, data);
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user