Merge "Update use of android.webkit.UserPackage." into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
1c756ec809
@@ -26,6 +26,7 @@ import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageItemInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.UserManager;
|
||||
import android.text.TextUtils;
|
||||
import android.webkit.UserPackage;
|
||||
|
||||
@@ -149,17 +150,20 @@ public class WebViewAppPicker extends DefaultAppPickerFragment {
|
||||
@VisibleForTesting
|
||||
String getDisabledReason(WebViewUpdateServiceWrapper webviewUpdateServiceWrapper,
|
||||
Context context, String packageName) {
|
||||
UserManager userManager = context.getSystemService(UserManager.class);
|
||||
List<UserPackage> userPackages =
|
||||
webviewUpdateServiceWrapper.getPackageInfosAllUsers(context, packageName);
|
||||
for (UserPackage userPackage : userPackages) {
|
||||
if (!userPackage.isInstalledPackage()) {
|
||||
// Package uninstalled/hidden
|
||||
return context.getString(
|
||||
R.string.webview_uninstalled_for_user, userPackage.getUserInfo().name);
|
||||
R.string.webview_uninstalled_for_user,
|
||||
userManager.getUserInfo(userPackage.getUser().getIdentifier()).name);
|
||||
} else if (!userPackage.isEnabledPackage()) {
|
||||
// Package disabled
|
||||
return context.getString(
|
||||
R.string.webview_disabled_for_user, userPackage.getUserInfo().name);
|
||||
R.string.webview_disabled_for_user,
|
||||
userManager.getUserInfo(userPackage.getUser().getIdentifier()).name);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
@@ -35,8 +35,8 @@ import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.UserInfo;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.os.UserHandle;
|
||||
import android.webkit.UserPackage;
|
||||
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
@@ -71,15 +71,17 @@ import java.util.Collections;
|
||||
})
|
||||
public class WebViewAppPickerTest {
|
||||
|
||||
private final static String PACKAGE_NAME = "com.example.test";
|
||||
private final static String PACKAGE_VERSION = "1.0.0";
|
||||
private static final String PACKAGE_NAME = "com.example.test";
|
||||
private static final String PACKAGE_VERSION = "1.0.0";
|
||||
private static final String FIRST_USER_NAME = "FIRST_USER";
|
||||
private static final String SECOND_USER_NAME = "SECOND_USER";
|
||||
|
||||
@Mock
|
||||
private FragmentActivity mActivity;
|
||||
|
||||
private Context mContext;
|
||||
private UserInfo mFirstUser;
|
||||
private UserInfo mSecondUser;
|
||||
private UserHandle mFirstUser;
|
||||
private UserHandle mSecondUser;
|
||||
private ShadowPackageManager mPackageManager;
|
||||
private WebViewAppPicker mPicker;
|
||||
private WebViewUpdateServiceWrapper mWvusWrapper;
|
||||
@@ -105,8 +107,8 @@ public class WebViewAppPickerTest {
|
||||
mPackageManager.addPackage(packageInfo);
|
||||
mPackageManager.setUnbadgedApplicationIcon(PACKAGE_NAME, new ColorDrawable());
|
||||
|
||||
mFirstUser = new UserInfo(0, "FIRST_USER", 0);
|
||||
mSecondUser = new UserInfo(0, "SECOND_USER", 0);
|
||||
mFirstUser = mUserManager.addUser(0, FIRST_USER_NAME, 0);
|
||||
mSecondUser = mUserManager.addUser(1, SECOND_USER_NAME, 0);
|
||||
mPicker = new WebViewAppPicker();
|
||||
mPicker = spy(mPicker);
|
||||
doNothing().when(mPicker).updateCandidates();
|
||||
@@ -238,13 +240,13 @@ public class WebViewAppPickerTest {
|
||||
UserPackage packageForFirstUser = mock(UserPackage.class);
|
||||
when(packageForFirstUser.isEnabledPackage()).thenReturn(false);
|
||||
when(packageForFirstUser.isInstalledPackage()).thenReturn(true);
|
||||
when(packageForFirstUser.getUserInfo()).thenReturn(mFirstUser);
|
||||
when(packageForFirstUser.getUser()).thenReturn(mFirstUser);
|
||||
|
||||
WebViewUpdateServiceWrapper wvusWrapper = mock(WebViewUpdateServiceWrapper.class);
|
||||
when(wvusWrapper.getPackageInfosAllUsers(any(), eq(PACKAGE_NAME)))
|
||||
.thenReturn(Collections.singletonList(packageForFirstUser));
|
||||
|
||||
final String expectedReason = String.format("(disabled for user %s)", mFirstUser.name);
|
||||
final String expectedReason = String.format("(disabled for user %s)", FIRST_USER_NAME);
|
||||
assertThat(mPicker.getDisabledReason(wvusWrapper, mContext, PACKAGE_NAME))
|
||||
.isEqualTo(expectedReason);
|
||||
}
|
||||
@@ -254,13 +256,13 @@ public class WebViewAppPickerTest {
|
||||
UserPackage packageForFirstUser = mock(UserPackage.class);
|
||||
when(packageForFirstUser.isEnabledPackage()).thenReturn(true);
|
||||
when(packageForFirstUser.isInstalledPackage()).thenReturn(false);
|
||||
when(packageForFirstUser.getUserInfo()).thenReturn(mFirstUser);
|
||||
when(packageForFirstUser.getUser()).thenReturn(mFirstUser);
|
||||
|
||||
WebViewUpdateServiceWrapper wvusWrapper = mock(WebViewUpdateServiceWrapper.class);
|
||||
when(wvusWrapper.getPackageInfosAllUsers(any(), eq(PACKAGE_NAME)))
|
||||
.thenReturn(Collections.singletonList(packageForFirstUser));
|
||||
|
||||
final String expectedReason = String.format("(uninstalled for user %s)", mFirstUser.name);
|
||||
final String expectedReason = String.format("(uninstalled for user %s)", FIRST_USER_NAME);
|
||||
assertThat(mPicker.getDisabledReason(wvusWrapper, mContext, PACKAGE_NAME))
|
||||
.isEqualTo(expectedReason);
|
||||
}
|
||||
@@ -270,18 +272,18 @@ public class WebViewAppPickerTest {
|
||||
UserPackage packageForFirstUser = mock(UserPackage.class);
|
||||
when(packageForFirstUser.isEnabledPackage()).thenReturn(false);
|
||||
when(packageForFirstUser.isInstalledPackage()).thenReturn(true);
|
||||
when(packageForFirstUser.getUserInfo()).thenReturn(mFirstUser);
|
||||
when(packageForFirstUser.getUser()).thenReturn(mFirstUser);
|
||||
|
||||
UserPackage packageForSecondUser = mock(UserPackage.class);
|
||||
when(packageForSecondUser.isEnabledPackage()).thenReturn(true);
|
||||
when(packageForSecondUser.isInstalledPackage()).thenReturn(false);
|
||||
when(packageForSecondUser.getUserInfo()).thenReturn(mSecondUser);
|
||||
when(packageForSecondUser.getUser()).thenReturn(mSecondUser);
|
||||
|
||||
WebViewUpdateServiceWrapper wvusWrapper = mock(WebViewUpdateServiceWrapper.class);
|
||||
when(wvusWrapper.getPackageInfosAllUsers(any(), eq(PACKAGE_NAME)))
|
||||
.thenReturn(Arrays.asList(packageForFirstUser, packageForSecondUser));
|
||||
|
||||
final String expectedReason = String.format("(disabled for user %s)", mFirstUser.name);
|
||||
final String expectedReason = String.format("(disabled for user %s)", FIRST_USER_NAME);
|
||||
assertThat(mPicker.getDisabledReason(wvusWrapper, mContext, PACKAGE_NAME))
|
||||
.isEqualTo(expectedReason);
|
||||
}
|
||||
@@ -295,18 +297,18 @@ public class WebViewAppPickerTest {
|
||||
UserPackage packageForFirstUser = mock(UserPackage.class);
|
||||
when(packageForFirstUser.isEnabledPackage()).thenReturn(false);
|
||||
when(packageForFirstUser.isInstalledPackage()).thenReturn(false);
|
||||
when(packageForFirstUser.getUserInfo()).thenReturn(mFirstUser);
|
||||
when(packageForFirstUser.getUser()).thenReturn(mFirstUser);
|
||||
|
||||
UserPackage packageForSecondUser = mock(UserPackage.class);
|
||||
when(packageForSecondUser.isEnabledPackage()).thenReturn(true);
|
||||
when(packageForSecondUser.isInstalledPackage()).thenReturn(true);
|
||||
when(packageForSecondUser.getUserInfo()).thenReturn(mSecondUser);
|
||||
when(packageForSecondUser.getUser()).thenReturn(mSecondUser);
|
||||
|
||||
WebViewUpdateServiceWrapper wvusWrapper = mock(WebViewUpdateServiceWrapper.class);
|
||||
when(wvusWrapper.getPackageInfosAllUsers(any(), eq(PACKAGE_NAME)))
|
||||
.thenReturn(Arrays.asList(packageForFirstUser, packageForSecondUser));
|
||||
|
||||
final String expectedReason = String.format("(uninstalled for user %s)", mFirstUser.name);
|
||||
final String expectedReason = String.format("(uninstalled for user %s)", FIRST_USER_NAME);
|
||||
assertThat(mPicker.getDisabledReason(wvusWrapper, mContext, PACKAGE_NAME))
|
||||
.isEqualTo(expectedReason);
|
||||
}
|
||||
|
Reference in New Issue
Block a user