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;
|
2017-01-26 13:46:54 +08:00
|
|
|
import android.text.TextUtils;
|
2017-01-25 13:16:50 +08:00
|
|
|
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
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);
|
|
|
|
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
|
|
|
|
|
|
|
}
|