Update use of android.webkit.UserPackage.
UserPackage no longer stores a UserInfo, only a UserHandle, to aid in mainline modularization. Update Settings to fetch the UserInfo itself when it needs to show the user name. Bug: 310653407 Test: atest WebViewAppPickerTest Flag: NONE cannot flag changed types in method signatures Change-Id: I0e6f58e6b6a353171ddf923279ff08a92e2f040a
This commit is contained in:
@@ -26,6 +26,7 @@ import android.content.pm.ApplicationInfo;
|
|||||||
import android.content.pm.PackageInfo;
|
import android.content.pm.PackageInfo;
|
||||||
import android.content.pm.PackageItemInfo;
|
import android.content.pm.PackageItemInfo;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
|
import android.os.UserManager;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.webkit.UserPackage;
|
import android.webkit.UserPackage;
|
||||||
|
|
||||||
@@ -149,17 +150,20 @@ public class WebViewAppPicker extends DefaultAppPickerFragment {
|
|||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
String getDisabledReason(WebViewUpdateServiceWrapper webviewUpdateServiceWrapper,
|
String getDisabledReason(WebViewUpdateServiceWrapper webviewUpdateServiceWrapper,
|
||||||
Context context, String packageName) {
|
Context context, String packageName) {
|
||||||
|
UserManager userManager = context.getSystemService(UserManager.class);
|
||||||
List<UserPackage> userPackages =
|
List<UserPackage> userPackages =
|
||||||
webviewUpdateServiceWrapper.getPackageInfosAllUsers(context, packageName);
|
webviewUpdateServiceWrapper.getPackageInfosAllUsers(context, packageName);
|
||||||
for (UserPackage userPackage : userPackages) {
|
for (UserPackage userPackage : userPackages) {
|
||||||
if (!userPackage.isInstalledPackage()) {
|
if (!userPackage.isInstalledPackage()) {
|
||||||
// Package uninstalled/hidden
|
// Package uninstalled/hidden
|
||||||
return context.getString(
|
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()) {
|
} else if (!userPackage.isEnabledPackage()) {
|
||||||
// Package disabled
|
// Package disabled
|
||||||
return context.getString(
|
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;
|
return null;
|
||||||
|
@@ -35,8 +35,8 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.pm.ApplicationInfo;
|
import android.content.pm.ApplicationInfo;
|
||||||
import android.content.pm.PackageInfo;
|
import android.content.pm.PackageInfo;
|
||||||
import android.content.pm.UserInfo;
|
|
||||||
import android.graphics.drawable.ColorDrawable;
|
import android.graphics.drawable.ColorDrawable;
|
||||||
|
import android.os.UserHandle;
|
||||||
import android.webkit.UserPackage;
|
import android.webkit.UserPackage;
|
||||||
|
|
||||||
import androidx.fragment.app.FragmentActivity;
|
import androidx.fragment.app.FragmentActivity;
|
||||||
@@ -71,15 +71,17 @@ import java.util.Collections;
|
|||||||
})
|
})
|
||||||
public class WebViewAppPickerTest {
|
public class WebViewAppPickerTest {
|
||||||
|
|
||||||
private final static String PACKAGE_NAME = "com.example.test";
|
private static final String PACKAGE_NAME = "com.example.test";
|
||||||
private final static String PACKAGE_VERSION = "1.0.0";
|
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
|
@Mock
|
||||||
private FragmentActivity mActivity;
|
private FragmentActivity mActivity;
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private UserInfo mFirstUser;
|
private UserHandle mFirstUser;
|
||||||
private UserInfo mSecondUser;
|
private UserHandle mSecondUser;
|
||||||
private ShadowPackageManager mPackageManager;
|
private ShadowPackageManager mPackageManager;
|
||||||
private WebViewAppPicker mPicker;
|
private WebViewAppPicker mPicker;
|
||||||
private WebViewUpdateServiceWrapper mWvusWrapper;
|
private WebViewUpdateServiceWrapper mWvusWrapper;
|
||||||
@@ -105,8 +107,8 @@ public class WebViewAppPickerTest {
|
|||||||
mPackageManager.addPackage(packageInfo);
|
mPackageManager.addPackage(packageInfo);
|
||||||
mPackageManager.setUnbadgedApplicationIcon(PACKAGE_NAME, new ColorDrawable());
|
mPackageManager.setUnbadgedApplicationIcon(PACKAGE_NAME, new ColorDrawable());
|
||||||
|
|
||||||
mFirstUser = new UserInfo(0, "FIRST_USER", 0);
|
mFirstUser = mUserManager.addUser(0, FIRST_USER_NAME, 0);
|
||||||
mSecondUser = new UserInfo(0, "SECOND_USER", 0);
|
mSecondUser = mUserManager.addUser(1, SECOND_USER_NAME, 0);
|
||||||
mPicker = new WebViewAppPicker();
|
mPicker = new WebViewAppPicker();
|
||||||
mPicker = spy(mPicker);
|
mPicker = spy(mPicker);
|
||||||
doNothing().when(mPicker).updateCandidates();
|
doNothing().when(mPicker).updateCandidates();
|
||||||
@@ -238,13 +240,13 @@ public class WebViewAppPickerTest {
|
|||||||
UserPackage packageForFirstUser = mock(UserPackage.class);
|
UserPackage packageForFirstUser = mock(UserPackage.class);
|
||||||
when(packageForFirstUser.isEnabledPackage()).thenReturn(false);
|
when(packageForFirstUser.isEnabledPackage()).thenReturn(false);
|
||||||
when(packageForFirstUser.isInstalledPackage()).thenReturn(true);
|
when(packageForFirstUser.isInstalledPackage()).thenReturn(true);
|
||||||
when(packageForFirstUser.getUserInfo()).thenReturn(mFirstUser);
|
when(packageForFirstUser.getUser()).thenReturn(mFirstUser);
|
||||||
|
|
||||||
WebViewUpdateServiceWrapper wvusWrapper = mock(WebViewUpdateServiceWrapper.class);
|
WebViewUpdateServiceWrapper wvusWrapper = mock(WebViewUpdateServiceWrapper.class);
|
||||||
when(wvusWrapper.getPackageInfosAllUsers(any(), eq(PACKAGE_NAME)))
|
when(wvusWrapper.getPackageInfosAllUsers(any(), eq(PACKAGE_NAME)))
|
||||||
.thenReturn(Collections.singletonList(packageForFirstUser));
|
.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))
|
assertThat(mPicker.getDisabledReason(wvusWrapper, mContext, PACKAGE_NAME))
|
||||||
.isEqualTo(expectedReason);
|
.isEqualTo(expectedReason);
|
||||||
}
|
}
|
||||||
@@ -254,13 +256,13 @@ public class WebViewAppPickerTest {
|
|||||||
UserPackage packageForFirstUser = mock(UserPackage.class);
|
UserPackage packageForFirstUser = mock(UserPackage.class);
|
||||||
when(packageForFirstUser.isEnabledPackage()).thenReturn(true);
|
when(packageForFirstUser.isEnabledPackage()).thenReturn(true);
|
||||||
when(packageForFirstUser.isInstalledPackage()).thenReturn(false);
|
when(packageForFirstUser.isInstalledPackage()).thenReturn(false);
|
||||||
when(packageForFirstUser.getUserInfo()).thenReturn(mFirstUser);
|
when(packageForFirstUser.getUser()).thenReturn(mFirstUser);
|
||||||
|
|
||||||
WebViewUpdateServiceWrapper wvusWrapper = mock(WebViewUpdateServiceWrapper.class);
|
WebViewUpdateServiceWrapper wvusWrapper = mock(WebViewUpdateServiceWrapper.class);
|
||||||
when(wvusWrapper.getPackageInfosAllUsers(any(), eq(PACKAGE_NAME)))
|
when(wvusWrapper.getPackageInfosAllUsers(any(), eq(PACKAGE_NAME)))
|
||||||
.thenReturn(Collections.singletonList(packageForFirstUser));
|
.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))
|
assertThat(mPicker.getDisabledReason(wvusWrapper, mContext, PACKAGE_NAME))
|
||||||
.isEqualTo(expectedReason);
|
.isEqualTo(expectedReason);
|
||||||
}
|
}
|
||||||
@@ -270,18 +272,18 @@ public class WebViewAppPickerTest {
|
|||||||
UserPackage packageForFirstUser = mock(UserPackage.class);
|
UserPackage packageForFirstUser = mock(UserPackage.class);
|
||||||
when(packageForFirstUser.isEnabledPackage()).thenReturn(false);
|
when(packageForFirstUser.isEnabledPackage()).thenReturn(false);
|
||||||
when(packageForFirstUser.isInstalledPackage()).thenReturn(true);
|
when(packageForFirstUser.isInstalledPackage()).thenReturn(true);
|
||||||
when(packageForFirstUser.getUserInfo()).thenReturn(mFirstUser);
|
when(packageForFirstUser.getUser()).thenReturn(mFirstUser);
|
||||||
|
|
||||||
UserPackage packageForSecondUser = mock(UserPackage.class);
|
UserPackage packageForSecondUser = mock(UserPackage.class);
|
||||||
when(packageForSecondUser.isEnabledPackage()).thenReturn(true);
|
when(packageForSecondUser.isEnabledPackage()).thenReturn(true);
|
||||||
when(packageForSecondUser.isInstalledPackage()).thenReturn(false);
|
when(packageForSecondUser.isInstalledPackage()).thenReturn(false);
|
||||||
when(packageForSecondUser.getUserInfo()).thenReturn(mSecondUser);
|
when(packageForSecondUser.getUser()).thenReturn(mSecondUser);
|
||||||
|
|
||||||
WebViewUpdateServiceWrapper wvusWrapper = mock(WebViewUpdateServiceWrapper.class);
|
WebViewUpdateServiceWrapper wvusWrapper = mock(WebViewUpdateServiceWrapper.class);
|
||||||
when(wvusWrapper.getPackageInfosAllUsers(any(), eq(PACKAGE_NAME)))
|
when(wvusWrapper.getPackageInfosAllUsers(any(), eq(PACKAGE_NAME)))
|
||||||
.thenReturn(Arrays.asList(packageForFirstUser, packageForSecondUser));
|
.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))
|
assertThat(mPicker.getDisabledReason(wvusWrapper, mContext, PACKAGE_NAME))
|
||||||
.isEqualTo(expectedReason);
|
.isEqualTo(expectedReason);
|
||||||
}
|
}
|
||||||
@@ -295,18 +297,18 @@ public class WebViewAppPickerTest {
|
|||||||
UserPackage packageForFirstUser = mock(UserPackage.class);
|
UserPackage packageForFirstUser = mock(UserPackage.class);
|
||||||
when(packageForFirstUser.isEnabledPackage()).thenReturn(false);
|
when(packageForFirstUser.isEnabledPackage()).thenReturn(false);
|
||||||
when(packageForFirstUser.isInstalledPackage()).thenReturn(false);
|
when(packageForFirstUser.isInstalledPackage()).thenReturn(false);
|
||||||
when(packageForFirstUser.getUserInfo()).thenReturn(mFirstUser);
|
when(packageForFirstUser.getUser()).thenReturn(mFirstUser);
|
||||||
|
|
||||||
UserPackage packageForSecondUser = mock(UserPackage.class);
|
UserPackage packageForSecondUser = mock(UserPackage.class);
|
||||||
when(packageForSecondUser.isEnabledPackage()).thenReturn(true);
|
when(packageForSecondUser.isEnabledPackage()).thenReturn(true);
|
||||||
when(packageForSecondUser.isInstalledPackage()).thenReturn(true);
|
when(packageForSecondUser.isInstalledPackage()).thenReturn(true);
|
||||||
when(packageForSecondUser.getUserInfo()).thenReturn(mSecondUser);
|
when(packageForSecondUser.getUser()).thenReturn(mSecondUser);
|
||||||
|
|
||||||
WebViewUpdateServiceWrapper wvusWrapper = mock(WebViewUpdateServiceWrapper.class);
|
WebViewUpdateServiceWrapper wvusWrapper = mock(WebViewUpdateServiceWrapper.class);
|
||||||
when(wvusWrapper.getPackageInfosAllUsers(any(), eq(PACKAGE_NAME)))
|
when(wvusWrapper.getPackageInfosAllUsers(any(), eq(PACKAGE_NAME)))
|
||||||
.thenReturn(Arrays.asList(packageForFirstUser, packageForSecondUser));
|
.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))
|
assertThat(mPicker.getDisabledReason(wvusWrapper, mContext, PACKAGE_NAME))
|
||||||
.isEqualTo(expectedReason);
|
.isEqualTo(expectedReason);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user