package info.mzimmermann.libxposed.apps; import android.content.Intent; import android.preference.Preference; import android.preference.Preference.OnPreferenceChangeListener; public class LXMyApp { public static boolean transferPreferences(String action, Preference preference, Object value) { Intent i = new Intent(action); if (value instanceof Boolean) { i.putExtra(preference.getKey(), (Boolean) value); } else if (value instanceof Float) { i.putExtra(preference.getKey(), (Float) value); } else if (value instanceof Integer) { i.putExtra(preference.getKey(), (Integer) value); } else if (value instanceof Long) { i.putExtra(preference.getKey(), (Long) value); } else if (value instanceof String) { i.putExtra(preference.getKey(), (String) value); } else if (value instanceof String[]) { i.putExtra(preference.getKey(), (String[]) value); } else { throw new IllegalArgumentException(value.getClass() .getCanonicalName() + " is not a supported Preference!"); } preference.getContext().sendBroadcast(i); return true; } public static void setTransferOnPreferenceChangeListener( final String action, Preference p) { setTransferOnPreferenceChangeListener(action, p, null); } public static void setTransferOnPreferenceChangeListener( final String action, Preference p, final OnPreferenceChangeListener l) { p.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { transferPreferences(action, preference, newValue); if (l != null) return l.onPreferenceChange(preference, newValue); return true; } }); } }