Merge "[Settings] Use TelephonyManasger.registerTelephonyCallback instead of TelephonyManager.listen" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
c7d3c5f1be
@@ -57,7 +57,7 @@ public final class AirplaneModeEnablerTest {
|
||||
|
||||
ShadowSettings.setAirplaneMode(true);
|
||||
|
||||
mAirplaneModeEnabler.mPhoneStateListener.onRadioPowerStateChanged(
|
||||
mAirplaneModeEnabler.mTelephonyCallback.onRadioPowerStateChanged(
|
||||
TelephonyManager.RADIO_POWER_OFF);
|
||||
|
||||
verify(mAirplaneModeChangedListener, times(1)).onAirplaneModeChanged(true);
|
||||
|
@@ -16,13 +16,9 @@
|
||||
|
||||
package com.android.settings.network.telephony;
|
||||
|
||||
import static android.telephony.PhoneStateListener.LISTEN_NONE;
|
||||
import static android.telephony.PhoneStateListener.LISTEN_SIGNAL_STRENGTHS;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyInt;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.spy;
|
||||
@@ -31,7 +27,7 @@ import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.telephony.PhoneStateListener;
|
||||
import android.telephony.TelephonyCallback;
|
||||
import android.telephony.TelephonyManager;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -44,6 +40,8 @@ import org.mockito.internal.util.collections.Sets;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
public class SignalStrengthListenerTest {
|
||||
private static final int SUB_ID_1 = 111;
|
||||
@@ -88,13 +86,19 @@ public class SignalStrengthListenerTest {
|
||||
@Test
|
||||
public void updateSubscriptionIds_beforeResume_startedListening() {
|
||||
mListener.updateSubscriptionIds(Sets.newSet(SUB_ID_1, SUB_ID_2));
|
||||
ArgumentCaptor<PhoneStateListener> captor1 = ArgumentCaptor.forClass(
|
||||
PhoneStateListener.class);
|
||||
ArgumentCaptor<PhoneStateListener> captor2 = ArgumentCaptor.forClass(
|
||||
PhoneStateListener.class);
|
||||
verify(mManager1).listen(captor1.capture(), eq(LISTEN_SIGNAL_STRENGTHS));
|
||||
verify(mManager2).listen(captor2.capture(), eq(LISTEN_SIGNAL_STRENGTHS));
|
||||
verify(mManager3, never()).listen(any(), anyInt());
|
||||
ArgumentCaptor<SignalStrengthListener.SignalStrengthTelephonyCallback> captor1 =
|
||||
ArgumentCaptor.forClass(
|
||||
SignalStrengthListener.SignalStrengthTelephonyCallback.class);
|
||||
ArgumentCaptor<SignalStrengthListener.SignalStrengthTelephonyCallback> captor2 =
|
||||
ArgumentCaptor.forClass(
|
||||
SignalStrengthListener.SignalStrengthTelephonyCallback.class);
|
||||
|
||||
verify(mManager1).registerTelephonyCallback(
|
||||
any(Executor.class), captor1.capture());
|
||||
verify(mManager2).registerTelephonyCallback(
|
||||
any(Executor.class), captor2.capture());
|
||||
verify(mManager3, never()).registerTelephonyCallback(any(), any());
|
||||
|
||||
assertThat(captor1.getValue()).isNotNull();
|
||||
assertThat(captor2.getValue()).isNotNull();
|
||||
|
||||
@@ -105,46 +109,57 @@ public class SignalStrengthListenerTest {
|
||||
@Test
|
||||
public void updateSubscriptionIds_twoCalls_oneIdAdded() {
|
||||
mListener.updateSubscriptionIds(Sets.newSet(SUB_ID_1, SUB_ID_2));
|
||||
verify(mManager1).listen(any(PhoneStateListener.class), eq(LISTEN_SIGNAL_STRENGTHS));
|
||||
verify(mManager2).listen(any(PhoneStateListener.class), eq(LISTEN_SIGNAL_STRENGTHS));
|
||||
|
||||
verify(mManager1).registerTelephonyCallback(any(Executor.class),
|
||||
eq(mListener.mTelephonyCallbacks.get(SUB_ID_1)));
|
||||
verify(mManager2).registerTelephonyCallback(any(Executor.class),
|
||||
eq(mListener.mTelephonyCallbacks.get(SUB_ID_2)));
|
||||
|
||||
mListener.updateSubscriptionIds(Sets.newSet(SUB_ID_1, SUB_ID_2, SUB_ID_3));
|
||||
verify(mManager1, never()).listen(any(PhoneStateListener.class), eq(LISTEN_NONE));
|
||||
verify(mManager2, never()).listen(any(PhoneStateListener.class), eq(LISTEN_NONE));
|
||||
verify(mManager3).listen(any(PhoneStateListener.class), eq(LISTEN_SIGNAL_STRENGTHS));
|
||||
verify(mManager1, never()).unregisterTelephonyCallback(
|
||||
mListener.mTelephonyCallbacks.get(SUB_ID_1));
|
||||
verify(mManager2, never()).unregisterTelephonyCallback(
|
||||
mListener.mTelephonyCallbacks.get(SUB_ID_2));
|
||||
verify(mManager3).registerTelephonyCallback(
|
||||
any(Executor.class), eq(mListener.mTelephonyCallbacks.get(SUB_ID_3)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateSubscriptionIds_twoCalls_oneIdRemoved() {
|
||||
ArgumentCaptor<PhoneStateListener> captor1 = ArgumentCaptor.forClass(
|
||||
PhoneStateListener.class);
|
||||
ArgumentCaptor<SignalStrengthListener.SignalStrengthTelephonyCallback> captor1 =
|
||||
ArgumentCaptor.forClass(
|
||||
SignalStrengthListener.SignalStrengthTelephonyCallback.class);
|
||||
|
||||
mListener.updateSubscriptionIds(Sets.newSet(SUB_ID_1, SUB_ID_2));
|
||||
verify(mManager1).listen(captor1.capture(), eq(LISTEN_SIGNAL_STRENGTHS));
|
||||
verify(mManager2).listen(any(PhoneStateListener.class), eq(LISTEN_SIGNAL_STRENGTHS));
|
||||
verify(mManager1).registerTelephonyCallback(any(Executor.class), captor1.capture());
|
||||
verify(mManager2).registerTelephonyCallback(
|
||||
any(Executor.class), any(TelephonyCallback.class));
|
||||
|
||||
mListener.updateSubscriptionIds(Sets.newSet(SUB_ID_2));
|
||||
verify(mManager1).listen(captor1.capture(), eq(LISTEN_NONE));
|
||||
verify(mManager2, never()).listen(any(PhoneStateListener.class), eq(LISTEN_NONE));
|
||||
verify(mManager1).unregisterTelephonyCallback(captor1.capture());
|
||||
verify(mManager2, never()).unregisterTelephonyCallback(any(TelephonyCallback.class));
|
||||
// Make sure the correct listener was removed.
|
||||
assertThat(captor1.getAllValues().get(0) == captor1.getAllValues().get(1)).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateSubscriptionIds_twoCalls_twoIdsRemovedOneAdded() {
|
||||
ArgumentCaptor<PhoneStateListener> captor1 = ArgumentCaptor.forClass(
|
||||
PhoneStateListener.class);
|
||||
ArgumentCaptor<PhoneStateListener> captor2 = ArgumentCaptor.forClass(
|
||||
PhoneStateListener.class);
|
||||
ArgumentCaptor<SignalStrengthListener.SignalStrengthTelephonyCallback> captor1 =
|
||||
ArgumentCaptor.forClass(
|
||||
SignalStrengthListener.SignalStrengthTelephonyCallback.class);
|
||||
ArgumentCaptor<SignalStrengthListener.SignalStrengthTelephonyCallback> captor2 =
|
||||
ArgumentCaptor.forClass(
|
||||
SignalStrengthListener.SignalStrengthTelephonyCallback.class);
|
||||
|
||||
mListener.updateSubscriptionIds(Sets.newSet(SUB_ID_1, SUB_ID_2));
|
||||
verify(mManager1).listen(captor1.capture(), eq(LISTEN_SIGNAL_STRENGTHS));
|
||||
verify(mManager2).listen(captor2.capture(), eq(LISTEN_SIGNAL_STRENGTHS));
|
||||
verify(mManager1).registerTelephonyCallback(any(Executor.class), captor1.capture());
|
||||
verify(mManager2).registerTelephonyCallback(any(Executor.class), captor2.capture());
|
||||
|
||||
mListener.updateSubscriptionIds(Sets.newSet(SUB_ID_3));
|
||||
verify(mManager1).listen(captor1.capture(), eq(LISTEN_NONE));
|
||||
verify(mManager2).listen(captor2.capture(), eq(LISTEN_NONE));
|
||||
verify(mManager3).listen(any(PhoneStateListener.class), eq(LISTEN_SIGNAL_STRENGTHS));
|
||||
verify(mManager1).unregisterTelephonyCallback(captor1.capture());
|
||||
verify(mManager2).unregisterTelephonyCallback(captor2.capture());
|
||||
verify(mManager3).registerTelephonyCallback(
|
||||
any(Executor.class), any(TelephonyCallback.class));
|
||||
// Make sure the correct listeners were removed.
|
||||
assertThat(captor1.getValue() != captor2.getValue()).isTrue();
|
||||
assertThat(captor1.getAllValues().get(0) == captor1.getAllValues().get(1)).isTrue();
|
||||
@@ -157,15 +172,19 @@ public class SignalStrengthListenerTest {
|
||||
mListener.pause();
|
||||
mListener.resume();
|
||||
|
||||
ArgumentCaptor<PhoneStateListener> captor1 = ArgumentCaptor.forClass(
|
||||
PhoneStateListener.class);
|
||||
ArgumentCaptor<PhoneStateListener> captor2 = ArgumentCaptor.forClass(
|
||||
PhoneStateListener.class);
|
||||
verify(mManager1, times(2)).listen(captor1.capture(), eq(LISTEN_SIGNAL_STRENGTHS));
|
||||
verify(mManager1).listen(captor1.capture(), eq(LISTEN_NONE));
|
||||
ArgumentCaptor<SignalStrengthListener.SignalStrengthTelephonyCallback> captor1 =
|
||||
ArgumentCaptor.forClass(
|
||||
SignalStrengthListener.SignalStrengthTelephonyCallback.class);
|
||||
ArgumentCaptor<SignalStrengthListener.SignalStrengthTelephonyCallback> captor2 =
|
||||
ArgumentCaptor.forClass(
|
||||
SignalStrengthListener.SignalStrengthTelephonyCallback.class);
|
||||
verify(mManager1, times(2)).registerTelephonyCallback(
|
||||
any(Executor.class), captor1.capture());
|
||||
verify(mManager1).unregisterTelephonyCallback(captor1.capture());
|
||||
|
||||
verify(mManager2, times(2)).listen(captor2.capture(), eq(LISTEN_SIGNAL_STRENGTHS));
|
||||
verify(mManager2).listen(captor2.capture(), eq(LISTEN_NONE));
|
||||
verify(mManager2, times(2)).registerTelephonyCallback(
|
||||
any(Executor.class), captor2.capture());
|
||||
verify(mManager2).unregisterTelephonyCallback(captor2.capture());
|
||||
|
||||
assertThat(captor1.getAllValues().get(0) == captor1.getAllValues().get(1)).isTrue();
|
||||
assertThat(captor1.getAllValues().get(0) == captor1.getAllValues().get(2)).isTrue();
|
||||
|
Reference in New Issue
Block a user