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 @@ - - - - + - - - -