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

Commit 8802d4c0 authored by Derek Jedral's avatar Derek Jedral Committed by Android (Google) Code Review
Browse files

Merge "getAuthority using resolveContentProvider" into main

parents f18d1f60 9cdb5431
Loading
Loading
Loading
Loading
+8 −15
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@ import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.ComponentInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ProviderInfo;
import android.provider.DeviceConfig;
@@ -38,8 +37,6 @@ import com.android.settings.Utils;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.BasePreferenceController.AvailabilityStatus;

import java.util.List;

/** Utilities for active unlock details shared between Security Settings and Safety Center. */
public class ActiveUnlockStatusUtils {

@@ -98,19 +95,15 @@ public class ActiveUnlockStatusUtils {
            Log.i(TAG, "authority not set");
            return null;
        }
        final List<PackageInfo> packageInfos =
                mContext.getPackageManager().getInstalledPackages(
                        PackageManager.PackageInfoFlags.of(PackageManager.GET_PROVIDERS));
        for (PackageInfo packageInfo : packageInfos) {
            final ProviderInfo[] providers = packageInfo.providers;
            if (providers != null) {
                for (ProviderInfo provider : providers) {
        final ProviderInfo provider = mContext.getPackageManager().resolveContentProvider(
                authority, PackageManager.ComponentInfoFlags.of(PackageManager.MATCH_SYSTEM_ONLY));
        if (provider == null) {
            Log.i(TAG, "could not find provider");
            return null;
        }
        if (authority.equals(provider.authority) && isSystemApp(provider)) {
            return authority;
        }
                }
            }
        }
        Log.e(TAG, "authority not valid");
        return null;
    }
+2 −4
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.settings.biometrics.activeunlock;
import static com.google.common.truth.Truth.assertThat;

import static org.mockito.Mockito.any;
import static org.mockito.Mockito.anyString;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import static org.robolectric.shadows.ShadowLooper.idleMainLooper;
@@ -44,8 +45,6 @@ import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;

import java.util.ArrayList;

@RunWith(RobolectricTestRunner.class)
@Config(shadows = {ShadowDeviceConfig.class})
public class ActiveUnlockContentListenerTest {
@@ -141,8 +140,7 @@ public class ActiveUnlockContentListenerTest {

    @Test
    public void noProvider_subscribeDoesntRegisterObserver() {
        when(mPackageManager.getInstalledPackages(any()))
                .thenReturn(new ArrayList<>());
        when(mPackageManager.resolveContentProvider(anyString(), any())).thenReturn(null);
        OnContentChangedListener listener = new OnContentChangedListener() {
            @Override
            public void onContentChanged(String newValue) {}
+2 −9
Original line number Diff line number Diff line
@@ -18,12 +18,12 @@ package com.android.settings.testutils;

import static org.mockito.Mockito.any;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.anyString;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ProviderInfo;
import android.content.pm.ResolveInfo;
@@ -32,8 +32,6 @@ import android.provider.Settings;

import com.android.settings.biometrics.activeunlock.ActiveUnlockStatusUtils;

import java.util.ArrayList;

/** Utilities class to enable or disable the Active Unlock flag in tests. */
public final class ActiveUnlockTestUtils {

@@ -61,15 +59,10 @@ public final class ActiveUnlockTestUtils {
        resolveInfo.activityInfo.applicationInfo = applicationInfo;
        when(packageManager.resolveActivity(any(), anyInt())).thenReturn(resolveInfo);

        PackageInfo packageInfo = new PackageInfo();
        packageInfo.applicationInfo = applicationInfo;
        ProviderInfo providerInfo = new ProviderInfo();
        providerInfo.authority = PROVIDER;
        providerInfo.applicationInfo = applicationInfo;
        packageInfo.providers = new ProviderInfo[] { providerInfo };
        ArrayList<PackageInfo> packageInfos = new ArrayList<>();
        packageInfos.add(packageInfo);
        when(packageManager.getInstalledPackages(any())).thenReturn(packageInfos);
        when(packageManager.resolveContentProvider(anyString(), any())).thenReturn(providerInfo);

        DeviceConfig.setProperty(
                DeviceConfig.NAMESPACE_REMOTE_AUTH,
+2 −9
Original line number Diff line number Diff line
@@ -18,12 +18,12 @@ package com.android.settings.testutils;

import static org.mockito.Mockito.any;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.anyString;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ProviderInfo;
import android.content.pm.ResolveInfo;
@@ -32,8 +32,6 @@ import android.provider.Settings;

import com.android.settings.biometrics.activeunlock.ActiveUnlockStatusUtils;

import java.util.ArrayList;

/** Utilities class to enable or disable the Active Unlock flag in tests. */
public final class ActiveUnlockTestUtils {

@@ -61,15 +59,10 @@ public final class ActiveUnlockTestUtils {
        resolveInfo.activityInfo.applicationInfo = applicationInfo;
        when(packageManager.resolveActivity(any(), anyInt())).thenReturn(resolveInfo);

        PackageInfo packageInfo = new PackageInfo();
        packageInfo.applicationInfo = applicationInfo;
        ProviderInfo providerInfo = new ProviderInfo();
        providerInfo.authority = PROVIDER;
        providerInfo.applicationInfo = applicationInfo;
        packageInfo.providers = new ProviderInfo[] { providerInfo };
        ArrayList<PackageInfo> packageInfos = new ArrayList<>();
        packageInfos.add(packageInfo);
        when(packageManager.getInstalledPackages(any())).thenReturn(packageInfos);
        when(packageManager.resolveContentProvider(anyString(), any())).thenReturn(providerInfo);

        DeviceConfig.setProperty(
                DeviceConfig.NAMESPACE_REMOTE_AUTH,