diff --git a/app/src/main/java/org/lsposed/manager/ConfigManager.java b/app/src/main/java/org/lsposed/manager/ConfigManager.java
index 67ee39e0..b7494301 100644
--- a/app/src/main/java/org/lsposed/manager/ConfigManager.java
+++ b/app/src/main/java/org/lsposed/manager/ConfigManager.java
@@ -25,7 +25,9 @@ import android.os.ParcelFileDescriptor;
import android.os.RemoteException;
import android.util.Log;
+import java.io.File;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
@@ -236,4 +238,9 @@ public class ConfigManager {
return false;
}
}
+
+ public static boolean isMagiskInstalled() {
+ return Arrays.stream(System.getenv("PATH").split(File.pathSeparator))
+ .anyMatch(str -> new File(str, "magisk").exists());
+ }
}
diff --git a/app/src/main/java/org/lsposed/manager/ui/activity/MainActivity.java b/app/src/main/java/org/lsposed/manager/ui/activity/MainActivity.java
index 8ae0dedf..c7dc5ba0 100644
--- a/app/src/main/java/org/lsposed/manager/ui/activity/MainActivity.java
+++ b/app/src/main/java/org/lsposed/manager/ui/activity/MainActivity.java
@@ -44,8 +44,6 @@ import org.lsposed.manager.util.ModuleUtil;
import org.lsposed.manager.util.NavUtil;
import org.lsposed.manager.util.chrome.LinkTransformationMethod;
-import java.io.File;
-import java.util.Arrays;
import java.util.Locale;
import name.mikanoshi.customiuizer.holidays.HolidayHelper;
@@ -117,8 +115,7 @@ public class MainActivity extends BaseActivity {
}
} else {
cardBackgroundColor = ResourcesKt.resolveColor(getTheme(), R.attr.colorInstall);
- boolean isMagiskInstalled = Arrays.stream(System.getenv("PATH").split(File.pathSeparator))
- .anyMatch(str -> new File(str, "magisk").exists());
+ boolean isMagiskInstalled = ConfigManager.isMagiskInstalled();
binding.statusTitle.setText(isMagiskInstalled ? R.string.Install : R.string.NotInstall);
binding.statusSummary.setText(isMagiskInstalled ? R.string.InstallDetail : R.string.NotInstallDetail);
if (!isMagiskInstalled) {
@@ -126,7 +123,7 @@ public class MainActivity extends BaseActivity {
binding.download.setVisibility(View.GONE);
}
binding.statusIcon.setImageResource(R.drawable.ic_error);
- Snackbar.make(binding.snackbar, R.string.lsposed_not_active, Snackbar.LENGTH_LONG).show();
+ Snackbar.make(binding.snackbar, R.string.lsposed_not_active, Snackbar.LENGTH_INDEFINITE).show();
}
binding.status.setCardBackgroundColor(cardBackgroundColor);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
diff --git a/app/src/main/java/org/lsposed/manager/ui/activity/ModulesActivity.java b/app/src/main/java/org/lsposed/manager/ui/activity/ModulesActivity.java
index abd21522..13db2945 100644
--- a/app/src/main/java/org/lsposed/manager/ui/activity/ModulesActivity.java
+++ b/app/src/main/java/org/lsposed/manager/ui/activity/ModulesActivity.java
@@ -20,6 +20,8 @@
package org.lsposed.manager.ui.activity;
+import static android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS;
+
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
@@ -57,11 +59,6 @@ import com.bumptech.glide.request.target.CustomTarget;
import com.bumptech.glide.request.transition.Transition;
import com.google.android.material.snackbar.Snackbar;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
import org.lsposed.manager.ConfigManager;
import org.lsposed.manager.R;
import org.lsposed.manager.adapters.AppHelper;
@@ -70,7 +67,10 @@ import org.lsposed.manager.ui.activity.base.ListActivity;
import org.lsposed.manager.util.GlideApp;
import org.lsposed.manager.util.ModuleUtil;
-import static android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
public class ModulesActivity extends ListActivity implements ModuleUtil.ModuleListener {
@@ -92,6 +92,10 @@ public class ModulesActivity extends ListActivity implements ModuleUtil.ModuleLi
pm = getPackageManager();
moduleUtil.addListener(this);
super.onCreate(savedInstanceState);
+ if (ConfigManager.getXposedVersionName() == null) {
+ Toast.makeText(this, R.string.lsposed_not_active, Toast.LENGTH_LONG).show();
+ finish();
+ }
}
@Override
diff --git a/app/src/main/java/org/lsposed/manager/ui/activity/RepoActivity.java b/app/src/main/java/org/lsposed/manager/ui/activity/RepoActivity.java
index fd663513..345588f0 100644
--- a/app/src/main/java/org/lsposed/manager/ui/activity/RepoActivity.java
+++ b/app/src/main/java/org/lsposed/manager/ui/activity/RepoActivity.java
@@ -31,6 +31,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.Filter;
import android.widget.TextView;
+import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -39,6 +40,12 @@ import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.snackbar.Snackbar;
+import org.lsposed.manager.ConfigManager;
+import org.lsposed.manager.R;
+import org.lsposed.manager.repo.RepoLoader;
+import org.lsposed.manager.repo.model.OnlineModule;
+import org.lsposed.manager.ui.activity.base.ListActivity;
+
import java.time.Instant;
import java.util.ArrayList;
import java.util.Collection;
@@ -47,10 +54,6 @@ import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
-import org.lsposed.manager.R;
-import org.lsposed.manager.repo.RepoLoader;
-import org.lsposed.manager.repo.model.OnlineModule;
-import org.lsposed.manager.ui.activity.base.ListActivity;
import rikka.core.util.LabelComparator;
public class RepoActivity extends ListActivity implements RepoLoader.Listener {
@@ -61,6 +64,10 @@ public class RepoActivity extends ListActivity implements RepoLoader.Listener {
public void onCreate(@Nullable Bundle savedInstanceState) {
repoLoader.addListener(this);
super.onCreate(savedInstanceState);
+ if (!ConfigManager.isMagiskInstalled()) {
+ Toast.makeText(this, R.string.lsposed_not_active, Toast.LENGTH_LONG).show();
+ finish();
+ }
}
@Override
diff --git a/app/src/main/res/xml/shortcuts.xml b/app/src/main/res/xml/shortcuts.xml
index 205a8668..e2017971 100644
--- a/app/src/main/res/xml/shortcuts.xml
+++ b/app/src/main/res/xml/shortcuts.xml
@@ -28,8 +28,8 @@
android:shortcutShortLabel="@string/Modules">
+ android:targetClass="org.lsposed.manager.ui.activity.ModulesActivity"
+ android:targetPackage="org.lsposed.manager" />
+ android:targetClass="org.lsposed.manager.ui.activity.LogsActivity"
+ android:targetPackage="org.lsposed.manager" />
+ android:targetClass="org.lsposed.manager.ui.activity.RepoActivity"
+ android:targetPackage="org.lsposed.manager" />