Merge changes I034a9f0a,Iad5ec577 into pi-dev

* changes:
  Get rid of UserPackageWrapper util.
  Get rid of extra whitespace under divider lines
This commit is contained in:
TreeHugger Robot
2018-03-23 17:36:54 +00:00
committed by Android (Google) Code Review
7 changed files with 53 additions and 211 deletions

View File

@@ -30,15 +30,13 @@
android:key="battery_tip"
android:layout="@layout/preference_category_no_title" />
<PreferenceCategory
android:key="power_management">
<Preference
android:fragment="com.android.settings.fuelgauge.batterysaver.BatterySaverSettings"
android:key="battery_saver_summary"
android:title="@string/battery_saver"
settings:controller="com.android.settings.fuelgauge.BatterySaverController"
settings:platform_slice="true"/>
settings:platform_slice="true"
settings:allowDividerAbove="true" />
<Preference
android:fragment="com.android.settings.fuelgauge.SmartBatterySettings"
@@ -51,21 +49,16 @@
android:title="@string/battery_percentage"
android:summary="@string/battery_percentage_description" />
</PreferenceCategory>
<PreferenceCategory
android:key="device_usage_list">
<com.android.settings.fuelgauge.PowerGaugePreference
android:key="last_full_charge"
android:title="@string/battery_last_full_charge"
android:selectable="false"/>
android:selectable="false"
settings:allowDividerAbove="true" />
<com.android.settings.fuelgauge.PowerGaugePreference
android:key="screen_usage"
android:title="@string/device_screen_usage"
android:selectable="false" />
</PreferenceCategory>
</PreferenceScreen>

View File

@@ -1,71 +0,0 @@
/*
* Copyright (C) 2012 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;
import android.content.Context;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.View;
import android.widget.EditText;
import com.android.settingslib.CustomEditTextPreference;
public class SelectableEditTextPreference extends CustomEditTextPreference {
private int mSelectionMode;
public static final int SELECTION_CURSOR_END = 0;
public static final int SELECTION_CURSOR_START = 1;
public static final int SELECTION_SELECT_ALL = 2;
public SelectableEditTextPreference(Context context, AttributeSet attrs) {
super(context, attrs);
}
/**
* Sets the selection mode for the text when it shows up in the dialog
* @hide
* @param selectionMode can be SELECTION_CURSOR_START, SELECTION_CURSOR_END or
* SELECTION_SELECT_ALL. Default is SELECTION_CURSOR_END
*/
public void setInitialSelectionMode(int selectionMode) {
mSelectionMode = selectionMode;
}
@Override
protected void onBindDialogView(View view) {
super.onBindDialogView(view);
EditText editText = getEditText();
// Set the selection based on the mSelectionMode
int length = editText.getText() != null ? editText.getText().length() : 0;
if (!TextUtils.isEmpty(editText.getText())) {
switch (mSelectionMode) {
case SELECTION_CURSOR_END:
editText.setSelection(length);
break;
case SELECTION_CURSOR_START:
editText.setSelection(0);
break;
case SELECTION_SELECT_ALL:
editText.setSelection(0, length);
break;
}
}
}
}

View File

@@ -27,11 +27,11 @@ import android.content.pm.PackageItemInfo;
import android.content.pm.PackageManager;
import android.support.annotation.VisibleForTesting;
import android.text.TextUtils;
import android.webkit.UserPackage;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.applications.defaultapps.DefaultAppPickerFragment;
import com.android.settings.wrapper.UserPackageWrapper;
import com.android.settingslib.applications.DefaultAppInfo;
import com.android.settingslib.wrapper.PackageManagerWrapper;
@@ -150,9 +150,9 @@ public class WebViewAppPicker extends DefaultAppPickerFragment {
@VisibleForTesting
String getDisabledReason(WebViewUpdateServiceWrapper webviewUpdateServiceWrapper,
Context context, String packageName) {
List<UserPackageWrapper> userPackages =
List<UserPackage> userPackages =
webviewUpdateServiceWrapper.getPackageInfosAllUsers(context, packageName);
for (UserPackageWrapper userPackage : userPackages) {
for (UserPackage userPackage : userPackages) {
if (!userPackage.isInstalledPackage()) {
// Package uninstalled/hidden
return context.getString(

View File

@@ -28,8 +28,6 @@ import android.webkit.WebViewProviderInfo;
import android.widget.Toast;
import com.android.settings.R;
import com.android.settings.wrapper.UserPackageWrapper;
import com.android.settings.wrapper.UserPackageWrapperImpl;
import java.util.ArrayList;
import java.util.List;
@@ -37,7 +35,8 @@ import java.util.List;
public class WebViewUpdateServiceWrapper {
private static final String TAG = "WVUSWrapper";
public WebViewUpdateServiceWrapper() {}
public WebViewUpdateServiceWrapper() {
}
/**
* Fetch the package currently used as WebView implementation.
@@ -75,6 +74,7 @@ public class WebViewUpdateServiceWrapper {
/**
* Change WebView provider to {@param packageName}.
*
* @return whether the change succeeded.
*/
public boolean setWebViewProvider(String packageName) {
@@ -90,14 +90,8 @@ public class WebViewUpdateServiceWrapper {
/**
* Fetch PackageInfos for the package named {@param packageName} for all users on the device.
*/
public List<UserPackageWrapper> getPackageInfosAllUsers(Context context, String packageName) {
List<UserPackageWrapper> userPackageWrappers = new ArrayList<>();
List<UserPackage> userPackages =
UserPackage.getPackageInfosAllUsers(context, packageName, PACKAGE_FLAGS);
for (UserPackage userPackage : userPackages) {
userPackageWrappers.add(new UserPackageWrapperImpl(userPackage));
}
return userPackageWrappers;
public List<UserPackage> getPackageInfosAllUsers(Context context, String packageName) {
return UserPackage.getPackageInfosAllUsers(context, packageName, PACKAGE_FLAGS);
}
/**

View File

@@ -1,29 +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.wrapper;
import android.content.pm.PackageInfo;
import android.content.pm.UserInfo;
/**
* Wrapper class around android.webkit.UserPackage - to be able to use UserPackage in Robolectric
* tests (such tests currently don't support mocking hidden classes).
*/
public interface UserPackageWrapper {
UserInfo getUserInfo();
PackageInfo getPackageInfo();
boolean isEnabledPackage();
boolean isInstalledPackage();
}

View File

@@ -1,46 +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.wrapper;
import android.content.pm.PackageInfo;
import android.content.pm.UserInfo;
import android.webkit.UserPackage;
/**
* Default implementation of UserPackageWrapper.
*/
public class UserPackageWrapperImpl implements UserPackageWrapper {
private final UserPackage mUserPackage;
public UserPackageWrapperImpl(UserPackage userPackage) {
mUserPackage = userPackage;
}
public UserInfo getUserInfo() {
return mUserPackage.getUserInfo();
}
public PackageInfo getPackageInfo() {
return mUserPackage.getPackageInfo();
}
public boolean isEnabledPackage() {
return mUserPackage.isEnabledPackage();
}
public boolean isInstalledPackage() {
return mUserPackage.isInstalledPackage();
}
}

View File

@@ -39,10 +39,10 @@ import android.content.pm.PackageItemInfo;
import android.content.pm.PackageManager;
import android.content.pm.UserInfo;
import android.os.UserManager;
import android.webkit.UserPackage;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.widget.RadioButtonPreference;
import com.android.settings.wrapper.UserPackageWrapper;
import com.android.settingslib.applications.DefaultAppInfo;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.wrapper.PackageManagerWrapper;
@@ -229,11 +229,11 @@ public class WebViewAppPickerTest {
@Test
public void testDisabledReasonNullIfPackagesOk() {
UserPackageWrapper packageForFirstUser = mock(UserPackageWrapper.class);
UserPackage packageForFirstUser = mock(UserPackage.class);
when(packageForFirstUser.isEnabledPackage()).thenReturn(true);
when(packageForFirstUser.isInstalledPackage()).thenReturn(true);
UserPackageWrapper packageForSecondUser = mock(UserPackageWrapper.class);
UserPackage packageForSecondUser = mock(UserPackage.class);
when(packageForSecondUser.isEnabledPackage()).thenReturn(true);
when(packageForSecondUser.isInstalledPackage()).thenReturn(true);
@@ -246,7 +246,7 @@ public class WebViewAppPickerTest {
@Test
public void testDisabledReasonForSingleUserDisabledPackage() {
UserPackageWrapper packageForFirstUser = mock(UserPackageWrapper.class);
UserPackage packageForFirstUser = mock(UserPackage.class);
when(packageForFirstUser.isEnabledPackage()).thenReturn(false);
when(packageForFirstUser.isInstalledPackage()).thenReturn(true);
when(packageForFirstUser.getUserInfo()).thenReturn(mFirstUser);
@@ -262,7 +262,7 @@ public class WebViewAppPickerTest {
@Test
public void testDisabledReasonForSingleUserUninstalledPackage() {
UserPackageWrapper packageForFirstUser = mock(UserPackageWrapper.class);
UserPackage packageForFirstUser = mock(UserPackage.class);
when(packageForFirstUser.isEnabledPackage()).thenReturn(true);
when(packageForFirstUser.isInstalledPackage()).thenReturn(false);
when(packageForFirstUser.getUserInfo()).thenReturn(mFirstUser);
@@ -278,12 +278,12 @@ public class WebViewAppPickerTest {
@Test
public void testDisabledReasonSeveralUsers() {
UserPackageWrapper packageForFirstUser = mock(UserPackageWrapper.class);
UserPackage packageForFirstUser = mock(UserPackage.class);
when(packageForFirstUser.isEnabledPackage()).thenReturn(false);
when(packageForFirstUser.isInstalledPackage()).thenReturn(true);
when(packageForFirstUser.getUserInfo()).thenReturn(mFirstUser);
UserPackageWrapper packageForSecondUser = mock(UserPackageWrapper.class);
UserPackage packageForSecondUser = mock(UserPackage.class);
when(packageForSecondUser.isEnabledPackage()).thenReturn(true);
when(packageForSecondUser.isInstalledPackage()).thenReturn(false);
when(packageForSecondUser.getUserInfo()).thenReturn(mSecondUser);
@@ -303,12 +303,12 @@ public class WebViewAppPickerTest {
*/
@Test
public void testDisabledReasonUninstalledAndDisabled() {
UserPackageWrapper packageForFirstUser = mock(UserPackageWrapper.class);
UserPackage packageForFirstUser = mock(UserPackage.class);
when(packageForFirstUser.isEnabledPackage()).thenReturn(false);
when(packageForFirstUser.isInstalledPackage()).thenReturn(false);
when(packageForFirstUser.getUserInfo()).thenReturn(mFirstUser);
UserPackageWrapper packageForSecondUser = mock(UserPackageWrapper.class);
UserPackage packageForSecondUser = mock(UserPackage.class);
when(packageForSecondUser.isEnabledPackage()).thenReturn(true);
when(packageForSecondUser.isInstalledPackage()).thenReturn(true);
when(packageForSecondUser.getUserInfo()).thenReturn(mSecondUser);
@@ -343,7 +343,8 @@ public class WebViewAppPickerTest {
RadioButtonPreference mockPreference = mock(RadioButtonPreference.class);
mPicker.bindPreference(mockPreference, DEFAULT_PACKAGE_NAME, webviewAppInfo, null);
mPicker
.bindPreferenceExtra(mockPreference, DEFAULT_PACKAGE_NAME, webviewAppInfo, null, null);
.bindPreferenceExtra(mockPreference, DEFAULT_PACKAGE_NAME, webviewAppInfo, null,
null);
verify(mockPreference, times(1)).setTitle(eq("myPackage myVersionName"));
verify(mockPreference, times(1)).setTitle(any());
}