summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPawit Pornkitprasan <p.pawit@gmail.com>2011-10-31 12:51:40 +0700
committerPawit Pornkitprasan <p.pawit@gmail.com>2011-10-31 12:51:40 +0700
commit9cfb69a0b4f04932113b910ff1365f2c0f8720e5 (patch)
treedfcc36e66b91f7162eb80291ee6972b03baa954f
parenta80465577d6c6b32946a47a008a2b2640f26391b (diff)
downloaddevice_samsung_aries-common-9cfb69a0b4f04932113b910ff1365f2c0f8720e5.zip
device_samsung_aries-common-9cfb69a0b4f04932113b910ff1365f2c0f8720e5.tar.gz
device_samsung_aries-common-9cfb69a0b4f04932113b910ff1365f2c0f8720e5.tar.bz2
AriesParts: Add HSPA setting
Requires I76632c874b872f0d3f9a1013b7dd548af4b91341 Change-Id: I461e90acd6502b633c95d08c482487fdffec259a
-rw-r--r--AriesParts/AndroidManifest.xml1
-rw-r--r--AriesParts/res/values/arrays.xml12
-rw-r--r--AriesParts/res/values/strings.xml4
-rw-r--r--AriesParts/res/xml/main.xml11
-rw-r--r--AriesParts/src/com/cyanogenmod/AriesParts/AriesParts.java6
-rw-r--r--AriesParts/src/com/cyanogenmod/AriesParts/Hspa.java48
-rw-r--r--AriesParts/src/com/cyanogenmod/AriesParts/Startup.java1
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);
}
}