Get rid of UserPackageWrapper util.

Robolectric can support framework private classes now, so there is no
need to use wrappers.

Bug: 76167422
Test: robotests
Change-Id: I034a9f0a9856348bff491f2e9b2b1f7d682ab942
This commit is contained in:
Fan Zhang
2018-03-22 15:28:46 -07:00
parent 6c5af54af9
commit 5f9a348f7e
5 changed files with 26 additions and 106 deletions

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();
}
}