[Audiosharing] Start creating view after service is connected in confirm dialog activity.

Test: atest
Change-Id: If68621e0782c9639fc196385d0f42052d8f06798
This commit is contained in:
chelseahao
2024-06-05 20:49:40 +08:00
parent 035efe6207
commit 6e5249e5fb
2 changed files with 76 additions and 2 deletions

View File

@@ -283,7 +283,7 @@ public class SettingsActivity extends SettingsBaseActivity
createUiFromIntent(savedState, intent);
}
protected void createUiFromIntent(Bundle savedState, Intent intent) {
protected void createUiFromIntent(@Nullable Bundle savedState, Intent intent) {
long startTime = System.currentTimeMillis();
final FeatureFactory factory = FeatureFactory.getFeatureFactory();

View File

@@ -16,17 +16,91 @@
package com.android.settings.connecteddevice.audiosharing.audiostreams;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import androidx.annotation.Nullable;
import com.android.settings.SettingsActivity;
import com.android.settings.bluetooth.Utils;
import com.android.settings.connecteddevice.audiosharing.AudioSharingUtils;
import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
public class AudioStreamConfirmDialogActivity extends SettingsActivity {
public class AudioStreamConfirmDialogActivity extends SettingsActivity
implements LocalBluetoothProfileManager.ServiceListener {
private static final String TAG = "AudioStreamConfirmDialogActivity";
@Nullable private LocalBluetoothProfileManager mProfileManager;
@Nullable private Bundle mSavedState;
@Nullable private Intent mIntent;
@Override
protected boolean isToolbarEnabled() {
return false;
}
@Override
protected void onCreate(Bundle savedState) {
var localBluetoothManager = Utils.getLocalBluetoothManager(this);
mProfileManager =
localBluetoothManager == null ? null : localBluetoothManager.getProfileManager();
super.onCreate(savedState);
}
@Override
protected void createUiFromIntent(@Nullable Bundle savedState, Intent intent) {
if (AudioSharingUtils.isFeatureEnabled()
&& !AudioSharingUtils.isAudioSharingProfileReady(mProfileManager)) {
Log.d(TAG, "createUiFromIntent() : supported but not ready, skip createUiFromIntent");
mSavedState = savedState;
mIntent = intent;
return;
}
Log.d(
TAG,
"createUiFromIntent() : not supported or already connected, starting"
+ " createUiFromIntent");
super.createUiFromIntent(savedState, intent);
}
@Override
public void onStart() {
if (AudioSharingUtils.isFeatureEnabled()
&& !AudioSharingUtils.isAudioSharingProfileReady(mProfileManager)) {
Log.d(TAG, "onStart() : supported but not ready, listen to service ready");
if (mProfileManager != null) {
mProfileManager.addServiceListener(this);
}
}
super.onStart();
}
@Override
public void onStop() {
if (mProfileManager != null) {
mProfileManager.removeServiceListener(this);
}
super.onStop();
}
@Override
public void onServiceConnected() {
if (AudioSharingUtils.isFeatureEnabled()
&& AudioSharingUtils.isAudioSharingProfileReady(mProfileManager)) {
if (mProfileManager != null) {
mProfileManager.removeServiceListener(this);
}
if (mIntent != null) {
Log.d(TAG, "onServiceConnected() : service ready, starting createUiFromIntent");
super.createUiFromIntent(mSavedState, mIntent);
}
}
}
@Override
public void onServiceDisconnected() {}
@Override
protected boolean isValidFragment(String fragmentName) {
return AudioStreamConfirmDialog.class.getName().equals(fragmentName);