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

Commit a98c859b authored by Anubhav Kakkar's avatar Anubhav Kakkar
Browse files

Add 'Change media output' permission in the CDM dialog for watch role profile

Bug: 308186966, 314707052
Test: Open watch companion app (e.g. Bona companion) on a phone with package allowlisting removed (or pair the devices across OEMs) > Observe CDM dialog

Change-Id: I4f916cbea0a158b323f83b648a2b6fb57827beff
parent 893ab1f5
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
<!--
  ~ Copyright (C) 2022 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24dp"
        android:height="24dp"
        android:viewportWidth="960"
        android:viewportHeight="960"
        android:tint="@android:color/system_accent1_200">
    <path android:fillColor="@android:color/system_accent1_200"
          android:pathData="M360,840L200,840Q167,840 143.5,816.5Q120,793 120,760L120,480Q120,405 148.5,339.5Q177,274 225.5,225.5Q274,177 339.5,148.5Q405,120 480,120Q555,120 620.5,148.5Q686,177 734.5,225.5Q783,274 811.5,339.5Q840,405 840,480L840,760Q840,793 816.5,816.5Q793,840 760,840L600,840L600,520L760,520L760,480Q760,363 678.5,281.5Q597,200 480,200Q363,200 281.5,281.5Q200,363 200,480L200,520L360,520L360,840ZM280,600L200,600L200,760Q200,760 200,760Q200,760 200,760L280,760L280,600ZM680,600L680,760L760,760Q760,760 760,760Q760,760 760,760L760,600L680,600ZM280,600L280,600L200,600Q200,600 200,600Q200,600 200,600L200,600L280,600ZM680,600L760,600L760,600Q760,600 760,600Q760,600 760,600L680,600L680,600Z"/>
</vector>
 No newline at end of file
+25 −0
Original line number Diff line number Diff line
<!--
  ~ Copyright (C) 2022 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24dp"
        android:height="24dp"
        android:viewportWidth="960"
        android:viewportHeight="960"
        android:tint="?attr/colorControlNormal">
    <path android:fillColor="@android:color/system_accent1_600"
          android:pathData="M360,840L200,840Q167,840 143.5,816.5Q120,793 120,760L120,480Q120,405 148.5,339.5Q177,274 225.5,225.5Q274,177 339.5,148.5Q405,120 480,120Q555,120 620.5,148.5Q686,177 734.5,225.5Q783,274 811.5,339.5Q840,405 840,480L840,760Q840,793 816.5,816.5Q793,840 760,840L600,840L600,520L760,520L760,480Q760,363 678.5,281.5Q597,200 480,200Q363,200 281.5,281.5Q200,363 200,480L200,520L360,520L360,840ZM280,600L200,600L200,760Q200,760 200,760Q200,760 200,760L280,760L280,600ZM680,600L680,760L760,760Q760,760 760,760Q760,760 760,760L760,600L680,600ZM280,600L280,600L200,600Q200,600 200,600Q200,600 200,600L200,600L280,600ZM680,600L760,600L760,600Q760,600 760,600Q760,600 760,600L680,600L680,600Z"/>
</vector>
 No newline at end of file
+6 −0
Original line number Diff line number Diff line
@@ -149,6 +149,9 @@
    <!-- Nearby devices' permission will be granted of corresponding profile [CHAR LIMIT=30] -->
    <string name="permission_nearby_devices">Nearby devices</string>

    <!-- Change media output permission will be granted to the corresponding profile [CHAR LIMIT=30] -->
    <string name="permission_media_routing_control">Change media output</string>

    <!-- Storage permission will be granted of corresponding profile [CHAR LIMIT=30] -->
    <string name="permission_storage">Photos and media</string>

@@ -194,6 +197,9 @@
    <!-- Description of nearby_device_streaming permission of corresponding profile [CHAR LIMIT=NONE] -->
    <string name="permission_nearby_device_streaming_summary">Stream apps and other system features from your phone</string>

    <!-- Description of change media output permission to be granted to the corresponding profile [CHAR LIMIT=NONE] -->
    <string name="permission_media_routing_control_summary">Access a list of available devices and control which one streams or casts audio or video from other apps</string>

    <!-- The type of the device for phone [CHAR LIMIT=30] -->
    <string name="device_type" product="default">phone</string>

+12 −3
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import static android.companion.AssociationRequest.DEVICE_PROFILE_WATCH;
import static com.android.companiondevicemanager.PermissionListAdapter.PERMISSION_APP_STREAMING;
import static com.android.companiondevicemanager.PermissionListAdapter.PERMISSION_CALENDAR;
import static com.android.companiondevicemanager.PermissionListAdapter.PERMISSION_CALL_LOGS;
import static com.android.companiondevicemanager.PermissionListAdapter.PERMISSION_CHANGE_MEDIA_OUTPUT;
import static com.android.companiondevicemanager.PermissionListAdapter.PERMISSION_CONTACTS;
import static com.android.companiondevicemanager.PermissionListAdapter.PERMISSION_MICROPHONE;
import static com.android.companiondevicemanager.PermissionListAdapter.PERMISSION_NEARBY_DEVICES;
@@ -41,6 +42,8 @@ import static java.util.Collections.unmodifiableSet;
import android.util.ArrayMap;
import android.util.ArraySet;

import com.android.media.flags.Flags;

import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -73,9 +76,15 @@ final class CompanionDeviceResources {
                PERMISSION_NOTIFICATION, PERMISSION_STORAGE));
        map.put(DEVICE_PROFILE_NEARBY_DEVICE_STREAMING,
                Arrays.asList(PERMISSION_NEARBY_DEVICE_STREAMING));
        if (!Flags.enablePrivilegedRoutingForMediaRoutingControl()) {
            map.put(DEVICE_PROFILE_WATCH, Arrays.asList(PERMISSION_NOTIFICATION, PERMISSION_PHONE,
                    PERMISSION_CALL_LOGS, PERMISSION_SMS, PERMISSION_CONTACTS, PERMISSION_CALENDAR,
                    PERMISSION_NEARBY_DEVICES));
        } else {
            map.put(DEVICE_PROFILE_WATCH, Arrays.asList(PERMISSION_NOTIFICATION, PERMISSION_PHONE,
                    PERMISSION_CALL_LOGS, PERMISSION_SMS, PERMISSION_CONTACTS, PERMISSION_CALENDAR,
                    PERMISSION_NEARBY_DEVICES, PERMISSION_CHANGE_MEDIA_OUTPUT));
        }
        map.put(DEVICE_PROFILE_GLASSES, Arrays.asList(PERMISSION_NOTIFICATION, PERMISSION_PHONE,
                PERMISSION_SMS, PERMISSION_CONTACTS, PERMISSION_MICROPHONE,
                PERMISSION_NEARBY_DEVICES));
+4 −0
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ class PermissionListAdapter extends RecyclerView.Adapter<PermissionListAdapter.V
    static final int PERMISSION_NEARBY_DEVICE_STREAMING = 8;
    static final int PERMISSION_MICROPHONE = 9;
    static final int PERMISSION_CALL_LOGS = 10;
    static final int PERMISSION_CHANGE_MEDIA_OUTPUT = 11;

    private static final Map<Integer, Integer> sTitleMap;
    static {
@@ -69,6 +70,7 @@ class PermissionListAdapter extends RecyclerView.Adapter<PermissionListAdapter.V
        map.put(PERMISSION_NEARBY_DEVICE_STREAMING, R.string.permission_nearby_device_streaming);
        map.put(PERMISSION_MICROPHONE, R.string.permission_microphone);
        map.put(PERMISSION_CALL_LOGS, R.string.permission_call_logs);
        map.put(PERMISSION_CHANGE_MEDIA_OUTPUT, R.string.permission_media_routing_control);
        sTitleMap = unmodifiableMap(map);
    }

@@ -87,6 +89,7 @@ class PermissionListAdapter extends RecyclerView.Adapter<PermissionListAdapter.V
                R.string.permission_nearby_device_streaming_summary);
        map.put(PERMISSION_MICROPHONE, R.string.permission_microphone_summary);
        map.put(PERMISSION_CALL_LOGS, R.string.permission_call_logs_summary);
        map.put(PERMISSION_CHANGE_MEDIA_OUTPUT, R.string.permission_media_routing_control_summary);
        sSummaryMap = unmodifiableMap(map);
    }

@@ -105,6 +108,7 @@ class PermissionListAdapter extends RecyclerView.Adapter<PermissionListAdapter.V
                R.drawable.ic_permission_nearby_device_streaming);
        map.put(PERMISSION_MICROPHONE, R.drawable.ic_permission_microphone);
        map.put(PERMISSION_CALL_LOGS, R.drawable.ic_permission_call_logs);
        map.put(PERMISSION_CHANGE_MEDIA_OUTPUT, R.drawable.ic_permission_media_routing_control);
        sIconMap = unmodifiableMap(map);
    }