[Settings] Avoid from Settings crash
Avoid from crash when null pointer. Bug: 152336444 Test: m RunSettingsRoboTests -j ROBOTEST_FILTER=MobileNetworkActivityTest Change-Id: I77314f697d8a99d77b9f5fe0a48ddbae69634743
This commit is contained in:
@@ -53,7 +53,8 @@ public class MobileNetworkActivity extends SettingsBaseActivity
|
||||
@VisibleForTesting
|
||||
static final int SUB_ID_NULL = Integer.MIN_VALUE;
|
||||
|
||||
private ProxySubscriptionManager mProxySubscriptionMgr;
|
||||
@VisibleForTesting
|
||||
ProxySubscriptionManager mProxySubscriptionMgr;
|
||||
private int mCurSubscriptionId;
|
||||
|
||||
@Override
|
||||
@@ -102,9 +103,7 @@ public class MobileNetworkActivity extends SettingsBaseActivity
|
||||
actionBar.setDisplayHomeAsUpEnabled(true);
|
||||
}
|
||||
|
||||
mProxySubscriptionMgr = ProxySubscriptionManager.getInstance(this);
|
||||
mProxySubscriptionMgr.setLifecycle(getLifecycle());
|
||||
mProxySubscriptionMgr.addActiveSubscriptionsListener(this);
|
||||
registerActiveSubscriptionsListener();
|
||||
|
||||
final Intent startIntent = getIntent();
|
||||
validate(startIntent);
|
||||
@@ -119,15 +118,26 @@ public class MobileNetworkActivity extends SettingsBaseActivity
|
||||
maybeShowContactDiscoveryDialog(mCurSubscriptionId);
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
void registerActiveSubscriptionsListener() {
|
||||
mProxySubscriptionMgr = ProxySubscriptionManager.getInstance(this);
|
||||
mProxySubscriptionMgr.setLifecycle(getLifecycle());
|
||||
mProxySubscriptionMgr.addActiveSubscriptionsListener(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of ProxySubscriptionManager.OnActiveSubscriptionChangedListener
|
||||
*/
|
||||
public void onChanged() {
|
||||
SubscriptionInfo info = getSubscription();
|
||||
int oldSubIndex = mCurSubscriptionId;
|
||||
int subIndex = info.getSubscriptionId();
|
||||
updateSubscriptions(info);
|
||||
|
||||
// Remove the dialog if the subscription associated with this activity changes.
|
||||
if (info == null) {
|
||||
return;
|
||||
}
|
||||
int subIndex = info.getSubscriptionId();
|
||||
if (subIndex != oldSubIndex) {
|
||||
removeContactDiscoveryDialog(oldSubIndex);
|
||||
}
|
||||
|
@@ -22,6 +22,7 @@ import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.Mockito.anyInt;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.robolectric.Shadows.shadowOf;
|
||||
|
||||
import android.content.Context;
|
||||
@@ -39,6 +40,7 @@ import androidx.test.core.app.ApplicationProvider;
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
|
||||
import com.android.internal.telephony.TelephonyIntents;
|
||||
import com.android.settings.network.ProxySubscriptionManager;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
@@ -109,6 +111,12 @@ public class MobileNetworkActivityTest {
|
||||
|
||||
private SubscriptionInfo mSubscriptionInFragment;
|
||||
|
||||
@Override
|
||||
void registerActiveSubscriptionsListener() {
|
||||
mProxySubscriptionMgr = mock(ProxySubscriptionManager.class);
|
||||
onChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
void switchFragment(SubscriptionInfo subInfo) {
|
||||
mSubscriptionInFragment = subInfo;
|
||||
|
Reference in New Issue
Block a user