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

Commit db59347c authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Mark only browser as default in app detail page"

parents 4451440a 6786d8cd
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1076,8 +1076,8 @@ public class InstalledAppDetails extends AppInfoBase
        }
        pref = findPreference("default_browser");
        if (pref != null) {
            pref.setSummary(
                    DefaultBrowserPreferenceController.isBrowserDefault(mPackageName, context)
            pref.setSummary(new DefaultBrowserPreferenceController(context)
                    .isBrowserDefault(mPackageName, mUserId)
                    ? R.string.yes : R.string.no);
        }
        pref = findPreference("default_phone_app");
+10 −5
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.os.UserHandle;
import android.support.v7.preference.Preference;
import android.text.TextUtils;

@@ -96,9 +95,15 @@ public class DefaultBrowserPreferenceController extends DefaultAppPreferenceCont
    /**
     * Whether or not the pkg is the default browser
     */
    public static boolean isBrowserDefault(String pkg, Context context) {
        String defaultPackage = context.getPackageManager()
                .getDefaultBrowserPackageNameAsUser(UserHandle.myUserId());
        return defaultPackage != null && defaultPackage.equals(pkg);
    public boolean isBrowserDefault(String pkg, int userId) {
        String defaultPackage = mPackageManager.getDefaultBrowserPackageNameAsUser(userId);
        if (defaultPackage != null) {
            return defaultPackage.equals(pkg);
        }

        final List<ResolveInfo> list = mPackageManager.queryIntentActivitiesAsUser(BROWSE_PROBE,
                PackageManager.MATCH_ALL, userId);
        // There is only 1 app, it must be the default browser.
        return list != null && list.size() == 1;
    }
}
+14 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.settings.applications.defaultapps;

import android.content.Context;
import android.content.Intent;
import android.content.pm.ResolveInfo;
import android.os.UserManager;
import android.support.v7.preference.Preference;

@@ -35,6 +36,8 @@ import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;

import java.util.Arrays;

import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
@@ -85,4 +88,15 @@ public class DefaultBrowserPreferenceControllerTest {

        verify(mPackageManager).getDefaultBrowserPackageNameAsUser(anyInt());
    }

    @Test
    public void isBrowserDefault_onlyApp_shouldReturnTrue() {
        final String testPkg = "pkg";
        when(mPackageManager.getDefaultBrowserPackageNameAsUser(anyInt()))
                .thenReturn(null);
        when(mPackageManager.queryIntentActivitiesAsUser(any(Intent.class), anyInt(), anyInt()))
                .thenReturn(Arrays.asList(new ResolveInfo()));

        assertThat(mController.isBrowserDefault(testPkg, 0)).isTrue();
    }
}