Merge changes I034a9f0a,Iad5ec577 into pi-dev am: dd5977901d
am: 7e75de29b1
Change-Id: Ife81eb4fa926cd9a54e84ea4b9d5374c07e1a5b6
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user