Merge changes I034a9f0a,Iad5ec577 into pi-dev
* changes:
Get rid of UserPackageWrapper util.
Get rid of extra whitespace under divider lines
diff --git a/res/xml/power_usage_summary.xml b/res/xml/power_usage_summary.xml
index 1f3e415..d8003df 100644
--- a/res/xml/power_usage_summary.xml
+++ b/res/xml/power_usage_summary.xml
@@ -24,48 +24,41 @@
<com.android.settings.applications.LayoutPreference
android:key="battery_header"
android:selectable="false"
- android:layout="@layout/battery_header"/>
+ android:layout="@layout/battery_header" />
<PreferenceCategory
android:key="battery_tip"
- android:layout="@layout/preference_category_no_title"/>
+ 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:allowDividerAbove="true" />
- <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"/>
+ <Preference
+ android:fragment="com.android.settings.fuelgauge.SmartBatterySettings"
+ android:key="smart_battery_manager"
+ android:title="@string/smart_battery_manager_title"
+ settings:controller="com.android.settings.fuelgauge.batterytip.BatteryManagerPreferenceController" />
- <Preference
- android:fragment="com.android.settings.fuelgauge.SmartBatterySettings"
- android:key="smart_battery_manager"
- android:title="@string/smart_battery_manager_title"
- settings:controller="com.android.settings.fuelgauge.batterytip.BatteryManagerPreferenceController"/>
+ <SwitchPreference
+ android:key="battery_percentage"
+ android:title="@string/battery_percentage"
+ android:summary="@string/battery_percentage_description" />
- <SwitchPreference
- android:key="battery_percentage"
- android:title="@string/battery_percentage"
- android:summary="@string/battery_percentage_description"/>
- </PreferenceCategory>
+ <com.android.settings.fuelgauge.PowerGaugePreference
+ android:key="last_full_charge"
+ android:title="@string/battery_last_full_charge"
+ android:selectable="false"
+ settings:allowDividerAbove="true" />
- <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"/>
-
- <com.android.settings.fuelgauge.PowerGaugePreference
- android:key="screen_usage"
- android:title="@string/device_screen_usage"
- android:selectable="false"/>
-
- </PreferenceCategory>
+ <com.android.settings.fuelgauge.PowerGaugePreference
+ android:key="screen_usage"
+ android:title="@string/device_screen_usage"
+ android:selectable="false" />
</PreferenceScreen>
diff --git a/src/com/android/settings/SelectableEditTextPreference.java b/src/com/android/settings/SelectableEditTextPreference.java
deleted file mode 100644
index 551b5e5..0000000
--- a/src/com/android/settings/SelectableEditTextPreference.java
+++ /dev/null
@@ -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;
- }
- }
- }
-}
-
diff --git a/src/com/android/settings/webview/WebViewAppPicker.java b/src/com/android/settings/webview/WebViewAppPicker.java
index a5fef46..f68d27b 100644
--- a/src/com/android/settings/webview/WebViewAppPicker.java
+++ b/src/com/android/settings/webview/WebViewAppPicker.java
@@ -27,11 +27,11 @@
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 @@
@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(
diff --git a/src/com/android/settings/webview/WebViewUpdateServiceWrapper.java b/src/com/android/settings/webview/WebViewUpdateServiceWrapper.java
index fa1cd3d..fd13586 100644
--- a/src/com/android/settings/webview/WebViewUpdateServiceWrapper.java
+++ b/src/com/android/settings/webview/WebViewUpdateServiceWrapper.java
@@ -28,8 +28,6 @@
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 @@
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 @@
/**
* Change WebView provider to {@param packageName}.
+ *
* @return whether the change succeeded.
*/
public boolean setWebViewProvider(String packageName) {
@@ -90,14 +90,8 @@
/**
* 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);
}
/**
diff --git a/src/com/android/settings/wrapper/UserPackageWrapper.java b/src/com/android/settings/wrapper/UserPackageWrapper.java
deleted file mode 100644
index afa1d82..0000000
--- a/src/com/android/settings/wrapper/UserPackageWrapper.java
+++ /dev/null
@@ -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();
-}
diff --git a/src/com/android/settings/wrapper/UserPackageWrapperImpl.java b/src/com/android/settings/wrapper/UserPackageWrapperImpl.java
deleted file mode 100644
index 0a2b9cd..0000000
--- a/src/com/android/settings/wrapper/UserPackageWrapperImpl.java
+++ /dev/null
@@ -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();
- }
-}
diff --git a/tests/robotests/src/com/android/settings/webview/WebViewAppPickerTest.java b/tests/robotests/src/com/android/settings/webview/WebViewAppPickerTest.java
index 7ed8756..2a95bc2 100644
--- a/tests/robotests/src/com/android/settings/webview/WebViewAppPickerTest.java
+++ b/tests/robotests/src/com/android/settings/webview/WebViewAppPickerTest.java
@@ -39,10 +39,10 @@
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;
@@ -135,7 +135,7 @@
private void testSuccessfulClickChangesProvider() {
when(mWvusWrapper.getValidWebViewApplicationInfos(any()))
- .thenReturn(Collections.singletonList(createApplicationInfo(DEFAULT_PACKAGE_NAME)));
+ .thenReturn(Collections.singletonList(createApplicationInfo(DEFAULT_PACKAGE_NAME)));
when(mWvusWrapper.setWebViewProvider(eq(DEFAULT_PACKAGE_NAME))).thenReturn(true);
RadioButtonPreference defaultPackagePref = mock(RadioButtonPreference.class);
@@ -149,7 +149,7 @@
private void testFailingClickUpdatesSetting() {
when(mWvusWrapper.getValidWebViewApplicationInfos(any()))
- .thenReturn(Collections.singletonList(createApplicationInfo(DEFAULT_PACKAGE_NAME)));
+ .thenReturn(Collections.singletonList(createApplicationInfo(DEFAULT_PACKAGE_NAME)));
when(mWvusWrapper.setWebViewProvider(eq(DEFAULT_PACKAGE_NAME))).thenReturn(false);
RadioButtonPreference defaultPackagePref = mock(RadioButtonPreference.class);
@@ -229,24 +229,24 @@
@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);
WebViewUpdateServiceWrapper wvusWrapper = mock(WebViewUpdateServiceWrapper.class);
when(wvusWrapper.getPackageInfosAllUsers(any(), eq(DEFAULT_PACKAGE_NAME)))
- .thenReturn(Arrays.asList(packageForFirstUser, packageForSecondUser));
+ .thenReturn(Arrays.asList(packageForFirstUser, packageForSecondUser));
assertThat(mPicker.getDisabledReason(wvusWrapper, mContext, DEFAULT_PACKAGE_NAME)).isNull();
}
@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);
@@ -257,12 +257,12 @@
final String expectedReason = String.format("(disabled for user %s)", mFirstUser.name);
assertThat(mPicker.getDisabledReason(wvusWrapper, mContext, DEFAULT_PACKAGE_NAME))
- .isEqualTo(expectedReason);
+ .isEqualTo(expectedReason);
}
@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);
@@ -273,17 +273,17 @@
final String expectedReason = String.format("(uninstalled for user %s)", mFirstUser.name);
assertThat(mPicker.getDisabledReason(wvusWrapper, mContext, DEFAULT_PACKAGE_NAME))
- .isEqualTo(expectedReason);
+ .isEqualTo(expectedReason);
}
@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);
@@ -294,7 +294,7 @@
final String expectedReason = String.format("(disabled for user %s)", mFirstUser.name);
assertThat(mPicker.getDisabledReason(wvusWrapper, mContext, DEFAULT_PACKAGE_NAME))
- .isEqualTo(expectedReason);
+ .isEqualTo(expectedReason);
}
/**
@@ -303,12 +303,12 @@
*/
@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);
@@ -319,7 +319,7 @@
final String expectedReason = String.format("(uninstalled for user %s)", mFirstUser.name);
assertThat(mPicker.getDisabledReason(wvusWrapper, mContext, DEFAULT_PACKAGE_NAME))
- .isEqualTo(expectedReason);
+ .isEqualTo(expectedReason);
}
/**
@@ -343,7 +343,8 @@
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());
}