diff --git a/app/build.gradle b/app/build.gradle
index c7bc4c92..38d771d6 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -53,7 +53,6 @@ dependencies {
implementation 'com.google.android.material:material:1.3.0-rc01'
implementation 'com.github.bumptech.glide:glide:4.11.0'
- implementation 'moe.shizuku.privilege:api:3.1.0'
implementation 'com.google.android:flexbox:2.0.1'
implementation 'com.tomergoldst.android:tooltips:1.0.11'
implementation 'com.google.code.gson:gson:2.8.6'
@@ -70,6 +69,11 @@ dependencies {
normalImplementation 'com.google.firebase:firebase-crashlytics:17.3.1'
normalImplementation 'com.android.billingclient:billing:3.0.2'
+ //Shizuku/Sui
+ def shizuku_version = '11.0.1'
+ implementation "rikka.shizuku:api:$shizuku_version"
+ implementation "rikka.shizuku:provider:$shizuku_version"
+
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.3'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 009b74bf..14e1f1c4 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -3,6 +3,8 @@
xmlns:tools="http://schemas.android.com/tools"
package="com.aefyr.sai">
+
+
@@ -303,12 +305,19 @@
+
+
+
= 11) {
+ if (Shizuku.checkSelfPermission() == PackageManager.PERMISSION_GRANTED) {
+ installerSet = true;
+ } else {
+ Shizuku.requestPermission(PermissionsUtils.REQUEST_CODE_SHIZUKU);
+ }
+ } else {
+ installerSet = PermissionsUtils.checkAndRequestShizukuPermissions(this);
+ }
+
break;
}
if (installerSet) {
@@ -326,6 +340,10 @@ public void onDialogDismissed(@NonNull String dialogTag) {
public void onDestroy() {
super.onDestroy();
getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
+
+ if (Utils.apiIsAtLeast(Build.VERSION_CODES.M)) {
+ Shizuku.removeRequestPermissionResultListener(this);
+ }
}
@SuppressLint("ApplySharedPref")
@@ -343,4 +361,18 @@ public void onThemesChosen(@Nullable String tag, Theme.ThemeDescriptor lightThem
theme.setLightTheme(lightTheme);
theme.setDarkTheme(darkTheme);
}
+
+ @Override
+ public void onRequestPermissionResult(int requestCode, int grantResult) {
+ switch (requestCode) {
+ case PermissionsUtils.REQUEST_CODE_SHIZUKU:
+ if (grantResult == PackageManager.PERMISSION_DENIED)
+ AlertsUtils.showAlert(this, R.string.error, R.string.permissions_required_shizuku);
+ else {
+ mHelper.setInstaller(PreferencesValues.INSTALLER_SHIZUKU);
+ updateInstallerSummary();
+ }
+ break;
+ }
+ }
}
diff --git a/build.gradle b/build.gradle
index 3e382aa7..c986356f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -23,6 +23,12 @@ allprojects {
google()
jcenter()
maven { url "https://jitpack.io" }
+ maven {
+ url 'https://dl.bintray.com/rikkaw/Libraries'
+ content {
+ includeGroup "rikka.shizuku"
+ }
+ }
}
}