Merge "Prevent extra reloads in mobile networking page/controllers"
This commit is contained in:
committed by
Android (Google) Code Review
commit
3355bc06d0
@@ -23,17 +23,20 @@ import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.database.ContentObserver;
|
||||
import android.net.Uri;
|
||||
import android.provider.Settings;
|
||||
import android.telephony.SubscriptionManager;
|
||||
|
||||
import com.android.internal.telephony.TelephonyIntents;
|
||||
import com.android.settings.network.SubscriptionsChangeListener.SubscriptionsChangeListenerClient;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -94,6 +97,19 @@ public class SubscriptionsChangeListenerTest {
|
||||
verify(mClient).onSubscriptionsChanged();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void
|
||||
onSubscriptionsChangedEvent_ignoresStickyBroadcastFromBeforeRegistering() {
|
||||
final Intent intent = new Intent(TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
|
||||
mContext.sendStickyBroadcast(intent);
|
||||
|
||||
initListener(true);
|
||||
verify(mClient, never()).onSubscriptionsChanged();
|
||||
|
||||
mContext.sendStickyBroadcast(intent);
|
||||
verify(mClient, times(1)).onSubscriptionsChanged();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onSubscriptionsChangedEvent_radioTechnologyChangedBroadcast_eventDeliveredToUs() {
|
||||
initListener(true);
|
||||
|
@@ -26,6 +26,7 @@ import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
@@ -35,10 +36,7 @@ import android.telephony.SubscriptionManager;
|
||||
import android.view.Menu;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
|
||||
import com.android.internal.telephony.TelephonyIntents;
|
||||
import com.android.internal.view.menu.ContextMenuBuilder;
|
||||
import com.android.settings.R;
|
||||
|
||||
@@ -56,6 +54,10 @@ import org.robolectric.RuntimeEnvironment;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
public class MobileNetworkActivityTest {
|
||||
|
||||
@@ -141,6 +143,25 @@ public class MobileNetworkActivityTest {
|
||||
MOBILE_SETTINGS_TAG + CURRENT_SUB_ID);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void phoneChangeReceiver_ignoresStickyBroadcastFromBeforeRegistering() {
|
||||
Activity activity = Robolectric.setupActivity(Activity.class);
|
||||
final int[] onChangeCallbackCount = {0};
|
||||
MobileNetworkActivity.PhoneChangeReceiver receiver =
|
||||
new MobileNetworkActivity.PhoneChangeReceiver(activity, () -> {
|
||||
onChangeCallbackCount[0]++;
|
||||
});
|
||||
Intent intent = new Intent(TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
|
||||
activity.sendStickyBroadcast(intent);
|
||||
|
||||
receiver.register();
|
||||
assertThat(onChangeCallbackCount[0]).isEqualTo(0);
|
||||
|
||||
activity.sendStickyBroadcast(intent);
|
||||
assertThat(onChangeCallbackCount[0]).isEqualTo(1);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void getSubscriptionId_hasIntent_getIdFromIntent() {
|
||||
final Intent intent = new Intent();
|
||||
|
Reference in New Issue
Block a user