[Audiosharing] Implement add source by qrcode scan
Bug: 305620450 Test: manual Change-Id: If09522b515649621000208285340736abba04b4d
This commit is contained in:
@@ -16,15 +16,25 @@
|
||||
|
||||
package com.android.settings.connecteddevice.audiosharing.audiostreams;
|
||||
|
||||
import static com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsScanQrCodeController.REQUEST_SCAN_BT_BROADCAST_QR_CODE;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.bluetooth.BluetoothLeBroadcastMetadata;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.connecteddevice.audiosharing.audiostreams.qrcode.QrCodeScanModeFragment;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
import com.android.settingslib.bluetooth.BluetoothLeBroadcastMetadataExt;
|
||||
import com.android.settingslib.bluetooth.BluetoothUtils;
|
||||
|
||||
public class AudioStreamsDashboardFragment extends DashboardFragment {
|
||||
private static final String TAG = "AudioStreamsDashboardFrag";
|
||||
private static final boolean DEBUG = BluetoothUtils.D;
|
||||
private AudioStreamsScanQrCodeController mAudioStreamsScanQrCodeController;
|
||||
|
||||
public AudioStreamsDashboardFragment() {
|
||||
super();
|
||||
@@ -59,7 +69,8 @@ public class AudioStreamsDashboardFragment extends DashboardFragment {
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
super.onAttach(context);
|
||||
use(AudioStreamsScanQrCodeController.class).setFragment(this);
|
||||
mAudioStreamsScanQrCodeController = use(AudioStreamsScanQrCodeController.class);
|
||||
mAudioStreamsScanQrCodeController.setFragment(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -70,6 +81,34 @@ public class AudioStreamsDashboardFragment extends DashboardFragment {
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
// TODO(chelseahao): implementation.
|
||||
if (DEBUG) {
|
||||
Log.d(
|
||||
TAG,
|
||||
"onActivityResult() requestCode : "
|
||||
+ requestCode
|
||||
+ " resultCode : "
|
||||
+ resultCode);
|
||||
}
|
||||
if (requestCode == REQUEST_SCAN_BT_BROADCAST_QR_CODE) {
|
||||
if (resultCode == Activity.RESULT_OK) {
|
||||
String broadcastMetadata =
|
||||
data.getStringExtra(QrCodeScanModeFragment.KEY_BROADCAST_METADATA);
|
||||
BluetoothLeBroadcastMetadata source =
|
||||
BluetoothLeBroadcastMetadataExt.INSTANCE.convertToBroadcastMetadata(
|
||||
broadcastMetadata);
|
||||
if (source == null) {
|
||||
Log.w(TAG, "onActivityResult() source is null!");
|
||||
return;
|
||||
}
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "onActivityResult() broadcastId : " + source.getBroadcastId());
|
||||
}
|
||||
if (mAudioStreamsScanQrCodeController == null) {
|
||||
Log.w(TAG, "onActivityResult() AudioStreamsScanQrCodeController is null!");
|
||||
return;
|
||||
}
|
||||
mAudioStreamsScanQrCodeController.addSource(source);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.settings.connecteddevice.audiosharing.audiostreams;
|
||||
|
||||
import android.bluetooth.BluetoothLeBroadcastMetadata;
|
||||
import android.bluetooth.BluetoothProfile;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
@@ -41,10 +42,10 @@ import com.android.settingslib.utils.ThreadUtils;
|
||||
|
||||
public class AudioStreamsScanQrCodeController extends BasePreferenceController
|
||||
implements DefaultLifecycleObserver {
|
||||
static final int REQUEST_SCAN_BT_BROADCAST_QR_CODE = 0;
|
||||
private static final String TAG = "AudioStreamsProgressCategoryController";
|
||||
private static final boolean DEBUG = BluetoothUtils.D;
|
||||
private static final String KEY = "audio_streams_scan_qr_code";
|
||||
private static final int REQUEST_SCAN_BT_BROADCAST_QR_CODE = 0;
|
||||
private final BluetoothCallback mBluetoothCallback =
|
||||
new BluetoothCallback() {
|
||||
@Override
|
||||
@@ -57,12 +58,14 @@ public class AudioStreamsScanQrCodeController extends BasePreferenceController
|
||||
};
|
||||
|
||||
private final LocalBluetoothManager mLocalBtManager;
|
||||
private final AudioStreamsHelper mAudioStreamsHelper;
|
||||
private AudioStreamsDashboardFragment mFragment;
|
||||
private Preference mPreference;
|
||||
|
||||
public AudioStreamsScanQrCodeController(Context context, String preferenceKey) {
|
||||
super(context, preferenceKey);
|
||||
mLocalBtManager = Utils.getLocalBtManager(mContext);
|
||||
mAudioStreamsHelper = new AudioStreamsHelper(mLocalBtManager);
|
||||
}
|
||||
|
||||
public void setFragment(AudioStreamsDashboardFragment fragment) {
|
||||
@@ -121,6 +124,10 @@ public class AudioStreamsScanQrCodeController extends BasePreferenceController
|
||||
});
|
||||
}
|
||||
|
||||
void addSource(BluetoothLeBroadcastMetadata source) {
|
||||
mAudioStreamsHelper.addSource(source);
|
||||
}
|
||||
|
||||
private void updateVisibility() {
|
||||
ThreadUtils.postOnBackgroundThread(
|
||||
() -> {
|
||||
|
||||
Reference in New Issue
Block a user