android 11 part 3, split api 10/19

This commit is contained in:
afischerdev 2021-08-31 11:29:05 +02:00
parent ae120c9f5a
commit f6e014f61d
17 changed files with 446 additions and 93 deletions

View file

@ -37,9 +37,6 @@ import android.util.Log;
import android.view.View;
import android.widget.Toast;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.core.os.EnvironmentCompat;
import btools.expressions.BExpressionContextWay;
import btools.expressions.BExpressionMetaData;
@ -131,7 +128,7 @@ public class BRouterView extends View
if (brd.getAbsolutePath().contains("/Android/data/")) {
String message = "(previous basedir " + baseDir + " has to migrate )" ;
( (BRouterActivity) getContext() ).selectBasedir( getStorageDirectories(), guessBaseDir(), message );
( (BRouterActivity) getContext() ).selectBasedir( ( (BRouterActivity) getContext() ).getStorageDirectories(), guessBaseDir(), message );
waitingForSelection = true;
waitingForMigration = true;
oldMigrationPath = brd.getAbsolutePath();
@ -145,7 +142,7 @@ public class BRouterView extends View
String message = baseDir == null ? "(no basedir configured previously)" : "(previous basedir " + baseDir
+ ( bdValid ? " does not contain 'brouter' subfolder)" : " is not valid)" );
( (BRouterActivity) getContext() ).selectBasedir( getStorageDirectories(), guessBaseDir(), message );
( (BRouterActivity) getContext() ).selectBasedir( ( (BRouterActivity) getContext() ).getStorageDirectories(), guessBaseDir(), message );
waitingForSelection = true;
}
catch (Exception e)
@ -179,11 +176,11 @@ public class BRouterView extends View
}
if ( !td.isDirectory() ) {
if (ContextCompat.checkSelfPermission (getContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED) {
if ( ( (BRouterActivity) getContext() ).checkSelfPermission (getContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
// if (ContextCompat.checkSelfPermission (getContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED) {
retryBaseDir = baseDir;
ActivityCompat.requestPermissions ((BRouterActivity) getContext(), new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 0);
} else {
( (BRouterActivity) getContext() ).selectBasedir( getStorageDirectories (), guessBaseDir(), "Cannot access " + baseDir.getAbsolutePath () + "; select another");
( (BRouterActivity) getContext() ).selectBasedir( ( (BRouterActivity) getContext() ).getStorageDirectories (), guessBaseDir(), "Cannot access " + baseDir.getAbsolutePath () + "; select another");
}
return;
}
@ -1175,23 +1172,4 @@ public class BRouterView extends View
}
}
private ArrayList<File> getStorageDirectories () {
ArrayList<File> list = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) {
list = new ArrayList<File>(Arrays.asList(getContext().getExternalMediaDirs()));
} else {
list = new ArrayList<File>(Arrays.asList(getContext().getExternalFilesDirs(null)));
}
ArrayList<File> res = new ArrayList<File>();
for (File f : list) {
if (f != null) {
if (EnvironmentCompat.getStorageState(f).equals(Environment.MEDIA_MOUNTED))
res.add (f);
}
}
// res.add(getContext().getFilesDir());
return res;
}
}