From 0e15fe8e4ab3931197c0088581d79d1a357e54f3 Mon Sep 17 00:00:00 2001 From: Doris Ling Date: Fri, 13 Jan 2017 10:52:53 -0800 Subject: [PATCH] Enable time zone preference on wifi-only device. When auto time zone preference is not available, it should be considered disabled, so that user can still select time zone. Change-Id: I9b17205a11ff512da02694e3bce06cfbd21dd7db Fix: 34203177 Test: make RunSettingsRoboTests --- .../AutoTimeZonePreferenceController.java | 2 +- .../AutoTimeZonePreferenceControllerTest.java | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java b/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java index c70289b8c13..b48e535e92b 100644 --- a/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java +++ b/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java @@ -67,7 +67,7 @@ public class AutoTimeZonePreferenceController extends PreferenceController } public boolean isEnabled() { - return Settings.Global.getInt(mContext.getContentResolver(), + return isAvailable() && Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.AUTO_TIME_ZONE, 0) > 0; } } diff --git a/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java index cc8d84a8539..0ac02510386 100644 --- a/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java @@ -55,6 +55,7 @@ public class AutoTimeZonePreferenceControllerTest { @Before public void setUp() { MockitoAnnotations.initMocks(this); + ShadowApplication.getInstance().setSystemService(Context.CONNECTIVITY_SERVICE, mCm); mContext = ShadowApplication.getInstance().getApplicationContext(); mPreference = new Preference(mContext); when(mMockContext.getSystemService(Context.CONNECTIVITY_SERVICE)).thenReturn(mCm); @@ -87,6 +88,24 @@ public class AutoTimeZonePreferenceControllerTest { assertThat(mController.isAvailable()).isFalse(); } + @Test + public void isFromSUW_notEnable() { + mController = new AutoTimeZonePreferenceController( + mMockContext, null /* callback */, true /* isFromSUW */); + + assertThat(mController.isEnabled()).isFalse(); + } + + @Test + public void isWifiOnly_notEnable() { + when(mCm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)).thenReturn(false); + + mController = new AutoTimeZonePreferenceController( + mMockContext, null /* callback */, false /* isFromSUW */); + + assertThat(mController.isEnabled()).isFalse(); + } + @Test public void testIsEnabled_shouldReadFromSettingsProvider() { mController = new AutoTimeZonePreferenceController(