From 6adf2bc14d818bccfe9f26d28bbbd1f2def16ddd Mon Sep 17 00:00:00 2001 From: NekoInverter <42698724+NekoInverter@users.noreply.github.com> Date: Fri, 7 Feb 2020 11:56:04 +0800 Subject: [PATCH] Fix possible crash & layout adjustments & transparent status bar --- app/build.gradle | 6 +- .../edxposed/manager/BaseActivity.java | 8 ++ .../edxposed/manager/DownloadActivity.java | 6 +- .../edxposed/manager/ModulesActivity.java | 4 +- .../edxposed/manager/SettingsActivity.java | 16 +++ .../meowcat/edxposed/manager/XposedApp.java | 7 +- .../edxposed/manager/adapters/AppAdapter.java | 4 +- .../main/res/layout/activity_crash_report.xml | 4 +- app/src/main/res/layout/download_details.xml | 19 ++- app/src/main/res/layout/download_moreinfo.xml | 3 +- app/src/main/res/layout/item_module.xml | 108 +++++++++--------- app/src/main/res/values-zh-rCN/strings.xml | 3 +- app/src/main/res/values-zh-rHK/strings.xml | 3 +- app/src/main/res/values-zh-rTW/strings.xml | 3 +- app/src/main/res/values/strings.xml | 3 +- app/src/main/res/xml/prefs.xml | 5 + 16 files changed, 124 insertions(+), 78 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index b528a4f2..d9510a46 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId "org.meowcat.edxposed.manager" minSdkVersion 21 targetSdkVersion 27 - versionCode 45405 - versionName "4.5.4.1" + versionCode 45406 + versionName "4.5.4.2" } buildTypes { release { @@ -34,7 +34,7 @@ dependencies { implementation 'com.google.android.material:material:1.2.0-alpha04' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.0.0' implementation 'com.github.bumptech.glide:glide:4.11.0' - implementation "com.github.topjohnwu.libsu:core:2.5.0" + implementation "com.github.topjohnwu.libsu:core:2.5.1" implementation 'androidx.browser:browser:1.2.0' implementation 'com.timehop.stickyheadersrecyclerview:library:0.4.3@aar' implementation 'com.takisoft.preferencex:preferencex:1.1.0' diff --git a/app/src/main/java/org/meowcat/edxposed/manager/BaseActivity.java b/app/src/main/java/org/meowcat/edxposed/manager/BaseActivity.java index 76e15382..31b08f2b 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/BaseActivity.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/BaseActivity.java @@ -21,6 +21,7 @@ import androidx.annotation.StyleRes; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatDelegate; import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; import androidx.core.view.ViewCompat; import com.google.android.material.dialog.MaterialAlertDialogBuilder; @@ -85,6 +86,13 @@ public class BaseActivity extends AppCompatActivity { @Override protected void onResume() { super.onResume(); + if (!(this instanceof MainActivity) && !XposedApp.getPreferences().getBoolean("black_dark_theme", false)) { + if (XposedApp.getPreferences().getBoolean("transparent_status_bar", false)) { + getWindow().setStatusBarColor(ContextCompat.getColor(this, R.color.colorActionBar)); + } else { + getWindow().setStatusBarColor(ContextCompat.getColor(this, R.color.colorPrimaryDark)); + } + } if (!Objects.equals(mTheme, getTheme(this))) { recreate(); } diff --git a/app/src/main/java/org/meowcat/edxposed/manager/DownloadActivity.java b/app/src/main/java/org/meowcat/edxposed/manager/DownloadActivity.java index 26efef52..b200f611 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/DownloadActivity.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/DownloadActivity.java @@ -177,8 +177,10 @@ public class DownloadActivity extends BaseActivity implements RepoLoader.RepoLis } private void reloadItems() { - mAdapter.swapCursor(RepoDb.queryModuleOverview(mSortingOrder, mFilterText)); - mAdapter.notifyDataSetChanged(); + runOnUiThread(() -> { + mAdapter.swapCursor(RepoDb.queryModuleOverview(mSortingOrder, mFilterText)); + mAdapter.notifyDataSetChanged(); + }); } @Override diff --git a/app/src/main/java/org/meowcat/edxposed/manager/ModulesActivity.java b/app/src/main/java/org/meowcat/edxposed/manager/ModulesActivity.java index dcd172a5..7742a790 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/ModulesActivity.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/ModulesActivity.java @@ -54,10 +54,12 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.text.DateFormat; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Objects; import java.util.Set; @@ -72,7 +74,7 @@ public class ModulesActivity extends BaseActivity implements ModuleUtil.ModuleLi private SearchView mSearchView; private SearchView.OnQueryTextListener mSearchListener; private PackageManager mPm; - private DateFormat dateformat = DateFormat.getDateInstance(DateFormat.SHORT); + private DateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()); private ModuleUtil mModuleUtil; private ModuleAdapter mAdapter = null; private MenuItem mClickedMenuItem = null; diff --git a/app/src/main/java/org/meowcat/edxposed/manager/SettingsActivity.java b/app/src/main/java/org/meowcat/edxposed/manager/SettingsActivity.java index 08f24114..deb05b89 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/SettingsActivity.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/SettingsActivity.java @@ -1,6 +1,7 @@ package org.meowcat.edxposed.manager; import android.annotation.SuppressLint; +import android.app.Activity; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; @@ -16,6 +17,7 @@ import androidx.annotation.Nullable; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AppCompatDelegate; import androidx.appcompat.widget.Toolbar; +import androidx.core.content.ContextCompat; import androidx.preference.Preference; import androidx.preference.SwitchPreference; @@ -321,6 +323,20 @@ public class SettingsActivity extends BaseActivity { return (enabled == mDisableResourcesFlag.exists()); }); + SwitchPreference transparent_status_bar = findPreference("transparent_status_bar"); + Objects.requireNonNull(transparent_status_bar).setOnPreferenceChangeListener((preference, newValue) -> { + boolean enabled = (Boolean) newValue; + Activity activity = getActivity(); + if (activity != null && !XposedApp.getPreferences().getBoolean("black_dark_theme", false)) { + if (enabled) { + Objects.requireNonNull(getActivity()).getWindow().setStatusBarColor(ContextCompat.getColor(activity, R.color.colorActionBar)); + } else { + Objects.requireNonNull(getActivity()).getWindow().setStatusBarColor(ContextCompat.getColor(activity, R.color.colorPrimaryDark)); + } + } + return true; + }); + Preference compat_mode = findPreference("compat_mode"); if (compat_mode != null) { compat_mode.setOnPreferenceClickListener(preference -> { diff --git a/app/src/main/java/org/meowcat/edxposed/manager/XposedApp.java b/app/src/main/java/org/meowcat/edxposed/manager/XposedApp.java index 9ec10f5c..a47a8429 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/XposedApp.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/XposedApp.java @@ -191,7 +191,7 @@ public class XposedApp extends de.robv.android.xposed.installer.XposedApp implem @SuppressWarnings("JavaReflectionMemberAccess") @SuppressLint({"PrivateApi", "NewApi"}) private void createDirectories() { - //FileUtils.setPermissions(BASE_DIR, 00777, -1, -1); + FileUtils.setPermissions(BASE_DIR, 00777, -1, -1); mkdirAndChmod("conf", 00777); mkdirAndChmod("log", 00777); @@ -212,7 +212,6 @@ public class XposedApp extends de.robv.android.xposed.installer.XposedApp implem runOnUiThread(() -> { synchronized (XposedApp.this) { if (mCurrentActivity != null) { - mCurrentActivity.setProgressBarIndeterminateVisibility(isLoading); if (refreshLayout != null) refreshLayout.setRefreshing(isLoading); } @@ -222,8 +221,9 @@ public class XposedApp extends de.robv.android.xposed.installer.XposedApp implem @Override public synchronized void onActivityCreated(@NonNull Activity activity, Bundle savedInstanceState) { - if (mIsUiLoaded) + if (mIsUiLoaded) { return; + } RepoLoader.getInstance().triggerFirstLoadIfNecessary(); mIsUiLoaded = true; @@ -242,7 +242,6 @@ public class XposedApp extends de.robv.android.xposed.installer.XposedApp implem @Override public synchronized void onActivityPaused(Activity activity) { - activity.setProgressBarIndeterminateVisibility(false); mCurrentActivity = null; } diff --git a/app/src/main/java/org/meowcat/edxposed/manager/adapters/AppAdapter.java b/app/src/main/java/org/meowcat/edxposed/manager/adapters/AppAdapter.java index 4a6c4b1f..e16d65e4 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/adapters/AppAdapter.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/adapters/AppAdapter.java @@ -22,11 +22,13 @@ import org.meowcat.edxposed.manager.XposedApp; import org.meowcat.edxposed.manager.util.InstallApkUtil; import java.text.DateFormat; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.List; +import java.util.Locale; public class AppAdapter extends RecyclerView.Adapter { @@ -34,7 +36,7 @@ public class AppAdapter extends RecyclerView.Adapter { private final ApplicationInfo.DisplayNameComparator displayNameComparator; private Callback callback; private List fullList, showList; - private DateFormat dateformat = DateFormat.getDateInstance(DateFormat.SHORT); + private DateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()); private List checkedList; private PackageManager pm; private ApplicationFilter filter; diff --git a/app/src/main/res/layout/activity_crash_report.xml b/app/src/main/res/layout/activity_crash_report.xml index f51a21e4..2fcad03f 100644 --- a/app/src/main/res/layout/activity_crash_report.xml +++ b/app/src/main/res/layout/activity_crash_report.xml @@ -15,8 +15,8 @@ + android:layout_centerInParent="true" + android:orientation="vertical"> - + android:layout_marginBottom="10dp" + app:cardCornerRadius="8dp"> + + + - \ No newline at end of file diff --git a/app/src/main/res/layout/download_moreinfo.xml b/app/src/main/res/layout/download_moreinfo.xml index 3416831c..f4cf66b8 100644 --- a/app/src/main/res/layout/download_moreinfo.xml +++ b/app/src/main/res/layout/download_moreinfo.xml @@ -1,8 +1,7 @@ + android:orientation="vertical"> + android:focusable="true"> + + + + + + + + + + - - - - - - - - - - + 模块抛出的的异常堆栈仍将正常抓取 跟随系统 使用纯黑深色主题> - 安装于 %1$s \u00b7 更新于 %2$s + 安装于 %1$s\n更新于 %2$s 兼容模式应用列表 兼容模式 EdXposed 框架未安装或未激活, 您可在设置中关闭状态检查 + 透明状态栏 diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index f8f879ab..8caefe74 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -293,8 +293,9 @@ 模塊拋出的的異常堆棧仍將正常抓取 跟隨系統 使用純黑深色主題> - 安裝於 %1$s \u00b7 更新於 %2$s + 安裝於 %1$s\n更新於 %2$s 兼容模式應用列表 兼容模式 EdXposed 框架未安裝或未啟用, 您可在設定中關閉狀態檢查 + 透明狀態欄 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 94646a1b..49be36d8 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -293,8 +293,9 @@ 模組丟擲的的異常堆疊仍將正常抓取 跟隨系統 使用純黑深色主題> - 安裝於 %1$s \u00b7 更新於 %2$s + 安裝於 %1$s\n更新於 %2$s 相容模式應用列表 相容模式 EdXposed 框架未安裝或未啟用, 您可在設定中關閉狀態檢查 + 透明狀態列 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 90ab83cb..47afed7f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -88,7 +88,7 @@ Installed (version %s) Update available (version %1$s \u2192 %2$s) Added on %1$s \u00b7 Updated on %2$s - Installed on %1$s \nUpdated on %2$s + Installed on %1$s\nUpdated on %2$s Sorting order Sort by status Sort by last update @@ -331,4 +331,5 @@ Compat List Compat mode app list EdXposed Framework is not currently installed or active\nYou can close status check in settings + Transparent status bar diff --git a/app/src/main/res/xml/prefs.xml b/app/src/main/res/xml/prefs.xml index 6ff13667..10588c48 100644 --- a/app/src/main/res/xml/prefs.xml +++ b/app/src/main/res/xml/prefs.xml @@ -19,6 +19,11 @@ android:title="@string/pure_black_dark_theme" app:iconSpaceReserved="false" /> + +