diff --git a/app/build.gradle b/app/build.gradle
index f07c05e8b..6e03387f2 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,6 +9,7 @@ android {
buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig {
+ minSdkVersion 17
applicationId "com.topjohnwu.magisk"
targetSdkVersion rootProject.ext.compileSdkVersion
vectorDrawables.useSupportLibrary = true
@@ -41,7 +42,6 @@ android {
productFlavors {
full {
- minSdkVersion 21
versionName configProps['appVersion']
versionCode configProps['appVersionCode'] as Integer
javaCompileOptions {
@@ -51,7 +51,6 @@ android {
}
}
stub {
- minSdkVersion 17
versionCode 1
versionName "stub"
}
diff --git a/app/src/full/AndroidManifest.xml b/app/src/full/AndroidManifest.xml
index dae10ff4c..0c15f3eef 100644
--- a/app/src/full/AndroidManifest.xml
+++ b/app/src/full/AndroidManifest.xml
@@ -32,15 +32,15 @@
+ android:theme="@style/AppTheme.NoDrawer" />
+ android:theme="@style/AppTheme.NoDrawer"/>
+ android:theme="@style/AppTheme.NoDrawer" />
diff --git a/app/src/full/java/a/w.java b/app/src/full/java/a/w.java
index 3b8b94fa9..d144ed884 100644
--- a/app/src/full/java/a/w.java
+++ b/app/src/full/java/a/w.java
@@ -22,7 +22,7 @@ public class w extends Worker {
try {
base = ((Class) ((ParameterizedType) getClass().getGenericSuperclass())
.getActualTypeArguments()[0]).newInstance();
- } catch (IllegalAccessException | InstantiationException ignored) {}
+ } catch (Exception ignored) {}
}
@NonNull
diff --git a/app/src/full/java/com/topjohnwu/magisk/AboutActivity.java b/app/src/full/java/com/topjohnwu/magisk/AboutActivity.java
index ee9a01996..104ccb851 100644
--- a/app/src/full/java/com/topjohnwu/magisk/AboutActivity.java
+++ b/app/src/full/java/com/topjohnwu/magisk/AboutActivity.java
@@ -30,7 +30,7 @@ public class AboutActivity extends BaseActivity {
@Override
public int getDarkTheme() {
- return R.style.AppTheme_StatusBar_Dark;
+ return R.style.AppTheme_NoDrawer_Dark;
}
@Override
diff --git a/app/src/full/java/com/topjohnwu/magisk/DonationActivity.java b/app/src/full/java/com/topjohnwu/magisk/DonationActivity.java
index d26316850..600e0144a 100644
--- a/app/src/full/java/com/topjohnwu/magisk/DonationActivity.java
+++ b/app/src/full/java/com/topjohnwu/magisk/DonationActivity.java
@@ -21,7 +21,7 @@ public class DonationActivity extends BaseActivity {
@Override
public int getDarkTheme() {
- return R.style.AppTheme_StatusBar_Dark;
+ return R.style.AppTheme_NoDrawer_Dark;
}
@Override
diff --git a/app/src/full/java/com/topjohnwu/magisk/FlashActivity.java b/app/src/full/java/com/topjohnwu/magisk/FlashActivity.java
index 7b8bd0ef3..99ae7f264 100644
--- a/app/src/full/java/com/topjohnwu/magisk/FlashActivity.java
+++ b/app/src/full/java/com/topjohnwu/magisk/FlashActivity.java
@@ -85,7 +85,7 @@ public class FlashActivity extends BaseActivity {
@Override
public int getDarkTheme() {
- return R.style.AppTheme_StatusBar_Dark;
+ return R.style.AppTheme_NoDrawer_Dark;
}
@Override
diff --git a/app/src/full/java/com/topjohnwu/magisk/MainActivity.java b/app/src/full/java/com/topjohnwu/magisk/MainActivity.java
index df17e2d2a..8e70c02e5 100644
--- a/app/src/full/java/com/topjohnwu/magisk/MainActivity.java
+++ b/app/src/full/java/com/topjohnwu/magisk/MainActivity.java
@@ -1,6 +1,7 @@
package com.topjohnwu.magisk;
import android.content.Intent;
+import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;
@@ -75,7 +76,9 @@ public class MainActivity extends BaseActivity
}
};
- toolbarElevation = toolbar.getElevation();
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+ toolbarElevation = toolbar.getElevation();
+ }
drawer.addDrawerListener(toggle);
toggle.syncState();
@@ -208,6 +211,8 @@ public class MainActivity extends BaseActivity
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.replace(R.id.content_frame, navFragment)
.commitNow();
- toolbar.setElevation(setElevation ? toolbarElevation : 0);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+ toolbar.setElevation(setElevation ? toolbarElevation : 0);
+ }
}
}
diff --git a/app/src/full/java/com/topjohnwu/magisk/SuRequestActivity.java b/app/src/full/java/com/topjohnwu/magisk/SuRequestActivity.java
index 04889186a..8bf763e44 100644
--- a/app/src/full/java/com/topjohnwu/magisk/SuRequestActivity.java
+++ b/app/src/full/java/com/topjohnwu/magisk/SuRequestActivity.java
@@ -25,6 +25,7 @@ import com.topjohnwu.magisk.utils.SuConnector;
import java.io.IOException;
import androidx.annotation.Nullable;
+import androidx.appcompat.content.res.AppCompatResources;
import butterknife.BindView;
public class SuRequestActivity extends BaseActivity {
@@ -125,7 +126,8 @@ public class SuRequestActivity extends BaseActivity {
appIcon.setImageDrawable(policy.info.loadIcon(pm));
appNameView.setText(policy.appName);
packageNameView.setText(policy.packageName);
- warning.setCompoundDrawablesRelativeWithIntrinsicBounds(getDrawable(R.drawable.ic_warning), null, null, null);
+ warning.setCompoundDrawablesRelativeWithIntrinsicBounds(
+ AppCompatResources.getDrawable(this, R.drawable.ic_warning), null, null, null);
ArrayAdapter adapter = ArrayAdapter.createFromResource(this,
R.array.allow_timeout, android.R.layout.simple_spinner_item);
diff --git a/app/src/full/java/com/topjohnwu/magisk/components/BaseActivity.java b/app/src/full/java/com/topjohnwu/magisk/components/BaseActivity.java
index e8d5b0c76..c294c3eab 100644
--- a/app/src/full/java/com/topjohnwu/magisk/components/BaseActivity.java
+++ b/app/src/full/java/com/topjohnwu/magisk/components/BaseActivity.java
@@ -20,6 +20,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StyleRes;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
@@ -33,6 +34,10 @@ public abstract class BaseActivity extends AppCompatActivity implements Topic.Au
private ActivityResultListener activityResultListener;
public App app = App.self;
+ static {
+ AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
+ }
+
@Override
public int[] getSubscribedTopics() {
return EMPTY_INT_ARRAY;
diff --git a/app/src/full/java/com/topjohnwu/magisk/fragments/LogFragment.java b/app/src/full/java/com/topjohnwu/magisk/fragments/LogFragment.java
index 904363604..96781b001 100644
--- a/app/src/full/java/com/topjohnwu/magisk/fragments/LogFragment.java
+++ b/app/src/full/java/com/topjohnwu/magisk/fragments/LogFragment.java
@@ -1,6 +1,7 @@
package com.topjohnwu.magisk.fragments;
+import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@@ -27,7 +28,9 @@ public class LogFragment extends BaseFragment {
View v = inflater.inflate(R.layout.fragment_log, container, false);
unbinder = new LogFragment_ViewBinding(this, v);
- ((MainActivity) requireActivity()).toolbar.setElevation(0);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+ ((MainActivity) requireActivity()).toolbar.setElevation(0);
+ }
TabFragmentAdapter adapter = new TabFragmentAdapter(getChildFragmentManager());
diff --git a/app/src/full/java/com/topjohnwu/magisk/fragments/SettingsFragment.java b/app/src/full/java/com/topjohnwu/magisk/fragments/SettingsFragment.java
index 641a1c406..ac8986e27 100644
--- a/app/src/full/java/com/topjohnwu/magisk/fragments/SettingsFragment.java
+++ b/app/src/full/java/com/topjohnwu/magisk/fragments/SettingsFragment.java
@@ -37,7 +37,7 @@ import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceGroupAdapter;
import androidx.preference.PreferenceScreen;
import androidx.preference.PreferenceViewHolder;
-import androidx.preference.SwitchPreference;
+import androidx.preference.SwitchPreferenceCompat;
import androidx.recyclerview.widget.RecyclerView;
public class SettingsFragment extends PreferenceFragmentCompat
@@ -105,8 +105,8 @@ public class SettingsFragment extends PreferenceFragmentCompat
suNotification = (ListPreference) findPreference(Const.Key.SU_NOTIFICATION);
multiuserConfig = (ListPreference) findPreference(Const.Key.SU_MULTIUSER_MODE);
nsConfig = (ListPreference) findPreference(Const.Key.SU_MNT_NS);
- SwitchPreference reauth = (SwitchPreference) findPreference(Const.Key.SU_REAUTH);
- SwitchPreference fingerprint = (SwitchPreference) findPreference(Const.Key.SU_FINGERPRINT);
+ SwitchPreferenceCompat reauth = (SwitchPreferenceCompat) findPreference(Const.Key.SU_REAUTH);
+ SwitchPreferenceCompat fingerprint = (SwitchPreferenceCompat) findPreference(Const.Key.SU_FINGERPRINT);
updateChannel.setOnPreferenceChangeListener((p, o) -> {
String prev =String.valueOf(Data.updateChannel);
@@ -182,7 +182,7 @@ public class SettingsFragment extends PreferenceFragmentCompat
int i = 1;
for (Locale locale : LocaleManager.locales) {
entries[i] = locale.getDisplayName(locale);
- entryValues[i++] = locale.toLanguageTag();
+ entryValues[i++] = LocaleManager.toLanguageTag(locale);
}
lp.setEntries(entries);
lp.setEntryValues(entryValues);
@@ -264,10 +264,10 @@ public class SettingsFragment extends PreferenceFragmentCompat
String key = preference.getKey();
switch (key) {
case Const.Key.SU_FINGERPRINT:
- boolean checked = ((SwitchPreference) preference).isChecked();
- ((SwitchPreference) preference).setChecked(!checked);
+ boolean checked = ((SwitchPreferenceCompat) preference).isChecked();
+ ((SwitchPreferenceCompat) preference).setChecked(!checked);
FingerprintHelper.showAuthDialog(requireActivity(), () -> {
- ((SwitchPreference) preference).setChecked(checked);
+ ((SwitchPreferenceCompat) preference).setChecked(checked);
app.mDB.setSettings(key, checked ? 1 : 0);
});
break;
diff --git a/app/src/full/res/drawable/ic_magisk_outline.xml b/app/src/full/res/drawable-anydpi-v21/ic_magisk_outline.xml
similarity index 100%
rename from app/src/full/res/drawable/ic_magisk_outline.xml
rename to app/src/full/res/drawable-anydpi-v21/ic_magisk_outline.xml
diff --git a/app/src/full/res/drawable-v26/ic_launcher.xml b/app/src/full/res/drawable-anydpi-v26/ic_launcher.xml
similarity index 100%
rename from app/src/full/res/drawable-v26/ic_launcher.xml
rename to app/src/full/res/drawable-anydpi-v26/ic_launcher.xml
diff --git a/app/src/full/res/drawable-hdpi/ic_launcher.png b/app/src/full/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 000000000..3c4c52b98
Binary files /dev/null and b/app/src/full/res/drawable-hdpi/ic_launcher.png differ
diff --git a/app/src/full/res/drawable-hdpi/ic_magisk_outline.png b/app/src/full/res/drawable-hdpi/ic_magisk_outline.png
new file mode 100644
index 000000000..b00ea473b
Binary files /dev/null and b/app/src/full/res/drawable-hdpi/ic_magisk_outline.png differ
diff --git a/app/src/full/res/drawable-mdpi/ic_launcher.png b/app/src/full/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 000000000..bd7bb1261
Binary files /dev/null and b/app/src/full/res/drawable-mdpi/ic_launcher.png differ
diff --git a/app/src/full/res/drawable-mdpi/ic_magisk_outline.png b/app/src/full/res/drawable-mdpi/ic_magisk_outline.png
new file mode 100644
index 000000000..5d032d14a
Binary files /dev/null and b/app/src/full/res/drawable-mdpi/ic_magisk_outline.png differ
diff --git a/app/src/full/res/drawable-xhdpi/ic_launcher.png b/app/src/full/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 000000000..1a121dded
Binary files /dev/null and b/app/src/full/res/drawable-xhdpi/ic_launcher.png differ
diff --git a/app/src/full/res/drawable-xhdpi/ic_magisk_outline.png b/app/src/full/res/drawable-xhdpi/ic_magisk_outline.png
new file mode 100644
index 000000000..43fddb19c
Binary files /dev/null and b/app/src/full/res/drawable-xhdpi/ic_magisk_outline.png differ
diff --git a/app/src/full/res/drawable-xxhdpi/ic_launcher.png b/app/src/full/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 000000000..1a1635633
Binary files /dev/null and b/app/src/full/res/drawable-xxhdpi/ic_launcher.png differ
diff --git a/app/src/full/res/drawable-xxhdpi/ic_magisk_outline.png b/app/src/full/res/drawable-xxhdpi/ic_magisk_outline.png
new file mode 100644
index 000000000..0d47b4e6e
Binary files /dev/null and b/app/src/full/res/drawable-xxhdpi/ic_magisk_outline.png differ
diff --git a/app/src/full/res/drawable-xxxhdpi/ic_launcher.png b/app/src/full/res/drawable-xxxhdpi/ic_launcher.png
new file mode 100644
index 000000000..5098e384b
Binary files /dev/null and b/app/src/full/res/drawable-xxxhdpi/ic_launcher.png differ
diff --git a/app/src/full/res/drawable-xxxhdpi/ic_magisk_outline.png b/app/src/full/res/drawable-xxxhdpi/ic_magisk_outline.png
new file mode 100644
index 000000000..c1598e8db
Binary files /dev/null and b/app/src/full/res/drawable-xxxhdpi/ic_magisk_outline.png differ
diff --git a/app/src/full/res/layout/activity_about.xml b/app/src/full/res/layout/activity_about.xml
index aeba3daf3..3a291d635 100644
--- a/app/src/full/res/layout/activity_about.xml
+++ b/app/src/full/res/layout/activity_about.xml
@@ -39,7 +39,7 @@
android:padding="16dp">
diff --git a/app/src/full/res/layout/fragment_magisk.xml b/app/src/full/res/layout/fragment_magisk.xml
index 8ba723094..329817772 100644
--- a/app/src/full/res/layout/fragment_magisk.xml
+++ b/app/src/full/res/layout/fragment_magisk.xml
@@ -343,7 +343,7 @@
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_marginEnd="5dp"
- app:srcCompat="@drawable/ic_logo" />
+ app:srcCompat="@drawable/ic_launcher" />
diff --git a/app/src/full/res/layout/section.xml b/app/src/full/res/layout/section.xml
index 2340591a6..e5dd8d3cc 100644
--- a/app/src/full/res/layout/section.xml
+++ b/app/src/full/res/layout/section.xml
@@ -6,7 +6,7 @@
android:gravity="center_vertical"
android:paddingStart="16dp"
android:textAllCaps="true"
- android:textColor="?android:colorAccent"
+ android:textColor="?colorAccent"
android:background="@android:color/transparent"
android:textSize="16sp"
android:id="@+id/section_text"
diff --git a/app/src/full/res/menu/menu_repo.xml b/app/src/full/res/menu/menu_repo.xml
index 9d26a596d..38f3e5b23 100644
--- a/app/src/full/res/menu/menu_repo.xml
+++ b/app/src/full/res/menu/menu_repo.xml
@@ -4,6 +4,7 @@
diff --git a/app/src/full/res/values-sw600dp/styles.xml b/app/src/full/res/values-sw600dp/styles.xml
index 73325c6af..a455075ff 100644
--- a/app/src/full/res/values-sw600dp/styles.xml
+++ b/app/src/full/res/values-sw600dp/styles.xml
@@ -1,17 +1,13 @@
-
-
+
\ No newline at end of file
diff --git a/app/src/full/res/values-v21/styles.xml b/app/src/full/res/values-v21/styles.xml
new file mode 100644
index 000000000..4b500171a
--- /dev/null
+++ b/app/src/full/res/values-v21/styles.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/full/res/values/styles.xml b/app/src/full/res/values/styles.xml
index 590186b59..34afe62aa 100644
--- a/app/src/full/res/values/styles.xml
+++ b/app/src/full/res/values/styles.xml
@@ -1,42 +1,35 @@
-
-
-
-
+
+
+
+
+
-
-
-
-