84 lines
3.3 KiB
Java
Raw Normal View History

2017-01-25 04:27:05 +08:00
package com.topjohnwu.magisk;
2017-01-25 13:16:50 +08:00
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import com.topjohnwu.magisk.module.Module;
2017-01-25 04:27:05 +08:00
import com.topjohnwu.magisk.module.Repo;
import com.topjohnwu.magisk.utils.CallbackHandler;
2017-01-26 13:46:54 +08:00
import com.topjohnwu.magisk.utils.Shell;
import com.topjohnwu.magisk.utils.Utils;
2017-01-25 04:27:05 +08:00
import com.topjohnwu.magisk.utils.ValueSortedMap;
import java.util.List;
public class Global {
2017-01-26 13:46:54 +08:00
2017-01-25 04:27:05 +08:00
public static class Constant {
// No global constants now
}
public static class Info {
public static double magiskVersion;
public static String magiskVersionString = "(none)";
2017-01-26 13:46:54 +08:00
public static double remoteMagiskVersion = -1;
2017-01-25 04:27:05 +08:00
public static String magiskLink;
public static String releaseNoteLink;
public static int SNCheckResult = -1;
public static String bootBlock = null;
2017-01-27 03:38:53 +08:00
public static boolean isSuClient = false;
public static String suVersion = null;
2017-01-25 04:27:05 +08:00
}
public static class Data {
public static ValueSortedMap<String, Repo> repoMap = new ValueSortedMap<>();
2017-01-25 13:16:50 +08:00
public static ValueSortedMap<String, Module> moduleMap = new ValueSortedMap<>();
2017-01-25 04:27:05 +08:00
public static List<String> blockList;
}
public static class Events {
public static final CallbackHandler.Event blockDetectionDone = new CallbackHandler.Event();
public static final CallbackHandler.Event packageLoadDone = new CallbackHandler.Event();
public static final CallbackHandler.Event reloadMainActivity = new CallbackHandler.Event();
public static final CallbackHandler.Event moduleLoadDone = new CallbackHandler.Event();
public static final CallbackHandler.Event repoLoadDone = new CallbackHandler.Event();
public static final CallbackHandler.Event updateCheckDone = new CallbackHandler.Event();
public static final CallbackHandler.Event safetyNetDone = new CallbackHandler.Event();
}
2017-01-25 13:16:50 +08:00
public static class Configs {
public static boolean isDarkTheme;
public static boolean shellLogging;
public static boolean devLogging;
2017-01-27 01:02:40 +08:00
public static int suRequestTimeout = 10;
public static int suLogTimeout = 14;
2017-01-25 13:16:50 +08:00
2017-01-26 13:46:54 +08:00
}
public static void init(Context context) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
Configs.isDarkTheme = prefs.getBoolean("dark_theme", false);
Configs.devLogging = prefs.getBoolean("developer_logging", false);
Configs.shellLogging = prefs.getBoolean("shell_logging", false);
2017-01-27 03:38:53 +08:00
List<String> ret = Shell.sh("su -v");
if (Utils.isValidShellResponse(ret)) {
Info.suVersion = ret.get(0);
Info.isSuClient = Info.suVersion.toUpperCase().contains("MAGISK");
}
2017-01-26 13:46:54 +08:00
updateMagiskInfo();
}
static void updateMagiskInfo() {
List<String> ret = Shell.sh("getprop magisk.version");
2017-01-27 01:02:40 +08:00
if (!Utils.isValidShellResponse(ret)) {
2017-01-26 13:46:54 +08:00
Info.magiskVersion = -1;
} else {
try {
Info.magiskVersionString = ret.get(0);
Info.magiskVersion = Double.parseDouble(ret.get(0));
} catch (NumberFormatException e) {
// Custom version don't need to receive updates
Info.magiskVersion = Double.POSITIVE_INFINITY;
}
2017-01-25 13:16:50 +08:00
}
}
2017-01-25 04:27:05 +08:00
}