Merge ab/6749736 in stage.
Bug: 167233921 Merged-In: I8e3eb6c072488fdc33fae1ebabd17980a67f5d7d Change-Id: I0411c2f1dbc2fa47b23ff52cacca990f3141f52f
This commit is contained in:
@@ -2860,8 +2860,8 @@
|
||||
<string name="data_usage_warning_editor_title" msgid="5252748452973120016">"データ使用量の警告の設定"</string>
|
||||
<string name="data_usage_limit_editor_title" msgid="8826855902435008518">"データ使用量の上限の設定"</string>
|
||||
<string name="data_usage_limit_dialog_title" msgid="2053134451707801439">"データ使用量の上限の設定"</string>
|
||||
<string name="data_usage_limit_dialog_mobile" product="tablet" msgid="6000062970083379466">"タブレットで設定した上限に達するとモバイルデータが OFF になります。\n\nデータ使用量はタブレットで測定された値ですが、携帯通信会社による測定結果とは異なることがあるため、余裕をもって上限を設定することをおすすめします。"</string>
|
||||
<string name="data_usage_limit_dialog_mobile" product="default" msgid="4942895670789168024">"スマートフォンで設定した上限に達するとモバイルデータが OFF になります。\n\nデータ使用量はスマートフォンで測定された値ですが、携帯通信会社による測定結果とは異なることがあるため、余裕をもって上限を設定することをおすすめします。"</string>
|
||||
<string name="data_usage_limit_dialog_mobile" product="tablet" msgid="6000062970083379466">"タブレットで設定した上限に達するとモバイルデータが OFF になります。\n\nデータ使用量はタブレットで測定された値ですが、携帯通信会社での使用量の計算はこれと異なることがあるため、余裕をもって上限を設定することをおすすめします。"</string>
|
||||
<string name="data_usage_limit_dialog_mobile" product="default" msgid="4942895670789168024">"スマートフォンで設定した上限に達するとモバイルデータが OFF になります。\n\nデータ使用量はスマートフォンで測定された値ですが、携帯通信会社での使用量の計算はこれと異なることがあるため、余裕をもって上限を設定することをおすすめします。"</string>
|
||||
<string name="data_usage_restrict_background_title" msgid="2745551538820692821">"バックグラウンドデータを制限しますか?"</string>
|
||||
<string name="data_usage_restrict_background" msgid="1893102079135282794">"バックグラウンドのモバイルデータを制限すると、アプリやサービスによっては、Wi-Fi 未接続時に機能しない場合があります。"</string>
|
||||
<string name="data_usage_restrict_background_multiuser" product="tablet" msgid="5588623586867665419">"バックグラウンドのモバイルデータを制限すると、アプリやサービスによっては、Wi‑Fi 未接続時に機能しない場合があります。\n\nこの設定はこのタブレット上のすべてのユーザーに影響します。"</string>
|
||||
|
@@ -457,9 +457,6 @@
|
||||
<!-- Whether nfc detection point preview image is available or not. -->
|
||||
<bool name="config_nfc_detection_point">false</bool>
|
||||
|
||||
<!-- Whether to show Enhanced Connectivity switch in Developer Options -->
|
||||
<bool name="config_show_enhanced_connectivity">false</bool>
|
||||
|
||||
<!-- Whether to show Smooth Display feature in Settings Options -->
|
||||
<bool name="config_show_smooth_display">false</bool>
|
||||
</resources>
|
||||
|
@@ -2753,7 +2753,7 @@
|
||||
<!-- Display settings screen, peak refresh rate settings summary [CHAR LIMIT=NONE] -->
|
||||
<string name="peak_refresh_rate_summary">Automatically raises the refresh rate from 60 to 90 Hz for some content. Increases battery usage.</string>
|
||||
<!-- Display developer settings: Force to the highest refresh rate [CHAR LIMIT=NONE] -->
|
||||
<string name="force_high_refresh_rate_toggle">Smooth Display</string>
|
||||
<string name="force_high_refresh_rate_toggle">Force 90 Hz refresh rate</string>
|
||||
<!-- Display developer settings: Force to the highest refresh rate description [CHAR LIMIT=NONE]-->
|
||||
<string name="force_high_refresh_rate_desc">Highest refresh rate for improved touch responsiveness & animation quality. Increases battery usage.</string>
|
||||
<!-- Display settings screen, setting option name to enable adaptive sleep [CHAR LIMIT=30] -->
|
||||
@@ -3054,8 +3054,6 @@
|
||||
<string name="security_patch">Android security update</string>
|
||||
<!-- About phone screen, status item label [CHAR LIMIT=40] -->
|
||||
<string name="model_info">Model</string>
|
||||
<!-- About phone screen, status item summary [CHAR LIMIT=40] -->
|
||||
<string name="model_summary">Model: %1$s</string>
|
||||
<!-- About phone screen, dialog title for showing hardware information such as model, serial number, etc.[CHAR LIMIT=60] -->
|
||||
<string name="hardware_info">Model & hardware</string>
|
||||
<!-- Label for device's hardware revision value [CHAR LIMIT=40] -->
|
||||
|
@@ -297,11 +297,6 @@
|
||||
android:title="@string/mobile_data_always_on"
|
||||
android:summary="@string/mobile_data_always_on_summary" />
|
||||
|
||||
<SwitchPreference
|
||||
android:key="enhanced_connectivity"
|
||||
android:title="@string/enhanced_connectivity"
|
||||
android:summary="@string/enhanced_connectivity_summary" />
|
||||
|
||||
<SwitchPreference
|
||||
android:key="tethering_hardware_offload"
|
||||
android:title="@string/tethering_hardware_offload"
|
||||
|
@@ -100,7 +100,7 @@
|
||||
<Preference
|
||||
android:key="device_model"
|
||||
android:order="31"
|
||||
android:title="@string/hardware_info"
|
||||
android:title="@string/model_info"
|
||||
android:summary="@string/summary_placeholder"
|
||||
android:fragment="com.android.settings.deviceinfo.hardwareinfo.HardwareInfoFragment"
|
||||
settings:enableCopying="true"
|
||||
|
@@ -63,7 +63,7 @@ public class BluetoothAvrcpVersionPreferenceController extends DeveloperOptionsP
|
||||
public void updateState(Preference preference) {
|
||||
final ListPreference listPreference = (ListPreference) preference;
|
||||
final String currentValue = SystemProperties.get(BLUETOOTH_AVRCP_VERSION_PROPERTY);
|
||||
int index = 0; // Defaults to AVRCP 1.4
|
||||
int index = 0; // Defaults to AVRCP 1.5
|
||||
for (int i = 0; i < mListValues.length; i++) {
|
||||
if (TextUtils.equals(currentValue, mListValues[i])) {
|
||||
index = i;
|
||||
|
@@ -479,7 +479,6 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra
|
||||
controllers.add(new BluetoothMapVersionPreferenceController(context));
|
||||
controllers.add(new BluetoothA2dpHwOffloadPreferenceController(context, fragment));
|
||||
controllers.add(new BluetoothMaxConnectedAudioDevicesPreferenceController(context));
|
||||
controllers.add(new EnhancedConnectivityPreferenceController(context));
|
||||
controllers.add(new ShowTapsPreferenceController(context));
|
||||
controllers.add(new PointerLocationPreferenceController(context));
|
||||
controllers.add(new ShowSurfaceUpdatesPreferenceController(context));
|
||||
|
@@ -1,87 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2020 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.development;
|
||||
|
||||
import android.content.Context;
|
||||
import android.provider.Settings;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.SwitchPreference;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.core.PreferenceControllerMixin;
|
||||
import com.android.settingslib.development.DeveloperOptionsPreferenceController;
|
||||
|
||||
/**
|
||||
* Preference controller for Enhanced Connectivity feature
|
||||
*/
|
||||
public class EnhancedConnectivityPreferenceController extends
|
||||
DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener,
|
||||
PreferenceControllerMixin {
|
||||
|
||||
private static final String ENHANCED_CONNECTIVITY_KEY = "enhanced_connectivity";
|
||||
|
||||
@VisibleForTesting
|
||||
static final int ENHANCED_CONNECTIVITY_ON = 1;
|
||||
// default is enhanced connectivity enabled.
|
||||
@VisibleForTesting
|
||||
static final int ENHANCED_CONNECTIVITY_OFF = 0;
|
||||
|
||||
public EnhancedConnectivityPreferenceController(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object o) {
|
||||
final boolean isEnabled = (Boolean) o;
|
||||
Settings.Global.putInt(mContext.getContentResolver(),
|
||||
Settings.Global.ENHANCED_CONNECTIVITY_ENABLED,
|
||||
isEnabled
|
||||
? ENHANCED_CONNECTIVITY_ON
|
||||
: ENHANCED_CONNECTIVITY_OFF);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPreferenceKey() {
|
||||
return ENHANCED_CONNECTIVITY_KEY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateState(Preference preference) {
|
||||
final int enhancedConnectivityEnabled = Settings.Global.getInt(
|
||||
mContext.getContentResolver(), Settings.Global.ENHANCED_CONNECTIVITY_ENABLED,
|
||||
ENHANCED_CONNECTIVITY_ON);
|
||||
((SwitchPreference) mPreference).setChecked(
|
||||
enhancedConnectivityEnabled == ENHANCED_CONNECTIVITY_ON);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAvailable() {
|
||||
return mContext.getResources().getBoolean(R.bool.config_show_enhanced_connectivity);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDeveloperOptionsSwitchDisabled() {
|
||||
super.onDeveloperOptionsSwitchDisabled();
|
||||
Settings.Global.putInt(mContext.getContentResolver(),
|
||||
Settings.Global.ENHANCED_CONNECTIVITY_ENABLED,
|
||||
ENHANCED_CONNECTIVITY_ON);
|
||||
((SwitchPreference) mPreference).setChecked(true);
|
||||
}
|
||||
}
|
@@ -49,7 +49,7 @@ public class HardwareInfoPreferenceController extends BasePreferenceController {
|
||||
|
||||
@Override
|
||||
public CharSequence getSummary() {
|
||||
return mContext.getResources().getString(R.string.model_summary, getDeviceModel());
|
||||
return getDeviceModel();
|
||||
}
|
||||
|
||||
public static String getDeviceModel() {
|
||||
|
@@ -92,7 +92,11 @@ public class WallpaperPreferenceController extends BasePreferenceController {
|
||||
@Override
|
||||
public boolean handlePreferenceTreeClick(Preference preference) {
|
||||
if (getPreferenceKey().equals(preference.getKey())) {
|
||||
preference.getContext().startActivity(new Intent().setComponent(getComponentName()));
|
||||
final Intent intent = new Intent().setComponent(getComponentName());
|
||||
if (areStylesAvailable()) {
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
}
|
||||
preference.getContext().startActivity(intent);
|
||||
return true;
|
||||
}
|
||||
return super.handlePreferenceTreeClick(preference);
|
||||
|
@@ -37,6 +37,7 @@ import android.util.Log;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
|
||||
import com.android.internal.telephony.OperatorInfo;
|
||||
import com.android.settings.R;
|
||||
|
||||
import java.util.List;
|
||||
@@ -175,6 +176,15 @@ public class NetworkOperatorPreference extends Preference {
|
||||
return CellInfoUtil.getNetworkTitle(mCellId, getOperatorNumeric());
|
||||
}
|
||||
|
||||
/**
|
||||
* Operator info of this cell
|
||||
*/
|
||||
public OperatorInfo getOperatorInfo() {
|
||||
return new OperatorInfo(Objects.toString(mCellId.getOperatorAlphaLong(), ""),
|
||||
Objects.toString(mCellId.getOperatorAlphaShort(), ""),
|
||||
getOperatorNumeric());
|
||||
}
|
||||
|
||||
private int getIconIdForCell(CellInfo ci) {
|
||||
if (ci instanceof CellInfoGsm) {
|
||||
return R.drawable.signal_strength_g;
|
||||
|
@@ -40,6 +40,7 @@ import androidx.annotation.VisibleForTesting;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceCategory;
|
||||
|
||||
import com.android.internal.telephony.OperatorInfo;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
@@ -185,12 +186,12 @@ public class NetworkSelectSettings extends DashboardFragment {
|
||||
|
||||
mRequestIdManualNetworkSelect = getNewRequestId();
|
||||
mWaitingForNumberOfScanResults = MIN_NUMBER_OF_SCAN_REQUIRED;
|
||||
final String operatorNumeric = mSelectedPreference.getOperatorNumeric();
|
||||
final OperatorInfo operator = mSelectedPreference.getOperatorInfo();
|
||||
ThreadUtils.postOnBackgroundThread(() -> {
|
||||
final Message msg = mHandler.obtainMessage(
|
||||
EVENT_SET_NETWORK_SELECTION_MANUALLY_DONE);
|
||||
msg.obj = mTelephonyManager.setNetworkSelectionModeManual(
|
||||
operatorNumeric, true /* persistSelection */);
|
||||
operator, true /* persistSelection */);
|
||||
msg.sendToTarget();
|
||||
});
|
||||
}
|
||||
|
@@ -51,6 +51,7 @@ public class SeekBarPreference extends RestrictedPreference
|
||||
private boolean mShouldBlink;
|
||||
private int mAccessibilityRangeInfoType = AccessibilityNodeInfo.RangeInfo.RANGE_TYPE_INT;
|
||||
private CharSequence mSeekBarContentDescription;
|
||||
private CharSequence mSeekBarStateDescription;
|
||||
|
||||
public SeekBarPreference(
|
||||
Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
|
||||
@@ -124,6 +125,9 @@ public class SeekBarPreference extends RestrictedPreference
|
||||
} else if (!TextUtils.isEmpty(title)) {
|
||||
mSeekBar.setContentDescription(title);
|
||||
}
|
||||
if (!TextUtils.isEmpty(mSeekBarStateDescription)) {
|
||||
mSeekBar.setStateDescription(mSeekBarStateDescription);
|
||||
}
|
||||
if (mSeekBar instanceof DefaultIndicatorSeekBar) {
|
||||
((DefaultIndicatorSeekBar) mSeekBar).setDefaultProgress(mDefaultProgress);
|
||||
}
|
||||
@@ -304,6 +308,18 @@ public class SeekBarPreference extends RestrictedPreference
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Specify the state description for this seek bar represents.
|
||||
*
|
||||
* @param stateDescription the state description of seek bar
|
||||
*/
|
||||
public void setSeekBarStateDescription(CharSequence stateDescription) {
|
||||
mSeekBarStateDescription = stateDescription;
|
||||
if (mSeekBar != null) {
|
||||
mSeekBar.setStateDescription(stateDescription);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Parcelable onSaveInstanceState() {
|
||||
/*
|
||||
|
@@ -1,133 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2020 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.development;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.provider.Settings;
|
||||
|
||||
import androidx.preference.PreferenceScreen;
|
||||
import androidx.preference.SwitchPreference;
|
||||
|
||||
import com.android.settings.R;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Answers;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
public class EnhancedConnectivityPreferenceControllerTest {
|
||||
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
|
||||
private Context mContext;
|
||||
|
||||
@Mock
|
||||
private SwitchPreference mPreference;
|
||||
@Mock
|
||||
private PreferenceScreen mPreferenceScreen;
|
||||
|
||||
private EnhancedConnectivityPreferenceController mController;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mController = new EnhancedConnectivityPreferenceController(mContext);
|
||||
when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
|
||||
.thenReturn(mPreference);
|
||||
mController.displayPreference(mPreferenceScreen);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onPreferenceChanged_enhanceConnectivity_shouldBeOn() {
|
||||
mController.onPreferenceChange(mPreference, true /* new value */);
|
||||
|
||||
assertThat(isSettingEnabled()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onPreferenceChanged_enhanceConnectivity_shouldBeOff() {
|
||||
mController.onPreferenceChange(mPreference, false /* new value */);
|
||||
|
||||
assertThat(isSettingEnabled()).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateState_preferenceShouldBeChecked() {
|
||||
Settings.Global.putInt(mContext.getContentResolver(),
|
||||
Settings.Global.ENHANCED_CONNECTIVITY_ENABLED, 1 /* enabled */);
|
||||
mController.updateState(mPreference);
|
||||
|
||||
verify(mPreference).setChecked(true);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateState_preferenceShouldNotBeChecked() {
|
||||
Settings.Global.putInt(mContext.getContentResolver(),
|
||||
Settings.Global.ENHANCED_CONNECTIVITY_ENABLED, 0 /* disabled */);
|
||||
mController.updateState(mPreference);
|
||||
|
||||
verify(mPreference).setChecked(false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onDeveloperOptionsDisabled_shouldEnablePreference() {
|
||||
mController.onDeveloperOptionsSwitchDisabled();
|
||||
|
||||
verify(mPreference).setEnabled(false);
|
||||
verify(mPreference).setChecked(true);
|
||||
|
||||
assertThat(isSettingEnabled()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isAvailable_enhancedConnectivityShown_shouldReturnTrue() {
|
||||
enableEnhancedConnectivityPreference(true);
|
||||
|
||||
boolean availability = mController.isAvailable();
|
||||
|
||||
assertThat(availability).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isAvailable_enhancedConnectivityNotShown_shouldReturnFalse() {
|
||||
enableEnhancedConnectivityPreference(false);
|
||||
|
||||
boolean availability = mController.isAvailable();
|
||||
|
||||
assertThat(availability).isFalse();
|
||||
}
|
||||
|
||||
private void enableEnhancedConnectivityPreference(boolean enable) {
|
||||
when(mContext.getResources().getBoolean(R.bool.config_show_enhanced_connectivity))
|
||||
.thenReturn(enable);
|
||||
}
|
||||
|
||||
private boolean isSettingEnabled() {
|
||||
return Settings.Global.getInt(mContext.getContentResolver(),
|
||||
Settings.Global.ENHANCED_CONNECTIVITY_ENABLED,
|
||||
EnhancedConnectivityPreferenceController.ENHANCED_CONNECTIVITY_ON
|
||||
/* default on */)
|
||||
== EnhancedConnectivityPreferenceController.ENHANCED_CONNECTIVITY_ON;
|
||||
}
|
||||
}
|
@@ -24,7 +24,6 @@ import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceManager;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settings.deviceinfo.HardwareInfoPreferenceController;
|
||||
|
||||
@@ -79,8 +78,6 @@ public class HardwareInfoPreferenceControllerTest {
|
||||
}
|
||||
|
||||
private boolean containBuildModel(CharSequence result) {
|
||||
final String oracle = mContext.getResources().getString(R.string.model_summary,
|
||||
Build.MODEL);
|
||||
return result.toString().contains(oracle);
|
||||
return result.toString().contains(Build.MODEL);
|
||||
}
|
||||
}
|
||||
|
@@ -19,6 +19,7 @@ package com.android.settings.widget;
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
@@ -110,6 +111,13 @@ public class SeekBarPreferenceTest {
|
||||
assertThat(seekBarPreference.isSelectable()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetSeekBarStateDescription() {
|
||||
mSeekBarPreference.setSeekBarStateDescription("test");
|
||||
|
||||
verify(mSeekBarPreference).setSeekBarStateDescription("test");
|
||||
}
|
||||
|
||||
public static class TestFragment extends PreferenceFragmentCompat {
|
||||
@Override
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
|
Reference in New Issue
Block a user