Merge "[Settings] Code refactor on MobileNetworkActivity" into rvc-dev

This commit is contained in:
Bonian Chen
2020-03-25 04:35:04 +00:00
committed by Android (Google) Code Review
2 changed files with 32 additions and 12 deletions

View File

@@ -103,7 +103,7 @@ public class MobileNetworkActivity extends SettingsBaseActivity
actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setDisplayHomeAsUpEnabled(true);
} }
registerActiveSubscriptionsListener(); getProxySubscriptionManager().setLifecycle(getLifecycle());
final Intent startIntent = getIntent(); final Intent startIntent = getIntent();
validate(startIntent); validate(startIntent);
@@ -116,13 +116,23 @@ public class MobileNetworkActivity extends SettingsBaseActivity
final SubscriptionInfo subscription = getSubscription(); final SubscriptionInfo subscription = getSubscription();
updateTitleAndNavigation(subscription); updateTitleAndNavigation(subscription);
maybeShowContactDiscoveryDialog(mCurSubscriptionId); maybeShowContactDiscoveryDialog(mCurSubscriptionId);
// Since onChanged() will take place immediately when addActiveSubscriptionsListener(),
// perform registration after mCurSubscriptionId been configured.
registerActiveSubscriptionsListener();
}
@VisibleForTesting
ProxySubscriptionManager getProxySubscriptionManager() {
if (mProxySubscriptionMgr == null) {
mProxySubscriptionMgr = ProxySubscriptionManager.getInstance(this);
}
return mProxySubscriptionMgr;
} }
@VisibleForTesting @VisibleForTesting
void registerActiveSubscriptionsListener() { void registerActiveSubscriptionsListener() {
mProxySubscriptionMgr = ProxySubscriptionManager.getInstance(this); getProxySubscriptionManager().addActiveSubscriptionsListener(this);
mProxySubscriptionMgr.setLifecycle(getLifecycle());
mProxySubscriptionMgr.addActiveSubscriptionsListener(this);
} }
/** /**
@@ -145,7 +155,7 @@ public class MobileNetworkActivity extends SettingsBaseActivity
@Override @Override
protected void onStart() { protected void onStart() {
mProxySubscriptionMgr.setLifecycle(getLifecycle()); getProxySubscriptionManager().setLifecycle(getLifecycle());
super.onStart(); super.onStart();
// updateSubscriptions doesn't need to be called, onChanged will always be called after we // updateSubscriptions doesn't need to be called, onChanged will always be called after we
// register a listener. // register a listener.
@@ -201,19 +211,22 @@ public class MobileNetworkActivity extends SettingsBaseActivity
@VisibleForTesting @VisibleForTesting
SubscriptionInfo getSubscription() { SubscriptionInfo getSubscription() {
if (mCurSubscriptionId != SUB_ID_NULL) { if (mCurSubscriptionId != SUB_ID_NULL) {
final SubscriptionInfo subInfo = SubscriptionUtil.getAvailableSubscription( return getSubscriptionForSubId(mCurSubscriptionId);
this, mProxySubscriptionMgr, mCurSubscriptionId);
if (subInfo != null) {
return subInfo;
} }
} final List<SubscriptionInfo> subInfos = getProxySubscriptionManager()
final List<SubscriptionInfo> subInfos = mProxySubscriptionMgr.getActiveSubscriptionsInfo(); .getActiveSubscriptionsInfo();
if (CollectionUtils.isEmpty(subInfos)) { if (CollectionUtils.isEmpty(subInfos)) {
return null; return null;
} }
return subInfos.get(0); return subInfos.get(0);
} }
@VisibleForTesting
SubscriptionInfo getSubscriptionForSubId(int subId) {
return SubscriptionUtil.getAvailableSubscription(this,
getProxySubscriptionManager(), subId);
}
@VisibleForTesting @VisibleForTesting
void switchFragment(SubscriptionInfo subInfo) { void switchFragment(SubscriptionInfo subInfo) {
final FragmentManager fragmentManager = getSupportFragmentManager(); final FragmentManager fragmentManager = getSupportFragmentManager();

View File

@@ -112,8 +112,15 @@ public class MobileNetworkActivityTest {
private SubscriptionInfo mSubscriptionInFragment; private SubscriptionInfo mSubscriptionInFragment;
@Override @Override
void registerActiveSubscriptionsListener() { ProxySubscriptionManager getProxySubscriptionManager() {
if (mProxySubscriptionMgr == null) {
mProxySubscriptionMgr = mock(ProxySubscriptionManager.class); mProxySubscriptionMgr = mock(ProxySubscriptionManager.class);
}
return mProxySubscriptionMgr;
}
@Override
void registerActiveSubscriptionsListener() {
onChanged(); onChanged();
} }