summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRamesh Sudini <ramesh.sudini@motorola.com>2011-07-27 20:33:19 -0700
committerWink Saville <wink@google.com>2011-07-27 20:34:15 -0700
commitd5f8d84d4573e17d87dc41000314156b08d9beec (patch)
tree7bb8abfdaa17a9858ed94a31a1ba3d90374c8def
parent41394a361020e9f58524f23d6831bb8e63063856 (diff)
downloadframeworks_base-d5f8d84d4573e17d87dc41000314156b08d9beec.zip
frameworks_base-d5f8d84d4573e17d87dc41000314156b08d9beec.tar.gz
frameworks_base-d5f8d84d4573e17d87dc41000314156b08d9beec.tar.bz2
Support of LTE Only mode
In CDMA-LTE hybrid mode, the service state is derived based on CDMA state. However, CDMA radio is off while in LTE only mode so thre will be no signal bar or data type icon displayed on the status UI. This patch handles LTE only mode scenario. The service state is derived from LTE if CDMA is OOS and LTE only mode is used. Bug: 5070240 Change-Id: Ie55daaf9eea1b16ca73312ebab208810b145d2bc
-rw-r--r--telephony/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java20
1 files changed, 20 insertions, 0 deletions
diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java b/telephony/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java
index aa56cca..018b72c 100644
--- a/telephony/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java
+++ b/telephony/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java
@@ -217,6 +217,26 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker {
" mNewDataConnectionState = " + mNewDataConnectionState);
}
+ // TODO: Add proper support for LTE Only, we should be looking at
+ // the preferred network mode, to know when newSS state should
+ // be coming from mLteSs state. This was needed to pass a VZW
+ // LTE Only test.
+ //
+ // If CDMA service is OOS, double check if the device is running with LTE only
+ // mode. If that is the case, derive the service state from LTE side.
+ // To set in LTE only mode, sqlite3 /data/data/com.android.providers.settings/
+ // databases/settings.db "update secure set value='11' where name='preferred_network_mode'"
+ if (newSS.getState() == ServiceState.STATE_OUT_OF_SERVICE) {
+ int networkMode = android.provider.Settings.Secure.getInt(phone.getContext()
+ .getContentResolver(),
+ android.provider.Settings.Secure.PREFERRED_NETWORK_MODE,
+ RILConstants.PREFERRED_NETWORK_MODE);
+ if (networkMode == RILConstants.NETWORK_MODE_LTE_ONLY) {
+ if (DBG) log("pollState: LTE Only mode");
+ newSS.setState(mLteSS.getState());
+ }
+ }
+
if (DBG) log("pollStateDone: oldSS=[" + ss + "] newSS=[" + newSS + "]");
boolean hasRegistered = ss.getState() != ServiceState.STATE_IN_SERVICE