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;
 | 
					    public static final int REQUEST_ID_READ_EXTERNAL_STORAGE = 2001;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private  boolean checkAndRequestPermissions() {
 | 
					    private boolean checkAndRequestPermissions() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (ContextCompat.checkSelfPermission(
 | 
					        if (ContextCompat.checkSelfPermission(
 | 
				
			||||||
                this, Manifest.permission.READ_EXTERNAL_STORAGE) ==
 | 
					                this, Manifest.permission.READ_EXTERNAL_STORAGE) ==
 | 
				
			||||||
 | 
				
			|||||||
@ -1,8 +1,10 @@
 | 
				
			|||||||
package com.localtransfer;
 | 
					package com.localtransfer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import android.Manifest;
 | 
				
			||||||
import android.app.Activity;
 | 
					import android.app.Activity;
 | 
				
			||||||
import android.content.Intent;
 | 
					import android.content.Intent;
 | 
				
			||||||
import android.content.SharedPreferences;
 | 
					import android.content.SharedPreferences;
 | 
				
			||||||
 | 
					import android.content.pm.PackageManager;
 | 
				
			||||||
import android.os.Bundle;
 | 
					import android.os.Bundle;
 | 
				
			||||||
import android.os.Environment;
 | 
					import android.os.Environment;
 | 
				
			||||||
import android.util.Log;
 | 
					import android.util.Log;
 | 
				
			||||||
@ -10,6 +12,8 @@ import android.view.MenuItem;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import androidx.appcompat.app.ActionBar;
 | 
					import androidx.appcompat.app.ActionBar;
 | 
				
			||||||
import androidx.appcompat.app.AppCompatActivity;
 | 
					import androidx.appcompat.app.AppCompatActivity;
 | 
				
			||||||
 | 
					import androidx.core.app.ActivityCompat;
 | 
				
			||||||
 | 
					import androidx.core.content.ContextCompat;
 | 
				
			||||||
import androidx.preference.Preference;
 | 
					import androidx.preference.Preference;
 | 
				
			||||||
import androidx.preference.PreferenceFragmentCompat;
 | 
					import androidx.preference.PreferenceFragmentCompat;
 | 
				
			||||||
import androidx.preference.PreferenceManager;
 | 
					import androidx.preference.PreferenceManager;
 | 
				
			||||||
@ -49,14 +53,22 @@ public class SettingsActivity extends AppCompatActivity {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            SwitchPreference shared;
 | 
					            SwitchPreference shared;
 | 
				
			||||||
            shared = findPreference("use_shared_storage");
 | 
					            shared = findPreference("use_shared_storage");
 | 
				
			||||||
            if(shared.isChecked())
 | 
					            if(shared.isChecked()) {
 | 
				
			||||||
                directory.setVisible(true);
 | 
					                if(checkAndRequestPermissions())
 | 
				
			||||||
 | 
					                    directory.setVisible(true);
 | 
				
			||||||
 | 
					                else
 | 
				
			||||||
 | 
					                    shared.setChecked(false);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
                directory.setVisible(false);
 | 
					                directory.setVisible(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            shared.setOnPreferenceClickListener(preference -> {
 | 
					            shared.setOnPreferenceClickListener(preference -> {
 | 
				
			||||||
                if(shared.isChecked())
 | 
					                if(shared.isChecked()) {
 | 
				
			||||||
                    directory.setVisible(true);
 | 
					                    if(checkAndRequestPermissions())
 | 
				
			||||||
 | 
					                        directory.setVisible(true);
 | 
				
			||||||
 | 
					                    else
 | 
				
			||||||
 | 
					                        shared.setChecked(false);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
                else
 | 
					                else
 | 
				
			||||||
                    directory.setVisible(false);
 | 
					                    directory.setVisible(false);
 | 
				
			||||||
                return 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
 | 
					        @Override
 | 
				
			||||||
        public void onActivityResult(int requestCode, int resultCode, Intent data) {
 | 
					        public void onActivityResult(int requestCode, int resultCode, Intent data) {
 | 
				
			||||||
            super.onActivityResult(requestCode, resultCode, data);
 | 
					            super.onActivityResult(requestCode, resultCode, data);
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user