Loading src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragment.java +14 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; import androidx.lifecycle.Lifecycle; Loading @@ -35,6 +36,7 @@ import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.bluetooth.BluetoothUtils; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.flags.Flags; import com.android.settingslib.utils.ThreadUtils; import java.util.List; Loading Loading @@ -212,6 +214,18 @@ public class AudioSharingDisconnectDialogFragment extends InstrumentedDialogFrag return builder.build(); } @Override public void onDestroy() { super.onDestroy(); FragmentActivity activity = getActivity(); if (Flags.promoteAudioSharingForSecondAutoConnectedLeaDevice() && activity instanceof AudioSharingJoinHandlerActivity && !activity.isChangingConfigurations() && !activity.isFinishing()) { Log.d(TAG, "onDestroy, finish activity = " + activity.getClass().getName()); activity.finish(); } } private static void logDialogAutoDismiss(AlertDialog dialog) { var unused = ThreadUtils.postOnBackgroundThread( Loading src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragment.java +14 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; import androidx.lifecycle.Lifecycle; Loading @@ -35,6 +36,7 @@ import com.android.settings.bluetooth.Utils; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settingslib.bluetooth.BluetoothUtils; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.flags.Flags; import java.util.List; Loading Loading @@ -197,6 +199,18 @@ public class AudioSharingJoinDialogFragment extends InstrumentedDialogFragment { return dialog; } @Override public void onDestroy() { super.onDestroy(); FragmentActivity activity = getActivity(); if (Flags.promoteAudioSharingForSecondAutoConnectedLeaDevice() && activity instanceof AudioSharingJoinHandlerActivity && !activity.isChangingConfigurations() && !activity.isFinishing()) { Log.d(TAG, "onDestroy, finish activity = " + activity.getClass().getName()); activity.finish(); } } private static void updateDialog( List<AudioSharingDeviceItem> deviceItems, String newDeviceName, Loading src/com/android/settings/connecteddevice/audiosharing/AudioSharingStopDialogFragment.java +14 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; import androidx.lifecycle.Lifecycle; Loading @@ -35,6 +36,7 @@ import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.bluetooth.BluetoothUtils; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.flags.Flags; import com.android.settingslib.utils.ThreadUtils; import com.google.common.collect.Iterables; Loading Loading @@ -218,6 +220,18 @@ public class AudioSharingStopDialogFragment extends InstrumentedDialogFragment { return dialog; } @Override public void onDestroy() { super.onDestroy(); FragmentActivity activity = getActivity(); if (Flags.promoteAudioSharingForSecondAutoConnectedLeaDevice() && activity instanceof AudioSharingJoinHandlerActivity && !activity.isChangingConfigurations() && !activity.isFinishing()) { Log.d(TAG, "onDestroy, finish activity = " + activity.getClass().getName()); activity.finish(); } } private static void logDialogAutoDismiss(AlertDialog dialog) { var unused = ThreadUtils.postOnBackgroundThread( Loading tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragmentTest.java +39 −6 Original line number Diff line number Diff line Loading @@ -30,6 +30,8 @@ import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothStatusCodes; import android.content.Context; import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.platform.test.flag.junit.SetFlagsRule; import android.util.Pair; import android.view.View; Loading Loading @@ -140,8 +142,8 @@ public class AudioSharingDisconnectDialogFragmentTest { } @Test @DisableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING) public void onCreateDialog_flagOff_dialogNotExist() { mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); mDeviceItems = new ArrayList<>(); mDeviceItems.add(TEST_DEVICE_ITEM1); mDeviceItems.add(TEST_DEVICE_ITEM2); Loading @@ -154,8 +156,8 @@ public class AudioSharingDisconnectDialogFragmentTest { } @Test @EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING) public void onCreateDialog_unattachedFragment_dialogNotExist() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); mDeviceItems = new ArrayList<>(); mDeviceItems.add(TEST_DEVICE_ITEM1); mDeviceItems.add(TEST_DEVICE_ITEM2); Loading @@ -171,8 +173,8 @@ public class AudioSharingDisconnectDialogFragmentTest { } @Test @EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING) public void onCreateDialog_flagOn_dialogShowBtnForTwoDevices() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); mDeviceItems = new ArrayList<>(); mDeviceItems.add(TEST_DEVICE_ITEM1); mDeviceItems.add(TEST_DEVICE_ITEM2); Loading @@ -189,8 +191,8 @@ public class AudioSharingDisconnectDialogFragmentTest { } @Test @EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING) public void onCreateDialog_dialogIsShowingForSameGroup_updateDialog() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); mDeviceItems = new ArrayList<>(); mDeviceItems.add(TEST_DEVICE_ITEM1); mDeviceItems.add(TEST_DEVICE_ITEM2); Loading Loading @@ -248,8 +250,8 @@ public class AudioSharingDisconnectDialogFragmentTest { } @Test @EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING) public void onCreateDialog_dialogIsShowingForNewGroup_showNewDialog() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); mDeviceItems = new ArrayList<>(); mDeviceItems.add(TEST_DEVICE_ITEM1); mDeviceItems.add(TEST_DEVICE_ITEM2); Loading Loading @@ -302,8 +304,9 @@ public class AudioSharingDisconnectDialogFragmentTest { } @Test @EnableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE}) public void onCreateDialog_clickCancel_dialogDismiss() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); mDeviceItems = new ArrayList<>(); mDeviceItems.add(TEST_DEVICE_ITEM1); mDeviceItems.add(TEST_DEVICE_ITEM2); Loading @@ -319,6 +322,7 @@ public class AudioSharingDisconnectDialogFragmentTest { shadowMainLooper().idle(); assertThat(dialog.isShowing()).isFalse(); assertThat(mParent.getActivity().isFinishing()).isFalse(); verify(mFeatureFactory.metricsFeatureProvider, times(0)) .action( any(Context.class), Loading @@ -330,4 +334,33 @@ public class AudioSharingDisconnectDialogFragmentTest { eq(SettingsEnums.ACTION_AUDIO_SHARING_DIALOG_NEGATIVE_BTN_CLICKED), eq(TEST_EVENT_DATA)); } @Test @EnableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE}) public void onDestroy_finishAudioSharingJoinHandlerActivity() { mDeviceItems = new ArrayList<>(); mDeviceItems.add(TEST_DEVICE_ITEM1); mDeviceItems.add(TEST_DEVICE_ITEM2); Fragment parent = new Fragment(); FragmentController.setupFragment( parent, AudioSharingJoinHandlerActivity.class, /* containerViewId= */ 0, /* bundle= */ null); AudioSharingDisconnectDialogFragment.show( parent, mDeviceItems, mCachedDevice3, EMPTY_EVENT_LISTENER, TEST_EVENT_DATA_LIST); shadowMainLooper().idle(); AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog(); assertThat(dialog).isNotNull(); assertThat(dialog.isShowing()).isTrue(); View btnView = dialog.findViewById(R.id.negative_btn); assertThat(btnView).isNotNull(); btnView.performClick(); shadowMainLooper().idle(); assertThat(dialog.isShowing()).isFalse(); assertThat( parent.getActivity().isFinishing() || parent.getActivity().isDestroyed()).isTrue(); } } tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragmentTest.java +46 −9 Original line number Diff line number Diff line Loading @@ -28,6 +28,8 @@ import android.app.settings.SettingsEnums; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothStatusCodes; import android.content.Context; import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.platform.test.flag.junit.SetFlagsRule; import android.util.Pair; import android.view.View; Loading Loading @@ -142,8 +144,8 @@ public class AudioSharingJoinDialogFragmentTest { } @Test @EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING) public void getMetricsCategory_inSharing_correctValue() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); when(mBroadcast.isEnabled(null)).thenReturn(true); int category = mFragment.getMetricsCategory(); shadowMainLooper().idle(); Loading @@ -151,8 +153,8 @@ public class AudioSharingJoinDialogFragmentTest { } @Test @DisableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING) public void onCreateDialog_flagOff_dialogNotExist() { mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); AudioSharingJoinDialogFragment.show( mParent, new ArrayList<>(), Loading @@ -165,8 +167,8 @@ public class AudioSharingJoinDialogFragmentTest { } @Test @EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING) public void onCreateDialog_unattachedFragment_dialogNotExist() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); AudioSharingJoinDialogFragment.show( new Fragment(), new ArrayList<>(), Loading @@ -179,8 +181,8 @@ public class AudioSharingJoinDialogFragmentTest { } @Test @EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING) public void onCreateDialog_flagOn_dialogShowTextForSingleDevice() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); when(mBroadcast.isEnabled(null)).thenReturn(true); AudioSharingJoinDialogFragment.show( mParent, Loading @@ -201,8 +203,8 @@ public class AudioSharingJoinDialogFragmentTest { } @Test @EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING) public void onCreateDialog_flagOn_dialogShowTextForTwoDevice() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); ArrayList<AudioSharingDeviceItem> list = new ArrayList<>(); list.add(TEST_DEVICE_ITEM1); AudioSharingJoinDialogFragment.show( Loading @@ -228,8 +230,8 @@ public class AudioSharingJoinDialogFragmentTest { } @Test @EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING) public void onCreateDialog_dialogIsShowing_updateDialog() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); ArrayList<AudioSharingDeviceItem> list = new ArrayList<>(); list.add(TEST_DEVICE_ITEM1); AudioSharingJoinDialogFragment.show( Loading Loading @@ -258,8 +260,9 @@ public class AudioSharingJoinDialogFragmentTest { } @Test @EnableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE}) public void onCreateDialog_clickCancel_dialogDismiss() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); AudioSharingJoinDialogFragment.show( mParent, new ArrayList<>(), Loading @@ -274,6 +277,7 @@ public class AudioSharingJoinDialogFragmentTest { btnView.performClick(); shadowMainLooper().idle(); assertThat(dialog.isShowing()).isFalse(); assertThat(mParent.getActivity().isFinishing()).isFalse(); verify(mFeatureFactory.metricsFeatureProvider) .action( any(Context.class), Loading @@ -282,8 +286,9 @@ public class AudioSharingJoinDialogFragmentTest { } @Test @EnableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE}) public void onCreateDialog_clickBtn_callbackTriggered() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); AtomicBoolean isShareBtnClicked = new AtomicBoolean(false); mFragment.show( mParent, Loading @@ -308,6 +313,7 @@ public class AudioSharingJoinDialogFragmentTest { shadowMainLooper().idle(); assertThat(dialog.isShowing()).isFalse(); assertThat(isShareBtnClicked.get()).isTrue(); assertThat(mParent.getActivity().isFinishing()).isFalse(); verify(mFeatureFactory.metricsFeatureProvider) .action( any(Context.class), Loading @@ -316,8 +322,9 @@ public class AudioSharingJoinDialogFragmentTest { } @Test @EnableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE}) public void onCreateDialog_clickCancel_callbackTriggered() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); AtomicBoolean isCancelBtnClicked = new AtomicBoolean(false); mFragment.show( mParent, Loading @@ -342,10 +349,40 @@ public class AudioSharingJoinDialogFragmentTest { shadowMainLooper().idle(); assertThat(dialog.isShowing()).isFalse(); assertThat(isCancelBtnClicked.get()).isTrue(); assertThat(mParent.getActivity().isFinishing()).isFalse(); verify(mFeatureFactory.metricsFeatureProvider) .action( any(Context.class), eq(SettingsEnums.ACTION_AUDIO_SHARING_DIALOG_NEGATIVE_BTN_CLICKED), eq(TEST_EVENT_DATA)); } @Test @EnableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE}) public void onDestroy_finishAudioSharingJoinHandlerActivity() { Fragment parent = new Fragment(); FragmentController.setupFragment( parent, AudioSharingJoinHandlerActivity.class, /* containerViewId= */ 0, /* bundle= */ null); AudioSharingJoinDialogFragment.show( parent, new ArrayList<>(), mCachedDevice2, EMPTY_EVENT_LISTENER, TEST_EVENT_DATA_LIST); shadowMainLooper().idle(); AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog(); assertThat(dialog).isNotNull(); View btnView = dialog.findViewById(R.id.negative_btn); assertThat(btnView).isNotNull(); btnView.performClick(); shadowMainLooper().idle(); assertThat(dialog.isShowing()).isFalse(); assertThat( parent.getActivity().isFinishing() || parent.getActivity().isDestroyed()).isTrue(); } } Loading
src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragment.java +14 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; import androidx.lifecycle.Lifecycle; Loading @@ -35,6 +36,7 @@ import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.bluetooth.BluetoothUtils; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.flags.Flags; import com.android.settingslib.utils.ThreadUtils; import java.util.List; Loading Loading @@ -212,6 +214,18 @@ public class AudioSharingDisconnectDialogFragment extends InstrumentedDialogFrag return builder.build(); } @Override public void onDestroy() { super.onDestroy(); FragmentActivity activity = getActivity(); if (Flags.promoteAudioSharingForSecondAutoConnectedLeaDevice() && activity instanceof AudioSharingJoinHandlerActivity && !activity.isChangingConfigurations() && !activity.isFinishing()) { Log.d(TAG, "onDestroy, finish activity = " + activity.getClass().getName()); activity.finish(); } } private static void logDialogAutoDismiss(AlertDialog dialog) { var unused = ThreadUtils.postOnBackgroundThread( Loading
src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragment.java +14 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; import androidx.lifecycle.Lifecycle; Loading @@ -35,6 +36,7 @@ import com.android.settings.bluetooth.Utils; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settingslib.bluetooth.BluetoothUtils; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.flags.Flags; import java.util.List; Loading Loading @@ -197,6 +199,18 @@ public class AudioSharingJoinDialogFragment extends InstrumentedDialogFragment { return dialog; } @Override public void onDestroy() { super.onDestroy(); FragmentActivity activity = getActivity(); if (Flags.promoteAudioSharingForSecondAutoConnectedLeaDevice() && activity instanceof AudioSharingJoinHandlerActivity && !activity.isChangingConfigurations() && !activity.isFinishing()) { Log.d(TAG, "onDestroy, finish activity = " + activity.getClass().getName()); activity.finish(); } } private static void updateDialog( List<AudioSharingDeviceItem> deviceItems, String newDeviceName, Loading
src/com/android/settings/connecteddevice/audiosharing/AudioSharingStopDialogFragment.java +14 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; import androidx.lifecycle.Lifecycle; Loading @@ -35,6 +36,7 @@ import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.bluetooth.BluetoothUtils; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.flags.Flags; import com.android.settingslib.utils.ThreadUtils; import com.google.common.collect.Iterables; Loading Loading @@ -218,6 +220,18 @@ public class AudioSharingStopDialogFragment extends InstrumentedDialogFragment { return dialog; } @Override public void onDestroy() { super.onDestroy(); FragmentActivity activity = getActivity(); if (Flags.promoteAudioSharingForSecondAutoConnectedLeaDevice() && activity instanceof AudioSharingJoinHandlerActivity && !activity.isChangingConfigurations() && !activity.isFinishing()) { Log.d(TAG, "onDestroy, finish activity = " + activity.getClass().getName()); activity.finish(); } } private static void logDialogAutoDismiss(AlertDialog dialog) { var unused = ThreadUtils.postOnBackgroundThread( Loading
tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragmentTest.java +39 −6 Original line number Diff line number Diff line Loading @@ -30,6 +30,8 @@ import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothStatusCodes; import android.content.Context; import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.platform.test.flag.junit.SetFlagsRule; import android.util.Pair; import android.view.View; Loading Loading @@ -140,8 +142,8 @@ public class AudioSharingDisconnectDialogFragmentTest { } @Test @DisableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING) public void onCreateDialog_flagOff_dialogNotExist() { mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); mDeviceItems = new ArrayList<>(); mDeviceItems.add(TEST_DEVICE_ITEM1); mDeviceItems.add(TEST_DEVICE_ITEM2); Loading @@ -154,8 +156,8 @@ public class AudioSharingDisconnectDialogFragmentTest { } @Test @EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING) public void onCreateDialog_unattachedFragment_dialogNotExist() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); mDeviceItems = new ArrayList<>(); mDeviceItems.add(TEST_DEVICE_ITEM1); mDeviceItems.add(TEST_DEVICE_ITEM2); Loading @@ -171,8 +173,8 @@ public class AudioSharingDisconnectDialogFragmentTest { } @Test @EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING) public void onCreateDialog_flagOn_dialogShowBtnForTwoDevices() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); mDeviceItems = new ArrayList<>(); mDeviceItems.add(TEST_DEVICE_ITEM1); mDeviceItems.add(TEST_DEVICE_ITEM2); Loading @@ -189,8 +191,8 @@ public class AudioSharingDisconnectDialogFragmentTest { } @Test @EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING) public void onCreateDialog_dialogIsShowingForSameGroup_updateDialog() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); mDeviceItems = new ArrayList<>(); mDeviceItems.add(TEST_DEVICE_ITEM1); mDeviceItems.add(TEST_DEVICE_ITEM2); Loading Loading @@ -248,8 +250,8 @@ public class AudioSharingDisconnectDialogFragmentTest { } @Test @EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING) public void onCreateDialog_dialogIsShowingForNewGroup_showNewDialog() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); mDeviceItems = new ArrayList<>(); mDeviceItems.add(TEST_DEVICE_ITEM1); mDeviceItems.add(TEST_DEVICE_ITEM2); Loading Loading @@ -302,8 +304,9 @@ public class AudioSharingDisconnectDialogFragmentTest { } @Test @EnableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE}) public void onCreateDialog_clickCancel_dialogDismiss() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); mDeviceItems = new ArrayList<>(); mDeviceItems.add(TEST_DEVICE_ITEM1); mDeviceItems.add(TEST_DEVICE_ITEM2); Loading @@ -319,6 +322,7 @@ public class AudioSharingDisconnectDialogFragmentTest { shadowMainLooper().idle(); assertThat(dialog.isShowing()).isFalse(); assertThat(mParent.getActivity().isFinishing()).isFalse(); verify(mFeatureFactory.metricsFeatureProvider, times(0)) .action( any(Context.class), Loading @@ -330,4 +334,33 @@ public class AudioSharingDisconnectDialogFragmentTest { eq(SettingsEnums.ACTION_AUDIO_SHARING_DIALOG_NEGATIVE_BTN_CLICKED), eq(TEST_EVENT_DATA)); } @Test @EnableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE}) public void onDestroy_finishAudioSharingJoinHandlerActivity() { mDeviceItems = new ArrayList<>(); mDeviceItems.add(TEST_DEVICE_ITEM1); mDeviceItems.add(TEST_DEVICE_ITEM2); Fragment parent = new Fragment(); FragmentController.setupFragment( parent, AudioSharingJoinHandlerActivity.class, /* containerViewId= */ 0, /* bundle= */ null); AudioSharingDisconnectDialogFragment.show( parent, mDeviceItems, mCachedDevice3, EMPTY_EVENT_LISTENER, TEST_EVENT_DATA_LIST); shadowMainLooper().idle(); AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog(); assertThat(dialog).isNotNull(); assertThat(dialog.isShowing()).isTrue(); View btnView = dialog.findViewById(R.id.negative_btn); assertThat(btnView).isNotNull(); btnView.performClick(); shadowMainLooper().idle(); assertThat(dialog.isShowing()).isFalse(); assertThat( parent.getActivity().isFinishing() || parent.getActivity().isDestroyed()).isTrue(); } }
tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragmentTest.java +46 −9 Original line number Diff line number Diff line Loading @@ -28,6 +28,8 @@ import android.app.settings.SettingsEnums; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothStatusCodes; import android.content.Context; import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.platform.test.flag.junit.SetFlagsRule; import android.util.Pair; import android.view.View; Loading Loading @@ -142,8 +144,8 @@ public class AudioSharingJoinDialogFragmentTest { } @Test @EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING) public void getMetricsCategory_inSharing_correctValue() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); when(mBroadcast.isEnabled(null)).thenReturn(true); int category = mFragment.getMetricsCategory(); shadowMainLooper().idle(); Loading @@ -151,8 +153,8 @@ public class AudioSharingJoinDialogFragmentTest { } @Test @DisableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING) public void onCreateDialog_flagOff_dialogNotExist() { mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); AudioSharingJoinDialogFragment.show( mParent, new ArrayList<>(), Loading @@ -165,8 +167,8 @@ public class AudioSharingJoinDialogFragmentTest { } @Test @EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING) public void onCreateDialog_unattachedFragment_dialogNotExist() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); AudioSharingJoinDialogFragment.show( new Fragment(), new ArrayList<>(), Loading @@ -179,8 +181,8 @@ public class AudioSharingJoinDialogFragmentTest { } @Test @EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING) public void onCreateDialog_flagOn_dialogShowTextForSingleDevice() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); when(mBroadcast.isEnabled(null)).thenReturn(true); AudioSharingJoinDialogFragment.show( mParent, Loading @@ -201,8 +203,8 @@ public class AudioSharingJoinDialogFragmentTest { } @Test @EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING) public void onCreateDialog_flagOn_dialogShowTextForTwoDevice() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); ArrayList<AudioSharingDeviceItem> list = new ArrayList<>(); list.add(TEST_DEVICE_ITEM1); AudioSharingJoinDialogFragment.show( Loading @@ -228,8 +230,8 @@ public class AudioSharingJoinDialogFragmentTest { } @Test @EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING) public void onCreateDialog_dialogIsShowing_updateDialog() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); ArrayList<AudioSharingDeviceItem> list = new ArrayList<>(); list.add(TEST_DEVICE_ITEM1); AudioSharingJoinDialogFragment.show( Loading Loading @@ -258,8 +260,9 @@ public class AudioSharingJoinDialogFragmentTest { } @Test @EnableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE}) public void onCreateDialog_clickCancel_dialogDismiss() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); AudioSharingJoinDialogFragment.show( mParent, new ArrayList<>(), Loading @@ -274,6 +277,7 @@ public class AudioSharingJoinDialogFragmentTest { btnView.performClick(); shadowMainLooper().idle(); assertThat(dialog.isShowing()).isFalse(); assertThat(mParent.getActivity().isFinishing()).isFalse(); verify(mFeatureFactory.metricsFeatureProvider) .action( any(Context.class), Loading @@ -282,8 +286,9 @@ public class AudioSharingJoinDialogFragmentTest { } @Test @EnableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE}) public void onCreateDialog_clickBtn_callbackTriggered() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); AtomicBoolean isShareBtnClicked = new AtomicBoolean(false); mFragment.show( mParent, Loading @@ -308,6 +313,7 @@ public class AudioSharingJoinDialogFragmentTest { shadowMainLooper().idle(); assertThat(dialog.isShowing()).isFalse(); assertThat(isShareBtnClicked.get()).isTrue(); assertThat(mParent.getActivity().isFinishing()).isFalse(); verify(mFeatureFactory.metricsFeatureProvider) .action( any(Context.class), Loading @@ -316,8 +322,9 @@ public class AudioSharingJoinDialogFragmentTest { } @Test @EnableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE}) public void onCreateDialog_clickCancel_callbackTriggered() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING); AtomicBoolean isCancelBtnClicked = new AtomicBoolean(false); mFragment.show( mParent, Loading @@ -342,10 +349,40 @@ public class AudioSharingJoinDialogFragmentTest { shadowMainLooper().idle(); assertThat(dialog.isShowing()).isFalse(); assertThat(isCancelBtnClicked.get()).isTrue(); assertThat(mParent.getActivity().isFinishing()).isFalse(); verify(mFeatureFactory.metricsFeatureProvider) .action( any(Context.class), eq(SettingsEnums.ACTION_AUDIO_SHARING_DIALOG_NEGATIVE_BTN_CLICKED), eq(TEST_EVENT_DATA)); } @Test @EnableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE}) public void onDestroy_finishAudioSharingJoinHandlerActivity() { Fragment parent = new Fragment(); FragmentController.setupFragment( parent, AudioSharingJoinHandlerActivity.class, /* containerViewId= */ 0, /* bundle= */ null); AudioSharingJoinDialogFragment.show( parent, new ArrayList<>(), mCachedDevice2, EMPTY_EVENT_LISTENER, TEST_EVENT_DATA_LIST); shadowMainLooper().idle(); AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog(); assertThat(dialog).isNotNull(); View btnView = dialog.findViewById(R.id.negative_btn); assertThat(btnView).isNotNull(); btnView.performClick(); shadowMainLooper().idle(); assertThat(dialog.isShowing()).isFalse(); assertThat( parent.getActivity().isFinishing() || parent.getActivity().isDestroyed()).isTrue(); } }