Loading packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java +44 −6 Original line number Diff line number Diff line Loading @@ -44,9 +44,11 @@ import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import androidx.annotation.Nullable; import androidx.core.graphics.drawable.RoundedBitmapDrawable; import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory; import com.android.settingslib.media.LocalMediaManager; import com.android.settingslib.media.MediaDevice; import com.android.settingslib.media.MediaOutputSliceConstants; import com.android.settingslib.widget.AdaptiveIcon; Loading @@ -66,6 +68,7 @@ import java.util.concurrent.Executor; public class MediaControlPanel { private static final String TAG = "MediaControlPanel"; private final NotificationMediaManager mMediaManager; @Nullable private final LocalMediaManager mLocalMediaManager; private final Executor mForegroundExecutor; private final Executor mBackgroundExecutor; Loading @@ -77,6 +80,7 @@ public class MediaControlPanel { private int mForegroundColor; private int mBackgroundColor; protected ComponentName mRecvComponent; private MediaDevice mDevice; private boolean mIsRegistered = false; private final int[] mActionIds; Loading Loading @@ -121,19 +125,44 @@ public class MediaControlPanel { } }; private final LocalMediaManager.DeviceCallback mDeviceCallback = new LocalMediaManager.DeviceCallback() { @Override public void onDeviceListUpdate(List<MediaDevice> devices) { if (mLocalMediaManager == null) { return; } MediaDevice currentDevice = mLocalMediaManager.getCurrentConnectedDevice(); // Check because this can be called several times while changing devices if (mDevice == null || !mDevice.equals(currentDevice)) { mDevice = currentDevice; updateDevice(mDevice); } } @Override public void onSelectedDeviceStateChanged(MediaDevice device, int state) { if (mDevice == null || !mDevice.equals(device)) { mDevice = device; updateDevice(mDevice); } } }; /** * Initialize a new control panel * @param context * @param parent * @param manager * @param routeManager Manager used to listen for device change events. * @param layoutId layout resource to use for this control panel * @param actionIds resource IDs for action buttons in the layout * @param foregroundExecutor foreground executor * @param backgroundExecutor background executor, used for processing artwork */ public MediaControlPanel(Context context, ViewGroup parent, NotificationMediaManager manager, @LayoutRes int layoutId, int[] actionIds, Executor foregroundExecutor, Executor backgroundExecutor) { @Nullable LocalMediaManager routeManager, @LayoutRes int layoutId, int[] actionIds, Executor foregroundExecutor, Executor backgroundExecutor) { mContext = context; LayoutInflater inflater = LayoutInflater.from(mContext); mMediaNotifView = (LinearLayout) inflater.inflate(layoutId, parent, false); Loading @@ -144,6 +173,7 @@ public class MediaControlPanel { // mStateListener to be unregistered in detach. mMediaNotifView.addOnAttachStateChangeListener(mStateListener); mMediaManager = manager; mLocalMediaManager = routeManager; mActionIds = actionIds; mForegroundExecutor = foregroundExecutor; mBackgroundExecutor = backgroundExecutor; Loading Loading @@ -176,7 +206,7 @@ public class MediaControlPanel { * @param device */ public void setMediaSession(MediaSession.Token token, Icon icon, int iconColor, int bgColor, PendingIntent contentIntent, String appNameString, MediaDevice device) { int bgColor, PendingIntent contentIntent, String appNameString) { mToken = token; mForegroundColor = iconColor; mBackgroundColor = bgColor; Loading Loading @@ -253,9 +283,9 @@ public class MediaControlPanel { // Transfer chip mSeamless = mMediaNotifView.findViewById(R.id.media_seamless); if (mSeamless != null) { if (mSeamless != null && mLocalMediaManager != null) { mSeamless.setVisibility(View.VISIBLE); updateDevice(device); updateDevice(mLocalMediaManager.getCurrentConnectedDevice()); ActivityStarter mActivityStarter = Dependency.get(ActivityStarter.class); mSeamless.setOnClickListener(v -> { final Intent intent = new Intent() Loading Loading @@ -366,7 +396,7 @@ public class MediaControlPanel { * Update the current device information * @param device device information to display */ public void updateDevice(MediaDevice device) { private void updateDevice(MediaDevice device) { if (mSeamless == null) { return; } Loading Loading @@ -456,6 +486,10 @@ public class MediaControlPanel { Assert.isMainThread(); if (!mIsRegistered) { mMediaManager.addCallback(mMediaListener); if (mLocalMediaManager != null) { mLocalMediaManager.registerCallback(mDeviceCallback); mLocalMediaManager.startScan(); } mIsRegistered = true; } } Loading @@ -463,6 +497,10 @@ public class MediaControlPanel { private void makeInactive() { Assert.isMainThread(); if (mIsRegistered) { if (mLocalMediaManager != null) { mLocalMediaManager.stopScan(); mLocalMediaManager.unregisterCallback(mDeviceCallback); } mMediaManager.removeCallback(mMediaListener); mIsRegistered = false; } Loading packages/SystemUI/src/com/android/systemui/qs/QSMediaPlayer.java +7 −6 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ import android.widget.LinearLayout; import android.widget.SeekBar; import android.widget.TextView; import com.android.settingslib.media.MediaDevice; import com.android.settingslib.media.LocalMediaManager; import com.android.systemui.R; import com.android.systemui.media.MediaControlPanel; import com.android.systemui.media.SeekBarObserver; Loading Loading @@ -74,9 +74,10 @@ public class QSMediaPlayer extends MediaControlPanel { * @param backgroundExecutor */ public QSMediaPlayer(Context context, ViewGroup parent, NotificationMediaManager manager, Executor foregroundExecutor, DelayableExecutor backgroundExecutor) { super(context, parent, manager, R.layout.qs_media_panel, QS_ACTION_IDS, foregroundExecutor, backgroundExecutor); LocalMediaManager routeManager, Executor foregroundExecutor, DelayableExecutor backgroundExecutor) { super(context, parent, manager, routeManager, R.layout.qs_media_panel, QS_ACTION_IDS, foregroundExecutor, backgroundExecutor); mParent = (QSPanel) parent; mBackgroundExecutor = backgroundExecutor; mSeekBarViewModel = new SeekBarViewModel(backgroundExecutor); Loading @@ -101,12 +102,12 @@ public class QSMediaPlayer extends MediaControlPanel { * @param device current playback device */ public void setMediaSession(MediaSession.Token token, Icon icon, int iconColor, int bgColor, View actionsContainer, Notification notif, MediaDevice device) { int bgColor, View actionsContainer, Notification notif) { String appName = Notification.Builder.recoverBuilder(getContext(), notif) .loadHeaderAppName(); super.setMediaSession(token, icon, iconColor, bgColor, notif.contentIntent, appName, device); appName); // Media controls LinearLayout parentActionsLayout = (LinearLayout) actionsContainer; Loading packages/SystemUI/src/com/android/systemui/qs/QSPanel.java +9 −56 Original line number Diff line number Diff line Loading @@ -47,7 +47,6 @@ import com.android.settingslib.Utils; import com.android.settingslib.bluetooth.LocalBluetoothManager; import com.android.settingslib.media.InfoMediaManager; import com.android.settingslib.media.LocalMediaManager; import com.android.settingslib.media.MediaDevice; import com.android.systemui.Dependency; import com.android.systemui.Dumpable; import com.android.systemui.R; Loading Loading @@ -75,7 +74,6 @@ import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.concurrent.Executor; import java.util.stream.Collectors; Loading Loading @@ -105,8 +103,6 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne private final LocalBluetoothManager mLocalBluetoothManager; private final Executor mForegroundExecutor; private final DelayableExecutor mBackgroundExecutor; private LocalMediaManager mLocalMediaManager; private MediaDevice mDevice; private boolean mUpdateCarousel = false; protected boolean mExpanded; Loading @@ -130,34 +126,6 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne private BrightnessMirrorController mBrightnessMirrorController; private View mDivider; private final LocalMediaManager.DeviceCallback mDeviceCallback = new LocalMediaManager.DeviceCallback() { @Override public void onDeviceListUpdate(List<MediaDevice> devices) { if (mLocalMediaManager == null) { return; } MediaDevice currentDevice = mLocalMediaManager.getCurrentConnectedDevice(); // Check because this can be called several times while changing devices if (mDevice == null || !mDevice.equals(currentDevice)) { mDevice = currentDevice; for (QSMediaPlayer p : mMediaPlayers) { p.updateDevice(mDevice); } } } @Override public void onSelectedDeviceStateChanged(MediaDevice device, int state) { if (mDevice == null || !mDevice.equals(device)) { mDevice = device; for (QSMediaPlayer p : mMediaPlayers) { p.updateDevice(mDevice); } } } }; @Inject public QSPanel( @Named(VIEW_CONTEXT) Context context, Loading Loading @@ -277,7 +245,14 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne if (player == null) { Log.d(TAG, "creating new player"); player = new QSMediaPlayer(mContext, this, mNotificationMediaManager, // Set up listener for device changes // TODO: integrate with MediaTransferManager? InfoMediaManager imm = new InfoMediaManager(mContext, notif.getPackageName(), notif.getNotification(), mLocalBluetoothManager); LocalMediaManager routeManager = new LocalMediaManager(mContext, mLocalBluetoothManager, imm, notif.getPackageName()); player = new QSMediaPlayer(mContext, this, mNotificationMediaManager, routeManager, mForegroundExecutor, mBackgroundExecutor); player.setListening(mListening); if (player.isPlaying()) { Loading @@ -292,22 +267,10 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne Log.d(TAG, "setting player session"); player.setMediaSession(token, icon, iconColor, bgColor, actionsContainer, notif.getNotification(), mDevice); notif.getNotification()); if (mMediaPlayers.size() > 0) { ((View) mMediaCarousel.getParent()).setVisibility(View.VISIBLE); if (mLocalMediaManager == null) { // Set up listener for device changes // TODO: integrate with MediaTransferManager? InfoMediaManager imm = new InfoMediaManager(mContext, null, null, mLocalBluetoothManager); mLocalMediaManager = new LocalMediaManager(mContext, mLocalBluetoothManager, imm, null); mLocalMediaManager.startScan(); mDevice = mLocalMediaManager.getCurrentConnectedDevice(); mLocalMediaManager.registerCallback(mDeviceCallback); } } } Loading @@ -330,11 +293,6 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne mMediaCarousel.removeView(player.getView()); if (mMediaPlayers.size() == 0) { ((View) mMediaCarousel.getParent()).setVisibility(View.GONE); if (mLocalMediaManager != null) { mLocalMediaManager.stopScan(); mLocalMediaManager.unregisterCallback(mDeviceCallback); mLocalMediaManager = null; } } return true; } Loading Loading @@ -404,11 +362,6 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne mBrightnessMirrorController.removeCallback(this); } mDumpManager.unregisterDumpable(getDumpableTag()); if (mLocalMediaManager != null) { mLocalMediaManager.stopScan(); mLocalMediaManager.unregisterCallback(mDeviceCallback); mLocalMediaManager = null; } super.onDetachedFromWindow(); } Loading packages/SystemUI/src/com/android/systemui/qs/QuickQSMediaPlayer.java +2 −2 Original line number Diff line number Diff line Loading @@ -53,7 +53,7 @@ public class QuickQSMediaPlayer extends MediaControlPanel { */ public QuickQSMediaPlayer(Context context, ViewGroup parent, NotificationMediaManager manager, Executor foregroundExecutor, Executor backgroundExecutor) { super(context, parent, manager, R.layout.qqs_media_panel, QQS_ACTION_IDS, super(context, parent, manager, null, R.layout.qqs_media_panel, QQS_ACTION_IDS, foregroundExecutor, backgroundExecutor); } Loading Loading @@ -84,7 +84,7 @@ public class QuickQSMediaPlayer extends MediaControlPanel { return; } super.setMediaSession(token, icon, iconColor, bgColor, contentIntent, null, null); super.setMediaSession(token, icon, iconColor, bgColor, contentIntent, null); LinearLayout parentActionsLayout = (LinearLayout) actionsContainer; int i = 0; Loading Loading
packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java +44 −6 Original line number Diff line number Diff line Loading @@ -44,9 +44,11 @@ import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import androidx.annotation.Nullable; import androidx.core.graphics.drawable.RoundedBitmapDrawable; import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory; import com.android.settingslib.media.LocalMediaManager; import com.android.settingslib.media.MediaDevice; import com.android.settingslib.media.MediaOutputSliceConstants; import com.android.settingslib.widget.AdaptiveIcon; Loading @@ -66,6 +68,7 @@ import java.util.concurrent.Executor; public class MediaControlPanel { private static final String TAG = "MediaControlPanel"; private final NotificationMediaManager mMediaManager; @Nullable private final LocalMediaManager mLocalMediaManager; private final Executor mForegroundExecutor; private final Executor mBackgroundExecutor; Loading @@ -77,6 +80,7 @@ public class MediaControlPanel { private int mForegroundColor; private int mBackgroundColor; protected ComponentName mRecvComponent; private MediaDevice mDevice; private boolean mIsRegistered = false; private final int[] mActionIds; Loading Loading @@ -121,19 +125,44 @@ public class MediaControlPanel { } }; private final LocalMediaManager.DeviceCallback mDeviceCallback = new LocalMediaManager.DeviceCallback() { @Override public void onDeviceListUpdate(List<MediaDevice> devices) { if (mLocalMediaManager == null) { return; } MediaDevice currentDevice = mLocalMediaManager.getCurrentConnectedDevice(); // Check because this can be called several times while changing devices if (mDevice == null || !mDevice.equals(currentDevice)) { mDevice = currentDevice; updateDevice(mDevice); } } @Override public void onSelectedDeviceStateChanged(MediaDevice device, int state) { if (mDevice == null || !mDevice.equals(device)) { mDevice = device; updateDevice(mDevice); } } }; /** * Initialize a new control panel * @param context * @param parent * @param manager * @param routeManager Manager used to listen for device change events. * @param layoutId layout resource to use for this control panel * @param actionIds resource IDs for action buttons in the layout * @param foregroundExecutor foreground executor * @param backgroundExecutor background executor, used for processing artwork */ public MediaControlPanel(Context context, ViewGroup parent, NotificationMediaManager manager, @LayoutRes int layoutId, int[] actionIds, Executor foregroundExecutor, Executor backgroundExecutor) { @Nullable LocalMediaManager routeManager, @LayoutRes int layoutId, int[] actionIds, Executor foregroundExecutor, Executor backgroundExecutor) { mContext = context; LayoutInflater inflater = LayoutInflater.from(mContext); mMediaNotifView = (LinearLayout) inflater.inflate(layoutId, parent, false); Loading @@ -144,6 +173,7 @@ public class MediaControlPanel { // mStateListener to be unregistered in detach. mMediaNotifView.addOnAttachStateChangeListener(mStateListener); mMediaManager = manager; mLocalMediaManager = routeManager; mActionIds = actionIds; mForegroundExecutor = foregroundExecutor; mBackgroundExecutor = backgroundExecutor; Loading Loading @@ -176,7 +206,7 @@ public class MediaControlPanel { * @param device */ public void setMediaSession(MediaSession.Token token, Icon icon, int iconColor, int bgColor, PendingIntent contentIntent, String appNameString, MediaDevice device) { int bgColor, PendingIntent contentIntent, String appNameString) { mToken = token; mForegroundColor = iconColor; mBackgroundColor = bgColor; Loading Loading @@ -253,9 +283,9 @@ public class MediaControlPanel { // Transfer chip mSeamless = mMediaNotifView.findViewById(R.id.media_seamless); if (mSeamless != null) { if (mSeamless != null && mLocalMediaManager != null) { mSeamless.setVisibility(View.VISIBLE); updateDevice(device); updateDevice(mLocalMediaManager.getCurrentConnectedDevice()); ActivityStarter mActivityStarter = Dependency.get(ActivityStarter.class); mSeamless.setOnClickListener(v -> { final Intent intent = new Intent() Loading Loading @@ -366,7 +396,7 @@ public class MediaControlPanel { * Update the current device information * @param device device information to display */ public void updateDevice(MediaDevice device) { private void updateDevice(MediaDevice device) { if (mSeamless == null) { return; } Loading Loading @@ -456,6 +486,10 @@ public class MediaControlPanel { Assert.isMainThread(); if (!mIsRegistered) { mMediaManager.addCallback(mMediaListener); if (mLocalMediaManager != null) { mLocalMediaManager.registerCallback(mDeviceCallback); mLocalMediaManager.startScan(); } mIsRegistered = true; } } Loading @@ -463,6 +497,10 @@ public class MediaControlPanel { private void makeInactive() { Assert.isMainThread(); if (mIsRegistered) { if (mLocalMediaManager != null) { mLocalMediaManager.stopScan(); mLocalMediaManager.unregisterCallback(mDeviceCallback); } mMediaManager.removeCallback(mMediaListener); mIsRegistered = false; } Loading
packages/SystemUI/src/com/android/systemui/qs/QSMediaPlayer.java +7 −6 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ import android.widget.LinearLayout; import android.widget.SeekBar; import android.widget.TextView; import com.android.settingslib.media.MediaDevice; import com.android.settingslib.media.LocalMediaManager; import com.android.systemui.R; import com.android.systemui.media.MediaControlPanel; import com.android.systemui.media.SeekBarObserver; Loading Loading @@ -74,9 +74,10 @@ public class QSMediaPlayer extends MediaControlPanel { * @param backgroundExecutor */ public QSMediaPlayer(Context context, ViewGroup parent, NotificationMediaManager manager, Executor foregroundExecutor, DelayableExecutor backgroundExecutor) { super(context, parent, manager, R.layout.qs_media_panel, QS_ACTION_IDS, foregroundExecutor, backgroundExecutor); LocalMediaManager routeManager, Executor foregroundExecutor, DelayableExecutor backgroundExecutor) { super(context, parent, manager, routeManager, R.layout.qs_media_panel, QS_ACTION_IDS, foregroundExecutor, backgroundExecutor); mParent = (QSPanel) parent; mBackgroundExecutor = backgroundExecutor; mSeekBarViewModel = new SeekBarViewModel(backgroundExecutor); Loading @@ -101,12 +102,12 @@ public class QSMediaPlayer extends MediaControlPanel { * @param device current playback device */ public void setMediaSession(MediaSession.Token token, Icon icon, int iconColor, int bgColor, View actionsContainer, Notification notif, MediaDevice device) { int bgColor, View actionsContainer, Notification notif) { String appName = Notification.Builder.recoverBuilder(getContext(), notif) .loadHeaderAppName(); super.setMediaSession(token, icon, iconColor, bgColor, notif.contentIntent, appName, device); appName); // Media controls LinearLayout parentActionsLayout = (LinearLayout) actionsContainer; Loading
packages/SystemUI/src/com/android/systemui/qs/QSPanel.java +9 −56 Original line number Diff line number Diff line Loading @@ -47,7 +47,6 @@ import com.android.settingslib.Utils; import com.android.settingslib.bluetooth.LocalBluetoothManager; import com.android.settingslib.media.InfoMediaManager; import com.android.settingslib.media.LocalMediaManager; import com.android.settingslib.media.MediaDevice; import com.android.systemui.Dependency; import com.android.systemui.Dumpable; import com.android.systemui.R; Loading Loading @@ -75,7 +74,6 @@ import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.concurrent.Executor; import java.util.stream.Collectors; Loading Loading @@ -105,8 +103,6 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne private final LocalBluetoothManager mLocalBluetoothManager; private final Executor mForegroundExecutor; private final DelayableExecutor mBackgroundExecutor; private LocalMediaManager mLocalMediaManager; private MediaDevice mDevice; private boolean mUpdateCarousel = false; protected boolean mExpanded; Loading @@ -130,34 +126,6 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne private BrightnessMirrorController mBrightnessMirrorController; private View mDivider; private final LocalMediaManager.DeviceCallback mDeviceCallback = new LocalMediaManager.DeviceCallback() { @Override public void onDeviceListUpdate(List<MediaDevice> devices) { if (mLocalMediaManager == null) { return; } MediaDevice currentDevice = mLocalMediaManager.getCurrentConnectedDevice(); // Check because this can be called several times while changing devices if (mDevice == null || !mDevice.equals(currentDevice)) { mDevice = currentDevice; for (QSMediaPlayer p : mMediaPlayers) { p.updateDevice(mDevice); } } } @Override public void onSelectedDeviceStateChanged(MediaDevice device, int state) { if (mDevice == null || !mDevice.equals(device)) { mDevice = device; for (QSMediaPlayer p : mMediaPlayers) { p.updateDevice(mDevice); } } } }; @Inject public QSPanel( @Named(VIEW_CONTEXT) Context context, Loading Loading @@ -277,7 +245,14 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne if (player == null) { Log.d(TAG, "creating new player"); player = new QSMediaPlayer(mContext, this, mNotificationMediaManager, // Set up listener for device changes // TODO: integrate with MediaTransferManager? InfoMediaManager imm = new InfoMediaManager(mContext, notif.getPackageName(), notif.getNotification(), mLocalBluetoothManager); LocalMediaManager routeManager = new LocalMediaManager(mContext, mLocalBluetoothManager, imm, notif.getPackageName()); player = new QSMediaPlayer(mContext, this, mNotificationMediaManager, routeManager, mForegroundExecutor, mBackgroundExecutor); player.setListening(mListening); if (player.isPlaying()) { Loading @@ -292,22 +267,10 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne Log.d(TAG, "setting player session"); player.setMediaSession(token, icon, iconColor, bgColor, actionsContainer, notif.getNotification(), mDevice); notif.getNotification()); if (mMediaPlayers.size() > 0) { ((View) mMediaCarousel.getParent()).setVisibility(View.VISIBLE); if (mLocalMediaManager == null) { // Set up listener for device changes // TODO: integrate with MediaTransferManager? InfoMediaManager imm = new InfoMediaManager(mContext, null, null, mLocalBluetoothManager); mLocalMediaManager = new LocalMediaManager(mContext, mLocalBluetoothManager, imm, null); mLocalMediaManager.startScan(); mDevice = mLocalMediaManager.getCurrentConnectedDevice(); mLocalMediaManager.registerCallback(mDeviceCallback); } } } Loading @@ -330,11 +293,6 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne mMediaCarousel.removeView(player.getView()); if (mMediaPlayers.size() == 0) { ((View) mMediaCarousel.getParent()).setVisibility(View.GONE); if (mLocalMediaManager != null) { mLocalMediaManager.stopScan(); mLocalMediaManager.unregisterCallback(mDeviceCallback); mLocalMediaManager = null; } } return true; } Loading Loading @@ -404,11 +362,6 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne mBrightnessMirrorController.removeCallback(this); } mDumpManager.unregisterDumpable(getDumpableTag()); if (mLocalMediaManager != null) { mLocalMediaManager.stopScan(); mLocalMediaManager.unregisterCallback(mDeviceCallback); mLocalMediaManager = null; } super.onDetachedFromWindow(); } Loading
packages/SystemUI/src/com/android/systemui/qs/QuickQSMediaPlayer.java +2 −2 Original line number Diff line number Diff line Loading @@ -53,7 +53,7 @@ public class QuickQSMediaPlayer extends MediaControlPanel { */ public QuickQSMediaPlayer(Context context, ViewGroup parent, NotificationMediaManager manager, Executor foregroundExecutor, Executor backgroundExecutor) { super(context, parent, manager, R.layout.qqs_media_panel, QQS_ACTION_IDS, super(context, parent, manager, null, R.layout.qqs_media_panel, QQS_ACTION_IDS, foregroundExecutor, backgroundExecutor); } Loading Loading @@ -84,7 +84,7 @@ public class QuickQSMediaPlayer extends MediaControlPanel { return; } super.setMediaSession(token, icon, iconColor, bgColor, contentIntent, null, null); super.setMediaSession(token, icon, iconColor, bgColor, contentIntent, null); LinearLayout parentActionsLayout = (LinearLayout) actionsContainer; int i = 0; Loading