Loading src/com/android/settings/network/InternetPreferenceController.java +13 −2 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import androidx.annotation.IdRes; import androidx.annotation.VisibleForTesting; import androidx.lifecycle.Lifecycle; import androidx.lifecycle.LifecycleObserver; import androidx.lifecycle.OnLifecycleEvent; Loading @@ -42,6 +43,7 @@ import com.android.settings.widget.SummaryUpdater; import com.android.settings.wifi.WifiSummaryUpdater; import com.android.settingslib.Utils; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.utils.ThreadUtils; import java.util.HashMap; import java.util.Map; Loading Loading @@ -147,8 +149,13 @@ public class InternetPreferenceController extends AbstractPreferenceController i * @param internetType the internet type */ public void onInternetTypeChanged(@InternetUpdater.InternetType int internetType) { final boolean needUpdate = (internetType != mInternetType); mInternetType = internetType; if (needUpdate) { ThreadUtils.postOnMainThread(() -> { updateState(mPreference); }); } } @Override Loading @@ -158,13 +165,17 @@ public class InternetPreferenceController extends AbstractPreferenceController i } } private void updateCellularSummary() { @VisibleForTesting void updateCellularSummary() { final SubscriptionManager subscriptionManager = mContext.getSystemService(SubscriptionManager.class); if (subscriptionManager == null) { return; } SubscriptionInfo subInfo = subscriptionManager.getDefaultDataSubscriptionInfo(); if (subInfo == null) { return; } mPreference.setSummary(subInfo.getDisplayName()); } } tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java +10 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import android.net.NetworkScoreManager; import android.net.wifi.WifiManager; import android.os.Handler; import android.os.Looper; import android.telephony.SubscriptionManager; import androidx.lifecycle.Lifecycle; import androidx.preference.Preference; Loading Loading @@ -123,4 +124,13 @@ public class InternetPreferenceControllerTest { assertThat(mPreference.getSummary()).isEqualTo(TEST_SUMMARY); } @Test public void updateCellularSummary_getNullSubscriptionInfo_shouldNotCrash() { final SubscriptionManager subscriptionManager = mock(SubscriptionManager.class); when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(subscriptionManager); when(subscriptionManager.getDefaultDataSubscriptionInfo()).thenReturn(null); mController.updateCellularSummary(); } } Loading
src/com/android/settings/network/InternetPreferenceController.java +13 −2 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import androidx.annotation.IdRes; import androidx.annotation.VisibleForTesting; import androidx.lifecycle.Lifecycle; import androidx.lifecycle.LifecycleObserver; import androidx.lifecycle.OnLifecycleEvent; Loading @@ -42,6 +43,7 @@ import com.android.settings.widget.SummaryUpdater; import com.android.settings.wifi.WifiSummaryUpdater; import com.android.settingslib.Utils; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.utils.ThreadUtils; import java.util.HashMap; import java.util.Map; Loading Loading @@ -147,8 +149,13 @@ public class InternetPreferenceController extends AbstractPreferenceController i * @param internetType the internet type */ public void onInternetTypeChanged(@InternetUpdater.InternetType int internetType) { final boolean needUpdate = (internetType != mInternetType); mInternetType = internetType; if (needUpdate) { ThreadUtils.postOnMainThread(() -> { updateState(mPreference); }); } } @Override Loading @@ -158,13 +165,17 @@ public class InternetPreferenceController extends AbstractPreferenceController i } } private void updateCellularSummary() { @VisibleForTesting void updateCellularSummary() { final SubscriptionManager subscriptionManager = mContext.getSystemService(SubscriptionManager.class); if (subscriptionManager == null) { return; } SubscriptionInfo subInfo = subscriptionManager.getDefaultDataSubscriptionInfo(); if (subInfo == null) { return; } mPreference.setSummary(subInfo.getDisplayName()); } }
tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java +10 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import android.net.NetworkScoreManager; import android.net.wifi.WifiManager; import android.os.Handler; import android.os.Looper; import android.telephony.SubscriptionManager; import androidx.lifecycle.Lifecycle; import androidx.preference.Preference; Loading Loading @@ -123,4 +124,13 @@ public class InternetPreferenceControllerTest { assertThat(mPreference.getSummary()).isEqualTo(TEST_SUMMARY); } @Test public void updateCellularSummary_getNullSubscriptionInfo_shouldNotCrash() { final SubscriptionManager subscriptionManager = mock(SubscriptionManager.class); when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(subscriptionManager); when(subscriptionManager.getDefaultDataSubscriptionInfo()).thenReturn(null); mController.updateCellularSummary(); } }