WRITE_EXTERNAL_STORAGE at runtime in the backup bin file button
This commit is contained in:
parent
dae073dc62
commit
0c583fff18
2 changed files with 68 additions and 1 deletions
|
@ -8,6 +8,7 @@ import android.content.pm.PackageManager;
|
|||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v4.app.Fragment;
|
||||
|
@ -76,6 +77,7 @@ public class BackupsSettingsFragment extends Fragment{
|
|||
@BindView(R.id.btnBinFile)
|
||||
public Button btnBinFile;
|
||||
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
|
@ -107,9 +109,36 @@ public class BackupsSettingsFragment extends Fragment{
|
|||
startActivity(intent);
|
||||
}
|
||||
|
||||
|
||||
@OnClick(R.id.btnBinFile)
|
||||
public void makeBackupFile(){
|
||||
|
||||
/*
|
||||
* Check for WRITE_EXTERNAL_STORAGE permission
|
||||
* */
|
||||
if (Build.VERSION.SDK_INT >= 23) {
|
||||
if (checkPermission()) {
|
||||
// Code for above or equal 23 API Oriented Device
|
||||
// Your Permission granted already .Do next code
|
||||
|
||||
makeBackupfileAfterPermission();
|
||||
|
||||
} else {
|
||||
requestPermission(); // Code for permission
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
||||
// Code for Below 23 API Oriented Device
|
||||
// Do next code
|
||||
|
||||
makeBackupfileAfterPermission();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void makeBackupfileAfterPermission(){
|
||||
|
||||
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
|
||||
|
||||
LiveData<GeneralSetting> generalSettingLD = CrystalDatabase.getAppDatabase(getContext()).generalSettingDao().getByName(GeneralSetting.SETTING_PASSWORD);
|
||||
|
@ -144,4 +173,40 @@ public class BackupsSettingsFragment extends Fragment{
|
|||
});
|
||||
}
|
||||
}
|
||||
|
||||
private boolean checkPermission() {
|
||||
int result = ContextCompat.checkSelfPermission(getActivity(), android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
|
||||
if (result == PackageManager.PERMISSION_GRANTED) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private void requestPermission() {
|
||||
|
||||
if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), android.Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
|
||||
Toast.makeText(getActivity(), "Write External Storage permission allows us to do store images. Please allow this permission in App Settings.", Toast.LENGTH_LONG).show();
|
||||
} else {
|
||||
ActivityCompat.requestPermissions(getActivity(), new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSION_REQUEST_CODE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
|
||||
switch (requestCode) {
|
||||
case PERMISSION_REQUEST_CODE:
|
||||
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||
Log.e("value", "Permission Granted, Now you can use local drive .");
|
||||
|
||||
} else {
|
||||
Log.e("value", "Permission Denied, You cannot use local drive .");
|
||||
|
||||
makeBackupfileAfterPermission();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -79,6 +79,8 @@
|
|||
<string name="save">SAVE</string>
|
||||
<string name="next">NEXT</string>
|
||||
|
||||
<string name="ASK_PERMISSION">A permission need to be granted before to continue</string>
|
||||
|
||||
<string name="please_enter_brainkey">Please enter brainkey</string>
|
||||
<string name="please_enter_correct_brainkey">Please enter correct brainkey</string>
|
||||
<string name="balances">Balances</string>
|
||||
|
|
Loading…
Reference in a new issue