Loading src/java/com/android/internal/telephony/ServiceStateTracker.java +9 −0 Original line number Diff line number Diff line Loading @@ -1326,6 +1326,8 @@ public class ServiceStateTracker extends Handler { mPrevSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; mIsSimReady = true; pollStateInternal(false); // Signal strength polling stops when radio is off queueNextSignalStrengthPoll(); break; case EVENT_RADIO_STATE_CHANGED: Loading @@ -1333,6 +1335,9 @@ public class ServiceStateTracker extends Handler { if(!mPhone.isPhoneTypeGsm() && mCi.getRadioState() == TelephonyManager.RADIO_POWER_ON) { handleCdmaSubscriptionSource(mCdmaSSM.getCdmaSubscriptionSource()); // Signal strength polling stops when radio is off. queueNextSignalStrengthPoll(); } // This will do nothing in the 'radio not available' case setPowerStateToDesired(); Loading Loading @@ -4748,6 +4753,10 @@ public class ServiceStateTracker extends Handler { } } private void queueNextSignalStrengthPoll() { mPhone.getSignalStrengthController().queueNextSignalStrengthPoll(); } private void notifyCdmaSubscriptionInfoReady() { if (mCdmaForSubscriptionInfoReadyRegistrants != null) { if (DBG) log("CDMA_SUBSCRIPTION: call notifyRegistrants()"); Loading src/java/com/android/internal/telephony/SignalStrengthController.java +38 −0 Original line number Diff line number Diff line Loading @@ -41,11 +41,15 @@ import android.telephony.SignalStrength; import android.telephony.SignalStrengthUpdateRequest; import android.telephony.SignalThresholdInfo; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.util.LocalLog; import android.util.Pair; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.telephony.uicc.IccCardStatus; import com.android.internal.telephony.uicc.UiccCard; import com.android.internal.telephony.uicc.UiccController; import com.android.internal.telephony.util.ArrayUtils; import com.android.internal.util.IndentingPrintWriter; import com.android.telephony.Rlog; Loading Loading @@ -109,6 +113,12 @@ public class SignalStrengthController extends Handler { private long mSignalStrengthUpdatedTime; @Nullable private SignalStrength mLastSignalStrength = null; /** * By default, strength polling is enabled. However, if we're * getting unsolicited signal strength updates from the radio, set * value to true and don't bother polling any more. */ private boolean mDontPollSignalStrength = false; /** * List of LTE EARFCNs (E-UTRAN Absolute Radio Frequency Channel Number, Loading Loading @@ -263,6 +273,8 @@ public class SignalStrengthController extends Handler { } ar = (AsyncResult) msg.obj; onSignalStrengthResult(ar); queueNextSignalStrengthPoll(); break; } Loading @@ -277,6 +289,11 @@ public class SignalStrengthController extends Handler { // This is a notification from CommandsInterface.setOnSignalStrengthUpdate ar = (AsyncResult) msg.obj; // The radio is telling us about signal strength changes // we don't have to ask it mDontPollSignalStrength = true; onSignalStrengthResult(ar); break; } Loading Loading @@ -381,6 +398,26 @@ public class SignalStrengthController extends Handler { return false; } void queueNextSignalStrengthPoll() { if (mDontPollSignalStrength) { // The radio is telling us about signal strength changes // we don't have to ask it return; } // if there is no SIM present, do not poll signal strength UiccCard uiccCard = UiccController.getInstance().getUiccCard( mPhone != null ? mPhone.getPhoneId() : SubscriptionManager.DEFAULT_PHONE_INDEX); if (uiccCard == null || uiccCard.getCardState() == IccCardStatus.CardState.CARDSTATE_ABSENT) { log("Not polling signal strength due to absence of SIM"); return; } // TODO Don't poll signal strength if screen is off sendMessageDelayed(obtainMessage(EVENT_POLL_SIGNAL_STRENGTH), POLL_PERIOD_MILLIS); } /** * Update signal strength reporting criteria from the carrier config */ Loading Loading @@ -628,6 +665,7 @@ public class SignalStrengthController extends Handler { pw.println("mSignalRequestRecords=" + mSignalRequestRecords); pw.println(" mLastSignalStrength=" + mLastSignalStrength); pw.println(" mSignalStrength=" + mSignalStrength); pw.println(" mDontPollSignalStrength=" + mDontPollSignalStrength); pw.println(" mLteRsrpBoost=" + mLteRsrpBoost); pw.println(" mNrRsrpBoost=" + Arrays.toString(mNrRsrpBoost)); pw.println(" mEarfcnPairListForRsrpBoost=" + mEarfcnPairListForRsrpBoost); Loading Loading
src/java/com/android/internal/telephony/ServiceStateTracker.java +9 −0 Original line number Diff line number Diff line Loading @@ -1326,6 +1326,8 @@ public class ServiceStateTracker extends Handler { mPrevSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; mIsSimReady = true; pollStateInternal(false); // Signal strength polling stops when radio is off queueNextSignalStrengthPoll(); break; case EVENT_RADIO_STATE_CHANGED: Loading @@ -1333,6 +1335,9 @@ public class ServiceStateTracker extends Handler { if(!mPhone.isPhoneTypeGsm() && mCi.getRadioState() == TelephonyManager.RADIO_POWER_ON) { handleCdmaSubscriptionSource(mCdmaSSM.getCdmaSubscriptionSource()); // Signal strength polling stops when radio is off. queueNextSignalStrengthPoll(); } // This will do nothing in the 'radio not available' case setPowerStateToDesired(); Loading Loading @@ -4748,6 +4753,10 @@ public class ServiceStateTracker extends Handler { } } private void queueNextSignalStrengthPoll() { mPhone.getSignalStrengthController().queueNextSignalStrengthPoll(); } private void notifyCdmaSubscriptionInfoReady() { if (mCdmaForSubscriptionInfoReadyRegistrants != null) { if (DBG) log("CDMA_SUBSCRIPTION: call notifyRegistrants()"); Loading
src/java/com/android/internal/telephony/SignalStrengthController.java +38 −0 Original line number Diff line number Diff line Loading @@ -41,11 +41,15 @@ import android.telephony.SignalStrength; import android.telephony.SignalStrengthUpdateRequest; import android.telephony.SignalThresholdInfo; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.util.LocalLog; import android.util.Pair; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.telephony.uicc.IccCardStatus; import com.android.internal.telephony.uicc.UiccCard; import com.android.internal.telephony.uicc.UiccController; import com.android.internal.telephony.util.ArrayUtils; import com.android.internal.util.IndentingPrintWriter; import com.android.telephony.Rlog; Loading Loading @@ -109,6 +113,12 @@ public class SignalStrengthController extends Handler { private long mSignalStrengthUpdatedTime; @Nullable private SignalStrength mLastSignalStrength = null; /** * By default, strength polling is enabled. However, if we're * getting unsolicited signal strength updates from the radio, set * value to true and don't bother polling any more. */ private boolean mDontPollSignalStrength = false; /** * List of LTE EARFCNs (E-UTRAN Absolute Radio Frequency Channel Number, Loading Loading @@ -263,6 +273,8 @@ public class SignalStrengthController extends Handler { } ar = (AsyncResult) msg.obj; onSignalStrengthResult(ar); queueNextSignalStrengthPoll(); break; } Loading @@ -277,6 +289,11 @@ public class SignalStrengthController extends Handler { // This is a notification from CommandsInterface.setOnSignalStrengthUpdate ar = (AsyncResult) msg.obj; // The radio is telling us about signal strength changes // we don't have to ask it mDontPollSignalStrength = true; onSignalStrengthResult(ar); break; } Loading Loading @@ -381,6 +398,26 @@ public class SignalStrengthController extends Handler { return false; } void queueNextSignalStrengthPoll() { if (mDontPollSignalStrength) { // The radio is telling us about signal strength changes // we don't have to ask it return; } // if there is no SIM present, do not poll signal strength UiccCard uiccCard = UiccController.getInstance().getUiccCard( mPhone != null ? mPhone.getPhoneId() : SubscriptionManager.DEFAULT_PHONE_INDEX); if (uiccCard == null || uiccCard.getCardState() == IccCardStatus.CardState.CARDSTATE_ABSENT) { log("Not polling signal strength due to absence of SIM"); return; } // TODO Don't poll signal strength if screen is off sendMessageDelayed(obtainMessage(EVENT_POLL_SIGNAL_STRENGTH), POLL_PERIOD_MILLIS); } /** * Update signal strength reporting criteria from the carrier config */ Loading Loading @@ -628,6 +665,7 @@ public class SignalStrengthController extends Handler { pw.println("mSignalRequestRecords=" + mSignalRequestRecords); pw.println(" mLastSignalStrength=" + mLastSignalStrength); pw.println(" mSignalStrength=" + mSignalStrength); pw.println(" mDontPollSignalStrength=" + mDontPollSignalStrength); pw.println(" mLteRsrpBoost=" + mLteRsrpBoost); pw.println(" mNrRsrpBoost=" + Arrays.toString(mNrRsrpBoost)); pw.println(" mEarfcnPairListForRsrpBoost=" + mEarfcnPairListForRsrpBoost); Loading