summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/java/android/provider/Settings.java7
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/powerwidget/LTEButton.java37
-rwxr-xr-xtelephony/java/android/telephony/TelephonyManager.java11
-rw-r--r--telephony/java/com/android/internal/telephony/ITelephony.aidl6
4 files changed, 35 insertions, 26 deletions
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index ddcdf55..ca90505 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -2632,13 +2632,6 @@ public final class Settings {
public static final String EXPANDED_NETWORK_MODE = "expanded_network_mode";
/**
- * Notification Power Widget - Custom LTE Toggle
- * 1 - lte on, 0 - lte off
- * @hide
- */
- public static final String LTE_MODE = "lte_mode";
-
- /**
* Notification Power Widget - Custom Screen Timeout
* @hide
*/
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/powerwidget/LTEButton.java b/packages/SystemUI/src/com/android/systemui/statusbar/powerwidget/LTEButton.java
index ffb638c..ea8bf79 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/powerwidget/LTEButton.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/powerwidget/LTEButton.java
@@ -1,6 +1,5 @@
package com.android.systemui.statusbar.powerwidget;
-import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
@@ -18,28 +17,27 @@ public class LTEButton extends PowerButton{
private static final List<Uri> OBSERVED_URIS = new ArrayList<Uri>();
static {
- OBSERVED_URIS.add(Settings.System.getUriFor(Settings.System.LTE_MODE));
+ OBSERVED_URIS.add(Settings.Global.getUriFor(Settings.Global.PREFERRED_NETWORK_MODE));
}
public LTEButton() { mType = BUTTON_LTE; }
@Override
protected void updateState(Context context) {
- ContentResolver resolver = context.getContentResolver();
int network = getCurrentPreferredNetworkMode(context);
switch(network) {
case Phone.NT_MODE_GLOBAL:
-/*
+ case Phone.NT_MODE_LTE_CDMA_AND_EVDO:
case Phone.NT_MODE_LTE_GSM_WCDMA:
+ case Phone.NT_MODE_LTE_CMDA_EVDO_GSM_WCDMA:
case Phone.NT_MODE_LTE_ONLY:
+ case Phone.NT_MODE_LTE_WCDMA:
mIcon = R.drawable.stat_lte_on;
mState = STATE_ENABLED;
- Settings.System.putInt(resolver, Settings.System.LTE_MODE, 1);
- break;*/
+ break;
default:
mIcon = R.drawable.stat_lte_off;
mState = STATE_DISABLED;
- Settings.System.putInt(resolver, Settings.System.LTE_MODE, 0);
break;
}
}
@@ -49,17 +47,18 @@ public class LTEButton extends PowerButton{
TelephonyManager tm = (TelephonyManager)
context.getSystemService(Context.TELEPHONY_SERVICE);
int network = getCurrentPreferredNetworkMode(context);
- ContentResolver resolver = context.getContentResolver();
- if (Phone.NT_MODE_GLOBAL == network/* ||
- Phone.NT_MODE_LTE_GSM_WCDMA == network*/) {
- //tm.toggleLTE(false); // TODO: ******* Disabled for now ************
- mState = STATE_DISABLED;
- Settings.System.putInt(resolver, Settings.System.LTE_MODE, 0);
- } else if (Phone.NT_MODE_CDMA == network/* ||
- tm.getLteOnGsmMode() != 0*/) {
- //tm.toggleLTE(true); // TODO: ******* Disabled for now ************
- mState = STATE_ENABLED;
- Settings.System.putInt(resolver, Settings.System.LTE_MODE, 1);
+ switch(network) {
+ case Phone.NT_MODE_GLOBAL:
+ case Phone.NT_MODE_LTE_CDMA_AND_EVDO:
+ case Phone.NT_MODE_LTE_GSM_WCDMA:
+ case Phone.NT_MODE_LTE_CMDA_EVDO_GSM_WCDMA:
+ case Phone.NT_MODE_LTE_ONLY:
+ case Phone.NT_MODE_LTE_WCDMA:
+ tm.toggleLTE(false);
+ break;
+ default:
+ tm.toggleLTE(true);
+ break;
}
}
@@ -80,7 +79,7 @@ public class LTEButton extends PowerButton{
private static int getCurrentPreferredNetworkMode(Context context) {
int network = -1;
try {
- network = Settings.Secure.getInt(context.getContentResolver(),
+ network = Settings.Global.getInt(context.getContentResolver(),
Settings.Global.PREFERRED_NETWORK_MODE);
} catch (SettingNotFoundException e) {
e.printStackTrace();
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index d486529..2f80d39 100755
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -607,6 +607,17 @@ public class TelephonyManager {
}
}
+ /**
+ * {@hide}
+ */
+ public void toggleLTE(boolean on) {
+ try {
+ getITelephony().toggleLTE(on);
+ } catch (RemoteException e) {
+ //Silently fail
+ }
+ }
+
/** Unknown network class. {@hide} */
public static final int NETWORK_CLASS_UNKNOWN = 0;
/** Class of broadly defined "2G" networks. {@hide} */
diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl
index 11e01b9..9d1cc1d 100644
--- a/telephony/java/com/android/internal/telephony/ITelephony.aidl
+++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl
@@ -45,6 +45,12 @@ interface ITelephony {
void call(String number);
/**
+ * Toggle between 3G and LTE (NT_MODE_CDMA, NT_MODE_GLOBAL)
+ * @param boolean to turn on and off LTE
+ */
+ void toggleLTE(boolean on);
+
+ /**
* If there is currently a call in progress, show the call screen.
* The DTMF dialpad may or may not be visible initially, depending on
* whether it was up when the user last exited the InCallScreen.