+ public void readableCheckAndError(boolean requestPermission) {
+ final File dictDir = application.getDictDir();
+ if (dictDir.canRead() && dictDir.canExecute()) return;
+ blockAutoLaunch = true;
+ if (requestPermission &&
+ ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
+ ActivityCompat.requestPermissions(this,
+ new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,
+ Manifest.permission.WRITE_EXTERNAL_STORAGE}, 0);
+ return;
+ }
+ blockAutoLaunch = true;
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(getListView().getContext());
+ builder.setTitle(getString(R.string.error));
+ builder.setMessage(getString(
+ R.string.unableToReadDictionaryDir,
+ dictDir.getAbsolutePath(),
+ Environment.getExternalStorageDirectory()));
+ builder.setNeutralButton("Close", null);
+ builder.create().show();
+ }
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
+ readableCheckAndError(false);
+
+ application.backgroundUpdateDictionaries(dictionaryUpdater);
+
+ setMyListAdapater();
+ }
+