Loading src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioDialogFragment.java +24 −12 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.settings.connecteddevice.audiosharing; import android.app.Dialog; import android.app.settings.SettingsEnums; import android.os.Bundle; import android.util.Log; import androidx.annotation.NonNull; import androidx.annotation.Nullable; Loading Loading @@ -66,7 +67,13 @@ public class AudioSharingCallAudioDialogFragment extends InstrumentedDialogFragm @NonNull List<AudioSharingDeviceItem> deviceItems, @NonNull DialogEventListener listener) { if (!AudioSharingUtils.isFeatureEnabled()) return; final FragmentManager manager = host.getChildFragmentManager(); final FragmentManager manager; try { manager = host.getChildFragmentManager(); } catch (IllegalStateException e) { Log.d(TAG, "Fail to show dialog: " + e.getMessage()); return; } sListener = listener; if (manager.findFragmentByTag(TAG) == null) { final Bundle bundle = new Bundle(); Loading @@ -79,10 +86,18 @@ public class AudioSharingCallAudioDialogFragment extends InstrumentedDialogFragm } @Override @NonNull public Dialog onCreateDialog(Bundle savedInstanceState) { Bundle arguments = requireArguments(); List<AudioSharingDeviceItem> deviceItems = arguments.getParcelable(BUNDLE_KEY_DEVICE_ITEMS, List.class); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()) .setTitle(R.string.audio_sharing_call_audio_title); if (deviceItems == null) { Log.d(TAG, "Create dialog error: null deviceItems"); return builder.create(); } int checkedItem = -1; for (AudioSharingDeviceItem item : deviceItems) { int fallbackActiveGroupId = AudioSharingUtils.getFallbackActiveGroupId(getContext()); Loading @@ -92,10 +107,7 @@ public class AudioSharingCallAudioDialogFragment extends InstrumentedDialogFragm } String[] choices = deviceItems.stream().map(AudioSharingDeviceItem::getName).toArray(String[]::new); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()) .setTitle(R.string.audio_sharing_call_audio_title) .setSingleChoiceItems( builder.setSingleChoiceItems( choices, checkedItem, (dialog, which) -> { Loading src/com/android/settings/connecteddevice/audiosharing/AudioSharingConfirmDialogFragment.java +9 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.app.settings.SettingsEnums; import android.os.Bundle; import android.util.Log; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.Fragment; Loading @@ -44,7 +45,13 @@ public class AudioSharingConfirmDialogFragment extends InstrumentedDialogFragmen */ public static void show(Fragment host) { if (!AudioSharingUtils.isFeatureEnabled()) return; FragmentManager manager = host.getChildFragmentManager(); final FragmentManager manager; try { manager = host.getChildFragmentManager(); } catch (IllegalStateException e) { Log.d(TAG, "Fail to show dialog: " + e.getMessage()); return; } AlertDialog dialog = AudioSharingDialogHelper.getDialogIfShowing(manager, TAG); if (dialog != null) { Log.d(TAG, "Dialog is showing, return."); Loading @@ -56,6 +63,7 @@ public class AudioSharingConfirmDialogFragment extends InstrumentedDialogFragmen } @Override @NonNull public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { AlertDialog dialog = AudioSharingDialogFactory.newBuilder(getActivity()) Loading src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragment.java +7 −1 Original line number Diff line number Diff line Loading @@ -77,7 +77,13 @@ public class AudioSharingDialogFragment extends InstrumentedDialogFragment { @NonNull DialogEventListener listener, @NonNull Pair<Integer, Object>[] eventData) { if (!AudioSharingUtils.isFeatureEnabled()) return; final FragmentManager manager = host.getChildFragmentManager(); final FragmentManager manager; try { manager = host.getChildFragmentManager(); } catch (IllegalStateException e) { Log.d(TAG, "Fail to show dialog: " + e.getMessage()); return; } sListener = listener; sEventData = eventData; AlertDialog dialog = AudioSharingDialogHelper.getDialogIfShowing(manager, TAG); Loading src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogHandler.java +21 −3 Original line number Diff line number Diff line Loading @@ -414,7 +414,13 @@ public class AudioSharingDialogHandler { private void closeOpeningDialogsOtherThan(String tag) { if (mHostFragment == null) return; List<Fragment> fragments = mHostFragment.getChildFragmentManager().getFragments(); List<Fragment> fragments; try { fragments = mHostFragment.getChildFragmentManager().getFragments(); } catch (IllegalStateException e) { Log.d(TAG, "Fail to closeOpeningDialogsOtherThan " + tag + ": " + e.getMessage()); return; } for (Fragment fragment : fragments) { if (fragment instanceof DialogFragment && fragment.getTag() != null Loading @@ -430,7 +436,13 @@ public class AudioSharingDialogHandler { public void closeOpeningDialogsForLeaDevice(@NonNull CachedBluetoothDevice cachedDevice) { if (mHostFragment == null) return; int groupId = AudioSharingUtils.getGroupId(cachedDevice); List<Fragment> fragments = mHostFragment.getChildFragmentManager().getFragments(); List<Fragment> fragments; try { fragments = mHostFragment.getChildFragmentManager().getFragments(); } catch (IllegalStateException e) { Log.d(TAG, "Fail to closeOpeningDialogsForLeaDevice: " + e.getMessage()); return; } for (Fragment fragment : fragments) { CachedBluetoothDevice device = getCachedBluetoothDeviceFromDialog(fragment); if (device != null Loading @@ -447,7 +459,13 @@ public class AudioSharingDialogHandler { public void closeOpeningDialogsForNonLeaDevice(@NonNull CachedBluetoothDevice cachedDevice) { if (mHostFragment == null) return; String address = cachedDevice.getAddress(); List<Fragment> fragments = mHostFragment.getChildFragmentManager().getFragments(); List<Fragment> fragments; try { fragments = mHostFragment.getChildFragmentManager().getFragments(); } catch (IllegalStateException e) { Log.d(TAG, "Fail to closeOpeningDialogsForNonLeaDevice: " + e.getMessage()); return; } for (Fragment fragment : fragments) { CachedBluetoothDevice device = getCachedBluetoothDeviceFromDialog(fragment); if (device != null && address != null && address.equals(device.getAddress())) { Loading src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogHelper.java +6 −5 Original line number Diff line number Diff line Loading @@ -51,12 +51,13 @@ public class AudioSharingDialogHelper { public static AlertDialog getDialogIfShowing( @NonNull FragmentManager manager, @NonNull String tag) { Fragment dialog = manager.findFragmentByTag(tag); return dialog != null && dialog instanceof DialogFragment return dialog instanceof DialogFragment && ((DialogFragment) dialog).getDialog() != null && ((DialogFragment) dialog).getDialog().isShowing() && ((DialogFragment) dialog).getDialog() instanceof AlertDialog ? (AlertDialog) ((DialogFragment) dialog).getDialog() : null; } private AudioSharingDialogHelper() {} } Loading
src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioDialogFragment.java +24 −12 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.settings.connecteddevice.audiosharing; import android.app.Dialog; import android.app.settings.SettingsEnums; import android.os.Bundle; import android.util.Log; import androidx.annotation.NonNull; import androidx.annotation.Nullable; Loading Loading @@ -66,7 +67,13 @@ public class AudioSharingCallAudioDialogFragment extends InstrumentedDialogFragm @NonNull List<AudioSharingDeviceItem> deviceItems, @NonNull DialogEventListener listener) { if (!AudioSharingUtils.isFeatureEnabled()) return; final FragmentManager manager = host.getChildFragmentManager(); final FragmentManager manager; try { manager = host.getChildFragmentManager(); } catch (IllegalStateException e) { Log.d(TAG, "Fail to show dialog: " + e.getMessage()); return; } sListener = listener; if (manager.findFragmentByTag(TAG) == null) { final Bundle bundle = new Bundle(); Loading @@ -79,10 +86,18 @@ public class AudioSharingCallAudioDialogFragment extends InstrumentedDialogFragm } @Override @NonNull public Dialog onCreateDialog(Bundle savedInstanceState) { Bundle arguments = requireArguments(); List<AudioSharingDeviceItem> deviceItems = arguments.getParcelable(BUNDLE_KEY_DEVICE_ITEMS, List.class); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()) .setTitle(R.string.audio_sharing_call_audio_title); if (deviceItems == null) { Log.d(TAG, "Create dialog error: null deviceItems"); return builder.create(); } int checkedItem = -1; for (AudioSharingDeviceItem item : deviceItems) { int fallbackActiveGroupId = AudioSharingUtils.getFallbackActiveGroupId(getContext()); Loading @@ -92,10 +107,7 @@ public class AudioSharingCallAudioDialogFragment extends InstrumentedDialogFragm } String[] choices = deviceItems.stream().map(AudioSharingDeviceItem::getName).toArray(String[]::new); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()) .setTitle(R.string.audio_sharing_call_audio_title) .setSingleChoiceItems( builder.setSingleChoiceItems( choices, checkedItem, (dialog, which) -> { Loading
src/com/android/settings/connecteddevice/audiosharing/AudioSharingConfirmDialogFragment.java +9 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.app.settings.SettingsEnums; import android.os.Bundle; import android.util.Log; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.Fragment; Loading @@ -44,7 +45,13 @@ public class AudioSharingConfirmDialogFragment extends InstrumentedDialogFragmen */ public static void show(Fragment host) { if (!AudioSharingUtils.isFeatureEnabled()) return; FragmentManager manager = host.getChildFragmentManager(); final FragmentManager manager; try { manager = host.getChildFragmentManager(); } catch (IllegalStateException e) { Log.d(TAG, "Fail to show dialog: " + e.getMessage()); return; } AlertDialog dialog = AudioSharingDialogHelper.getDialogIfShowing(manager, TAG); if (dialog != null) { Log.d(TAG, "Dialog is showing, return."); Loading @@ -56,6 +63,7 @@ public class AudioSharingConfirmDialogFragment extends InstrumentedDialogFragmen } @Override @NonNull public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { AlertDialog dialog = AudioSharingDialogFactory.newBuilder(getActivity()) Loading
src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragment.java +7 −1 Original line number Diff line number Diff line Loading @@ -77,7 +77,13 @@ public class AudioSharingDialogFragment extends InstrumentedDialogFragment { @NonNull DialogEventListener listener, @NonNull Pair<Integer, Object>[] eventData) { if (!AudioSharingUtils.isFeatureEnabled()) return; final FragmentManager manager = host.getChildFragmentManager(); final FragmentManager manager; try { manager = host.getChildFragmentManager(); } catch (IllegalStateException e) { Log.d(TAG, "Fail to show dialog: " + e.getMessage()); return; } sListener = listener; sEventData = eventData; AlertDialog dialog = AudioSharingDialogHelper.getDialogIfShowing(manager, TAG); Loading
src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogHandler.java +21 −3 Original line number Diff line number Diff line Loading @@ -414,7 +414,13 @@ public class AudioSharingDialogHandler { private void closeOpeningDialogsOtherThan(String tag) { if (mHostFragment == null) return; List<Fragment> fragments = mHostFragment.getChildFragmentManager().getFragments(); List<Fragment> fragments; try { fragments = mHostFragment.getChildFragmentManager().getFragments(); } catch (IllegalStateException e) { Log.d(TAG, "Fail to closeOpeningDialogsOtherThan " + tag + ": " + e.getMessage()); return; } for (Fragment fragment : fragments) { if (fragment instanceof DialogFragment && fragment.getTag() != null Loading @@ -430,7 +436,13 @@ public class AudioSharingDialogHandler { public void closeOpeningDialogsForLeaDevice(@NonNull CachedBluetoothDevice cachedDevice) { if (mHostFragment == null) return; int groupId = AudioSharingUtils.getGroupId(cachedDevice); List<Fragment> fragments = mHostFragment.getChildFragmentManager().getFragments(); List<Fragment> fragments; try { fragments = mHostFragment.getChildFragmentManager().getFragments(); } catch (IllegalStateException e) { Log.d(TAG, "Fail to closeOpeningDialogsForLeaDevice: " + e.getMessage()); return; } for (Fragment fragment : fragments) { CachedBluetoothDevice device = getCachedBluetoothDeviceFromDialog(fragment); if (device != null Loading @@ -447,7 +459,13 @@ public class AudioSharingDialogHandler { public void closeOpeningDialogsForNonLeaDevice(@NonNull CachedBluetoothDevice cachedDevice) { if (mHostFragment == null) return; String address = cachedDevice.getAddress(); List<Fragment> fragments = mHostFragment.getChildFragmentManager().getFragments(); List<Fragment> fragments; try { fragments = mHostFragment.getChildFragmentManager().getFragments(); } catch (IllegalStateException e) { Log.d(TAG, "Fail to closeOpeningDialogsForNonLeaDevice: " + e.getMessage()); return; } for (Fragment fragment : fragments) { CachedBluetoothDevice device = getCachedBluetoothDeviceFromDialog(fragment); if (device != null && address != null && address.equals(device.getAddress())) { Loading
src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogHelper.java +6 −5 Original line number Diff line number Diff line Loading @@ -51,12 +51,13 @@ public class AudioSharingDialogHelper { public static AlertDialog getDialogIfShowing( @NonNull FragmentManager manager, @NonNull String tag) { Fragment dialog = manager.findFragmentByTag(tag); return dialog != null && dialog instanceof DialogFragment return dialog instanceof DialogFragment && ((DialogFragment) dialog).getDialog() != null && ((DialogFragment) dialog).getDialog().isShowing() && ((DialogFragment) dialog).getDialog() instanceof AlertDialog ? (AlertDialog) ((DialogFragment) dialog).getDialog() : null; } private AudioSharingDialogHelper() {} }