diff options
author | Ricardo Cerqueira <github@cerqueira.org> | 2012-04-17 01:14:37 +0100 |
---|---|---|
committer | Ricardo Cerqueira <github@cerqueira.org> | 2012-04-17 14:18:59 +0100 |
commit | 29983476c2e60e1e07f546cdcf85b70171b4da4c (patch) | |
tree | 27273f9428fb9a931812673c59c9c25e4b5f4310 /telephony | |
parent | cebc0ce50129ca3ef890020d8a3aeb1dd4888847 (diff) | |
download | frameworks_base-29983476c2e60e1e07f546cdcf85b70171b4da4c.zip frameworks_base-29983476c2e60e1e07f546cdcf85b70171b4da4c.tar.gz frameworks_base-29983476c2e60e1e07f546cdcf85b70171b4da4c.tar.bz2 |
Telephony: Add getLteOnGsmMode() method
Same functionality as the existing getLteOnCdmaMode, but for GSM
LTE devices.
Enable with the telephony.lteOnGsmDevice system property
Additionally, support GSM LTE in the SystemUI LTE power widget
Change-Id: Ibfb47ca608e51393b99d3308e0a6c66050b3f32e
Diffstat (limited to 'telephony')
9 files changed, 72 insertions, 0 deletions
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 9e3a3fd..3c95fa5 100755 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -710,6 +710,21 @@ public class TelephonyManager { } } + /** + * Return if the current radio is LTE on GSM + * @hide + */ + public int getLteOnGsmMode() { + try { + return getITelephony().getLteOnGsmMode(); + } catch (RemoteException ex) { + return 0; + } catch (NullPointerException ex) { + // This could happen before phone restarts due to crashing + return 0; + } + } + // // // Subscriber Info diff --git a/telephony/java/com/android/internal/telephony/BaseCommands.java b/telephony/java/com/android/internal/telephony/BaseCommands.java index 07b6183..023e60e 100644 --- a/telephony/java/com/android/internal/telephony/BaseCommands.java +++ b/telephony/java/com/android/internal/telephony/BaseCommands.java @@ -898,4 +898,21 @@ public abstract class BaseCommands implements CommandsInterface { "' lteOnCdmaProductType='" + sLteOnCdmaProductType + "'"); return retVal; } + + /** + * @hide + */ + @Override + public int getLteOnGsmMode() { + return getLteOnGsmModeStatic(); + } + + /** + * Return if the current radio is LTE on GSM + * @hide + */ + public static int getLteOnGsmModeStatic() { + return SystemProperties.getInt(TelephonyProperties.PROPERTY_LTE_ON_GSM_DEVICE, + 0); + } } diff --git a/telephony/java/com/android/internal/telephony/CommandsInterface.java b/telephony/java/com/android/internal/telephony/CommandsInterface.java index dbef7f6..abcee78 100644 --- a/telephony/java/com/android/internal/telephony/CommandsInterface.java +++ b/telephony/java/com/android/internal/telephony/CommandsInterface.java @@ -1633,6 +1633,12 @@ public interface CommandsInterface { public int getLteOnCdmaMode(); /** + * Return if the current radio is LTE on GSM + * @hide + */ + public int getLteOnGsmMode(); + + /** * Request the ISIM application on the UICC to perform the AKA * challenge/response algorithm for IMS authentication. The nonce string * and challenge response are Base64 encoded Strings. diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index cd92e93..d2c76f9 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -284,5 +284,7 @@ interface ITelephony { * or {@link PHone#LTE_ON_CDMA_TRUE} */ int getLteOnCdmaMode(); + + int getLteOnGsmMode(); } diff --git a/telephony/java/com/android/internal/telephony/Phone.java b/telephony/java/com/android/internal/telephony/Phone.java index 9d189c1..3022db9 100644 --- a/telephony/java/com/android/internal/telephony/Phone.java +++ b/telephony/java/com/android/internal/telephony/Phone.java @@ -209,6 +209,7 @@ public interface Phone { int NT_MODE_GSM_ONLY = RILConstants.NETWORK_MODE_GSM_ONLY; int NT_MODE_WCDMA_ONLY = RILConstants.NETWORK_MODE_WCDMA_ONLY; int NT_MODE_GSM_UMTS = RILConstants.NETWORK_MODE_GSM_UMTS; + int NT_MODE_LTE_GSM_WCDMA= RILConstants.NETWORK_MODE_LTE_GSM_WCDMA; int NT_MODE_CDMA = RILConstants.NETWORK_MODE_CDMA; @@ -1731,6 +1732,12 @@ public interface Phone { public int getLteOnCdmaMode(); /** + * Return if the current radio is LTE on GSM + * @hide + */ + public int getLteOnGsmMode(); + + /** * TODO: Adding a function for each property is not good. * A fucntion of type getPhoneProp(propType) where propType is an * enum of GSM+CDMA+LTE props would be a better approach. diff --git a/telephony/java/com/android/internal/telephony/PhoneBase.java b/telephony/java/com/android/internal/telephony/PhoneBase.java index d547802..9de986c 100644 --- a/telephony/java/com/android/internal/telephony/PhoneBase.java +++ b/telephony/java/com/android/internal/telephony/PhoneBase.java @@ -1174,6 +1174,14 @@ public abstract class PhoneBase extends Handler implements Phone { } /** + * {@hide} + */ + @Override + public int getLteOnGsmMode() { + return mCM.getLteOnGsmMode(); + } + + /** * Sets the SIM voice message waiting indicator records. * @param line GSM Subscriber Profile Number, one-based. Only '1' is supported * @param countWaiting The number of messages waiting, if known. Use diff --git a/telephony/java/com/android/internal/telephony/PhoneFactory.java b/telephony/java/com/android/internal/telephony/PhoneFactory.java index fa563a6..0d0277d 100644 --- a/telephony/java/com/android/internal/telephony/PhoneFactory.java +++ b/telephony/java/com/android/internal/telephony/PhoneFactory.java @@ -104,6 +104,9 @@ public class PhoneFactory { if (BaseCommands.getLteOnCdmaModeStatic() == Phone.LTE_ON_CDMA_TRUE) { preferredNetworkMode = Phone.NT_MODE_GLOBAL; } + if (BaseCommands.getLteOnGsmModeStatic() != 0) { + preferredNetworkMode = Phone.NT_MODE_LTE_GSM_WCDMA; + } int networkMode = Settings.Secure.getInt(context.getContentResolver(), Settings.Secure.PREFERRED_NETWORK_MODE, preferredNetworkMode); Log.i(LOG_TAG, "Network Mode set to " + Integer.toString(networkMode)); @@ -194,6 +197,7 @@ public class PhoneFactory { case RILConstants.NETWORK_MODE_GSM_ONLY: case RILConstants.NETWORK_MODE_WCDMA_ONLY: case RILConstants.NETWORK_MODE_GSM_UMTS: + case RILConstants.NETWORK_MODE_LTE_GSM_WCDMA: return Phone.PHONE_TYPE_GSM; // Use CDMA Phone for the global mode including CDMA diff --git a/telephony/java/com/android/internal/telephony/PhoneProxy.java b/telephony/java/com/android/internal/telephony/PhoneProxy.java index 60f364e..1cff782 100644 --- a/telephony/java/com/android/internal/telephony/PhoneProxy.java +++ b/telephony/java/com/android/internal/telephony/PhoneProxy.java @@ -850,6 +850,14 @@ public class PhoneProxy extends Handler implements Phone { return mActivePhone.getLteOnCdmaMode(); } + /** + * {@hide} + */ + @Override + public int getLteOnGsmMode() { + return mActivePhone.getLteOnGsmMode(); + } + @Override public void setVoiceMessageWaiting(int line, int countWaiting) { mActivePhone.setVoiceMessageWaiting(line, countWaiting); diff --git a/telephony/java/com/android/internal/telephony/TelephonyProperties.java b/telephony/java/com/android/internal/telephony/TelephonyProperties.java index abb4523..38048e3 100644 --- a/telephony/java/com/android/internal/telephony/TelephonyProperties.java +++ b/telephony/java/com/android/internal/telephony/TelephonyProperties.java @@ -88,6 +88,11 @@ public interface TelephonyProperties */ static final String PROPERTY_LTE_ON_CDMA_DEVICE = "telephony.lteOnCdmaDevice"; + /** + * {@see BaseCommands#getLteOnGsmMode()} + */ + static final String PROPERTY_LTE_ON_GSM_DEVICE = "telephony.lteOnGsmDevice"; + static final String CURRENT_ACTIVE_PHONE = "gsm.current.phone-type"; //****** SIM Card |