Loading core/java/android/app/StatusBarManager.java +0 −39 Original line number Original line Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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"; Loading data/etc/com.android.systemui.xml +0 −3 Original line number Original line Diff line number Diff line Loading @@ -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> packages/SystemUI/AndroidManifest.xml +0 −5 Original line number Original line Diff line number Diff line Loading @@ -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" /> Loading packages/SystemUI/src/com/android/systemui/flags/Flags.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -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); Loading packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java +6 −3 Original line number Original line Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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(); Loading Loading @@ -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 Loading
core/java/android/app/StatusBarManager.java +0 −39 Original line number Original line Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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"; Loading
data/etc/com.android.systemui.xml +0 −3 Original line number Original line Diff line number Diff line Loading @@ -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>
packages/SystemUI/AndroidManifest.xml +0 −5 Original line number Original line Diff line number Diff line Loading @@ -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" /> Loading
packages/SystemUI/src/com/android/systemui/flags/Flags.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -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); Loading
packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java +6 −3 Original line number Original line Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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(); Loading Loading @@ -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