Skip to content

Commit

Permalink
Experimental Android SDK31 & all files access, CI/CD github update ja…
Browse files Browse the repository at this point in the history
…va version to 11 #1359
  • Loading branch information
gsantner committed Aug 11, 2022
1 parent 094caa1 commit db98069
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 8 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build-android-project.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
- name: "Setup: Java"
uses: actions/setup-java@v1
with:
java-version: 1.8
java-version: 11

- name: "Setup: Install additional dependencies"
run: sudo apt-get install -y ispell
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ test:
$(MAKE) A="-test" gradle-analyze-log

clean:
$(MAKE) A="clean cleanBuildCache" gradle
$(MAKE) A="clean" gradle
rm -Rf $(DIST_DIR) app/build app/flavor* .idea dist
find . -type f -iname "*.iml" -delete
$(MAKE) $(DIST_DIR)
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission
android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />

<uses-feature
android:name="android.hardware.touchscreen"
Expand Down
27 changes: 25 additions & 2 deletions app/src/main/java/net/gsantner/opoc/util/ShareUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import android.print.PrintManager;
import android.provider.CalendarContract;
import android.provider.MediaStore;
import android.provider.Settings;
import android.support.annotation.DrawableRes;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
Expand Down Expand Up @@ -1319,8 +1320,25 @@ public boolean checkExternalStoragePermission(final boolean doRequest, String...
final int v = android.os.Build.VERSION.SDK_INT;
final AtomicReference<Callback.a0> permissionRequest = new AtomicReference<>();

// On Android R+ - check externalStorageManager is granted, otherwise request it
if (v >= android.os.Build.VERSION_CODES.R && !Environment.isExternalStorageManager()) {
permissionRequest.set(() -> {
ContextUtils cu = new ContextUtils(activity.getApplicationContext());
try {
Uri uri = Uri.parse("package:" + cu.getPackageIdReal());
Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION, uri);
activity.startActivityForResult(intent, REQUEST_STORAGE_PERMISSION_R);
} catch (Exception ex) {
Intent intent = new Intent();
intent.setAction(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION);
activity.startActivityForResult(intent, REQUEST_STORAGE_PERMISSION_R);
}
cu.freeContextRef();
});
}

// On Android M-Q - request M permission
if (v >= android.os.Build.VERSION_CODES.M && ContextCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
if (v >= android.os.Build.VERSION_CODES.M && v < android.os.Build.VERSION_CODES.R && ContextCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
permissionRequest.set(() -> ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_STORAGE_PERMISSION_M));
}

Expand All @@ -1338,8 +1356,13 @@ public boolean checkExternalStoragePermission(final boolean doRequest, String...
}
}

// Android R Manage-All-Files permission
if (v >= android.os.Build.VERSION_CODES.R) {
return Environment.isExternalStorageManager();
}

// Android M permissions
if (v >= android.os.Build.VERSION_CODES.M) {
if (v >= android.os.Build.VERSION_CODES.M && v < android.os.Build.VERSION_CODES.R) {
return ContextCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED;
}

Expand Down
6 changes: 3 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@ import java.text.SimpleDateFormat

buildscript {
ext {
version_gradle_tools = "3.6.3"
version_gradle_tools = "7.2.1"
version_plugin_kotlin = "1.3.72"
enable_plugin_kotlin = false

version_compileSdk = 29
version_buildTools = "29.0.3"
version_compileSdk = 33
version_buildTools = "33.0.0"
version_minSdk = 17

// https://developer.android.com/topic/libraries/support-library/
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#Thu Dec 02 03:48:33 CET 2021
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.1-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME

0 comments on commit db98069

Please sign in to comment.