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:
committed by
Android (Google) Code Review
commit
dd5977901d
@@ -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>
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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(
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -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();
|
||||
}
|
@@ -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();
|
||||
}
|
||||
}
|
@@ -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());
|
||||
}
|
||||
|
Reference in New Issue
Block a user