diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/BatteryOptimizationDialog.java b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/BatteryOptimizationDialog.java index a0e14f11..4bef7fc3 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/BatteryOptimizationDialog.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/BatteryOptimizationDialog.java @@ -14,6 +14,7 @@ import androidx.media3.common.util.UnstableApi; import com.cappielloantonio.tempo.R; import com.cappielloantonio.tempo.databinding.DialogBatteryOptimizationBinding; import com.cappielloantonio.tempo.util.Preferences; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; @OptIn(markerClass = UnstableApi.class) public class BatteryOptimizationDialog extends DialogFragment { @@ -24,22 +25,15 @@ public class BatteryOptimizationDialog extends DialogFragment { @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { - bind = DialogBatteryOptimizationBinding.inflate(getLayoutInflater()); + DialogBatteryOptimizationBinding bind = DialogBatteryOptimizationBinding.inflate(getLayoutInflater()); - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - - builder.setView(bind.getRoot()) + return new MaterialAlertDialogBuilder(requireContext()) .setTitle(R.string.activity_battery_optimizations_title) - .setNeutralButton(R.string.battery_optimization_neutral_button, (dialog, id) -> Preferences.dontAskForOptimization()) + .setView(bind.getRoot()) + .setPositiveButton(R.string.battery_optimization_positive_button, (dialog, which) -> openPowerSettings()) + .setNeutralButton(R.string.battery_optimization_neutral_button, (dialog, which) -> Preferences.dontAskForOptimization()) .setNegativeButton(R.string.battery_optimization_negative_button, null) - .setPositiveButton(R.string.battery_optimization_positive_button, (dialog, id) -> openPowerSettings()); - - AlertDialog popup = builder.create(); - - popup.setCancelable(false); - popup.setCanceledOnTouchOutside(false); - - return popup; + .create(); } @Override diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/ConnectionAlertDialog.java b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/ConnectionAlertDialog.java index 02685b27..db439800 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/ConnectionAlertDialog.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/ConnectionAlertDialog.java @@ -10,6 +10,7 @@ import androidx.fragment.app.DialogFragment; import com.cappielloantonio.tempo.R; import com.cappielloantonio.tempo.databinding.DialogConnectionAlertBinding; import com.cappielloantonio.tempo.util.Preferences; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import java.util.Objects; @@ -23,7 +24,7 @@ public class ConnectionAlertDialog extends DialogFragment { public Dialog onCreateDialog(Bundle savedInstanceState) { bind = DialogConnectionAlertBinding.inflate(getLayoutInflater()); - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getActivity()); builder.setView(bind.getRoot()) .setTitle(R.string.connection_alert_dialog_title) @@ -52,9 +53,11 @@ public class ConnectionAlertDialog extends DialogFragment { } private void setButtonAction() { - ((AlertDialog) Objects.requireNonNull(getDialog())).getButton(AlertDialog.BUTTON_NEUTRAL).setOnClickListener(v -> { + androidx.appcompat.app.AlertDialog alertDialog = (androidx.appcompat.app.AlertDialog) Objects.requireNonNull(getDialog()); + + alertDialog.getButton(androidx.appcompat.app.AlertDialog.BUTTON_NEUTRAL).setOnClickListener(v -> { Preferences.setDataSavingMode(true); Objects.requireNonNull(getDialog()).dismiss(); }); } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/DeleteDownloadStorageDialog.java b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/DeleteDownloadStorageDialog.java index 2f71aeaf..04f9ce64 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/DeleteDownloadStorageDialog.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/DeleteDownloadStorageDialog.java @@ -14,6 +14,7 @@ import com.cappielloantonio.tempo.R; import com.cappielloantonio.tempo.databinding.DialogDeleteDownloadStorageBinding; import com.cappielloantonio.tempo.interfaces.DialogClickCallback; import com.cappielloantonio.tempo.util.DownloadUtil; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; @OptIn(markerClass = UnstableApi.class) public class DeleteDownloadStorageDialog extends DialogFragment { @@ -24,7 +25,7 @@ public class DeleteDownloadStorageDialog extends DialogFragment { public Dialog onCreateDialog(Bundle savedInstanceState) { bind = DialogDeleteDownloadStorageBinding.inflate(getLayoutInflater()); - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(requireContext()); builder.setView(bind.getRoot()) .setTitle(R.string.delete_download_storage_dialog_title) @@ -47,7 +48,7 @@ public class DeleteDownloadStorageDialog extends DialogFragment { } private void setButtonAction() { - AlertDialog dialog = ((AlertDialog) getDialog()); + androidx.appcompat.app.AlertDialog dialog = (androidx.appcompat.app.AlertDialog) getDialog(); if (dialog != null) { Button positiveButton = dialog.getButton(Dialog.BUTTON_POSITIVE); diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/DownloadDirectoryDialog.java b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/DownloadDirectoryDialog.java index 24059300..87aa9a56 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/DownloadDirectoryDialog.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/DownloadDirectoryDialog.java @@ -13,6 +13,7 @@ import androidx.media3.common.util.UnstableApi; import com.cappielloantonio.tempo.R; import com.cappielloantonio.tempo.databinding.DialogDownloadDirectoryBinding; import com.cappielloantonio.tempo.interfaces.DialogClickCallback; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; @OptIn(markerClass = UnstableApi.class) public class DownloadDirectoryDialog extends DialogFragment { @@ -29,7 +30,7 @@ public class DownloadDirectoryDialog extends DialogFragment { public Dialog onCreateDialog(Bundle savedInstanceState) { bind = DialogDownloadDirectoryBinding.inflate(getLayoutInflater()); - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(requireContext()); builder.setView(bind.getRoot()) .setTitle(R.string.download_directory_dialog_title) @@ -52,7 +53,7 @@ public class DownloadDirectoryDialog extends DialogFragment { } private void setButtonAction() { - AlertDialog dialog = ((AlertDialog) getDialog()); + androidx.appcompat.app.AlertDialog dialog = (androidx.appcompat.app.AlertDialog) getDialog(); if (dialog != null) { Button positiveButton = dialog.getButton(Dialog.BUTTON_POSITIVE); diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/DownloadStorageDialog.java b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/DownloadStorageDialog.java index 476dabe1..8e9d8ddb 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/DownloadStorageDialog.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/DownloadStorageDialog.java @@ -15,6 +15,7 @@ import com.cappielloantonio.tempo.databinding.DialogDownloadStorageBinding; import com.cappielloantonio.tempo.interfaces.DialogClickCallback; import com.cappielloantonio.tempo.util.DownloadUtil; import com.cappielloantonio.tempo.util.Preferences; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; @OptIn(markerClass = UnstableApi.class) public class DownloadStorageDialog extends DialogFragment { @@ -31,7 +32,7 @@ public class DownloadStorageDialog extends DialogFragment { public Dialog onCreateDialog(Bundle savedInstanceState) { bind = DialogDownloadStorageBinding.inflate(getLayoutInflater()); - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getActivity()); builder.setView(bind.getRoot()) .setTitle(R.string.download_storage_dialog_title) @@ -54,7 +55,7 @@ public class DownloadStorageDialog extends DialogFragment { } private void setButtonAction() { - AlertDialog dialog = ((AlertDialog) getDialog()); + androidx.appcompat.app.AlertDialog dialog = (androidx.appcompat.app.AlertDialog) getDialog(); if (dialog != null) { Button positiveButton = dialog.getButton(Dialog.BUTTON_POSITIVE); diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/PlaylistChooserDialog.java b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/PlaylistChooserDialog.java index e7d1e740..de66fc0f 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/PlaylistChooserDialog.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/PlaylistChooserDialog.java @@ -17,6 +17,7 @@ import com.cappielloantonio.tempo.subsonic.models.Playlist; import com.cappielloantonio.tempo.ui.adapter.PlaylistDialogHorizontalAdapter; import com.cappielloantonio.tempo.util.Constants; import com.cappielloantonio.tempo.viewmodel.PlaylistChooserViewModel; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import java.util.Objects; @@ -32,7 +33,7 @@ public class PlaylistChooserDialog extends DialogFragment implements ClickCallba bind = DialogPlaylistChooserBinding.inflate(getLayoutInflater()); playlistChooserViewModel = new ViewModelProvider(requireActivity()).get(PlaylistChooserViewModel.class); - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getActivity()); builder.setView(bind.getRoot()) .setTitle(R.string.playlist_chooser_dialog_title) @@ -63,7 +64,8 @@ public class PlaylistChooserDialog extends DialogFragment implements ClickCallba } private void setButtonAction() { - ((AlertDialog) Objects.requireNonNull(getDialog())).getButton(AlertDialog.BUTTON_NEUTRAL).setOnClickListener(v -> { + androidx.appcompat.app.AlertDialog alertDialog = (androidx.appcompat.app.AlertDialog) Objects.requireNonNull(getDialog()); + alertDialog.getButton(androidx.appcompat.app.AlertDialog.BUTTON_NEUTRAL).setOnClickListener(v -> { Bundle bundle = new Bundle(); bundle.putParcelable(Constants.TRACK_OBJECT, playlistChooserViewModel.getSongToAdd()); diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/PlaylistEditorDialog.java b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/PlaylistEditorDialog.java index a7e09fa8..26d1fbca 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/PlaylistEditorDialog.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/PlaylistEditorDialog.java @@ -8,7 +8,6 @@ import android.content.Context; import android.os.Bundle; import android.text.TextUtils; import android.view.View; -import android.widget.Toast; import androidx.annotation.NonNull; import androidx.fragment.app.DialogFragment; @@ -25,6 +24,7 @@ import com.cappielloantonio.tempo.util.Constants; import com.cappielloantonio.tempo.util.MusicUtil; import com.cappielloantonio.tempo.util.Preferences; import com.cappielloantonio.tempo.viewmodel.PlaylistEditorViewModel; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import java.util.Collections; import java.util.Objects; @@ -47,7 +47,7 @@ public class PlaylistEditorDialog extends DialogFragment { bind = DialogPlaylistEditorBinding.inflate(getLayoutInflater()); playlistEditorViewModel = new ViewModelProvider(requireActivity()).get(PlaylistEditorViewModel.class); - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getActivity()); builder.setView(bind.getRoot()) .setTitle(R.string.playlist_editor_dialog_title) @@ -89,7 +89,9 @@ public class PlaylistEditorDialog extends DialogFragment { } private void setButtonAction() { - ((AlertDialog) Objects.requireNonNull(getDialog())).getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(v -> { + androidx.appcompat.app.AlertDialog alertDialog = (androidx.appcompat.app.AlertDialog) Objects.requireNonNull(getDialog()); + + alertDialog.getButton(androidx.appcompat.app.AlertDialog.BUTTON_POSITIVE).setOnClickListener(v -> { if (validateInput()) { if (playlistEditorViewModel.getSongToAdd() != null) { playlistEditorViewModel.createPlaylist(playlistName); @@ -101,20 +103,16 @@ public class PlaylistEditorDialog extends DialogFragment { } }); - ((AlertDialog) Objects.requireNonNull(getDialog())).getButton(AlertDialog.BUTTON_NEUTRAL).setOnClickListener(v -> { + alertDialog.getButton(androidx.appcompat.app.AlertDialog.BUTTON_NEUTRAL).setOnClickListener(v -> { playlistEditorViewModel.deletePlaylist(); dialogDismiss(); }); bind.playlistShareButton.setOnClickListener(view -> { playlistEditorViewModel.sharePlaylist().observe(requireActivity(), sharedPlaylist -> { - if (sharedPlaylist != null) { - ClipboardManager clipboardManager = (ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE); - ClipData clipData = ClipData.newPlainText(getString(R.string.app_name), sharedPlaylist.getUrl()); - clipboardManager.setPrimaryClip(clipData); - } else { - Toast.makeText(requireContext(), getString(R.string.share_unsupported_error), Toast.LENGTH_SHORT).show(); - } + ClipboardManager clipboardManager = (ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE); + ClipData clipData = ClipData.newPlainText(getString(R.string.app_name), sharedPlaylist.getUrl()); + clipboardManager.setPrimaryClip(clipData); }); }); @@ -188,6 +186,8 @@ public class PlaylistEditorDialog extends DialogFragment { private void dialogDismiss() { Objects.requireNonNull(getDialog()).dismiss(); - playlistCallback.onDismiss(); + if (playlistCallback != null) { + playlistCallback.onDismiss(); + } } } diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/PodcastChannelEditorDialog.java b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/PodcastChannelEditorDialog.java index 68ea80eb..e73d7672 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/PodcastChannelEditorDialog.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/PodcastChannelEditorDialog.java @@ -4,6 +4,7 @@ import android.app.AlertDialog; import android.app.Dialog; import android.os.Bundle; import android.text.TextUtils; +import android.widget.Button; import androidx.annotation.NonNull; import androidx.fragment.app.DialogFragment; @@ -12,9 +13,14 @@ import androidx.lifecycle.ViewModelProvider; import com.cappielloantonio.tempo.R; import com.cappielloantonio.tempo.databinding.DialogPodcastChannelEditorBinding; import com.cappielloantonio.tempo.interfaces.PodcastCallback; +import com.cappielloantonio.tempo.model.Download; +import com.cappielloantonio.tempo.util.DownloadUtil; +import com.cappielloantonio.tempo.util.MappingUtil; import com.cappielloantonio.tempo.viewmodel.PodcastChannelEditorViewModel; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import java.util.Objects; +import java.util.stream.Collectors; public class PodcastChannelEditorDialog extends DialogFragment { private DialogPodcastChannelEditorBinding bind; @@ -33,7 +39,7 @@ public class PodcastChannelEditorDialog extends DialogFragment { bind = DialogPodcastChannelEditorBinding.inflate(getLayoutInflater()); podcastChannelEditorViewModel = new ViewModelProvider(requireActivity()).get(PodcastChannelEditorViewModel.class); - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getActivity()); builder.setView(bind.getRoot()) .setTitle(R.string.podcast_channel_editor_dialog_title) @@ -58,14 +64,19 @@ public class PodcastChannelEditorDialog extends DialogFragment { } private void setButtonAction() { - ((AlertDialog) Objects.requireNonNull(getDialog())).getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(v -> { - if (validateInput()) { - podcastChannelEditorViewModel.createChannel(channelUrl); - dismissDialog(); - } - }); + androidx.appcompat.app.AlertDialog dialog = (androidx.appcompat.app.AlertDialog) getDialog(); + if (dialog != null) { + Button positiveButton = dialog.getButton(Dialog.BUTTON_POSITIVE); + positiveButton.setOnClickListener(v -> { + if (validateInput()) { + podcastChannelEditorViewModel.createChannel(channelUrl); + dismissDialog(); + } + }); + } } + private boolean validateInput() { channelUrl = Objects.requireNonNull(bind.podcastChannelRssUrlNameTextView.getText()).toString().trim(); diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/RadioEditorDialog.java b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/RadioEditorDialog.java index 98098d77..86609e5f 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/RadioEditorDialog.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/RadioEditorDialog.java @@ -15,6 +15,7 @@ import com.cappielloantonio.tempo.interfaces.RadioCallback; import com.cappielloantonio.tempo.subsonic.models.InternetRadioStation; import com.cappielloantonio.tempo.util.Constants; import com.cappielloantonio.tempo.viewmodel.RadioEditorViewModel; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import java.util.Objects; @@ -37,14 +38,27 @@ public class RadioEditorDialog extends DialogFragment { bind = DialogRadioEditorBinding.inflate(getLayoutInflater()); radioEditorViewModel = new ViewModelProvider(requireActivity()).get(RadioEditorViewModel.class); - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(requireContext()); builder.setView(bind.getRoot()) .setTitle(R.string.radio_editor_dialog_title) .setPositiveButton(R.string.radio_editor_dialog_positive_button, (dialog, id) -> { + if (validateInput()) { + if (radioEditorViewModel.getRadioToEdit() == null) { + radioEditorViewModel.createRadio(radioName, radioStreamURL, radioHomepageURL.isEmpty() ? null : radioHomepageURL); + } else { + radioEditorViewModel.updateRadio(radioName, radioStreamURL, radioHomepageURL.isEmpty() ? null : radioHomepageURL); + } + dismissDialog(); + } }) - .setNeutralButton(R.string.radio_editor_dialog_neutral_button, (dialog, id) -> dialog.cancel()) - .setNegativeButton(R.string.radio_editor_dialog_negative_button, (dialog, id) -> dialog.cancel()); + .setNeutralButton(R.string.radio_editor_dialog_neutral_button, (dialog, id) -> { + radioEditorViewModel.deleteRadio(); + dismissDialog(); + }) + .setNegativeButton(R.string.radio_editor_dialog_negative_button, (dialog, id) -> { + dialog.cancel(); + }); return builder.create(); } @@ -52,9 +66,7 @@ public class RadioEditorDialog extends DialogFragment { @Override public void onStart() { super.onStart(); - setParameterInfo(); - setButtonAction(); } @Override @@ -75,25 +87,6 @@ public class RadioEditorDialog extends DialogFragment { } } - private void setButtonAction() { - ((AlertDialog) Objects.requireNonNull(getDialog())).getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(v -> { - if (validateInput()) { - if (radioEditorViewModel.getRadioToEdit() == null) { - radioEditorViewModel.createRadio(radioName, radioStreamURL, radioHomepageURL.isEmpty() ? null : radioHomepageURL); - } else { - radioEditorViewModel.updateRadio(radioName, radioStreamURL, radioHomepageURL.isEmpty() ? null : radioHomepageURL); - } - - dismissDialog(); - } - }); - - ((AlertDialog) Objects.requireNonNull(getDialog())).getButton(AlertDialog.BUTTON_NEUTRAL).setOnClickListener(v -> { - radioEditorViewModel.deleteRadio(); - dismissDialog(); - }); - } - private boolean validateInput() { radioName = Objects.requireNonNull(bind.internetRadioStationNameTextView.getText()).toString().trim(); radioStreamURL = Objects.requireNonNull(bind.internetRadioStationStreamUrlTextView.getText()).toString().trim(); diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/RatingDialog.java b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/RatingDialog.java index 0d8d2362..947751b1 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/RatingDialog.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/RatingDialog.java @@ -12,6 +12,7 @@ import com.cappielloantonio.tempo.R; import com.cappielloantonio.tempo.databinding.DialogRatingBinding; import com.cappielloantonio.tempo.util.Constants; import com.cappielloantonio.tempo.viewmodel.RatingViewModel; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; public class RatingDialog extends DialogFragment { private static final String TAG = "ServerSignupDialog"; @@ -25,7 +26,7 @@ public class RatingDialog extends DialogFragment { bind = DialogRatingBinding.inflate(getLayoutInflater()); ratingViewModel = new ViewModelProvider(requireActivity()).get(RatingViewModel.class); - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getActivity()); builder.setView(bind.getRoot()) .setTitle(R.string.rating_dialog_title) diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/ServerSignupDialog.java b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/ServerSignupDialog.java index dc58c260..59f6d469 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/ServerSignupDialog.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/ServerSignupDialog.java @@ -14,6 +14,7 @@ import com.cappielloantonio.tempo.databinding.DialogServerSignupBinding; import com.cappielloantonio.tempo.model.Server; import com.cappielloantonio.tempo.util.MusicUtil; import com.cappielloantonio.tempo.viewmodel.LoginViewModel; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import java.util.Objects; import java.util.UUID; @@ -37,7 +38,7 @@ public class ServerSignupDialog extends DialogFragment { bind = DialogServerSignupBinding.inflate(getLayoutInflater()); - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getActivity()); builder.setView(bind.getRoot()) .setTitle(R.string.server_signup_dialog_title) @@ -49,7 +50,6 @@ public class ServerSignupDialog extends DialogFragment { return builder.create(); } - @Override public void onStart() { super.onStart(); @@ -81,14 +81,16 @@ public class ServerSignupDialog extends DialogFragment { } private void setButtonAction() { - ((AlertDialog) Objects.requireNonNull(getDialog())).getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(v -> { + androidx.appcompat.app.AlertDialog alertDialog = (androidx.appcompat.app.AlertDialog) Objects.requireNonNull(getDialog()); + + alertDialog.getButton(androidx.appcompat.app.AlertDialog.BUTTON_POSITIVE).setOnClickListener(v -> { if (validateInput()) { saveServerPreference(); Objects.requireNonNull(getDialog()).dismiss(); } }); - ((AlertDialog) Objects.requireNonNull(getDialog())).getButton(AlertDialog.BUTTON_NEUTRAL).setOnClickListener(v -> { + alertDialog.getButton(androidx.appcompat.app.AlertDialog.BUTTON_NEUTRAL).setOnClickListener(v -> { loginViewModel.deleteServer(null); Objects.requireNonNull(getDialog()).dismiss(); }); diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/ServerUnreachableDialog.java b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/ServerUnreachableDialog.java index 775819d9..a274ebce 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/ServerUnreachableDialog.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/ServerUnreachableDialog.java @@ -13,6 +13,9 @@ import com.cappielloantonio.tempo.R; import com.cappielloantonio.tempo.databinding.DialogServerUnreachableBinding; import com.cappielloantonio.tempo.ui.activity.MainActivity; import com.cappielloantonio.tempo.util.Preferences; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + +import java.util.Objects; @OptIn(markerClass = UnstableApi.class) public class ServerUnreachableDialog extends DialogFragment { @@ -25,7 +28,7 @@ public class ServerUnreachableDialog extends DialogFragment { public Dialog onCreateDialog(Bundle savedInstanceState) { bind = DialogServerUnreachableBinding.inflate(getLayoutInflater()); - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getActivity()); builder.setView(bind.getRoot()) .setTitle(R.string.server_unreachable_dialog_title) @@ -33,7 +36,7 @@ public class ServerUnreachableDialog extends DialogFragment { .setNeutralButton(R.string.server_unreachable_dialog_neutral_button, null) .setNegativeButton(R.string.server_unreachable_dialog_negative_button, (dialog, id) -> dialog.cancel()); - AlertDialog popup = builder.create(); + androidx.appcompat.app.AlertDialog popup = builder.create(); popup.setCancelable(false); popup.setCanceledOnTouchOutside(false); @@ -41,6 +44,7 @@ public class ServerUnreachableDialog extends DialogFragment { return popup; } + @Override public void onStart() { super.onStart(); @@ -55,19 +59,17 @@ public class ServerUnreachableDialog extends DialogFragment { } private void setButtonAction() { - AlertDialog dialog = (AlertDialog) getDialog(); + androidx.appcompat.app.AlertDialog alertDialog = (androidx.appcompat.app.AlertDialog) Objects.requireNonNull(getDialog()); - if(dialog != null) { - (dialog).getButton(AlertDialog.BUTTON_NEUTRAL).setOnClickListener(v -> { - MainActivity activity = (MainActivity) getActivity(); - if (activity != null) activity.quit(); - dialog.dismiss(); - }); + alertDialog.getButton(androidx.appcompat.app.AlertDialog.BUTTON_NEUTRAL).setOnClickListener(v -> { + MainActivity activity = (MainActivity) getActivity(); + if (activity != null) activity.quit(); + alertDialog.dismiss(); + }); - (dialog).getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(v -> { - Preferences.setServerUnreachableDatetime(System.currentTimeMillis()); - dialog.dismiss(); - }); - } + alertDialog.getButton(androidx.appcompat.app.AlertDialog.BUTTON_POSITIVE).setOnClickListener(v -> { + Preferences.setServerUnreachableDatetime(System.currentTimeMillis()); + alertDialog.dismiss(); + }); } } diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/ShareUpdateDialog.java b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/ShareUpdateDialog.java index c8aa2e5a..5583ac6b 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/ShareUpdateDialog.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/ShareUpdateDialog.java @@ -18,6 +18,7 @@ import com.google.android.material.datepicker.CalendarConstraints; import com.google.android.material.datepicker.DateValidatorPointForward; import com.google.android.material.datepicker.MaterialDatePicker; import com.google.android.material.datepicker.MaterialPickerOnPositiveButtonClickListener; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import java.util.Calendar; import java.util.Date; @@ -44,7 +45,7 @@ public class ShareUpdateDialog extends DialogFragment { bind = DialogShareUpdateBinding.inflate(getLayoutInflater()); - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(requireContext()); builder.setView(bind.getRoot()) .setTitle(R.string.share_update_dialog_title) diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/StarredSyncDialog.java b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/StarredSyncDialog.java index 9de6a5d9..f13a89e7 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/StarredSyncDialog.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/StarredSyncDialog.java @@ -19,6 +19,7 @@ import com.cappielloantonio.tempo.util.DownloadUtil; import com.cappielloantonio.tempo.util.MappingUtil; import com.cappielloantonio.tempo.util.Preferences; import com.cappielloantonio.tempo.viewmodel.StarredSyncViewModel; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import java.util.stream.Collectors; @@ -35,7 +36,7 @@ public class StarredSyncDialog extends DialogFragment { bind = DialogStarredSyncBinding.inflate(getLayoutInflater()); starredSyncViewModel = new ViewModelProvider(requireActivity()).get(StarredSyncViewModel.class); - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getActivity()); builder.setView(bind.getRoot()) .setTitle(R.string.starred_sync_dialog_title) @@ -45,7 +46,6 @@ public class StarredSyncDialog extends DialogFragment { return builder.create(); } - @Override public void onResume() { super.onResume(); @@ -59,7 +59,7 @@ public class StarredSyncDialog extends DialogFragment { } private void setButtonAction(Context context) { - AlertDialog dialog = ((AlertDialog) getDialog()); + androidx.appcompat.app.AlertDialog dialog = (androidx.appcompat.app.AlertDialog) getDialog(); if (dialog != null) { Button positiveButton = dialog.getButton(Dialog.BUTTON_POSITIVE); diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/TrackInfoDialog.java b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/TrackInfoDialog.java index af6d0f98..c1279a54 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/TrackInfoDialog.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/TrackInfoDialog.java @@ -14,6 +14,7 @@ import com.cappielloantonio.tempo.glide.CustomGlideRequest; import com.cappielloantonio.tempo.util.Constants; import com.cappielloantonio.tempo.util.MusicUtil; import com.cappielloantonio.tempo.util.Preferences; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; public class TrackInfoDialog extends DialogFragment { private static final String TAG = "TrackInfoDialog"; @@ -30,7 +31,7 @@ public class TrackInfoDialog extends DialogFragment { public Dialog onCreateDialog(Bundle savedInstanceState) { bind = DialogTrackInfoBinding.inflate(getLayoutInflater()); - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getActivity()); builder.setView(bind.getRoot()) .setPositiveButton(R.string.track_info_dialog_positive_button, (dialog, id) -> dialog.cancel());