Loading src/java/com/android/internal/telephony/SignalStrengthController.java +24 −1 Original line number Diff line number Diff line Loading @@ -26,6 +26,8 @@ import android.os.Handler; import android.os.IBinder; import android.os.Message; import android.os.PersistableBundle; import android.os.Registrant; import android.os.RegistrantList; import android.os.RemoteException; import android.telephony.AccessNetworkConstants; import android.telephony.CarrierConfigManager; Loading Loading @@ -102,7 +104,8 @@ public class SignalStrengthController extends Handler { private final Phone mPhone; @NonNull private final CommandsInterface mCi; @NonNull private final RegistrantList mSignalStrengthChangedRegistrants = new RegistrantList(); @NonNull private SignalStrength mSignalStrength; private long mSignalStrengthUpdatedTime; Loading Loading @@ -721,6 +724,7 @@ public class SignalStrengthController extends Handler { boolean notified = false; if (!mSignalStrength.equals(mLastSignalStrength)) { try { mSignalStrengthChangedRegistrants.notifyRegistrants(); mPhone.notifySignalStrength(); notified = true; mLastSignalStrength = mSignalStrength; Loading @@ -732,6 +736,25 @@ public class SignalStrengthController extends Handler { return notified; } /** * Register for SignalStrength changed. * @param h Handler to notify * @param what msg.what when the message is delivered * @param obj msg.obj when the message is delivered */ public void registerForSignalStrengthChanged(Handler h, int what, Object obj) { Registrant r = new Registrant(h, what, obj); mSignalStrengthChangedRegistrants.add(r); } /** * Unregister for SignalStrength changed. * @param h Handler to notify */ public void unregisterForSignalStrengthChanged(Handler h) { mSignalStrengthChangedRegistrants.remove(h); } /** * Print the SignalStrengthController states into the given stream. * Loading tests/telephonytests/src/com/android/internal/telephony/SignalStrengthControllerTest.java +13 −0 Original line number Diff line number Diff line Loading @@ -946,6 +946,19 @@ public class SignalStrengthControllerTest extends TelephonyTest { 1 /*expectedNonEmptyThreshold*/); } @Test public void testSignalStrengthChangedCallback() { Handler mockRegistrant = Mockito.mock(Handler.class); int ssChangedEvent = 0; mSsc.registerForSignalStrengthChanged(mockRegistrant, ssChangedEvent, null); mSimulatedCommands.notifySignalStrength(); processAllMessages(); ArgumentCaptor<Message> msgCaptor = ArgumentCaptor.forClass(Message.class); verify(mockRegistrant).sendMessageDelayed(msgCaptor.capture(), Mockito.anyLong()); assertThat(msgCaptor.getValue().what).isEqualTo(ssChangedEvent); } private void verifyAllEmptyThresholdAreDisabledWhenSetSignalStrengthReportingCriteria( int expectedNonEmptyThreshold) { ArgumentCaptor<List<SignalThresholdInfo>> signalThresholdInfoCaptor = Loading Loading
src/java/com/android/internal/telephony/SignalStrengthController.java +24 −1 Original line number Diff line number Diff line Loading @@ -26,6 +26,8 @@ import android.os.Handler; import android.os.IBinder; import android.os.Message; import android.os.PersistableBundle; import android.os.Registrant; import android.os.RegistrantList; import android.os.RemoteException; import android.telephony.AccessNetworkConstants; import android.telephony.CarrierConfigManager; Loading Loading @@ -102,7 +104,8 @@ public class SignalStrengthController extends Handler { private final Phone mPhone; @NonNull private final CommandsInterface mCi; @NonNull private final RegistrantList mSignalStrengthChangedRegistrants = new RegistrantList(); @NonNull private SignalStrength mSignalStrength; private long mSignalStrengthUpdatedTime; Loading Loading @@ -721,6 +724,7 @@ public class SignalStrengthController extends Handler { boolean notified = false; if (!mSignalStrength.equals(mLastSignalStrength)) { try { mSignalStrengthChangedRegistrants.notifyRegistrants(); mPhone.notifySignalStrength(); notified = true; mLastSignalStrength = mSignalStrength; Loading @@ -732,6 +736,25 @@ public class SignalStrengthController extends Handler { return notified; } /** * Register for SignalStrength changed. * @param h Handler to notify * @param what msg.what when the message is delivered * @param obj msg.obj when the message is delivered */ public void registerForSignalStrengthChanged(Handler h, int what, Object obj) { Registrant r = new Registrant(h, what, obj); mSignalStrengthChangedRegistrants.add(r); } /** * Unregister for SignalStrength changed. * @param h Handler to notify */ public void unregisterForSignalStrengthChanged(Handler h) { mSignalStrengthChangedRegistrants.remove(h); } /** * Print the SignalStrengthController states into the given stream. * Loading
tests/telephonytests/src/com/android/internal/telephony/SignalStrengthControllerTest.java +13 −0 Original line number Diff line number Diff line Loading @@ -946,6 +946,19 @@ public class SignalStrengthControllerTest extends TelephonyTest { 1 /*expectedNonEmptyThreshold*/); } @Test public void testSignalStrengthChangedCallback() { Handler mockRegistrant = Mockito.mock(Handler.class); int ssChangedEvent = 0; mSsc.registerForSignalStrengthChanged(mockRegistrant, ssChangedEvent, null); mSimulatedCommands.notifySignalStrength(); processAllMessages(); ArgumentCaptor<Message> msgCaptor = ArgumentCaptor.forClass(Message.class); verify(mockRegistrant).sendMessageDelayed(msgCaptor.capture(), Mockito.anyLong()); assertThat(msgCaptor.getValue().what).isEqualTo(ssChangedEvent); } private void verifyAllEmptyThresholdAreDisabledWhenSetSignalStrengthReportingCriteria( int expectedNonEmptyThreshold) { ArgumentCaptor<List<SignalThresholdInfo>> signalThresholdInfoCaptor = Loading