Merge changes I0fde4f80,Iea1cff48 into pi-dev

am: 0ae4204f54

Change-Id: I9f27d240ff5f4d2dcf0dbde6733730da294e9f4e
This commit is contained in:
Fan Zhang
2018-03-30 00:54:21 +00:00
committed by android-build-merger
10 changed files with 106 additions and 46 deletions

View File

@@ -83,6 +83,7 @@
android:key="font_size"
android:title="@string/title_font_size"
android:fragment="com.android.settings.accessibility.ToggleFontSizePreferenceFragment"
settings:controller="com.android.settings.display.FontSizePreferenceController"
settings:keywords="@string/keywords_display_font_size" />
<com.android.settings.display.ScreenZoomPreference

View File

@@ -16,6 +16,7 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res-auto"
android:key="time_zone_settings_screen"
android:title="@string/date_time_set_timezone">
@@ -29,7 +30,9 @@
android:key="region_zone"
android:title="@string/date_time_set_timezone_title"
android:summary="@string/summary_placeholder" />
<com.android.settingslib.widget.FooterPreference/>
<com.android.settingslib.widget.FooterPreference
android:key="footer_preference"
settings:controller="com.android.settings.datetime.timezone.TimeZoneInfoPreferenceController" />
</PreferenceCategory>
<PreferenceCategory

View File

@@ -27,7 +27,6 @@ import com.android.settings.display.AutoRotatePreferenceController;
import com.android.settings.display.BrightnessLevelPreferenceController;
import com.android.settings.display.CameraGesturePreferenceController;
import com.android.settings.display.ColorModePreferenceController;
import com.android.settings.display.FontSizePreferenceController;
import com.android.settings.display.LiftToWakePreferenceController;
import com.android.settings.display.NightDisplayPreferenceController;
import com.android.settings.display.NightModePreferenceController;
@@ -86,7 +85,6 @@ public class DisplaySettings extends DashboardFragment {
final List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new AutoRotatePreferenceController(context, lifecycle));
controllers.add(new CameraGesturePreferenceController(context));
controllers.add(new FontSizePreferenceController(context));
controllers.add(new LiftToWakePreferenceController(context));
controllers.add(new NightDisplayPreferenceController(context));
controllers.add(new NightModePreferenceController(context));

View File

@@ -33,22 +33,18 @@ import com.android.settingslib.widget.FooterPreference;
import java.util.Date;
public class TimeZoneInfoPreferenceController extends BaseTimeZonePreferenceController {
private static final String PREFERENCE_KEY = FooterPreference.KEY_FOOTER;
private static final String PREFERENCE_KEY = FooterPreference.KEY_FOOTER;
@VisibleForTesting
Date mDate;
private TimeZoneInfo mTimeZoneInfo;
private final DateFormat mDateFormat;
private final Date mDate;
public TimeZoneInfoPreferenceController(Context context) {
this(context, new Date());
}
@VisibleForTesting
TimeZoneInfoPreferenceController(Context context, Date date) {
super(context, PREFERENCE_KEY);
mDateFormat = DateFormat.getDateInstance(SimpleDateFormat.LONG);
mDateFormat.setContext(DisplayContext.CAPITALIZATION_NONE);
mDate = date;
mDate = new Date();
}
@Override

View File

@@ -102,15 +102,12 @@ public class TimeZoneSettings extends DashboardFragment {
RegionZonePreferenceController regionZonePreferenceController =
new RegionZonePreferenceController(context);
regionZonePreferenceController.setOnClickListener(this::onRegionZonePreferenceClicked);
TimeZoneInfoPreferenceController timeZoneInfoPreferenceController =
new TimeZoneInfoPreferenceController(context);
FixedOffsetPreferenceController fixedOffsetPreferenceController =
new FixedOffsetPreferenceController(context);
fixedOffsetPreferenceController.setOnClickListener(this::startFixedOffsetPicker);
controllers.add(regionPreferenceController);
controllers.add(regionZonePreferenceController);
controllers.add(timeZoneInfoPreferenceController);
controllers.add(fixedOffsetPreferenceController);
return controllers;
}

View File

@@ -16,34 +16,24 @@ package com.android.settings.display;
import android.content.Context;
import android.content.res.Resources;
import android.provider.Settings;
import android.support.v7.preference.Preference;
import com.android.settings.R;
import com.android.settings.accessibility.ToggleFontSizePreferenceFragment;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settings.core.BasePreferenceController;
public class FontSizePreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
public class FontSizePreferenceController extends BasePreferenceController {
private static final String KEY_FONT_SIZE = "font_size";
public FontSizePreferenceController(Context context) {
super(context);
public FontSizePreferenceController(Context context, String key) {
super(context, key);
}
@Override
public boolean isAvailable() {
return true;
public int getAvailabilityStatus() {
return AVAILABLE;
}
@Override
public String getPreferenceKey() {
return KEY_FONT_SIZE;
}
@Override
public void updateState(Preference preference) {
public CharSequence getSummary() {
final float currentScale = Settings.System.getFloat(mContext.getContentResolver(),
Settings.System.FONT_SCALE, 1.0f);
final Resources res = mContext.getResources();
@@ -51,6 +41,6 @@ public class FontSizePreferenceController extends AbstractPreferenceController i
final String[] strEntryValues = res.getStringArray(R.array.entryvalues_font_size);
final int index = ToggleFontSizePreferenceFragment.fontSizeValueToIndex(currentScale,
strEntryValues);
preference.setSummary(entries[index]);
return entries[index];
}
}

View File

@@ -21,7 +21,6 @@ com.android.settings.bluetooth.BluetoothSwitchPreferenceController
com.android.settings.connecteddevice.ConnectedDeviceGroupController
com.android.settings.connecteddevice.SavedDeviceGroupController
com.android.settings.datausage.DataUsageSummaryPreferenceController
com.android.settings.datetime.timezone.TimeZoneInfoPreferenceController
com.android.settings.fuelgauge.RestrictAppPreferenceController
com.android.settings.fuelgauge.batterysaver.AutoBatterySeekBarPreferenceController
com.android.settings.fuelgauge.batterysaver.BatterySaverButtonPreferenceController

View File

@@ -16,6 +16,9 @@
package com.android.settings.datetime.timezone;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.spy;
import android.support.v7.preference.Preference;
import com.android.settings.datetime.timezone.TimeZoneInfo.Formatter;
@@ -28,9 +31,6 @@ import org.robolectric.RuntimeEnvironment;
import java.util.Date;
import java.util.Locale;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.spy;
@RunWith(SettingsRobolectricTestRunner.class)
public class TimeZoneInfoPreferenceControllerTest {
@@ -41,7 +41,8 @@ public class TimeZoneInfoPreferenceControllerTest {
TimeZoneInfo timeZoneInfo = formatter.format("America/Los_Angeles");
TimeZoneInfoPreferenceController controller =
new TimeZoneInfoPreferenceController(RuntimeEnvironment.application, now);
new TimeZoneInfoPreferenceController(RuntimeEnvironment.application);
controller.mDate = now;
controller.setTimeZoneInfo(timeZoneInfo);
Preference preference = spy(new Preference(RuntimeEnvironment.application));
controller.updateState(preference);

View File

@@ -16,6 +16,10 @@
package com.android.settings.datetime.timezone;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import com.android.settings.datetime.timezone.model.TimeZoneData;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResources;
@@ -30,10 +34,6 @@ import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(shadows = {
SettingsShadowResources.class,
@@ -60,10 +60,9 @@ public class TimeZoneSettingsTest {
TimeZoneSettings settings = new TimeZoneSettings();
List<AbstractPreferenceController> controllers =
settings.createPreferenceControllers(RuntimeEnvironment.application);
assertThat(controllers).hasSize(4);
assertThat(controllers).hasSize(3);
assertThat(controllers.get(0)).isInstanceOf(RegionPreferenceController.class);
assertThat(controllers.get(1)).isInstanceOf(RegionZonePreferenceController.class);
assertThat(controllers.get(2)).isInstanceOf(TimeZoneInfoPreferenceController.class);
assertThat(controllers.get(3)).isInstanceOf(FixedOffsetPreferenceController.class);
assertThat(controllers.get(2)).isInstanceOf(FixedOffsetPreferenceController.class);
}
}

View File

@@ -0,0 +1,76 @@
/*
* Copyright (C) 2018 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.display;
import static com.google.common.truth.Truth.assertThat;
import android.content.Context;
import android.provider.Settings;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RuntimeEnvironment;
@RunWith(SettingsRobolectricTestRunner.class)
public class FontSizePreferenceControllerTest {
private static final String TEST_KEY = "test_key";
private Context mContext;
private FontSizePreferenceController mController;
private String[] mFontSizeArray;
@Before
public void setUp() {
mContext = RuntimeEnvironment.application;
mController = new FontSizePreferenceController(mContext, TEST_KEY);
mFontSizeArray = mContext.getResources().getStringArray(R.array.entries_font_size);
}
@Test
public void isAlwaysAvailable() {
assertThat(mController.getAvailabilityStatus())
.isEqualTo(BasePreferenceController.AVAILABLE);
}
@Test
public void getSummary_noScale_shouldReturnDefaultSummary() {
assertThat(mController.getSummary())
.isEqualTo(mFontSizeArray[1]);
}
@Test
public void getSummary_smallScale_shouldReturnSmall() {
Settings.System.putFloat(mContext.getContentResolver(),
Settings.System.FONT_SCALE, 0.5f);
assertThat(mController.getSummary())
.isEqualTo(mFontSizeArray[0]);
}
@Test
public void getSummary_largeScale_shouldReturnLarge() {
Settings.System.putFloat(mContext.getContentResolver(),
Settings.System.FONT_SCALE, 1.5f);
assertThat(mController.getSummary())
.isEqualTo(mFontSizeArray[3]);
}
}