diff options
author | Ramesh Sudini <ramesh.sudini@motorola.com> | 2011-07-27 20:33:19 -0700 |
---|---|---|
committer | Wink Saville <wink@google.com> | 2011-07-27 20:34:15 -0700 |
commit | d5f8d84d4573e17d87dc41000314156b08d9beec (patch) | |
tree | 7bb8abfdaa17a9858ed94a31a1ba3d90374c8def | |
parent | 41394a361020e9f58524f23d6831bb8e63063856 (diff) | |
download | frameworks_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.java | 20 |
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 |