Merge "Auto update summary for mobile network preference."

This commit is contained in:
TreeHugger Robot
2018-03-01 01:42:32 +00:00
committed by Android (Google) Code Review
2 changed files with 22 additions and 23 deletions

View File

@@ -32,11 +32,11 @@ import com.android.settings.wrapper.RestrictedLockUtilsWrapper;
import com.android.settingslib.Utils; import com.android.settingslib.Utils;
import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnResume; import com.android.settingslib.core.lifecycle.events.OnStop;
public class MobileNetworkPreferenceController extends AbstractPreferenceController public class MobileNetworkPreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin, LifecycleObserver, OnResume, OnPause { implements PreferenceControllerMixin, LifecycleObserver, OnStart, OnStop {
private static final String KEY_MOBILE_NETWORK_SETTINGS = "mobile_network_settings"; private static final String KEY_MOBILE_NETWORK_SETTINGS = "mobile_network_settings";
@@ -71,9 +71,7 @@ public class MobileNetworkPreferenceController extends AbstractPreferenceControl
@Override @Override
public void displayPreference(PreferenceScreen screen) { public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen); super.displayPreference(screen);
if (isAvailable()) { mPreference = screen.findPreference(getPreferenceKey());
mPreference = screen.findPreference(getPreferenceKey());
}
} }
@Override @Override
@@ -82,15 +80,13 @@ public class MobileNetworkPreferenceController extends AbstractPreferenceControl
} }
@Override @Override
public void onResume() { public void onStart() {
if (isAvailable()) { if (isAvailable()) {
if (mPhoneStateListener == null) { if (mPhoneStateListener == null) {
mPhoneStateListener = new PhoneStateListener() { mPhoneStateListener = new PhoneStateListener() {
@Override @Override
public void onServiceStateChanged(ServiceState serviceState) { public void onServiceStateChanged(ServiceState serviceState) {
if (mPreference != null) { updateState(mPreference);
mPreference.setSummary(mTelephonyManager.getNetworkOperatorName());
}
} }
}; };
} }
@@ -99,9 +95,14 @@ public class MobileNetworkPreferenceController extends AbstractPreferenceControl
} }
@Override @Override
public void onPause() { public void onStop() {
if (mPhoneStateListener != null) { if (mPhoneStateListener != null) {
mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE); mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
} }
} }
@Override
public CharSequence getSummary() {
return mTelephonyManager.getNetworkOperatorName();
}
} }

View File

@@ -15,11 +15,9 @@
*/ */
package com.android.settings.network; package com.android.settings.network;
import static android.arch.lifecycle.Lifecycle.Event.ON_PAUSE; import static android.arch.lifecycle.Lifecycle.Event.ON_START;
import static android.arch.lifecycle.Lifecycle.Event.ON_RESUME; import static android.arch.lifecycle.Lifecycle.Event.ON_STOP;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
@@ -53,10 +51,10 @@ import org.robolectric.annotation.Config;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
@Config( @Config(
manifest = TestConfig.MANIFEST_PATH, manifest = TestConfig.MANIFEST_PATH,
sdk = TestConfig.SDK_VERSION, sdk = TestConfig.SDK_VERSION,
shadows = {ShadowRestrictedLockUtilsWrapper.class, ShadowConnectivityManager.class, shadows = {ShadowRestrictedLockUtilsWrapper.class, ShadowConnectivityManager.class,
ShadowUserManager.class} ShadowUserManager.class}
) )
public class MobileNetworkPreferenceControllerTest { public class MobileNetworkPreferenceControllerTest {
@@ -110,11 +108,11 @@ public class MobileNetworkPreferenceControllerTest {
mLifecycle.addObserver(mController); mLifecycle.addObserver(mController);
doReturn(true).when(mController).isAvailable(); doReturn(true).when(mController).isAvailable();
mLifecycle.handleLifecycleEvent(ON_RESUME); mLifecycle.handleLifecycleEvent(ON_START);
verify(mTelephonyManager).listen(mController.mPhoneStateListener, verify(mTelephonyManager).listen(mController.mPhoneStateListener,
PhoneStateListener.LISTEN_SERVICE_STATE); PhoneStateListener.LISTEN_SERVICE_STATE);
mLifecycle.handleLifecycleEvent(ON_PAUSE); mLifecycle.handleLifecycleEvent(ON_STOP);
verify(mTelephonyManager).listen(mController.mPhoneStateListener, verify(mTelephonyManager).listen(mController.mPhoneStateListener,
PhoneStateListener.LISTEN_NONE); PhoneStateListener.LISTEN_NONE);
} }
@@ -131,8 +129,8 @@ public class MobileNetworkPreferenceControllerTest {
// Display pref and go through lifecycle to set up listener. // Display pref and go through lifecycle to set up listener.
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
mLifecycle.handleLifecycleEvent(ON_RESUME); mLifecycle.handleLifecycleEvent(ON_START);
verify(mController).onResume(); verify(mController).onStart();
verify(mTelephonyManager).listen(mController.mPhoneStateListener, verify(mTelephonyManager).listen(mController.mPhoneStateListener,
PhoneStateListener.LISTEN_SERVICE_STATE); PhoneStateListener.LISTEN_SERVICE_STATE);