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

Commit f9b72c1f authored by Miguel Aranda's avatar Miguel Aranda Committed by Android (Google) Code Review
Browse files

Merge "Revert "Use compat framework to gate session actions"" into tm-dev

parents 0f77c42f da972b8c
Loading
Loading
Loading
Loading
+0 −39
Original line number Original line Diff line number Diff line
@@ -24,9 +24,6 @@ import android.annotation.RequiresPermission;
import android.annotation.SystemApi;
import android.annotation.SystemApi;
import android.annotation.SystemService;
import android.annotation.SystemService;
import android.annotation.TestApi;
import android.annotation.TestApi;
import android.app.compat.CompatChanges;
import android.compat.annotation.ChangeId;
import android.compat.annotation.EnabledSince;
import android.compat.annotation.UnsupportedAppUsage;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.ComponentName;
import android.content.ComponentName;
import android.content.Context;
import android.content.Context;
@@ -42,7 +39,6 @@ import android.os.Bundle;
import android.os.IBinder;
import android.os.IBinder;
import android.os.RemoteException;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.ServiceManager;
import android.os.UserHandle;
import android.util.Pair;
import android.util.Pair;
import android.util.Slog;
import android.util.Slog;
import android.view.View;
import android.view.View;
@@ -524,27 +520,6 @@ public class StatusBarManager {
    private final Map<NearbyMediaDevicesProvider, NearbyMediaDevicesProviderWrapper>
    private final Map<NearbyMediaDevicesProvider, NearbyMediaDevicesProviderWrapper>
            nearbyMediaDevicesProviderMap = new HashMap<>();
            nearbyMediaDevicesProviderMap = new HashMap<>();


    /**
     * Media controls based on {@link android.app.Notification.MediaStyle} notifications will have
     * actions based on the media session's {@link android.media.session.PlaybackState}, rather than
     * the notification's actions.
     *
     * These actions will be:
     * - Play/Pause (depending on whether the current state is a playing state)
     * - Previous (if declared), or a custom action if the slot is not reserved with
     *   {@code SESSION_EXTRAS_KEY_SLOT_RESERVATION_SKIP_TO_PREV}
     * - Next (if declared), or a custom action if the slot is not reserved with
     *   {@code SESSION_EXTRAS_KEY_SLOT_RESERVATION_SKIP_TO_NEXT}
     * - Custom action
     * - Custom action
     *
     * @see androidx.media.utils.MediaConstants#SESSION_EXTRAS_KEY_SLOT_RESERVATION_SKIP_TO_PREV
     * @see androidx.media.utils.MediaConstants#SESSION_EXTRAS_KEY_SLOT_RESERVATION_SKIP_TO_NEXT
     */
    @ChangeId
    @EnabledSince(targetSdkVersion = Build.VERSION_CODES.TIRAMISU)
    private static final long MEDIA_CONTROL_SESSION_ACTIONS = 203800354L;

    @UnsupportedAppUsage
    @UnsupportedAppUsage
    private Context mContext;
    private Context mContext;
    private IStatusBarService mService;
    private IStatusBarService mService;
@@ -1152,20 +1127,6 @@ public class StatusBarManager {
        }
        }
    }
    }


    /**
     * Checks whether the given package should use session-based actions for its media controls.
     *
     * @param packageName App posting media controls
     * @param userId Current user ID
     * @return true if the app supports session actions
     *
     * @hide
     */
    public static boolean useMediaSessionActionsForApp(String packageName, int userId) {
        UserHandle handle = UserHandle.getUserHandleForUid(userId);
        return CompatChanges.isChangeEnabled(MEDIA_CONTROL_SESSION_ACTIONS, packageName, handle);
    }

    /** @hide */
    /** @hide */
    public static String windowStateToString(int state) {
    public static String windowStateToString(int state) {
        if (state == WINDOW_STATE_HIDING) return "WINDOW_STATE_HIDING";
        if (state == WINDOW_STATE_HIDING) return "WINDOW_STATE_HIDING";
+0 −3
Original line number Original line Diff line number Diff line
@@ -76,8 +76,5 @@
        <permission name="android.permission.FORCE_STOP_PACKAGES" />
        <permission name="android.permission.FORCE_STOP_PACKAGES" />
        <permission name="android.permission.ACCESS_FPS_COUNTER" />
        <permission name="android.permission.ACCESS_FPS_COUNTER" />
        <permission name="android.permission.CHANGE_CONFIGURATION" />
        <permission name="android.permission.CHANGE_CONFIGURATION" />
        <permission name="android.permission.LOG_COMPAT_CHANGE" />
        <permission name="android.permission.READ_COMPAT_CHANGE_CONFIG" />
        <permission name="android.permission.READ_DEVICE_CONFIG" />
    </privapp-permissions>
    </privapp-permissions>
</permissions>
</permissions>
+0 −5
Original line number Original line Diff line number Diff line
@@ -314,11 +314,6 @@
    <!-- To change system captions state -->
    <!-- To change system captions state -->
    <uses-permission android:name="android.permission.SET_SYSTEM_AUDIO_CAPTION" />
    <uses-permission android:name="android.permission.SET_SYSTEM_AUDIO_CAPTION" />


    <!-- Compat framework -->
    <uses-permission android:name="android.permission.LOG_COMPAT_CHANGE" />
    <uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG" />
    <uses-permission android:name="android.permission.READ_DEVICE_CONFIG" />

    <protected-broadcast android:name="com.android.settingslib.action.REGISTER_SLICE_RECEIVER" />
    <protected-broadcast android:name="com.android.settingslib.action.REGISTER_SLICE_RECEIVER" />
    <protected-broadcast android:name="com.android.settingslib.action.UNREGISTER_SLICE_RECEIVER" />
    <protected-broadcast android:name="com.android.settingslib.action.UNREGISTER_SLICE_RECEIVER" />
    <protected-broadcast android:name="com.android.settings.flashlight.action.FLASHLIGHT_CHANGED" />
    <protected-broadcast android:name="com.android.settings.flashlight.action.FLASHLIGHT_CHANGED" />
+1 −1
Original line number Original line Diff line number Diff line
@@ -145,7 +145,7 @@ public class Flags {
    /***************************************/
    /***************************************/
    // 900 - media
    // 900 - media
    public static final BooleanFlag MEDIA_TAP_TO_TRANSFER = new BooleanFlag(900, true);
    public static final BooleanFlag MEDIA_TAP_TO_TRANSFER = new BooleanFlag(900, true);
    public static final BooleanFlag MEDIA_SESSION_ACTIONS = new BooleanFlag(901, false);
    public static final BooleanFlag MEDIA_SESSION_ACTIONS = new BooleanFlag(901, true);
    public static final BooleanFlag MEDIA_SESSION_LAYOUT = new BooleanFlag(902, true);
    public static final BooleanFlag MEDIA_SESSION_LAYOUT = new BooleanFlag(902, true);
    public static final BooleanFlag MEDIA_NEARBY_DEVICES = new BooleanFlag(903, true);
    public static final BooleanFlag MEDIA_NEARBY_DEVICES = new BooleanFlag(903, true);
    public static final BooleanFlag MEDIA_MUTE_AWAIT = new BooleanFlag(904, true);
    public static final BooleanFlag MEDIA_MUTE_AWAIT = new BooleanFlag(904, true);
+6 −3
Original line number Original line Diff line number Diff line
@@ -137,6 +137,7 @@ public class MediaControlPanel {
    private MediaCarouselController mMediaCarouselController;
    private MediaCarouselController mMediaCarouselController;
    private final MediaOutputDialogFactory mMediaOutputDialogFactory;
    private final MediaOutputDialogFactory mMediaOutputDialogFactory;
    private final FalsingManager mFalsingManager;
    private final FalsingManager mFalsingManager;
    private final MediaFlags mMediaFlags;


    // Used for swipe-to-dismiss logging.
    // Used for swipe-to-dismiss logging.
    protected boolean mIsImpressed = false;
    protected boolean mIsImpressed = false;
@@ -155,7 +156,7 @@ public class MediaControlPanel {
            Lazy<MediaDataManager> lazyMediaDataManager,
            Lazy<MediaDataManager> lazyMediaDataManager,
            MediaOutputDialogFactory mediaOutputDialogFactory,
            MediaOutputDialogFactory mediaOutputDialogFactory,
            MediaCarouselController mediaCarouselController,
            MediaCarouselController mediaCarouselController,
            FalsingManager falsingManager, SystemClock systemClock) {
            FalsingManager falsingManager, MediaFlags mediaFlags, SystemClock systemClock) {
        mContext = context;
        mContext = context;
        mBackgroundExecutor = backgroundExecutor;
        mBackgroundExecutor = backgroundExecutor;
        mActivityStarter = activityStarter;
        mActivityStarter = activityStarter;
@@ -166,6 +167,7 @@ public class MediaControlPanel {
        mMediaOutputDialogFactory = mediaOutputDialogFactory;
        mMediaOutputDialogFactory = mediaOutputDialogFactory;
        mMediaCarouselController = mediaCarouselController;
        mMediaCarouselController = mediaCarouselController;
        mFalsingManager = falsingManager;
        mFalsingManager = falsingManager;
        mMediaFlags = mediaFlags;
        mSystemClock = systemClock;
        mSystemClock = systemClock;
        loadDimens();
        loadDimens();


@@ -504,8 +506,9 @@ public class MediaControlPanel {
        List<MediaAction> actionIcons = data.getActions();
        List<MediaAction> actionIcons = data.getActions();
        List<Integer> actionsWhenCollapsed = data.getActionsToShowInCompact();
        List<Integer> actionsWhenCollapsed = data.getActionsToShowInCompact();


        // If we got session actions, use those instead
        // If the session actions flag is enabled, but we're still using the regular layout, use
        if (data.getSemanticActions() != null) {
        // the session actions anyways
        if (mMediaFlags.areMediaSessionActionsEnabled() && data.getSemanticActions() != null) {
            MediaButton semanticActions = data.getSemanticActions();
            MediaButton semanticActions = data.getSemanticActions();


            actionIcons = new ArrayList<MediaAction>();
            actionIcons = new ArrayList<MediaAction>();
Loading