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
	 lionel
					lionel