Loading src/com/android/settings/sim/SimDialogFragment.java +33 −1 Original line number Diff line number Diff line Loading @@ -16,20 +16,25 @@ package com.android.settings.sim; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import androidx.annotation.NonNull; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.network.SubscriptionsChangeListener; /** Common functionality for showing a dialog in SimDialogActivity. */ public abstract class SimDialogFragment extends InstrumentedDialogFragment { public abstract class SimDialogFragment extends InstrumentedDialogFragment implements SubscriptionsChangeListener.SubscriptionsChangeListenerClient { private static final String TAG = "SimDialogFragment"; private static final String KEY_TITLE_ID = "title_id"; private static final String KEY_DIALOG_TYPE = "dialog_type"; private SubscriptionsChangeListener mChangeListener; protected static Bundle initArguments(int dialogType, int titleResId) { final Bundle args = new Bundle(); args.putInt(KEY_DIALOG_TYPE, dialogType); Loading @@ -45,6 +50,24 @@ public abstract class SimDialogFragment extends InstrumentedDialogFragment { return getArguments().getInt(KEY_TITLE_ID); } @Override public void onAttach(Context context) { super.onAttach(context); mChangeListener = new SubscriptionsChangeListener(context, this); } @Override public void onPause() { super.onPause(); mChangeListener.stop(); } @Override public void onResume() { super.onResume(); mChangeListener.start(); } @Override public void onDismiss(@NonNull DialogInterface dialog) { super.onDismiss(dialog); Loading @@ -55,4 +78,13 @@ public abstract class SimDialogFragment extends InstrumentedDialogFragment { } public abstract void updateDialog(); @Override public void onAirplaneModeChanged(boolean airplaneModeEnabled) { } @Override public void onSubscriptionsChanged() { updateDialog(); } } tests/robotests/src/com/android/settings/sim/SimListDialogFragmentTest.java +17 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import android.telephony.SubscriptionManager; Loading Loading @@ -77,6 +78,22 @@ public class SimListDialogFragmentTest extends SimDialogFragmentTestBase<SimList verify(activity).onSubscriptionSelected(dialogType, SIM2_ID); } @Test public void onSubscriptionsChanged_dialogUpdates() { final int dialogType = DATA_PICK; setDialogType(dialogType); mFragment = spy(SimListDialogFragment.newInstance(dialogType, R.string.select_sim_for_data, false /* includeAskEveryTime */)); doReturn(Arrays.asList(mSim1, mSim2)).when(mFragment).getCurrentSubscriptions(); // Avoid problems robolectric has with our real adapter. doNothing().when(mFragment).setAdapter(any()); startDialog(); verify(mFragment).updateDialog(); mFragment.onSubscriptionsChanged(); verify(mFragment, times(2)).updateDialog(); } @Test public void onCreateDialog_twoSubscriptionsAskEveryTime_threeSubsForDisplay() { final int dialogType = SMS_PICK; Loading Loading
src/com/android/settings/sim/SimDialogFragment.java +33 −1 Original line number Diff line number Diff line Loading @@ -16,20 +16,25 @@ package com.android.settings.sim; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import androidx.annotation.NonNull; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.network.SubscriptionsChangeListener; /** Common functionality for showing a dialog in SimDialogActivity. */ public abstract class SimDialogFragment extends InstrumentedDialogFragment { public abstract class SimDialogFragment extends InstrumentedDialogFragment implements SubscriptionsChangeListener.SubscriptionsChangeListenerClient { private static final String TAG = "SimDialogFragment"; private static final String KEY_TITLE_ID = "title_id"; private static final String KEY_DIALOG_TYPE = "dialog_type"; private SubscriptionsChangeListener mChangeListener; protected static Bundle initArguments(int dialogType, int titleResId) { final Bundle args = new Bundle(); args.putInt(KEY_DIALOG_TYPE, dialogType); Loading @@ -45,6 +50,24 @@ public abstract class SimDialogFragment extends InstrumentedDialogFragment { return getArguments().getInt(KEY_TITLE_ID); } @Override public void onAttach(Context context) { super.onAttach(context); mChangeListener = new SubscriptionsChangeListener(context, this); } @Override public void onPause() { super.onPause(); mChangeListener.stop(); } @Override public void onResume() { super.onResume(); mChangeListener.start(); } @Override public void onDismiss(@NonNull DialogInterface dialog) { super.onDismiss(dialog); Loading @@ -55,4 +78,13 @@ public abstract class SimDialogFragment extends InstrumentedDialogFragment { } public abstract void updateDialog(); @Override public void onAirplaneModeChanged(boolean airplaneModeEnabled) { } @Override public void onSubscriptionsChanged() { updateDialog(); } }
tests/robotests/src/com/android/settings/sim/SimListDialogFragmentTest.java +17 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import android.telephony.SubscriptionManager; Loading Loading @@ -77,6 +78,22 @@ public class SimListDialogFragmentTest extends SimDialogFragmentTestBase<SimList verify(activity).onSubscriptionSelected(dialogType, SIM2_ID); } @Test public void onSubscriptionsChanged_dialogUpdates() { final int dialogType = DATA_PICK; setDialogType(dialogType); mFragment = spy(SimListDialogFragment.newInstance(dialogType, R.string.select_sim_for_data, false /* includeAskEveryTime */)); doReturn(Arrays.asList(mSim1, mSim2)).when(mFragment).getCurrentSubscriptions(); // Avoid problems robolectric has with our real adapter. doNothing().when(mFragment).setAdapter(any()); startDialog(); verify(mFragment).updateDialog(); mFragment.onSubscriptionsChanged(); verify(mFragment, times(2)).updateDialog(); } @Test public void onCreateDialog_twoSubscriptionsAskEveryTime_threeSubsForDisplay() { final int dialogType = SMS_PICK; Loading