diff options
Diffstat (limited to 'CrespoParts/src/com/cyanogenmod/CrespoParts/Hspa.java')
-rw-r--r-- | CrespoParts/src/com/cyanogenmod/CrespoParts/Hspa.java | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/CrespoParts/src/com/cyanogenmod/CrespoParts/Hspa.java b/CrespoParts/src/com/cyanogenmod/CrespoParts/Hspa.java new file mode 100644 index 0000000..5f85302 --- /dev/null +++ b/CrespoParts/src/com/cyanogenmod/CrespoParts/Hspa.java @@ -0,0 +1,57 @@ +package com.cyanogenmod.CrespoParts; + +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.SystemProperties; +import android.preference.Preference; +import android.preference.Preference.OnPreferenceChangeListener; +import android.preference.PreferenceManager; + +public class Hspa implements OnPreferenceChangeListener { + + private static final String APK_FILE = "/system/app/SamsungServiceMode.apk"; + private static final String HSPA_PROP = "ro.crespoparts.rild.hspa"; + private static final String HSPA_PROP_ENABLED = "1"; + + private Context mCtx; + + public Hspa(Context context) { + mCtx = context; + } + + public static boolean isSupported() { + String mHspa = SystemProperties.get(HSPA_PROP,"0"); + if (mHspa.equals(HSPA_PROP_ENABLED)) { + return true; + } else { + return false; + } + } + + /** + * Restore HSPA setting from SharedPreferences. (Write to kernel.) + * @param context The context to read the SharedPreferences from + */ + public static void restore(Context context) { + if (!isSupported()) { + return; + } + + SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); + sendIntent(context, sharedPrefs.getString(CrespoParts.KEY_HSPA, "23")); + } + + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + sendIntent(mCtx, (String) newValue); + return true; + } + + private static void sendIntent(Context context, String value) { + Intent i = new Intent("com.cyanogenmod.SamsungServiceMode.EXECUTE"); + i.putExtra("sub_type", 20); // HSPA Setting + i.putExtra("data", value); + context.sendBroadcast(i); + } +} |