From 9cfb69a0b4f04932113b910ff1365f2c0f8720e5 Mon Sep 17 00:00:00 2001 From: Pawit Pornkitprasan Date: Mon, 31 Oct 2011 12:51:40 +0700 Subject: AriesParts: Add HSPA setting Requires I76632c874b872f0d3f9a1013b7dd548af4b91341 Change-Id: I461e90acd6502b633c95d08c482487fdffec259a --- AriesParts/AndroidManifest.xml | 1 + AriesParts/res/values/arrays.xml | 12 ++++++ AriesParts/res/values/strings.xml | 4 ++ AriesParts/res/xml/main.xml | 11 +++++ .../src/com/cyanogenmod/AriesParts/AriesParts.java | 6 +++ .../src/com/cyanogenmod/AriesParts/Hspa.java | 48 ++++++++++++++++++++++ .../src/com/cyanogenmod/AriesParts/Startup.java | 1 + 7 files changed, 83 insertions(+) create mode 100644 AriesParts/src/com/cyanogenmod/AriesParts/Hspa.java diff --git a/AriesParts/AndroidManifest.xml b/AriesParts/AndroidManifest.xml index f29b17a..d108fb8 100644 --- a/AriesParts/AndroidManifest.xml +++ b/AriesParts/AndroidManifest.xml @@ -2,6 +2,7 @@ + diff --git a/AriesParts/res/values/arrays.xml b/AriesParts/res/values/arrays.xml index 9053a71..2732676 100644 --- a/AriesParts/res/values/arrays.xml +++ b/AriesParts/res/values/arrays.xml @@ -18,4 +18,16 @@ 30000 -1 + + + UMTS Only + HSDPA Only + HSDPA + HSUPA + + + + 21 + 22 + 23 + diff --git a/AriesParts/res/values/strings.xml b/AriesParts/res/values/strings.xml index d21d1a9..c69049d 100644 --- a/AriesParts/res/values/strings.xml +++ b/AriesParts/res/values/strings.xml @@ -12,4 +12,8 @@ Touch Keys Backlight Timeout Adjust the delay before the touch key backlight automatically turns off + + Radio + HSPA + Enable HSDPA/HSUPA diff --git a/AriesParts/res/xml/main.xml b/AriesParts/res/xml/main.xml index 68938f4..e74b599 100644 --- a/AriesParts/res/xml/main.xml +++ b/AriesParts/res/xml/main.xml @@ -22,4 +22,15 @@ android:defaultValue="1600" /> + + + + diff --git a/AriesParts/src/com/cyanogenmod/AriesParts/AriesParts.java b/AriesParts/src/com/cyanogenmod/AriesParts/AriesParts.java index 9aa3916..103e91b 100644 --- a/AriesParts/src/com/cyanogenmod/AriesParts/AriesParts.java +++ b/AriesParts/src/com/cyanogenmod/AriesParts/AriesParts.java @@ -8,9 +8,11 @@ public class AriesParts extends PreferenceActivity { public static final String KEY_COLOR_TUNING = "color_tuning"; public static final String KEY_BACKLIGHT_TIMEOUT = "backlight_timeout"; + public static final String KEY_HSPA = "hspa"; private ColorTuningPreference mColorTuning; private ListPreference mBacklightTimeout; + private ListPreference mHspa; @Override public void onCreate(Bundle savedInstanceState) { @@ -23,6 +25,10 @@ public class AriesParts extends PreferenceActivity { mBacklightTimeout = (ListPreference) findPreference(KEY_BACKLIGHT_TIMEOUT); mBacklightTimeout.setEnabled(TouchKeyBacklightTimeout.isSupported()); mBacklightTimeout.setOnPreferenceChangeListener(new TouchKeyBacklightTimeout()); + + mHspa = (ListPreference) findPreference(KEY_HSPA); + mHspa.setEnabled(Hspa.isSupported()); + mHspa.setOnPreferenceChangeListener(new Hspa(this)); } } diff --git a/AriesParts/src/com/cyanogenmod/AriesParts/Hspa.java b/AriesParts/src/com/cyanogenmod/AriesParts/Hspa.java new file mode 100644 index 0000000..7c89127 --- /dev/null +++ b/AriesParts/src/com/cyanogenmod/AriesParts/Hspa.java @@ -0,0 +1,48 @@ +package com.cyanogenmod.AriesParts; + +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +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 Context mCtx; + + public Hspa(Context context) { + mCtx = context; + } + + public static boolean isSupported() { + return Utils.fileExists(APK_FILE); + } + + /** + * 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(AriesParts.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); + } +} diff --git a/AriesParts/src/com/cyanogenmod/AriesParts/Startup.java b/AriesParts/src/com/cyanogenmod/AriesParts/Startup.java index 540ed9b..755d599 100644 --- a/AriesParts/src/com/cyanogenmod/AriesParts/Startup.java +++ b/AriesParts/src/com/cyanogenmod/AriesParts/Startup.java @@ -10,6 +10,7 @@ public class Startup extends BroadcastReceiver { public void onReceive(final Context context, final Intent bootintent) { ColorTuningPreference.restore(context); TouchKeyBacklightTimeout.restore(context); + Hspa.restore(context); } } -- cgit v1.1