diff options
-rw-r--r-- | AriesParts/AndroidManifest.xml | 1 | ||||
-rw-r--r-- | AriesParts/res/values/arrays.xml | 12 | ||||
-rw-r--r-- | AriesParts/res/values/strings.xml | 4 | ||||
-rw-r--r-- | AriesParts/res/xml/main.xml | 11 | ||||
-rw-r--r-- | AriesParts/src/com/cyanogenmod/AriesParts/AriesParts.java | 6 | ||||
-rw-r--r-- | AriesParts/src/com/cyanogenmod/AriesParts/Hspa.java | 48 | ||||
-rw-r--r-- | AriesParts/src/com/cyanogenmod/AriesParts/Startup.java | 1 |
7 files changed, 83 insertions, 0 deletions
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 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.cyanogenmod.AriesParts" android:sharedUserId="android.uid.system"> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> + <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> <application android:label="@string/app_name"> <activity android:name=".AriesParts" android:label="@string/app_name"> 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 @@ <item>30000</item> <item>-1</item> </string-array> + + <string-array name="hspa_entries"> + <item>UMTS Only</item> + <item>HSDPA Only</item> + <item>HSDPA + HSUPA</item> + </string-array> + + <string-array name="hspa_entries_values" translatable="false"> + <item>21</item> + <item>22</item> + <item>23</item> + </string-array> </resources> 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 @@ <string name="category_touchkey_title">Touch Keys</string> <string name="backlight_timeout_title_head">Backlight Timeout</string> <string name="backlight_timeout_summary_head">Adjust the delay before the touch key backlight automatically turns off</string> + + <string name="category_radio_title">Radio</string> + <string name="hspa_title_head">HSPA</string> + <string name="hspa_summary_head">Enable HSDPA/HSUPA</string> </resources> 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" /> </PreferenceCategory> + <PreferenceCategory + android:title="@string/category_radio_title"> + <!-- UMTS/HSDPA/HSUPA settings --> + <ListPreference + android:key="hspa" + android:title="@string/hspa_title_head" + android:summary="@string/hspa_summary_head" + android:entries="@array/hspa_entries" + android:entryValues="@array/hspa_entries_values" + android:defaultValue="23" /> + </PreferenceCategory> </PreferenceScreen> 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); } } |