package tk.wasdennnoch.androidn_ify.utils;
import android.app.ActivityManager;
import android.content.ContentResolver;
import android.provider.Settings;
import java.lang.reflect.Method;
import de.robv.android.xposed.XposedHelpers;
@SuppressWarnings("WeakerAccess")
public class SettingsUtils {
private static final Method mPutStringForUser;
private static final Method mGetStringForUser;
private static final Method mGetCurrentUser;
static {
mPutStringForUser = XposedHelpers.findMethodExact(Settings.Secure.class, "putStringForUser", ContentResolver.class, String.class, String.class, int.class);
mGetStringForUser = XposedHelpers.findMethodExact(Settings.Secure.class, "getStringForUser", ContentResolver.class, String.class, int.class);
mGetCurrentUser = XposedHelpers.findMethodExact(ActivityManager.class, "getCurrentUser");
}
public static boolean putStringForCurrentUser(ContentResolver resolver, String name, String value) {
return putStringForUser(resolver, name, value, getCurrentUser());
}
public static String getStringForCurrentUser(ContentResolver resolver, String name) {
return getStringForUser(resolver, name, getCurrentUser());
}
public static boolean putStringForUser(ContentResolver resolver, String name, String value, int userHandle) {
try {
return (boolean) mPutStringForUser.invoke(Settings.Secure.class, resolver, name, value, userHandle);
} catch (Exception e) {
throw new RuntimeException("Error in putStringForUser", e);
}
}
public static String getStringForUser(ContentResolver resolver, String name, int userHandle) {
try {
return (String) mGetStringForUser.invoke(Settings.Secure.class, resolver, name, userHandle);
} catch (Exception e) {
throw new RuntimeException("Error in getStringForUser", e);
}
}
private static int getCurrentUser() {
try {
return (int) mGetCurrentUser.invoke(ActivityManager.class);
} catch (Exception e) {
throw new RuntimeException("Error in putStringForUser", e);
}
}
}