Loading src/java/com/android/internal/telephony/GsmCdmaPhone.java +10 −4 Original line number Diff line number Diff line Loading @@ -4043,13 +4043,19 @@ public class GsmCdmaPhone extends Phone { } @Override public void setSignalStrengthReportingCriteria( int signalStrengthMeasure, int[] thresholds, int ran, boolean isEnabled) { public void setSignalStrengthReportingCriteria(int signalStrengthMeasure, int[] systemThresholds, int ran, boolean isEnabledForSystem) { int[] consolidatedThresholds = mSST.getConsolidatedSignalThresholds( ran, signalStrengthMeasure, mSST.shouldHonorSystemThresholds() ? thresholds : new int[]{}, isEnabledForSystem && mSST.shouldHonorSystemThresholds() ? systemThresholds : new int[]{}, REPORTING_HYSTERESIS_DB); boolean isEnabledForAppRequest = mSST.shouldEnableSignalThresholdForAppRequest( ran, signalStrengthMeasure, getSubId(), isDeviceIdle()); mCi.setSignalStrengthReportingCriteria( new SignalThresholdInfo.Builder() .setRadioAccessNetworkType(ran) Loading @@ -4057,7 +4063,7 @@ public class GsmCdmaPhone extends Phone { .setHysteresisMs(REPORTING_HYSTERESIS_MILLIS) .setHysteresisDb(REPORTING_HYSTERESIS_DB) .setThresholds(consolidatedThresholds, true /*isSystem*/) .setIsEnabled(isEnabled) .setIsEnabled(isEnabledForSystem || isEnabledForAppRequest) .build(), ran, null); } Loading src/java/com/android/internal/telephony/ServiceStateTracker.java +35 −5 Original line number Diff line number Diff line Loading @@ -6242,8 +6242,7 @@ public class ServiceStateTracker extends Handler { continue; } for (SignalThresholdInfo info : record.mRequest.getSignalThresholdInfos()) { if (ran == info.getRadioAccessNetworkType() && measurement == info.getSignalMeasurementType()) { if (isRanAndSignalMeasurementTypeMatch(ran, measurement, info)) { for (int appThreshold : info.getThresholds()) { target.add(appThreshold); } Loading Loading @@ -6274,12 +6273,44 @@ public class ServiceStateTracker extends Handler { sendMessage(obtainMessage(EVENT_ON_DEVICE_IDLE_STATE_CHANGED, isDeviceIdle)); } boolean shouldEnableSignalThresholdForAppRequest( @AccessNetworkConstants.RadioAccessNetworkType int ran, @SignalThresholdInfo.SignalMeasurementType int measurement, int subId, boolean isDeviceIdle) { for (SignalRequestRecord record : mSignalRequestRecords) { if (subId != record.mSubId) { continue; } for (SignalThresholdInfo info : record.mRequest.getSignalThresholdInfos()) { if (isRanAndSignalMeasurementTypeMatch(ran, measurement, info) && (!isDeviceIdle || isSignalReportRequestedWhileIdle(record.mRequest))) { return true; } } } return false; } private static boolean isRanAndSignalMeasurementTypeMatch( @AccessNetworkConstants.RadioAccessNetworkType int ran, @SignalThresholdInfo.SignalMeasurementType int measurement, SignalThresholdInfo info) { return ran == info.getRadioAccessNetworkType() && measurement == info.getSignalMeasurementType(); } private static boolean isSignalReportRequestedWhileIdle(SignalStrengthUpdateRequest request) { return request.isSystemThresholdReportingRequestedWhileIdle() || request.isReportingRequestedWhileIdle(); } private class SignalRequestRecord implements IBinder.DeathRecipient { final int mSubId; // subId the request originally applied to final int mCallingUid; final SignalStrengthUpdateRequest mRequest; SignalRequestRecord(int subId, int uid, SignalStrengthUpdateRequest request) { SignalRequestRecord(int subId, int uid, @NonNull SignalStrengthUpdateRequest request) { this.mCallingUid = uid; this.mSubId = subId; this.mRequest = request; Loading @@ -6294,8 +6325,7 @@ public class ServiceStateTracker extends Handler { private void updateAlwaysReportSignalStrength() { final int curSubId = mPhone.getSubId(); boolean alwaysReport = mSignalRequestRecords.stream().anyMatch( srr -> srr.mSubId == curSubId && (srr.mRequest.isReportingRequestedWhileIdle() || srr.mRequest.isSystemThresholdReportingRequestedWhileIdle())); srr -> srr.mSubId == curSubId && isSignalReportRequestedWhileIdle(srr.mRequest)); // TODO(b/177924721): TM#setAlwaysReportSignalStrength will be removed and we will not // worry about unset flag which was set by other client. Loading Loading
src/java/com/android/internal/telephony/GsmCdmaPhone.java +10 −4 Original line number Diff line number Diff line Loading @@ -4043,13 +4043,19 @@ public class GsmCdmaPhone extends Phone { } @Override public void setSignalStrengthReportingCriteria( int signalStrengthMeasure, int[] thresholds, int ran, boolean isEnabled) { public void setSignalStrengthReportingCriteria(int signalStrengthMeasure, int[] systemThresholds, int ran, boolean isEnabledForSystem) { int[] consolidatedThresholds = mSST.getConsolidatedSignalThresholds( ran, signalStrengthMeasure, mSST.shouldHonorSystemThresholds() ? thresholds : new int[]{}, isEnabledForSystem && mSST.shouldHonorSystemThresholds() ? systemThresholds : new int[]{}, REPORTING_HYSTERESIS_DB); boolean isEnabledForAppRequest = mSST.shouldEnableSignalThresholdForAppRequest( ran, signalStrengthMeasure, getSubId(), isDeviceIdle()); mCi.setSignalStrengthReportingCriteria( new SignalThresholdInfo.Builder() .setRadioAccessNetworkType(ran) Loading @@ -4057,7 +4063,7 @@ public class GsmCdmaPhone extends Phone { .setHysteresisMs(REPORTING_HYSTERESIS_MILLIS) .setHysteresisDb(REPORTING_HYSTERESIS_DB) .setThresholds(consolidatedThresholds, true /*isSystem*/) .setIsEnabled(isEnabled) .setIsEnabled(isEnabledForSystem || isEnabledForAppRequest) .build(), ran, null); } Loading
src/java/com/android/internal/telephony/ServiceStateTracker.java +35 −5 Original line number Diff line number Diff line Loading @@ -6242,8 +6242,7 @@ public class ServiceStateTracker extends Handler { continue; } for (SignalThresholdInfo info : record.mRequest.getSignalThresholdInfos()) { if (ran == info.getRadioAccessNetworkType() && measurement == info.getSignalMeasurementType()) { if (isRanAndSignalMeasurementTypeMatch(ran, measurement, info)) { for (int appThreshold : info.getThresholds()) { target.add(appThreshold); } Loading Loading @@ -6274,12 +6273,44 @@ public class ServiceStateTracker extends Handler { sendMessage(obtainMessage(EVENT_ON_DEVICE_IDLE_STATE_CHANGED, isDeviceIdle)); } boolean shouldEnableSignalThresholdForAppRequest( @AccessNetworkConstants.RadioAccessNetworkType int ran, @SignalThresholdInfo.SignalMeasurementType int measurement, int subId, boolean isDeviceIdle) { for (SignalRequestRecord record : mSignalRequestRecords) { if (subId != record.mSubId) { continue; } for (SignalThresholdInfo info : record.mRequest.getSignalThresholdInfos()) { if (isRanAndSignalMeasurementTypeMatch(ran, measurement, info) && (!isDeviceIdle || isSignalReportRequestedWhileIdle(record.mRequest))) { return true; } } } return false; } private static boolean isRanAndSignalMeasurementTypeMatch( @AccessNetworkConstants.RadioAccessNetworkType int ran, @SignalThresholdInfo.SignalMeasurementType int measurement, SignalThresholdInfo info) { return ran == info.getRadioAccessNetworkType() && measurement == info.getSignalMeasurementType(); } private static boolean isSignalReportRequestedWhileIdle(SignalStrengthUpdateRequest request) { return request.isSystemThresholdReportingRequestedWhileIdle() || request.isReportingRequestedWhileIdle(); } private class SignalRequestRecord implements IBinder.DeathRecipient { final int mSubId; // subId the request originally applied to final int mCallingUid; final SignalStrengthUpdateRequest mRequest; SignalRequestRecord(int subId, int uid, SignalStrengthUpdateRequest request) { SignalRequestRecord(int subId, int uid, @NonNull SignalStrengthUpdateRequest request) { this.mCallingUid = uid; this.mSubId = subId; this.mRequest = request; Loading @@ -6294,8 +6325,7 @@ public class ServiceStateTracker extends Handler { private void updateAlwaysReportSignalStrength() { final int curSubId = mPhone.getSubId(); boolean alwaysReport = mSignalRequestRecords.stream().anyMatch( srr -> srr.mSubId == curSubId && (srr.mRequest.isReportingRequestedWhileIdle() || srr.mRequest.isSystemThresholdReportingRequestedWhileIdle())); srr -> srr.mSubId == curSubId && isSignalReportRequestedWhileIdle(srr.mRequest)); // TODO(b/177924721): TM#setAlwaysReportSignalStrength will be removed and we will not // worry about unset flag which was set by other client. Loading