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;
public class WebViewUpdateServiceWrapper {
private static final String TAG = "WVUSWrapper";
- public WebViewUpdateServiceWrapper() {}
+ public WebViewUpdateServiceWrapper() {
+ }
/**
* Fetch the package currently used as WebView implementation.
/**
* Change WebView provider to {@param packageName}.
+ *
* @return whether the change succeeded.
*/
public boolean setWebViewProvider(String packageName) {
/**
* 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);
}
/**
+++ /dev/null
-/*
- * 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();
- }
-}
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;
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);
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);
@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);
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);
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);
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 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);
final String expectedReason = String.format("(uninstalled for user %s)", mFirstUser.name);
assertThat(mPicker.getDisabledReason(wvusWrapper, mContext, DEFAULT_PACKAGE_NAME))
- .isEqualTo(expectedReason);
+ .isEqualTo(expectedReason);
}
/**
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());
}