255 lines
11 KiB
Java
255 lines
11 KiB
Java
package tw.nekomimi.nekogram;
|
|
|
|
import android.app.Activity;
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.content.SharedPreferences;
|
|
|
|
import org.telegram.messenger.ApplicationLoader;
|
|
import org.telegram.messenger.FileLog;
|
|
|
|
public class NekoConfig {
|
|
|
|
private static final Object sync = new Object();
|
|
public static boolean useIPv6 = false;
|
|
public static boolean hidePhone = true;
|
|
public static boolean ignoreBlocked = false;
|
|
public static boolean forceTablet = false;
|
|
public static int typeface = 0;
|
|
public static int nameOrder = 1;
|
|
public static int mapPreviewProvider = 0;
|
|
public static boolean transparentStatusBar = true;
|
|
public static boolean residentNotification = false;
|
|
|
|
public static boolean showAddToSavedMessages = true;
|
|
public static boolean showReport = false;
|
|
public static boolean showPrPr = true;
|
|
public static boolean showAdminActions = true;
|
|
public static boolean showChangePermissions = true;
|
|
|
|
public static boolean xmas = false;
|
|
public static boolean newYear = false;
|
|
public static boolean newYearEve = false;
|
|
public static boolean fireworks = false;
|
|
|
|
private static boolean configLoaded;
|
|
|
|
static {
|
|
loadConfig();
|
|
}
|
|
|
|
|
|
public static void saveConfig() {
|
|
synchronized (sync) {
|
|
try {
|
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfing", Context.MODE_PRIVATE);
|
|
SharedPreferences.Editor editor = preferences.edit();
|
|
editor.putBoolean("useIPv6", useIPv6);
|
|
editor.putBoolean("hidePhone", hidePhone);
|
|
editor.putBoolean("ignoreBlocked", ignoreBlocked);
|
|
editor.putBoolean("forceTablet", forceTablet);
|
|
editor.putInt("typeface", typeface);
|
|
editor.putInt("nameOrder", nameOrder);
|
|
editor.putInt("mapPreviewProvider", mapPreviewProvider);
|
|
editor.putBoolean("transparentStatusBar", transparentStatusBar);
|
|
editor.putBoolean("residentNotification", residentNotification);
|
|
editor.putBoolean("showAddToSavedMessages", showAddToSavedMessages);
|
|
editor.putBoolean("showReport", showReport);
|
|
editor.putBoolean("showPrPr", showPrPr);
|
|
editor.putBoolean("showAdminActions", showAdminActions);
|
|
editor.putBoolean("showChangePermissions", showChangePermissions);
|
|
editor.putBoolean("xmas", xmas);
|
|
editor.putBoolean("newYear", newYear);
|
|
editor.putBoolean("newYearEve", newYearEve);
|
|
editor.putBoolean("fireworks", fireworks);
|
|
|
|
editor.commit();
|
|
} catch (Exception e) {
|
|
FileLog.e(e);
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void loadConfig() {
|
|
synchronized (sync) {
|
|
if (configLoaded) {
|
|
return;
|
|
}
|
|
|
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
|
useIPv6 = preferences.getBoolean("useIPv6", false);
|
|
hidePhone = preferences.getBoolean("hidePhone", true);
|
|
ignoreBlocked = preferences.getBoolean("ignoreBlocked", false);
|
|
forceTablet = preferences.getBoolean("forceTablet", false);
|
|
typeface = preferences.getInt("typeface", 0);
|
|
nameOrder = preferences.getInt("nameOrder", 1);
|
|
mapPreviewProvider = preferences.getInt("mapPreviewProvider", 0);
|
|
transparentStatusBar = preferences.getBoolean("transparentStatusBar", true);
|
|
residentNotification = preferences.getBoolean("residentNotification", false);
|
|
showAddToSavedMessages = preferences.getBoolean("showAddToSavedMessages", true);
|
|
showReport = preferences.getBoolean("showReport", false);
|
|
showPrPr = preferences.getBoolean("showPrPr", true);
|
|
showAdminActions = preferences.getBoolean("showAdminActions", true);
|
|
showChangePermissions = preferences.getBoolean("showChangePermissions", true);
|
|
xmas = preferences.getBoolean("xmas", false);
|
|
newYear = preferences.getBoolean("newYear", false);
|
|
newYearEve = preferences.getBoolean("newYearEve", false);
|
|
fireworks = preferences.getBoolean("fireworks", false);
|
|
configLoaded = true;
|
|
}
|
|
}
|
|
|
|
public static void toggleShowAddToSavedMessages() {
|
|
showAddToSavedMessages = !showAddToSavedMessages;
|
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
|
SharedPreferences.Editor editor = preferences.edit();
|
|
editor.putBoolean("showAddToSavedMessages", showAddToSavedMessages);
|
|
editor.commit();
|
|
}
|
|
|
|
public static void toggleShowReport() {
|
|
showReport = !showReport;
|
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
|
SharedPreferences.Editor editor = preferences.edit();
|
|
editor.putBoolean("showReport", showReport);
|
|
editor.commit();
|
|
}
|
|
|
|
|
|
public static void toggleShowPrPr() {
|
|
showPrPr = !showPrPr;
|
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
|
SharedPreferences.Editor editor = preferences.edit();
|
|
editor.putBoolean("showPrPr", showPrPr);
|
|
editor.commit();
|
|
}
|
|
|
|
public static void toggleShowAdminActions() {
|
|
showAdminActions = !showAdminActions;
|
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
|
SharedPreferences.Editor editor = preferences.edit();
|
|
editor.putBoolean("showAdminActions", showAdminActions);
|
|
editor.commit();
|
|
}
|
|
|
|
public static void toggleShowChangePermissions() {
|
|
showChangePermissions = !showChangePermissions;
|
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
|
SharedPreferences.Editor editor = preferences.edit();
|
|
editor.putBoolean("showChangePermissions", showChangePermissions);
|
|
editor.commit();
|
|
}
|
|
|
|
|
|
public static void toggleIPv6() {
|
|
useIPv6 = !useIPv6;
|
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
|
SharedPreferences.Editor editor = preferences.edit();
|
|
editor.putBoolean("useIPv6", useIPv6);
|
|
editor.commit();
|
|
}
|
|
|
|
public static void toggleHidePhone() {
|
|
hidePhone = !hidePhone;
|
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
|
SharedPreferences.Editor editor = preferences.edit();
|
|
editor.putBoolean("hidePhone", hidePhone);
|
|
editor.commit();
|
|
}
|
|
|
|
public static void toggleIgnoreBlocked() {
|
|
ignoreBlocked = !ignoreBlocked;
|
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
|
SharedPreferences.Editor editor = preferences.edit();
|
|
editor.putBoolean("ignoreBlocked", ignoreBlocked);
|
|
editor.commit();
|
|
}
|
|
|
|
public static void toggleForceTablet() {
|
|
forceTablet = !forceTablet;
|
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
|
SharedPreferences.Editor editor = preferences.edit();
|
|
editor.putBoolean("forceTablet", forceTablet);
|
|
editor.commit();
|
|
}
|
|
|
|
public static void toggleTypeface() {
|
|
typeface = typeface == 0 ? 1 : 0;
|
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
|
SharedPreferences.Editor editor = preferences.edit();
|
|
editor.putInt("typeface", typeface);
|
|
editor.commit();
|
|
}
|
|
|
|
public static void setNameOrder(int order) {
|
|
nameOrder = order;
|
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
|
SharedPreferences.Editor editor = preferences.edit();
|
|
editor.putInt("nameOrder", nameOrder);
|
|
editor.commit();
|
|
}
|
|
|
|
public static void setMapPreviewProvider(int provider) {
|
|
mapPreviewProvider = provider;
|
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
|
SharedPreferences.Editor editor = preferences.edit();
|
|
editor.putInt("mapPreviewProvider", mapPreviewProvider);
|
|
editor.commit();
|
|
}
|
|
|
|
public static void toggleTransparentStatusBar() {
|
|
transparentStatusBar = !transparentStatusBar;
|
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
|
SharedPreferences.Editor editor = preferences.edit();
|
|
editor.putBoolean("transparentStatusBar", transparentStatusBar);
|
|
editor.commit();
|
|
}
|
|
|
|
public static void toggleResidentNotification() {
|
|
residentNotification = !residentNotification;
|
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
|
SharedPreferences.Editor editor = preferences.edit();
|
|
editor.putBoolean("residentNotification", residentNotification);
|
|
editor.commit();
|
|
Intent duangIntent = new Intent(ApplicationLoader.applicationContext, DuangService.class);
|
|
if (residentNotification) {
|
|
ApplicationLoader.applicationContext.startService(duangIntent);
|
|
} else {
|
|
ApplicationLoader.applicationContext.stopService(duangIntent);
|
|
}
|
|
}
|
|
|
|
public static void toggleXmas() {
|
|
xmas = !xmas;
|
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
|
SharedPreferences.Editor editor = preferences.edit();
|
|
editor.putBoolean("xmas", xmas);
|
|
editor.commit();
|
|
}
|
|
|
|
public static void toggleNewYear() {
|
|
newYear = !newYear;
|
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
|
SharedPreferences.Editor editor = preferences.edit();
|
|
editor.putBoolean("newYear", newYear);
|
|
editor.commit();
|
|
}
|
|
|
|
public static void toggleNewYearEve() {
|
|
newYearEve = !newYearEve;
|
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
|
SharedPreferences.Editor editor = preferences.edit();
|
|
editor.putBoolean("newYearEve", newYearEve);
|
|
editor.commit();
|
|
}
|
|
|
|
public static void toggleFireworks() {
|
|
fireworks = !fireworks;
|
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
|
SharedPreferences.Editor editor = preferences.edit();
|
|
editor.putBoolean("fireworks", fireworks);
|
|
editor.commit();
|
|
}
|
|
|
|
}
|