[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;
|
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.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.connecteddevice.audiosharing.audiostreams.qrcode.QrCodeScanModeFragment;
|
||||||
import com.android.settings.dashboard.DashboardFragment;
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
|
import com.android.settingslib.bluetooth.BluetoothLeBroadcastMetadataExt;
|
||||||
|
import com.android.settingslib.bluetooth.BluetoothUtils;
|
||||||
|
|
||||||
public class AudioStreamsDashboardFragment extends DashboardFragment {
|
public class AudioStreamsDashboardFragment extends DashboardFragment {
|
||||||
private static final String TAG = "AudioStreamsDashboardFrag";
|
private static final String TAG = "AudioStreamsDashboardFrag";
|
||||||
|
private static final boolean DEBUG = BluetoothUtils.D;
|
||||||
|
private AudioStreamsScanQrCodeController mAudioStreamsScanQrCodeController;
|
||||||
|
|
||||||
public AudioStreamsDashboardFragment() {
|
public AudioStreamsDashboardFragment() {
|
||||||
super();
|
super();
|
||||||
@@ -59,7 +69,8 @@ public class AudioStreamsDashboardFragment extends DashboardFragment {
|
|||||||
@Override
|
@Override
|
||||||
public void onAttach(Context context) {
|
public void onAttach(Context context) {
|
||||||
super.onAttach(context);
|
super.onAttach(context);
|
||||||
use(AudioStreamsScanQrCodeController.class).setFragment(this);
|
mAudioStreamsScanQrCodeController = use(AudioStreamsScanQrCodeController.class);
|
||||||
|
mAudioStreamsScanQrCodeController.setFragment(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -70,6 +81,34 @@ public class AudioStreamsDashboardFragment extends DashboardFragment {
|
|||||||
@Override
|
@Override
|
||||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
super.onActivityResult(requestCode, resultCode, 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;
|
package com.android.settings.connecteddevice.audiosharing.audiostreams;
|
||||||
|
|
||||||
|
import android.bluetooth.BluetoothLeBroadcastMetadata;
|
||||||
import android.bluetooth.BluetoothProfile;
|
import android.bluetooth.BluetoothProfile;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@@ -41,10 +42,10 @@ import com.android.settingslib.utils.ThreadUtils;
|
|||||||
|
|
||||||
public class AudioStreamsScanQrCodeController extends BasePreferenceController
|
public class AudioStreamsScanQrCodeController extends BasePreferenceController
|
||||||
implements DefaultLifecycleObserver {
|
implements DefaultLifecycleObserver {
|
||||||
|
static final int REQUEST_SCAN_BT_BROADCAST_QR_CODE = 0;
|
||||||
private static final String TAG = "AudioStreamsProgressCategoryController";
|
private static final String TAG = "AudioStreamsProgressCategoryController";
|
||||||
private static final boolean DEBUG = BluetoothUtils.D;
|
private static final boolean DEBUG = BluetoothUtils.D;
|
||||||
private static final String KEY = "audio_streams_scan_qr_code";
|
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 =
|
private final BluetoothCallback mBluetoothCallback =
|
||||||
new BluetoothCallback() {
|
new BluetoothCallback() {
|
||||||
@Override
|
@Override
|
||||||
@@ -57,12 +58,14 @@ public class AudioStreamsScanQrCodeController extends BasePreferenceController
|
|||||||
};
|
};
|
||||||
|
|
||||||
private final LocalBluetoothManager mLocalBtManager;
|
private final LocalBluetoothManager mLocalBtManager;
|
||||||
|
private final AudioStreamsHelper mAudioStreamsHelper;
|
||||||
private AudioStreamsDashboardFragment mFragment;
|
private AudioStreamsDashboardFragment mFragment;
|
||||||
private Preference mPreference;
|
private Preference mPreference;
|
||||||
|
|
||||||
public AudioStreamsScanQrCodeController(Context context, String preferenceKey) {
|
public AudioStreamsScanQrCodeController(Context context, String preferenceKey) {
|
||||||
super(context, preferenceKey);
|
super(context, preferenceKey);
|
||||||
mLocalBtManager = Utils.getLocalBtManager(mContext);
|
mLocalBtManager = Utils.getLocalBtManager(mContext);
|
||||||
|
mAudioStreamsHelper = new AudioStreamsHelper(mLocalBtManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setFragment(AudioStreamsDashboardFragment fragment) {
|
public void setFragment(AudioStreamsDashboardFragment fragment) {
|
||||||
@@ -121,6 +124,10 @@ public class AudioStreamsScanQrCodeController extends BasePreferenceController
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void addSource(BluetoothLeBroadcastMetadata source) {
|
||||||
|
mAudioStreamsHelper.addSource(source);
|
||||||
|
}
|
||||||
|
|
||||||
private void updateVisibility() {
|
private void updateVisibility() {
|
||||||
ThreadUtils.postOnBackgroundThread(
|
ThreadUtils.postOnBackgroundThread(
|
||||||
() -> {
|
() -> {
|
||||||
|
|||||||
Reference in New Issue
Block a user