Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1c756ec8 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Update use of android.webkit.UserPackage." into main

parents ea68bb08 c82baecc
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -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;
+19 −17
Original line number Diff line number Diff line
@@ -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);
    }