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

Commit 27378ee3 authored by Caitlin Cassidy's avatar Caitlin Cassidy
Browse files

[Media TTT] Add app icon and name to the receiver SystemApi.

We typically get the app icon and name using
`context.packageManager.getApplicationIcon(mediaRoute2Info.packageName)`.
However, this may not work on the receiver device if the receiver
doesn't have the app installed.

The API will allow the caller to provide the app icon and name directly
so that we can ensure the chip on the receiver device is displaying the
necessary app information.

Bug: 216318437
Bug: 217418566
Test: atest MediaTttChipControllerReceiverTest
Test: CTS tests updated in different CL in same topic
Change-Id: Ib5150355a08ae389b218500b235b4bd9c686f919
parent 2e21b11a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -911,7 +911,7 @@ package android.app {
    method @RequiresPermission(android.Manifest.permission.STATUS_BAR) public int getNavBarModeOverride();
    method @RequiresPermission(android.Manifest.permission.STATUS_BAR) public void setDisabledForSetup(boolean);
    method @RequiresPermission(android.Manifest.permission.STATUS_BAR) public void setNavBarModeOverride(int);
    method @RequiresPermission(android.Manifest.permission.MEDIA_CONTENT_CONTROL) public void updateMediaTapToTransferReceiverDisplay(int, @NonNull android.media.MediaRoute2Info);
    method @RequiresPermission(android.Manifest.permission.MEDIA_CONTENT_CONTROL) public void updateMediaTapToTransferReceiverDisplay(int, @NonNull android.media.MediaRoute2Info, @Nullable android.graphics.drawable.Icon, @Nullable CharSequence);
    method @RequiresPermission(android.Manifest.permission.MEDIA_CONTENT_CONTROL) public void updateMediaTapToTransferSenderDisplay(int, @NonNull android.media.MediaRoute2Info, @Nullable java.util.concurrent.Executor, @Nullable Runnable);
    field public static final int MEDIA_TRANSFER_RECEIVER_STATE_CLOSE_TO_SENDER = 0; // 0x0
    field public static final int MEDIA_TRANSFER_RECEIVER_STATE_FAR_FROM_SENDER = 1; // 0x1
+6 −2
Original line number Diff line number Diff line
@@ -1012,6 +1012,8 @@ public class StatusBarManager {
     *
     * @param displayState the new state for media tap-to-transfer.
     * @param routeInfo the media route information for the media being transferred.
     * @param appIcon the icon of the app playing the media.
     * @param appName the name of the app playing the media.
     *
     * @hide
     */
@@ -1019,11 +1021,13 @@ public class StatusBarManager {
    @RequiresPermission(Manifest.permission.MEDIA_CONTENT_CONTROL)
    public void updateMediaTapToTransferReceiverDisplay(
            @MediaTransferReceiverState int displayState,
            @NonNull MediaRoute2Info routeInfo) {
            @NonNull MediaRoute2Info routeInfo,
            @Nullable Icon appIcon,
            @Nullable CharSequence appName) {
        Objects.requireNonNull(routeInfo);
        IStatusBarService svc = getService();
        try {
            svc.updateMediaTapToTransferReceiverDisplay(displayState, routeInfo);
            svc.updateMediaTapToTransferReceiverDisplay(displayState, routeInfo, appIcon, appName);
        } catch (RemoteException e) {
            e.rethrowFromSystemServer();
        }
+3 −1
Original line number Diff line number Diff line
@@ -308,5 +308,7 @@ oneway interface IStatusBar
    /** Notifies System UI about an update to the media tap-to-transfer receiver state. */
    void updateMediaTapToTransferReceiverDisplay(
        int displayState,
        in MediaRoute2Info routeInfo);
        in MediaRoute2Info routeInfo,
        in Icon appIcon,
        in CharSequence appName);
}
+3 −1
Original line number Diff line number Diff line
@@ -208,5 +208,7 @@ interface IStatusBarService
    /** Notifies System UI about an update to the media tap-to-transfer receiver state. */
    void updateMediaTapToTransferReceiverDisplay(
        int displayState,
        in MediaRoute2Info routeInfo);
        in MediaRoute2Info routeInfo,
        in Icon appIcon,
        in CharSequence appName);
}
+5 −2
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.systemui.media.dagger;

import android.app.Service;
import android.content.Context;
import android.os.Handler;
import android.view.WindowManager;

import com.android.systemui.dagger.SysUISingleton;
@@ -117,12 +118,14 @@ public interface MediaModule {
            MediaTttFlags mediaTttFlags,
            CommandQueue commandQueue,
            Context context,
            WindowManager windowManager) {
            WindowManager windowManager,
            @Main Handler mainHandler) {
        if (!mediaTttFlags.isMediaTttEnabled()) {
            return Optional.empty();
        }
        return Optional.of(
                new MediaTttChipControllerReceiver(commandQueue, context, windowManager));
                new MediaTttChipControllerReceiver(
                        commandQueue, context, windowManager, mainHandler));
    }

    /** */
Loading