diff --git a/app/src/main/java/org/lsposed/manager/adapters/ScopeAdapter.java b/app/src/main/java/org/lsposed/manager/adapters/ScopeAdapter.java index a1710932..10bb50b3 100644 --- a/app/src/main/java/org/lsposed/manager/adapters/ScopeAdapter.java +++ b/app/src/main/java/org/lsposed/manager/adapters/ScopeAdapter.java @@ -24,6 +24,7 @@ import static android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS; import android.annotation.SuppressLint; import android.app.Activity; +import android.content.ActivityNotFoundException; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.ApplicationInfo; @@ -254,12 +255,22 @@ public class ScopeAdapter extends EmptyStateRecyclerView.EmptyStateAdapter log) { - runOnUiThread(() ->{ + runOnUiThread(() -> { isLoaded = true; this.log = log; notifyDataSetChanged(); diff --git a/app/src/main/java/org/lsposed/manager/ui/fragment/SettingsFragment.java b/app/src/main/java/org/lsposed/manager/ui/fragment/SettingsFragment.java index e136c7f1..e67e5621 100644 --- a/app/src/main/java/org/lsposed/manager/ui/fragment/SettingsFragment.java +++ b/app/src/main/java/org/lsposed/manager/ui/fragment/SettingsFragment.java @@ -19,6 +19,7 @@ package org.lsposed.manager.ui.fragment; +import android.content.ActivityNotFoundException; import android.content.Context; import android.os.Build; import android.os.Bundle; @@ -176,9 +177,14 @@ public class SettingsFragment extends BaseFragment { backup.setEnabled(installed); backup.setOnPreferenceClickListener(preference -> { LocalDateTime now = LocalDateTime.now(); - backupLauncher.launch(String.format(LocaleDelegate.getDefaultLocale(), - "LSPosed_%s.lsp", now.toString())); - return true; + try { + backupLauncher.launch(String.format(LocaleDelegate.getDefaultLocale(), + "LSPosed_%s.lsp", now.toString())); + return true; + } catch (ActivityNotFoundException e) { + parentFragment.showHint(R.string.enable_documentui, true); + return false; + } }); } @@ -186,8 +192,13 @@ public class SettingsFragment extends BaseFragment { if (restore != null) { restore.setEnabled(installed); restore.setOnPreferenceClickListener(preference -> { - restoreLauncher.launch(new String[]{"*/*"}); - return true; + try { + restoreLauncher.launch(new String[]{"*/*"}); + return true; + } catch (ActivityNotFoundException e) { + parentFragment.showHint(R.string.enable_documentui, true); + return false; + } }); } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 573033df..ab70d39f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -229,4 +229,5 @@ Upgradable first Overview Manually create parasitic manager shortcut + Please enable DocumentUI