Merge "Add a listener for subscription changes to SimDialogFragment" into qt-dev
am: 87fadeeb4a
Change-Id: I59e0e265a5e91bed12d7e786d4fdd3043c068fed
This commit is contained in:
@@ -16,20 +16,25 @@
|
|||||||
|
|
||||||
package com.android.settings.sim;
|
package com.android.settings.sim;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
||||||
|
import com.android.settings.network.SubscriptionsChangeListener;
|
||||||
|
|
||||||
/** Common functionality for showing a dialog in SimDialogActivity. */
|
/** 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 TAG = "SimDialogFragment";
|
||||||
|
|
||||||
private static final String KEY_TITLE_ID = "title_id";
|
private static final String KEY_TITLE_ID = "title_id";
|
||||||
private static final String KEY_DIALOG_TYPE = "dialog_type";
|
private static final String KEY_DIALOG_TYPE = "dialog_type";
|
||||||
|
|
||||||
|
private SubscriptionsChangeListener mChangeListener;
|
||||||
|
|
||||||
protected static Bundle initArguments(int dialogType, int titleResId) {
|
protected static Bundle initArguments(int dialogType, int titleResId) {
|
||||||
final Bundle args = new Bundle();
|
final Bundle args = new Bundle();
|
||||||
args.putInt(KEY_DIALOG_TYPE, dialogType);
|
args.putInt(KEY_DIALOG_TYPE, dialogType);
|
||||||
@@ -45,6 +50,24 @@ public abstract class SimDialogFragment extends InstrumentedDialogFragment {
|
|||||||
return getArguments().getInt(KEY_TITLE_ID);
|
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
|
@Override
|
||||||
public void onDismiss(@NonNull DialogInterface dialog) {
|
public void onDismiss(@NonNull DialogInterface dialog) {
|
||||||
super.onDismiss(dialog);
|
super.onDismiss(dialog);
|
||||||
@@ -55,4 +78,13 @@ public abstract class SimDialogFragment extends InstrumentedDialogFragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public abstract void updateDialog();
|
public abstract void updateDialog();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAirplaneModeChanged(boolean airplaneModeEnabled) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSubscriptionsChanged() {
|
||||||
|
updateDialog();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -26,6 +26,7 @@ import static org.mockito.ArgumentMatchers.anyInt;
|
|||||||
import static org.mockito.Mockito.doNothing;
|
import static org.mockito.Mockito.doNothing;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
|
import static org.mockito.Mockito.times;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
|
|
||||||
import android.telephony.SubscriptionManager;
|
import android.telephony.SubscriptionManager;
|
||||||
@@ -77,6 +78,22 @@ public class SimListDialogFragmentTest extends SimDialogFragmentTestBase<SimList
|
|||||||
verify(activity).onSubscriptionSelected(dialogType, SIM2_ID);
|
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
|
@Test
|
||||||
public void onCreateDialog_twoSubscriptionsAskEveryTime_threeSubsForDisplay() {
|
public void onCreateDialog_twoSubscriptionsAskEveryTime_threeSubsForDisplay() {
|
||||||
final int dialogType = SMS_PICK;
|
final int dialogType = SMS_PICK;
|
||||||
|
Reference in New Issue
Block a user