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

Commit be785035 authored by Paul Mclean's avatar Paul Mclean Committed by Android (Google) Code Review
Browse files

Merge "Adding USB Recording warning message to UsbResolverActivity."

parents 2b041061 07425c8c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -95,7 +95,7 @@ public class ChooserListAdapter extends ResolverListAdapter {
        // we want to separate them into a different section.
        super(context, payloadIntents, null, rList, filterLastUsed,
                resolverListController, useLayoutForBrowsables,
                chooserListCommunicator);
                chooserListCommunicator, false);

        createPlaceHolders();
        mMaxShortcutTargetsPerApp =
+10 −1
Original line number Diff line number Diff line
@@ -140,6 +140,9 @@ public class ResolverActivity extends Activity implements

    private final PackageMonitor mPackageMonitor = createPackageMonitor();

    // Intent extra for connected audio devices
    public static final String EXTRA_IS_AUDIO_CAPTURE_DEVICE = "is_audio_capture_device";

    /**
     * Get the string resource to be used as a label for the link to the resolver activity for an
     * action.
@@ -1038,8 +1041,14 @@ public class ResolverActivity extends Activity implements
    public ResolverListAdapter createAdapter(Context context, List<Intent> payloadIntents,
            Intent[] initialIntents, List<ResolveInfo> rList,
            boolean filterLastUsed, boolean useLayoutForBrowsables) {

        Intent startIntent = getIntent();
        boolean isAudioCaptureDevice =
                startIntent.getBooleanExtra(EXTRA_IS_AUDIO_CAPTURE_DEVICE, false);

        return new ResolverListAdapter(context, payloadIntents, initialIntents, rList,
                filterLastUsed, createListController(), useLayoutForBrowsables, this);
                filterLastUsed, createListController(), useLayoutForBrowsables, this,
                isAudioCaptureDevice);
    }

    @VisibleForTesting
+28 −1
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.app.ActivityManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.PermissionChecker;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.LabeledIntent;
@@ -86,13 +87,15 @@ public class ResolverListAdapter extends BaseAdapter {
    private boolean mFilterLastUsed;
    private final ResolverListCommunicator mResolverListCommunicator;
    private Runnable mPostListReadyRunnable;
    private final boolean mIsAudioCaptureDevice;

    public ResolverListAdapter(Context context, List<Intent> payloadIntents,
            Intent[] initialIntents, List<ResolveInfo> rList,
            boolean filterLastUsed,
            ResolverListController resolverListController,
            boolean useLayoutForBrowsables,
            ResolverListCommunicator resolverListCommunicator) {
            ResolverListCommunicator resolverListCommunicator,
            boolean isAudioCaptureDevice) {
        mContext = context;
        mIntents = payloadIntents;
        mInitialIntents = initialIntents;
@@ -105,6 +108,7 @@ public class ResolverListAdapter extends BaseAdapter {
        mSuspendedMatrixColorFilter = createSuspendedColorMatrix();
        mUseLayoutForBrowsables = useLayoutForBrowsables;
        mResolverListCommunicator = resolverListCommunicator;
        mIsAudioCaptureDevice = isAudioCaptureDevice;
        final ActivityManager am = (ActivityManager) mContext.getSystemService(ACTIVITY_SERVICE);
        mIconDpi = am.getLauncherLargeIconDensity();
    }
@@ -651,6 +655,29 @@ public class ResolverListAdapter extends BaseAdapter {
        protected CharSequence[] doInBackground(Void... voids) {
            ResolveInfoPresentationGetter pg =
                    makePresentationGetter(mDisplayResolveInfo.getResolveInfo());

            if (mIsAudioCaptureDevice) {
                // This is an audio capture device, so check record permissions
                ActivityInfo activityInfo = mDisplayResolveInfo.getResolveInfo().activityInfo;
                String packageName = activityInfo.packageName;

                int uid = activityInfo.applicationInfo.uid;
                boolean hasRecordPermission =
                        PermissionChecker.checkPermissionForPreflight(
                                mContext,
                                android.Manifest.permission.RECORD_AUDIO, -1, uid,
                                packageName)
                                == android.content.pm.PackageManager.PERMISSION_GRANTED;

                if (!hasRecordPermission) {
                    // Doesn't have record permission, so warn the user
                    return new CharSequence[] {
                            pg.getLabel(),
                            mContext.getString(R.string.usb_device_resolve_prompt_warn)
                    };
                }
            }

            return new CharSequence[] {
                    pg.getLabel(),
                    pg.getSubLabel()
+4 −2
Original line number Diff line number Diff line
@@ -54,7 +54,9 @@
                  android:minLines="1"
                  android:maxLines="1"
                  android:ellipsize="marquee" />
        <!-- Extended activity info to distinguish between duplicate activity names -->
        <!-- Extended activity info to distinguish between duplicate activity names
            or provide record w/o permission warnings.
        -->
        <TextView android:id="@android:id/text2"
                  android:textColor="?android:attr/textColorSecondary"
                  android:fontFamily="@android:string/config_bodyFontFamily"
@@ -64,7 +66,7 @@
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:minLines="1"
                  android:maxLines="1"
                  android:maxLines="2"
                  android:ellipsize="marquee" />
    </LinearLayout>
</LinearLayout>
+2 −0
Original line number Diff line number Diff line
@@ -5440,4 +5440,6 @@
    <!-- ChooserActivity - Alphabetically sorted apps list label. [CHAR LIMIT=NONE] -->
    <string name="chooser_all_apps_button_label">Apps list</string>

    <!-- Prompt for the USB device resolver dialog with warning text for USB device dialogs.  [CHAR LIMIT=200] -->
    <string name="usb_device_resolve_prompt_warn">This app has not been granted record permission but could capture audio through this USB device.</string>
</resources>
Loading