Clean-up after com.android.settings.flags.revamp_toggles rollout

Flag: EXEMPT refactoring / flag clean-up
Test: refactoring CL. Existing unit tests still pass.
Bug: 296835792

Change-Id: Ib57ee270c8b5d540cb19997fe1863dd6d782cbe4
This commit is contained in:
Geoffrey Boullanger
2024-11-21 11:54:47 +00:00
parent efcb4dfddf
commit 842a337291
12 changed files with 21 additions and 439 deletions

View File

@@ -8,12 +8,3 @@ flag {
description: "Enable the time feedback feature, a button to launch feedback in Date & Time Settings" description: "Enable the time feedback feature, a button to launch feedback in Date & Time Settings"
bug: "283239837" bug: "283239837"
} }
flag {
name: "revamp_toggles"
# "location" is used by the Android System Time team for feature flags.
namespace: "location"
description: "Makes the use location toggle dependent on automatic time zone detection"
bug: "296835792"
}

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2008 The Android Open Source Project <!-- Copyright (C) 2024 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -94,10 +94,6 @@
android:key="time_format_preference_category" android:key="time_format_preference_category"
android:title="@string/time_format_category_title" android:title="@string/time_format_category_title"
settings:keywords="@string/keywords_time_format"> settings:keywords="@string/keywords_time_format">
<SwitchPreferenceCompat
android:key="auto_24hour"
android:title="@string/date_time_24hour_auto"
settings:controller="com.android.settings.datetime.AutoTimeFormatPreferenceController" />
<SwitchPreferenceCompat <SwitchPreferenceCompat
android:key="24 hour" android:key="24 hour"

View File

@@ -1,104 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2024 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res-auto"
android:title="@string/date_and_time"
settings:keywords="@string/keywords_date_and_time">
<com.android.settingslib.RestrictedSwitchPreference
android:key="auto_time"
android:title="@string/date_time_auto"
android:summary="@string/summary_placeholder"
settings:userRestriction="no_config_date_time"
settings:controller="com.android.settings.datetime.AutoTimePreferenceController" />
<com.android.settingslib.RestrictedPreference
android:key="date"
android:title="@string/date_time_set_date_title"
android:summary="@string/summary_placeholder"
settings:userRestriction="no_config_date_time"
settings:controller="com.android.settings.datetime.DatePreferenceController" />
<com.android.settingslib.RestrictedPreference
android:key="time"
android:title="@string/date_time_set_time_title"
android:summary="@string/summary_placeholder"
settings:userRestriction="no_config_date_time"
settings:controller="com.android.settings.datetime.TimePreferenceController" />
<PreferenceCategory
android:key="timezone_preference_category"
android:title="@string/date_time_set_timezone_title">
<com.android.settingslib.RestrictedSwitchPreference
android:key="auto_zone"
android:title="@string/zone_auto_title"
android:summary="@string/summary_placeholder"
settings:userRestriction="no_config_date_time"
settings:controller="com.android.settings.datetime.AutoTimeZonePreferenceController" />
<com.android.settingslib.widget.BannerMessagePreference
android:key="location_time_zone_detection_status"
android:title="@string/location_time_zone_detection_status_title"
settings:controller="com.android.settings.datetime.LocationProviderStatusPreferenceController"/>
<!-- This preference gets removed if location-based time zone detection is not supported -->
<SwitchPreferenceCompat
android:key="location_time_zone_detection"
android:title="@string/location_time_zone_detection_toggle_title"
android:summary="@string/summary_placeholder"
settings:controller="com.android.settings.datetime.LocationTimeZoneDetectionPreferenceController"/>
<com.android.settingslib.RestrictedPreference
android:key="timezone"
android:title="@string/date_time_set_timezone_title"
android:summary="@string/summary_placeholder"
android:fragment="com.android.settings.datetime.timezone.TimeZoneSettings"
settings:userRestriction="no_config_date_time"
settings:keywords="@string/keywords_time_zone"
settings:controller="com.android.settings.datetime.TimeZonePreferenceController" />
</PreferenceCategory>
<!-- An optional preference category for feedback. Only displayed up if enabled via flags and config. -->
<PreferenceCategory
android:key="time_feedback_preference_category"
android:title="@string/time_feedback_category_title"
settings:keywords="@string/keywords_time_feedback_category"
settings:controller="com.android.settings.datetime.TimeFeedbackPreferenceCategoryController">
<Preference
android:key="time_feedback"
android:title="@string/time_feedback_title"
settings:keywords="@string/keywords_time_feedback"
settings:controller="com.android.settings.datetime.TimeFeedbackPreferenceController" />
</PreferenceCategory>
<PreferenceCategory
android:key="time_format_preference_category"
android:title="@string/time_format_category_title"
settings:keywords="@string/keywords_time_format">
<SwitchPreferenceCompat
android:key="24 hour"
android:title="@string/date_time_24hour"
settings:controller="com.android.settings.datetime.TimeFormatPreferenceController" />
</PreferenceCategory>
</PreferenceScreen>

View File

@@ -1,73 +0,0 @@
/*
* Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.settings.datetime;
import android.content.Context;
import android.provider.Settings;
import android.provider.Settings.System;
import android.text.format.DateFormat;
import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
import java.util.Locale;
public class AutoTimeFormatPreferenceController extends TogglePreferenceController {
public AutoTimeFormatPreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey);
}
@Override
public int getAvailabilityStatus() {
return AVAILABLE;
}
@Override
public boolean isChecked() {
return isAutoTimeFormatSelection(mContext);
}
@Override
public boolean setChecked(boolean isChecked) {
Boolean is24Hour;
if (isChecked) {
is24Hour = null;
} else {
is24Hour = is24HourLocale(mContext.getResources().getConfiguration().locale);
}
TimeFormatPreferenceController.update24HourFormat(mContext, is24Hour);
return true;
}
@Override
public int getSliceHighlightMenuRes() {
return R.string.menu_key_system;
}
boolean is24HourLocale(Locale locale) {
return DateFormat.is24HourLocale(locale);
}
/**
* Returns if the system is currently configured to pick the time format automatically based on
* the locale.
*/
static boolean isAutoTimeFormatSelection(Context context) {
return Settings.System.getString(context.getContentResolver(), System.TIME_12_24) == null;
}
}

View File

@@ -32,7 +32,6 @@ import androidx.preference.Preference;
import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.TogglePreferenceController;
import com.android.settings.flags.Flags;
public class AutoTimeZonePreferenceController extends TogglePreferenceController { public class AutoTimeZonePreferenceController extends TogglePreferenceController {
@@ -107,7 +106,6 @@ public class AutoTimeZonePreferenceController extends TogglePreferenceController
TimeZoneConfiguration.Builder configuration = new TimeZoneConfiguration.Builder() TimeZoneConfiguration.Builder configuration = new TimeZoneConfiguration.Builder()
.setAutoDetectionEnabled(isChecked); .setAutoDetectionEnabled(isChecked);
if (Flags.revampToggles()) {
// "Use location for time zone" is only used if "Automatic time zone" is enabled. If // "Use location for time zone" is only used if "Automatic time zone" is enabled. If
// the user toggles off automatic time zone, set the toggle off and disable the toggle. // the user toggles off automatic time zone, set the toggle off and disable the toggle.
int geoDetectionCapability = mTimeManager int geoDetectionCapability = mTimeManager
@@ -120,7 +118,6 @@ public class AutoTimeZonePreferenceController extends TogglePreferenceController
|| geoDetectionCapability == CAPABILITY_POSSESSED)) { || geoDetectionCapability == CAPABILITY_POSSESSED)) {
configuration.setGeoDetectionEnabled(false); configuration.setGeoDetectionEnabled(false);
} }
}
boolean result = mTimeManager.updateTimeZoneConfiguration(configuration.build()); boolean result = mTimeManager.updateTimeZoneConfiguration(configuration.build());

View File

@@ -23,7 +23,6 @@ import android.content.Context;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.flags.Flags;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.search.SearchIndexable;
@@ -50,9 +49,6 @@ public class DateTimeSettings extends DashboardFragment implements
@Override @Override
protected int getPreferenceScreenResId() { protected int getPreferenceScreenResId() {
if (Flags.revampToggles()) {
return R.xml.date_time_prefs_revamped;
}
return R.xml.date_time_prefs; return R.xml.date_time_prefs;
} }
@@ -123,6 +119,5 @@ public class DateTimeSettings extends DashboardFragment implements
} }
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider( new BaseSearchIndexProvider(R.xml.date_time_prefs);
Flags.revampToggles() ? R.xml.date_time_prefs_revamped : R.xml.date_time_prefs);
} }

View File

@@ -32,7 +32,6 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.InstrumentedPreferenceFragment; import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.TogglePreferenceController;
import com.android.settings.flags.Flags;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop; import com.android.settingslib.core.lifecycle.events.OnStop;
@@ -68,7 +67,7 @@ public class LocationTimeZoneDetectionPreferenceController
// forceRefresh set to true as the location toggle may have been turned off by switching off // forceRefresh set to true as the location toggle may have been turned off by switching off
// automatic time zone // automatic time zone
TimeZoneCapabilitiesAndConfig capabilitiesAndConfig = TimeZoneCapabilitiesAndConfig capabilitiesAndConfig =
getTimeZoneCapabilitiesAndConfig(/*forceRefresh=*/ Flags.revampToggles()); getTimeZoneCapabilitiesAndConfig(/*forceRefresh=*/ true);
TimeZoneConfiguration configuration = capabilitiesAndConfig.getConfiguration(); TimeZoneConfiguration configuration = capabilitiesAndConfig.getConfiguration();
return configuration.isGeoDetectionEnabled(); return configuration.isGeoDetectionEnabled();
} }
@@ -137,11 +136,7 @@ public class LocationTimeZoneDetectionPreferenceController
if (capability == CAPABILITY_NOT_SUPPORTED || capability == CAPABILITY_NOT_ALLOWED) { if (capability == CAPABILITY_NOT_SUPPORTED || capability == CAPABILITY_NOT_ALLOWED) {
return UNSUPPORTED_ON_DEVICE; return UNSUPPORTED_ON_DEVICE;
} else if (capability == CAPABILITY_NOT_APPLICABLE || capability == CAPABILITY_POSSESSED) { } else if (capability == CAPABILITY_NOT_APPLICABLE || capability == CAPABILITY_POSSESSED) {
if (Flags.revampToggles()) {
return isAutoTimeZoneEnabled() ? AVAILABLE : DISABLED_DEPENDENT_SETTING; return isAutoTimeZoneEnabled() ? AVAILABLE : DISABLED_DEPENDENT_SETTING;
} else {
return AVAILABLE;
}
} else { } else {
throw new IllegalStateException("Unknown capability=" + capability); throw new IllegalStateException("Unknown capability=" + capability);
} }
@@ -151,11 +146,9 @@ public class LocationTimeZoneDetectionPreferenceController
public void updateState(Preference preference) { public void updateState(Preference preference) {
super.updateState(preference); super.updateState(preference);
if (Flags.revampToggles()) {
// enable / disable the toggle based on automatic time zone being enabled or not // enable / disable the toggle based on automatic time zone being enabled or not
preference.setEnabled(isAutoTimeZoneEnabled()); preference.setEnabled(isAutoTimeZoneEnabled());
} }
}
@Override @Override
public CharSequence getSummary() { public CharSequence getSummary() {

View File

@@ -25,7 +25,6 @@ import androidx.preference.Preference;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.TogglePreferenceController;
import com.android.settings.flags.Flags;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
@@ -73,11 +72,6 @@ public class TimeFormatPreferenceController extends TogglePreferenceController {
if (mIsFromSUW) { if (mIsFromSUW) {
return DISABLED_DEPENDENT_SETTING; return DISABLED_DEPENDENT_SETTING;
} }
if (!Flags.revampToggles()) {
if (AutoTimeFormatPreferenceController.isAutoTimeFormatSelection(mContext)) {
return DISABLED_DEPENDENT_SETTING;
}
}
return AVAILABLE; return AVAILABLE;
} }
@@ -120,12 +114,12 @@ public class TimeFormatPreferenceController extends TogglePreferenceController {
return DateFormat.is24HourFormat(mContext); return DateFormat.is24HourFormat(mContext);
} }
static void update24HourFormat(Context context, Boolean is24Hour) { private static void update24HourFormat(Context context, Boolean is24Hour) {
set24Hour(context, is24Hour); set24Hour(context, is24Hour);
timeUpdated(context, is24Hour); timeUpdated(context, is24Hour);
} }
static void timeUpdated(Context context, Boolean is24Hour) { private static void timeUpdated(Context context, Boolean is24Hour) {
Intent timeChanged = new Intent(Intent.ACTION_TIME_CHANGED); Intent timeChanged = new Intent(Intent.ACTION_TIME_CHANGED);
timeChanged.addFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND); timeChanged.addFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND);
int timeFormatPreference; int timeFormatPreference;
@@ -139,9 +133,8 @@ public class TimeFormatPreferenceController extends TogglePreferenceController {
context.sendBroadcast(timeChanged); context.sendBroadcast(timeChanged);
} }
static void set24Hour(Context context, Boolean is24Hour) { private static void set24Hour(Context context, boolean is24Hour) {
String value = is24Hour == null ? null : String value = is24Hour ? HOURS_24 : HOURS_12;
is24Hour ? HOURS_24 : HOURS_12;
Settings.System.putString(context.getContentResolver(), Settings.System.putString(context.getContentResolver(),
Settings.System.TIME_12_24, value); Settings.System.TIME_12_24, value);
} }

View File

@@ -1,152 +0,0 @@
/*
* Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.settings.datetime;
import static com.google.common.truth.Truth.assertThat;
import android.content.Context;
import android.content.Intent;
import android.provider.Settings;
import android.text.format.DateFormat;
import androidx.preference.SwitchPreference;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadows.ShadowApplication;
import java.util.List;
import java.util.Locale;
@RunWith(RobolectricTestRunner.class)
public class AutoTimeFormatPreferenceControllerTest {
@Mock
private UpdateTimeAndDateCallback mCallback;
private ShadowApplication mApplication;
private Context mContext;
private SwitchPreference mPreference;
private TestAutoTimeFormatPreferenceController mController;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mApplication = ShadowApplication.getInstance();
mContext = RuntimeEnvironment.application;
mController = new TestAutoTimeFormatPreferenceController(mContext, "test_key");
mPreference = new SwitchPreference(mContext);
mPreference.setKey("test_key");
}
@Test
public void updateState_24HourSet_shouldCheckPreference() {
Settings.System.putString(mContext.getContentResolver(), Settings.System.TIME_12_24,
TimeFormatPreferenceController.HOURS_24);
mController.updateState(mPreference);
assertThat(mPreference.isChecked()).isFalse();
}
@Test
public void updateState_12HourSet_shouldCheckPreference() {
Settings.System.putString(mContext.getContentResolver(), Settings.System.TIME_12_24,
TimeFormatPreferenceController.HOURS_12);
mController.updateState(mPreference);
assertThat(mPreference.isChecked()).isFalse();
}
@Test
public void updateState_autoSet_shouldNotCheckPreference() {
Settings.System.putString(mContext.getContentResolver(), Settings.System.TIME_12_24, null);
mController.updateState(mPreference);
assertThat(mPreference.isChecked()).isTrue();
}
@Test
public void updatePreference_autoSet_shouldSendIntent_12HourLocale() {
mController.setChecked(false);
List<Intent> intentsFired = mApplication.getBroadcastIntents();
assertThat(intentsFired.size()).isEqualTo(1);
Intent intentFired = intentsFired.get(0);
assertThat(intentFired.getAction()).isEqualTo(Intent.ACTION_TIME_CHANGED);
assertThat(intentFired.getIntExtra(Intent.EXTRA_TIME_PREF_24_HOUR_FORMAT, -1))
.isEqualTo(Intent.EXTRA_TIME_PREF_VALUE_USE_12_HOUR);
}
@Test
public void updatePreference_autoSet_shouldSendIntent_24HourLocale() {
mController.setIs24HourLocale(true);
mController.setChecked(false);
List<Intent> intentsFired = mApplication.getBroadcastIntents();
assertThat(intentsFired.size()).isEqualTo(1);
Intent intentFired = intentsFired.get(0);
assertThat(intentFired.getAction()).isEqualTo(Intent.ACTION_TIME_CHANGED);
assertThat(intentFired.getIntExtra(Intent.EXTRA_TIME_PREF_24_HOUR_FORMAT, -1))
.isEqualTo(Intent.EXTRA_TIME_PREF_VALUE_USE_24_HOUR);
}
@Test
public void updatePreference_24HourSet_shouldSendIntent() {
mController.setIs24HourLocale(false);
mController.setChecked(true);
List<Intent> intentsFired = mApplication.getBroadcastIntents();
assertThat(intentsFired.size()).isEqualTo(1);
Intent intentFired = intentsFired.get(0);
assertThat(intentFired.getAction()).isEqualTo(Intent.ACTION_TIME_CHANGED);
assertThat(intentFired.getIntExtra(Intent.EXTRA_TIME_PREF_24_HOUR_FORMAT, -1))
.isEqualTo(Intent.EXTRA_TIME_PREF_VALUE_USE_LOCALE_DEFAULT);
}
/**
* Extend class under test to change {@link #is24HourLocale} to not call
* {@link DateFormat#is24HourLocale(Locale)} because that's not available in roboelectric.
*/
private static class TestAutoTimeFormatPreferenceController
extends AutoTimeFormatPreferenceController {
private boolean is24HourLocale = false;
TestAutoTimeFormatPreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey);
}
void setIs24HourLocale(boolean value) {
is24HourLocale = value;
}
@Override
boolean is24HourLocale(Locale locale) {
return is24HourLocale;
}
}
}

View File

@@ -40,17 +40,12 @@ import android.app.time.TimeZoneConfiguration;
import android.app.time.TimeZoneDetectorStatus; import android.app.time.TimeZoneDetectorStatus;
import android.content.Context; import android.content.Context;
import android.os.UserHandle; import android.os.UserHandle;
import android.platform.test.annotations.DisableFlags;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import androidx.preference.Preference; import androidx.preference.Preference;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.flags.Flags;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.Mock; import org.mockito.Mock;
@@ -62,9 +57,6 @@ import org.robolectric.RuntimeEnvironment;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
public class AutoTimeZonePreferenceControllerTest { public class AutoTimeZonePreferenceControllerTest {
@Rule
public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
@Mock @Mock
private UpdateTimeAndDateCallback mCallback; private UpdateTimeAndDateCallback mCallback;
private Context mContext; private Context mContext;
@@ -247,7 +239,6 @@ public class AutoTimeZonePreferenceControllerTest {
} }
@Test @Test
@EnableFlags({Flags.FLAG_REVAMP_TOGGLES})
public void toggleOff_revampFlagOn_shouldToggleOffUseLocation() { public void toggleOff_revampFlagOn_shouldToggleOffUseLocation() {
TimeZoneCapabilitiesAndConfig capabilitiesAndConfig = createCapabilitiesAndConfig( TimeZoneCapabilitiesAndConfig capabilitiesAndConfig = createCapabilitiesAndConfig(
/* autoSupported= */ true, /* autoSupported= */ true,
@@ -266,25 +257,6 @@ public class AutoTimeZonePreferenceControllerTest {
verify(mTimeManager).updateTimeZoneConfiguration(configuration); verify(mTimeManager).updateTimeZoneConfiguration(configuration);
} }
@Test
@DisableFlags({Flags.FLAG_REVAMP_TOGGLES})
public void toggleOff_revampFlagOff_shouldToggleOffUseLocation() {
TimeZoneCapabilitiesAndConfig capabilitiesAndConfig = createCapabilitiesAndConfig(
/* autoSupported= */ true,
/* autoEnabled= */ true,
/* telephonySupported= */ true,
/* locationSupported= */ true);
when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
mController.setChecked(false);
TimeZoneConfiguration configuration = new TimeZoneConfiguration.Builder()
.setAutoDetectionEnabled(false)
.build();
verify(mTimeManager).updateTimeZoneConfiguration(configuration);
}
private static TimeZoneCapabilitiesAndConfig createCapabilitiesAndConfig( private static TimeZoneCapabilitiesAndConfig createCapabilitiesAndConfig(
boolean autoSupported, boolean autoEnabled, boolean telephonySupported) { boolean autoSupported, boolean autoEnabled, boolean telephonySupported) {
return createCapabilitiesAndConfig(autoSupported, autoEnabled, telephonySupported, false); return createCapabilitiesAndConfig(autoSupported, autoEnabled, telephonySupported, false);

View File

@@ -45,17 +45,13 @@ import android.app.time.TimeZoneConfiguration;
import android.app.time.TimeZoneDetectorStatus; import android.app.time.TimeZoneDetectorStatus;
import android.content.Context; import android.content.Context;
import android.os.UserHandle; import android.os.UserHandle;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import androidx.preference.SwitchPreference; import androidx.preference.SwitchPreference;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.InstrumentedPreferenceFragment; import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.flags.Flags;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.Answers; import org.mockito.Answers;
@@ -71,9 +67,6 @@ import org.robolectric.annotation.Config;
}) })
public class LocationTimeZoneDetectionPreferenceControllerTest { public class LocationTimeZoneDetectionPreferenceControllerTest {
@Rule
public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
@Mock @Mock
private TimeManager mTimeManager; private TimeManager mTimeManager;
private Context mContext; private Context mContext;
@@ -131,8 +124,7 @@ public class LocationTimeZoneDetectionPreferenceControllerTest {
} }
@Test @Test
@EnableFlags({Flags.FLAG_REVAMP_TOGGLES}) public void toggleOff_automaticTimeZone_disablesLocationToggle() {
public void flagRevampTogglesOn_toggleOff_automaticTimeZone_disablesLocationToggle() {
TimeZoneCapabilitiesAndConfig capabilitiesAndConfig = TimeZoneCapabilitiesAndConfig capabilitiesAndConfig =
createTimeZoneCapabilitiesAndConfig(/* useLocationEnabled= */ true, createTimeZoneCapabilitiesAndConfig(/* useLocationEnabled= */ true,
CAPABILITY_POSSESSED, /* setAutoDetectionEnabled= */ false); CAPABILITY_POSSESSED, /* setAutoDetectionEnabled= */ false);

View File

@@ -23,16 +23,11 @@ import static com.google.common.truth.Truth.assertThat;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.platform.test.annotations.DisableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.provider.Settings; import android.provider.Settings;
import androidx.preference.SwitchPreference; import androidx.preference.SwitchPreference;
import com.android.settings.flags.Flags;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.Mock; import org.mockito.Mock;
@@ -46,9 +41,6 @@ import java.util.List;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
public class TimeFormatPreferenceControllerTest { public class TimeFormatPreferenceControllerTest {
@Rule
public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
@Mock @Mock
private UpdateTimeAndDateCallback mCallback; private UpdateTimeAndDateCallback mCallback;
@@ -104,16 +96,6 @@ public class TimeFormatPreferenceControllerTest {
assertThat(mPreference.isChecked()).isFalse(); assertThat(mPreference.isChecked()).isFalse();
} }
@Test
@DisableFlags({Flags.FLAG_REVAMP_TOGGLES})
public void updateState_autoSet_shouldNotEnablePreference() {
Settings.System.putString(mContext.getContentResolver(), Settings.System.TIME_12_24, null);
mController.updateState(mPreference);
assertThat(mPreference.isEnabled()).isFalse();
}
@Test @Test
public void updatePreference_12HourSet_shouldSendIntent() { public void updatePreference_12HourSet_shouldSendIntent() {
mController.setChecked(false); mController.setChecked(false);