Loading res/layout/dialog_audio_sharing_loading_state.xml→res/layout/dialog_audio_sharing_progress.xml +0 −0 File moved. View file src/com/android/settings/bluetooth/BluetoothDevicePairingDetailBase.java +10 −10 Original line number Diff line number Diff line Loading @@ -72,7 +72,7 @@ public abstract class BluetoothDevicePairingDetailBase extends DeviceListPrefere private final Handler mHandler = new Handler(Looper.getMainLooper()); private final ExecutorService mExecutor = Executors.newSingleThreadExecutor(); @Nullable private AlertDialog mLoadingDialog = null; private AlertDialog mProgressDialog = null; @VisibleForTesting boolean mShouldTriggerAudioSharingShareThenPairFlow = false; private CopyOnWriteArrayList<BluetoothDevice> mDevicesWithMetadataChangedListener = Loading @@ -89,7 +89,7 @@ public abstract class BluetoothDevicePairingDetailBase extends DeviceListPrefere // In share then pair flow, we have to wait on this page till the device is connected. // The BluetoothDevicePreference summary will be blank for seconds between "Pairing..." and // "Connecting..." To help users better understand the process, we listen to metadata change // as well and show a loading dialog with "Connecting to ...." once BluetoothDevice.getState() // as well and show a progress dialog with "Connecting to ...." once BluetoothDevice.getState() // gets to BOND_BONDED. final BluetoothAdapter.OnMetadataChangedListener mMetadataListener = new BluetoothAdapter.OnMetadataChangedListener() { Loading @@ -97,7 +97,7 @@ public abstract class BluetoothDevicePairingDetailBase extends DeviceListPrefere public void onMetadataChanged(@NonNull BluetoothDevice device, int key, @Nullable byte[] value) { Log.d(getLogTag(), "onMetadataChanged device = " + device + ", key = " + key); if (mShouldTriggerAudioSharingShareThenPairFlow && mLoadingDialog == null if (mShouldTriggerAudioSharingShareThenPairFlow && mProgressDialog == null && device.getBondState() == BluetoothDevice.BOND_BONDED && mSelectedList.contains(device)) { triggerAudioSharingShareThenPairFlow(device); Loading Loading @@ -355,7 +355,7 @@ public abstract class BluetoothDevicePairingDetailBase extends DeviceListPrefere return; } mJustBonded = device; // Show connecting device loading state // Show connecting device progress String aliasName = device.getAlias(); String deviceName = TextUtils.isEmpty(aliasName) ? device.getAddress() : aliasName; Loading Loading @@ -387,9 +387,9 @@ public abstract class BluetoothDevicePairingDetailBase extends DeviceListPrefere // TODO: use DialogFragment private void showConnectingDialog(@NonNull String message) { postOnMainThread(() -> { if (mLoadingDialog != null) { if (mProgressDialog != null) { Log.d(getLogTag(), "showConnectingDialog, is already showing"); TextView textView = mLoadingDialog.findViewById(R.id.message); TextView textView = mProgressDialog.findViewById(R.id.message); if (textView != null && !message.equals(textView.getText().toString())) { Log.d(getLogTag(), "showConnectingDialog, update message"); // TODO: use string res once finalized Loading @@ -401,7 +401,7 @@ public abstract class BluetoothDevicePairingDetailBase extends DeviceListPrefere AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); LayoutInflater inflater = LayoutInflater.from(builder.getContext()); View customView = inflater.inflate( R.layout.dialog_audio_sharing_loading_state, /* root= */ R.layout.dialog_audio_sharing_progress, /* root= */ null); TextView textView = customView.findViewById(R.id.message); if (textView != null) { Loading @@ -410,15 +410,15 @@ public abstract class BluetoothDevicePairingDetailBase extends DeviceListPrefere } AlertDialog dialog = builder.setView(customView).setCancelable(false).create(); dialog.setCanceledOnTouchOutside(false); mLoadingDialog = dialog; mProgressDialog = dialog; dialog.show(); }); } private void dismissConnectingDialog() { postOnMainThread(() -> { if (mLoadingDialog != null) { mLoadingDialog.dismiss(); if (mProgressDialog != null) { mProgressDialog.dismiss(); } }); } Loading src/com/android/settings/connecteddevice/audiosharing/AudioSharingLoadingStateDialogFragment.java→src/com/android/settings/connecteddevice/audiosharing/AudioSharingProgressDialogFragment.java +7 −8 Original line number Diff line number Diff line Loading @@ -40,8 +40,8 @@ import com.google.common.base.Strings; import java.util.concurrent.TimeUnit; public class AudioSharingLoadingStateDialogFragment extends InstrumentedDialogFragment { private static final String TAG = "AudioSharingLoadingDlg"; public class AudioSharingProgressDialogFragment extends InstrumentedDialogFragment { private static final String TAG = "AudioSharingProgressDlg"; private static final String BUNDLE_KEY_MESSAGE = "bundle_key_message"; private static final long AUTO_DISMISS_TIME_THRESHOLD_MS = TimeUnit.SECONDS.toMillis(15); Loading @@ -58,7 +58,7 @@ public class AudioSharingLoadingStateDialogFragment extends InstrumentedDialogFr } /** * Display the {@link AudioSharingLoadingStateDialogFragment} dialog. * Display the {@link AudioSharingProgressDialogFragment} dialog. * * @param host The Fragment this dialog will be hosted by. * @param message The content to be shown on the dialog. Loading @@ -85,16 +85,15 @@ public class AudioSharingLoadingStateDialogFragment extends InstrumentedDialogFr return; } sMessage = message; Log.d(TAG, "Show up the loading dialog."); Log.d(TAG, "Show up the progress dialog."); Bundle args = new Bundle(); args.putString(BUNDLE_KEY_MESSAGE, message); AudioSharingLoadingStateDialogFragment dialogFrag = new AudioSharingLoadingStateDialogFragment(); AudioSharingProgressDialogFragment dialogFrag = new AudioSharingProgressDialogFragment(); dialogFrag.setArguments(args); dialogFrag.show(manager, TAG); } /** Dismiss the {@link AudioSharingLoadingStateDialogFragment} dialog. */ /** Dismiss the {@link AudioSharingProgressDialogFragment} dialog. */ public static void dismiss(@Nullable Fragment host) { if (host == null || !BluetoothUtils.isAudioSharingEnabled()) return; final FragmentManager manager; Loading @@ -119,7 +118,7 @@ public class AudioSharingLoadingStateDialogFragment extends InstrumentedDialogFr String message = args.getString(BUNDLE_KEY_MESSAGE, ""); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); LayoutInflater inflater = LayoutInflater.from(builder.getContext()); View customView = inflater.inflate(R.layout.dialog_audio_sharing_loading_state, /* root= */ View customView = inflater.inflate(R.layout.dialog_audio_sharing_progress, /* root= */ null); TextView textView = customView.findViewById(R.id.message); if (!Strings.isNullOrEmpty(message)) textView.setText(message); Loading src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarController.java +13 −13 Original line number Diff line number Diff line Loading @@ -315,7 +315,7 @@ public class AudioSharingSwitchBarController extends BasePreferenceController if (mSinksInAdding.contains(sink)) { mSinksInAdding.remove(sink); } dismissLoadingStateDialogIfNeeded(); dismissProgressDialogIfNeeded(); Log.d(TAG, "onReceiveStateChanged() connected, sink = " + sink + ", remaining sinks = " + mSinksInAdding); if (mSinksToWaitFor.contains(sink)) { Loading Loading @@ -573,7 +573,7 @@ public class AudioSharingSwitchBarController extends BasePreferenceController mSinksInAdding.clear(); // TODO: use string res once finalized. AudioSharingUtils.postOnMainThread(mContext, () -> AudioSharingLoadingStateDialogFragment.show(mFragment, () -> AudioSharingProgressDialogFragment.show(mFragment, "Starting audio stream...")); mMetricsFeatureProvider.action( mContext, Loading Loading @@ -690,7 +690,7 @@ public class AudioSharingSwitchBarController extends BasePreferenceController if (mFragment == null) { Log.d(TAG, "handleOnBroadcastReady: dialog fail to show due to null fragment."); // Clean up states before early return. dismissLoadingStateDialogIfNeeded(); dismissProgressDialogIfNeeded(); cleanUpStatesForStartSharing(); return; } Loading @@ -711,8 +711,8 @@ public class AudioSharingSwitchBarController extends BasePreferenceController new AudioSharingDialogFragment.DialogEventListener() { @Override public void onPositiveClick() { // Could go to other pages, dismiss the loading dialog. dismissLoadingStateDialogIfNeeded(); // Could go to other pages, dismiss the progress dialog. dismissProgressDialogIfNeeded(); cleanUpStatesForStartSharing(); } Loading @@ -726,8 +726,8 @@ public class AudioSharingSwitchBarController extends BasePreferenceController @Override public void onCancelClick() { // Could go to other pages, dismiss the loading dialog. dismissLoadingStateDialogIfNeeded(); // Could go to other pages, dismiss the progress dialog. dismissProgressDialogIfNeeded(); cleanUpStatesForStartSharing(); } }; Loading Loading @@ -831,20 +831,20 @@ public class AudioSharingSwitchBarController extends BasePreferenceController @NonNull String sinkName) { mSinksInAdding.addAll(targetActiveSinks); // TODO: move to res once finalized String loadingMessage = "Sharing with " + sinkName + "..."; showLoadingStateDialog(loadingMessage); String progressMessage = "Sharing with " + sinkName + "..."; showProgressDialog(progressMessage); AudioSharingUtils.addSourceToTargetSinks(targetActiveSinks, mBtManager); } private void showLoadingStateDialog(@NonNull String loadingMessage) { private void showProgressDialog(@NonNull String progressMessage) { AudioSharingUtils.postOnMainThread(mContext, () -> AudioSharingLoadingStateDialogFragment.show(mFragment, loadingMessage)); () -> AudioSharingProgressDialogFragment.show(mFragment, progressMessage)); } private void dismissLoadingStateDialogIfNeeded() { private void dismissProgressDialogIfNeeded() { if (mSinksInAdding.isEmpty()) { AudioSharingUtils.postOnMainThread(mContext, () -> AudioSharingLoadingStateDialogFragment.dismiss(mFragment)); () -> AudioSharingProgressDialogFragment.dismiss(mFragment)); } } Loading tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingLoadingStateDialogFragmentTest.java→tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingProgressDialogFragmentTest.java +12 −12 Original line number Diff line number Diff line Loading @@ -52,7 +52,7 @@ import org.robolectric.shadows.androidx.fragment.FragmentController; ShadowAlertDialogCompat.class, ShadowBluetoothAdapter.class, }) public class AudioSharingLoadingStateDialogFragmentTest { public class AudioSharingProgressDialogFragmentTest { @Rule public final MockitoRule mocks = MockitoJUnit.rule(); @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); Loading @@ -60,7 +60,7 @@ public class AudioSharingLoadingStateDialogFragmentTest { private static final String TEST_MESSAGE2 = "message2"; private Fragment mParent; private AudioSharingLoadingStateDialogFragment mFragment; private AudioSharingProgressDialogFragment mFragment; @Before public void setUp() { Loading @@ -72,7 +72,7 @@ public class AudioSharingLoadingStateDialogFragmentTest { BluetoothStatusCodes.FEATURE_SUPPORTED); shadowBluetoothAdapter.setIsLeAudioBroadcastAssistantSupported( BluetoothStatusCodes.FEATURE_SUPPORTED); mFragment = new AudioSharingLoadingStateDialogFragment(); mFragment = new AudioSharingProgressDialogFragment(); mParent = new Fragment(); FragmentController.setupFragment( mParent, FragmentActivity.class, /* containerViewId= */ 0, /* bundle= */ null); Loading @@ -93,7 +93,7 @@ public class AudioSharingLoadingStateDialogFragmentTest { @Test public void onCreateDialog_flagOff_dialogNotExist() { mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); AudioSharingLoadingStateDialogFragment.show(mParent, TEST_MESSAGE1); AudioSharingProgressDialogFragment.show(mParent, TEST_MESSAGE1); shadowMainLooper().idle(); AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog(); assertThat(dialog).isNull(); Loading @@ -102,7 +102,7 @@ public class AudioSharingLoadingStateDialogFragmentTest { @Test public void onCreateDialog_unattachedFragment_dialogNotExist() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); AudioSharingLoadingStateDialogFragment.show(new Fragment(), TEST_MESSAGE1); AudioSharingProgressDialogFragment.show(new Fragment(), TEST_MESSAGE1); shadowMainLooper().idle(); AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog(); assertThat(dialog).isNull(); Loading @@ -111,7 +111,7 @@ public class AudioSharingLoadingStateDialogFragmentTest { @Test public void onCreateDialog_flagOn_showDialog() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); AudioSharingLoadingStateDialogFragment.show(mParent, TEST_MESSAGE1); AudioSharingProgressDialogFragment.show(mParent, TEST_MESSAGE1); shadowMainLooper().idle(); AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog(); assertThat(dialog).isNotNull(); Loading @@ -124,13 +124,13 @@ public class AudioSharingLoadingStateDialogFragmentTest { @Test public void dismissDialog_succeed() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); AudioSharingLoadingStateDialogFragment.show(mParent, TEST_MESSAGE1); AudioSharingProgressDialogFragment.show(mParent, TEST_MESSAGE1); shadowMainLooper().idle(); AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog(); assertThat(dialog).isNotNull(); assertThat(dialog.isShowing()).isTrue(); AudioSharingLoadingStateDialogFragment.dismiss(mParent); AudioSharingProgressDialogFragment.dismiss(mParent); shadowMainLooper().idle(); assertThat(dialog.isShowing()).isFalse(); } Loading @@ -138,13 +138,13 @@ public class AudioSharingLoadingStateDialogFragmentTest { @Test public void showDialog_sameMessage_keepExistingDialog() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); AudioSharingLoadingStateDialogFragment.show(mParent, TEST_MESSAGE1); AudioSharingProgressDialogFragment.show(mParent, TEST_MESSAGE1); shadowMainLooper().idle(); AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog(); assertThat(dialog).isNotNull(); assertThat(dialog.isShowing()).isTrue(); AudioSharingLoadingStateDialogFragment.show(mParent, TEST_MESSAGE1); AudioSharingProgressDialogFragment.show(mParent, TEST_MESSAGE1); shadowMainLooper().idle(); assertThat(dialog.isShowing()).isTrue(); } Loading @@ -152,7 +152,7 @@ public class AudioSharingLoadingStateDialogFragmentTest { @Test public void showDialog_newMessage_keepAndUpdateDialog() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); AudioSharingLoadingStateDialogFragment.show(mParent, TEST_MESSAGE1); AudioSharingProgressDialogFragment.show(mParent, TEST_MESSAGE1); shadowMainLooper().idle(); AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog(); assertThat(dialog).isNotNull(); Loading @@ -161,7 +161,7 @@ public class AudioSharingLoadingStateDialogFragmentTest { assertThat(view).isNotNull(); assertThat(view.getText().toString()).isEqualTo(TEST_MESSAGE1); AudioSharingLoadingStateDialogFragment.show(mParent, TEST_MESSAGE2); AudioSharingProgressDialogFragment.show(mParent, TEST_MESSAGE2); shadowMainLooper().idle(); assertThat(dialog.isShowing()).isTrue(); assertThat(view.getText().toString()).isEqualTo(TEST_MESSAGE2); Loading Loading
res/layout/dialog_audio_sharing_loading_state.xml→res/layout/dialog_audio_sharing_progress.xml +0 −0 File moved. View file
src/com/android/settings/bluetooth/BluetoothDevicePairingDetailBase.java +10 −10 Original line number Diff line number Diff line Loading @@ -72,7 +72,7 @@ public abstract class BluetoothDevicePairingDetailBase extends DeviceListPrefere private final Handler mHandler = new Handler(Looper.getMainLooper()); private final ExecutorService mExecutor = Executors.newSingleThreadExecutor(); @Nullable private AlertDialog mLoadingDialog = null; private AlertDialog mProgressDialog = null; @VisibleForTesting boolean mShouldTriggerAudioSharingShareThenPairFlow = false; private CopyOnWriteArrayList<BluetoothDevice> mDevicesWithMetadataChangedListener = Loading @@ -89,7 +89,7 @@ public abstract class BluetoothDevicePairingDetailBase extends DeviceListPrefere // In share then pair flow, we have to wait on this page till the device is connected. // The BluetoothDevicePreference summary will be blank for seconds between "Pairing..." and // "Connecting..." To help users better understand the process, we listen to metadata change // as well and show a loading dialog with "Connecting to ...." once BluetoothDevice.getState() // as well and show a progress dialog with "Connecting to ...." once BluetoothDevice.getState() // gets to BOND_BONDED. final BluetoothAdapter.OnMetadataChangedListener mMetadataListener = new BluetoothAdapter.OnMetadataChangedListener() { Loading @@ -97,7 +97,7 @@ public abstract class BluetoothDevicePairingDetailBase extends DeviceListPrefere public void onMetadataChanged(@NonNull BluetoothDevice device, int key, @Nullable byte[] value) { Log.d(getLogTag(), "onMetadataChanged device = " + device + ", key = " + key); if (mShouldTriggerAudioSharingShareThenPairFlow && mLoadingDialog == null if (mShouldTriggerAudioSharingShareThenPairFlow && mProgressDialog == null && device.getBondState() == BluetoothDevice.BOND_BONDED && mSelectedList.contains(device)) { triggerAudioSharingShareThenPairFlow(device); Loading Loading @@ -355,7 +355,7 @@ public abstract class BluetoothDevicePairingDetailBase extends DeviceListPrefere return; } mJustBonded = device; // Show connecting device loading state // Show connecting device progress String aliasName = device.getAlias(); String deviceName = TextUtils.isEmpty(aliasName) ? device.getAddress() : aliasName; Loading Loading @@ -387,9 +387,9 @@ public abstract class BluetoothDevicePairingDetailBase extends DeviceListPrefere // TODO: use DialogFragment private void showConnectingDialog(@NonNull String message) { postOnMainThread(() -> { if (mLoadingDialog != null) { if (mProgressDialog != null) { Log.d(getLogTag(), "showConnectingDialog, is already showing"); TextView textView = mLoadingDialog.findViewById(R.id.message); TextView textView = mProgressDialog.findViewById(R.id.message); if (textView != null && !message.equals(textView.getText().toString())) { Log.d(getLogTag(), "showConnectingDialog, update message"); // TODO: use string res once finalized Loading @@ -401,7 +401,7 @@ public abstract class BluetoothDevicePairingDetailBase extends DeviceListPrefere AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); LayoutInflater inflater = LayoutInflater.from(builder.getContext()); View customView = inflater.inflate( R.layout.dialog_audio_sharing_loading_state, /* root= */ R.layout.dialog_audio_sharing_progress, /* root= */ null); TextView textView = customView.findViewById(R.id.message); if (textView != null) { Loading @@ -410,15 +410,15 @@ public abstract class BluetoothDevicePairingDetailBase extends DeviceListPrefere } AlertDialog dialog = builder.setView(customView).setCancelable(false).create(); dialog.setCanceledOnTouchOutside(false); mLoadingDialog = dialog; mProgressDialog = dialog; dialog.show(); }); } private void dismissConnectingDialog() { postOnMainThread(() -> { if (mLoadingDialog != null) { mLoadingDialog.dismiss(); if (mProgressDialog != null) { mProgressDialog.dismiss(); } }); } Loading
src/com/android/settings/connecteddevice/audiosharing/AudioSharingLoadingStateDialogFragment.java→src/com/android/settings/connecteddevice/audiosharing/AudioSharingProgressDialogFragment.java +7 −8 Original line number Diff line number Diff line Loading @@ -40,8 +40,8 @@ import com.google.common.base.Strings; import java.util.concurrent.TimeUnit; public class AudioSharingLoadingStateDialogFragment extends InstrumentedDialogFragment { private static final String TAG = "AudioSharingLoadingDlg"; public class AudioSharingProgressDialogFragment extends InstrumentedDialogFragment { private static final String TAG = "AudioSharingProgressDlg"; private static final String BUNDLE_KEY_MESSAGE = "bundle_key_message"; private static final long AUTO_DISMISS_TIME_THRESHOLD_MS = TimeUnit.SECONDS.toMillis(15); Loading @@ -58,7 +58,7 @@ public class AudioSharingLoadingStateDialogFragment extends InstrumentedDialogFr } /** * Display the {@link AudioSharingLoadingStateDialogFragment} dialog. * Display the {@link AudioSharingProgressDialogFragment} dialog. * * @param host The Fragment this dialog will be hosted by. * @param message The content to be shown on the dialog. Loading @@ -85,16 +85,15 @@ public class AudioSharingLoadingStateDialogFragment extends InstrumentedDialogFr return; } sMessage = message; Log.d(TAG, "Show up the loading dialog."); Log.d(TAG, "Show up the progress dialog."); Bundle args = new Bundle(); args.putString(BUNDLE_KEY_MESSAGE, message); AudioSharingLoadingStateDialogFragment dialogFrag = new AudioSharingLoadingStateDialogFragment(); AudioSharingProgressDialogFragment dialogFrag = new AudioSharingProgressDialogFragment(); dialogFrag.setArguments(args); dialogFrag.show(manager, TAG); } /** Dismiss the {@link AudioSharingLoadingStateDialogFragment} dialog. */ /** Dismiss the {@link AudioSharingProgressDialogFragment} dialog. */ public static void dismiss(@Nullable Fragment host) { if (host == null || !BluetoothUtils.isAudioSharingEnabled()) return; final FragmentManager manager; Loading @@ -119,7 +118,7 @@ public class AudioSharingLoadingStateDialogFragment extends InstrumentedDialogFr String message = args.getString(BUNDLE_KEY_MESSAGE, ""); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); LayoutInflater inflater = LayoutInflater.from(builder.getContext()); View customView = inflater.inflate(R.layout.dialog_audio_sharing_loading_state, /* root= */ View customView = inflater.inflate(R.layout.dialog_audio_sharing_progress, /* root= */ null); TextView textView = customView.findViewById(R.id.message); if (!Strings.isNullOrEmpty(message)) textView.setText(message); Loading
src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarController.java +13 −13 Original line number Diff line number Diff line Loading @@ -315,7 +315,7 @@ public class AudioSharingSwitchBarController extends BasePreferenceController if (mSinksInAdding.contains(sink)) { mSinksInAdding.remove(sink); } dismissLoadingStateDialogIfNeeded(); dismissProgressDialogIfNeeded(); Log.d(TAG, "onReceiveStateChanged() connected, sink = " + sink + ", remaining sinks = " + mSinksInAdding); if (mSinksToWaitFor.contains(sink)) { Loading Loading @@ -573,7 +573,7 @@ public class AudioSharingSwitchBarController extends BasePreferenceController mSinksInAdding.clear(); // TODO: use string res once finalized. AudioSharingUtils.postOnMainThread(mContext, () -> AudioSharingLoadingStateDialogFragment.show(mFragment, () -> AudioSharingProgressDialogFragment.show(mFragment, "Starting audio stream...")); mMetricsFeatureProvider.action( mContext, Loading Loading @@ -690,7 +690,7 @@ public class AudioSharingSwitchBarController extends BasePreferenceController if (mFragment == null) { Log.d(TAG, "handleOnBroadcastReady: dialog fail to show due to null fragment."); // Clean up states before early return. dismissLoadingStateDialogIfNeeded(); dismissProgressDialogIfNeeded(); cleanUpStatesForStartSharing(); return; } Loading @@ -711,8 +711,8 @@ public class AudioSharingSwitchBarController extends BasePreferenceController new AudioSharingDialogFragment.DialogEventListener() { @Override public void onPositiveClick() { // Could go to other pages, dismiss the loading dialog. dismissLoadingStateDialogIfNeeded(); // Could go to other pages, dismiss the progress dialog. dismissProgressDialogIfNeeded(); cleanUpStatesForStartSharing(); } Loading @@ -726,8 +726,8 @@ public class AudioSharingSwitchBarController extends BasePreferenceController @Override public void onCancelClick() { // Could go to other pages, dismiss the loading dialog. dismissLoadingStateDialogIfNeeded(); // Could go to other pages, dismiss the progress dialog. dismissProgressDialogIfNeeded(); cleanUpStatesForStartSharing(); } }; Loading Loading @@ -831,20 +831,20 @@ public class AudioSharingSwitchBarController extends BasePreferenceController @NonNull String sinkName) { mSinksInAdding.addAll(targetActiveSinks); // TODO: move to res once finalized String loadingMessage = "Sharing with " + sinkName + "..."; showLoadingStateDialog(loadingMessage); String progressMessage = "Sharing with " + sinkName + "..."; showProgressDialog(progressMessage); AudioSharingUtils.addSourceToTargetSinks(targetActiveSinks, mBtManager); } private void showLoadingStateDialog(@NonNull String loadingMessage) { private void showProgressDialog(@NonNull String progressMessage) { AudioSharingUtils.postOnMainThread(mContext, () -> AudioSharingLoadingStateDialogFragment.show(mFragment, loadingMessage)); () -> AudioSharingProgressDialogFragment.show(mFragment, progressMessage)); } private void dismissLoadingStateDialogIfNeeded() { private void dismissProgressDialogIfNeeded() { if (mSinksInAdding.isEmpty()) { AudioSharingUtils.postOnMainThread(mContext, () -> AudioSharingLoadingStateDialogFragment.dismiss(mFragment)); () -> AudioSharingProgressDialogFragment.dismiss(mFragment)); } } Loading
tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingLoadingStateDialogFragmentTest.java→tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingProgressDialogFragmentTest.java +12 −12 Original line number Diff line number Diff line Loading @@ -52,7 +52,7 @@ import org.robolectric.shadows.androidx.fragment.FragmentController; ShadowAlertDialogCompat.class, ShadowBluetoothAdapter.class, }) public class AudioSharingLoadingStateDialogFragmentTest { public class AudioSharingProgressDialogFragmentTest { @Rule public final MockitoRule mocks = MockitoJUnit.rule(); @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); Loading @@ -60,7 +60,7 @@ public class AudioSharingLoadingStateDialogFragmentTest { private static final String TEST_MESSAGE2 = "message2"; private Fragment mParent; private AudioSharingLoadingStateDialogFragment mFragment; private AudioSharingProgressDialogFragment mFragment; @Before public void setUp() { Loading @@ -72,7 +72,7 @@ public class AudioSharingLoadingStateDialogFragmentTest { BluetoothStatusCodes.FEATURE_SUPPORTED); shadowBluetoothAdapter.setIsLeAudioBroadcastAssistantSupported( BluetoothStatusCodes.FEATURE_SUPPORTED); mFragment = new AudioSharingLoadingStateDialogFragment(); mFragment = new AudioSharingProgressDialogFragment(); mParent = new Fragment(); FragmentController.setupFragment( mParent, FragmentActivity.class, /* containerViewId= */ 0, /* bundle= */ null); Loading @@ -93,7 +93,7 @@ public class AudioSharingLoadingStateDialogFragmentTest { @Test public void onCreateDialog_flagOff_dialogNotExist() { mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); AudioSharingLoadingStateDialogFragment.show(mParent, TEST_MESSAGE1); AudioSharingProgressDialogFragment.show(mParent, TEST_MESSAGE1); shadowMainLooper().idle(); AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog(); assertThat(dialog).isNull(); Loading @@ -102,7 +102,7 @@ public class AudioSharingLoadingStateDialogFragmentTest { @Test public void onCreateDialog_unattachedFragment_dialogNotExist() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); AudioSharingLoadingStateDialogFragment.show(new Fragment(), TEST_MESSAGE1); AudioSharingProgressDialogFragment.show(new Fragment(), TEST_MESSAGE1); shadowMainLooper().idle(); AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog(); assertThat(dialog).isNull(); Loading @@ -111,7 +111,7 @@ public class AudioSharingLoadingStateDialogFragmentTest { @Test public void onCreateDialog_flagOn_showDialog() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); AudioSharingLoadingStateDialogFragment.show(mParent, TEST_MESSAGE1); AudioSharingProgressDialogFragment.show(mParent, TEST_MESSAGE1); shadowMainLooper().idle(); AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog(); assertThat(dialog).isNotNull(); Loading @@ -124,13 +124,13 @@ public class AudioSharingLoadingStateDialogFragmentTest { @Test public void dismissDialog_succeed() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); AudioSharingLoadingStateDialogFragment.show(mParent, TEST_MESSAGE1); AudioSharingProgressDialogFragment.show(mParent, TEST_MESSAGE1); shadowMainLooper().idle(); AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog(); assertThat(dialog).isNotNull(); assertThat(dialog.isShowing()).isTrue(); AudioSharingLoadingStateDialogFragment.dismiss(mParent); AudioSharingProgressDialogFragment.dismiss(mParent); shadowMainLooper().idle(); assertThat(dialog.isShowing()).isFalse(); } Loading @@ -138,13 +138,13 @@ public class AudioSharingLoadingStateDialogFragmentTest { @Test public void showDialog_sameMessage_keepExistingDialog() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); AudioSharingLoadingStateDialogFragment.show(mParent, TEST_MESSAGE1); AudioSharingProgressDialogFragment.show(mParent, TEST_MESSAGE1); shadowMainLooper().idle(); AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog(); assertThat(dialog).isNotNull(); assertThat(dialog.isShowing()).isTrue(); AudioSharingLoadingStateDialogFragment.show(mParent, TEST_MESSAGE1); AudioSharingProgressDialogFragment.show(mParent, TEST_MESSAGE1); shadowMainLooper().idle(); assertThat(dialog.isShowing()).isTrue(); } Loading @@ -152,7 +152,7 @@ public class AudioSharingLoadingStateDialogFragmentTest { @Test public void showDialog_newMessage_keepAndUpdateDialog() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); AudioSharingLoadingStateDialogFragment.show(mParent, TEST_MESSAGE1); AudioSharingProgressDialogFragment.show(mParent, TEST_MESSAGE1); shadowMainLooper().idle(); AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog(); assertThat(dialog).isNotNull(); Loading @@ -161,7 +161,7 @@ public class AudioSharingLoadingStateDialogFragmentTest { assertThat(view).isNotNull(); assertThat(view.getText().toString()).isEqualTo(TEST_MESSAGE1); AudioSharingLoadingStateDialogFragment.show(mParent, TEST_MESSAGE2); AudioSharingProgressDialogFragment.show(mParent, TEST_MESSAGE2); shadowMainLooper().idle(); assertThat(dialog.isShowing()).isTrue(); assertThat(view.getText().toString()).isEqualTo(TEST_MESSAGE2); Loading