Merge "Use Singleton LocalBluetoothManager in SystemUI" into rvc-dev

This commit is contained in:
Fabian Kozynski
2020-03-13 22:47:17 +00:00
committed by Android (Google) Code Review
5 changed files with 25 additions and 11 deletions

View File

@@ -108,14 +108,12 @@ public class LocalMediaManager implements BluetoothCallback {
new InfoMediaManager(context, packageName, notification, mLocalBluetoothManager);
}
@VisibleForTesting
LocalMediaManager(Context context, LocalBluetoothManager localBluetoothManager,
public LocalMediaManager(Context context, LocalBluetoothManager localBluetoothManager,
InfoMediaManager infoMediaManager, String packageName) {
mContext = context;
mLocalBluetoothManager = localBluetoothManager;
mInfoMediaManager = infoMediaManager;
mPackageName = packageName;
}
/**

View File

@@ -44,6 +44,8 @@ import android.widget.LinearLayout;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
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;
@@ -98,6 +100,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
private final LinearLayout mMediaCarousel;
private final ArrayList<QSMediaPlayer> mMediaPlayers = new ArrayList<>();
private final NotificationMediaManager mNotificationMediaManager;
private final LocalBluetoothManager mLocalBluetoothManager;
private final Executor mBackgroundExecutor;
private LocalMediaManager mLocalMediaManager;
private MediaDevice mDevice;
@@ -157,7 +160,8 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
BroadcastDispatcher broadcastDispatcher,
QSLogger qsLogger,
NotificationMediaManager notificationMediaManager,
@Background Executor backgroundExecutor
@Background Executor backgroundExecutor,
@Nullable LocalBluetoothManager localBluetoothManager
) {
super(context, attrs);
mContext = context;
@@ -165,6 +169,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
mDumpManager = dumpManager;
mNotificationMediaManager = notificationMediaManager;
mBackgroundExecutor = backgroundExecutor;
mLocalBluetoothManager = localBluetoothManager;
setOrientation(VERTICAL);
@@ -286,7 +291,9 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
// Set up listener for device changes
// TODO: integrate with MediaTransferManager?
mLocalMediaManager = new LocalMediaManager(mContext, null, null);
InfoMediaManager imm =
new InfoMediaManager(mContext, null, null, mLocalBluetoothManager);
mLocalMediaManager = new LocalMediaManager(mContext, mLocalBluetoothManager, imm, null);
mLocalMediaManager.startScan();
mDevice = mLocalMediaManager.getCurrentConnectedDevice();
mLocalMediaManager.registerCallback(mDeviceCallback);

View File

@@ -18,6 +18,7 @@ package com.android.systemui.qs;
import static com.android.systemui.util.InjectionInflationController.VIEW_CONTEXT;
import android.annotation.Nullable;
import android.content.Context;
import android.content.res.Configuration;
import android.graphics.Rect;
@@ -26,6 +27,7 @@ import android.view.Gravity;
import android.view.View;
import android.widget.LinearLayout;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.systemui.Dependency;
import com.android.systemui.R;
import com.android.systemui.broadcast.BroadcastDispatcher;
@@ -77,10 +79,11 @@ public class QuickQSPanel extends QSPanel {
BroadcastDispatcher broadcastDispatcher,
QSLogger qsLogger,
NotificationMediaManager notificationMediaManager,
@Background Executor backgroundExecutor
@Background Executor backgroundExecutor,
@Nullable LocalBluetoothManager localBluetoothManager
) {
super(context, attrs, dumpManager, broadcastDispatcher, qsLogger, notificationMediaManager,
backgroundExecutor);
backgroundExecutor, localBluetoothManager);
if (mFooter != null) {
removeView(mFooter.getView());
}
@@ -155,8 +158,6 @@ public class QuickQSPanel extends QSPanel {
Dependency.get(TunerService.class).removeTunable(mNumTiles);
}
@Override
protected String getDumpableTag() {
return TAG;

View File

@@ -32,6 +32,8 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
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.settingslib.media.MediaOutputSliceConstants;
@@ -106,7 +108,9 @@ public class MediaTransferManager {
public MediaTransferManager(Context context) {
mContext = context;
mActivityStarter = Dependency.get(ActivityStarter.class);
mLocalMediaManager = new LocalMediaManager(mContext, null, null);
LocalBluetoothManager lbm = Dependency.get(LocalBluetoothManager.class);
InfoMediaManager imm = new InfoMediaManager(mContext, null, null, lbm);
mLocalMediaManager = new LocalMediaManager(mContext, lbm, imm, null);
}
/**

View File

@@ -35,6 +35,7 @@ import androidx.test.filters.SmallTest;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.dump.DumpManager;
@@ -85,6 +86,8 @@ public class QSPanelTest extends SysuiTestCase {
private NotificationMediaManager mNotificationMediaManager;
@Mock
private Executor mBackgroundExecutor;
@Mock
private LocalBluetoothManager mLocalBluetoothManager;
@Before
public void setup() throws Exception {
@@ -94,7 +97,8 @@ public class QSPanelTest extends SysuiTestCase {
mTestableLooper.runWithLooper(() -> {
mMetricsLogger = mDependency.injectMockDependency(MetricsLogger.class);
mQsPanel = new QSPanel(mContext, null, mDumpManager, mBroadcastDispatcher,
mQSLogger, mNotificationMediaManager, mBackgroundExecutor);
mQSLogger, mNotificationMediaManager, mBackgroundExecutor,
mLocalBluetoothManager);
// Provides a parent with non-zero size for QSPanel
mParentView = new FrameLayout(mContext);
mParentView.addView(mQsPanel);