diff --git a/app/src/main/java/com/cappielloantonio/play/ui/dialog/RadioEditorDialog.java b/app/src/main/java/com/cappielloantonio/play/ui/dialog/RadioEditorDialog.java index 74df8bcb..4754030d 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/dialog/RadioEditorDialog.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/dialog/RadioEditorDialog.java @@ -79,9 +79,9 @@ public class RadioEditorDialog extends DialogFragment { ((AlertDialog) Objects.requireNonNull(getDialog())).getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(v -> { if (validateInput()) { if (radioEditorViewModel.getRadioToEdit() == null) { - radioEditorViewModel.createRadio(radioName, radioStreamURL, radioHomepageURL); + radioEditorViewModel.createRadio(radioName, radioStreamURL, radioHomepageURL.isEmpty() ? null : radioHomepageURL); } else { - radioEditorViewModel.updateRadio(radioName, radioStreamURL, radioHomepageURL); + radioEditorViewModel.updateRadio(radioName, radioStreamURL, radioHomepageURL.isEmpty() ? null : radioHomepageURL); } dismissDialog(); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/HomeTabRadioFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/HomeTabRadioFragment.java index 6867be8f..faf08d6e 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/HomeTabRadioFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/HomeTabRadioFragment.java @@ -2,6 +2,7 @@ package com.cappielloantonio.play.ui.fragment; import android.content.ComponentName; import android.os.Bundle; +import android.os.Handler; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -17,6 +18,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; import com.cappielloantonio.play.databinding.FragmentHomeTabRadioBinding; import com.cappielloantonio.play.interfaces.ClickCallback; +import com.cappielloantonio.play.interfaces.RadioCallback; import com.cappielloantonio.play.service.MediaManager; import com.cappielloantonio.play.service.MediaService; import com.cappielloantonio.play.ui.activity.MainActivity; @@ -28,7 +30,7 @@ import com.cappielloantonio.play.viewmodel.RadioViewModel; import com.google.common.util.concurrent.ListenableFuture; @UnstableApi -public class HomeTabRadioFragment extends Fragment implements ClickCallback { +public class HomeTabRadioFragment extends Fragment implements ClickCallback, RadioCallback { private static final String TAG = "HomeTabRadioFragment"; private FragmentHomeTabRadioBinding bind; @@ -80,7 +82,7 @@ public class HomeTabRadioFragment extends Fragment implements ClickCallback { private void init() { bind.internetRadioStationPreTextView.setOnClickListener(v -> { - RadioEditorDialog dialog = new RadioEditorDialog(() -> radioViewModel.getInternetRadioStations(getViewLifecycleOwner())); + RadioEditorDialog dialog = new RadioEditorDialog(this); dialog.show(activity.getSupportFragmentManager(), null); }); @@ -133,4 +135,12 @@ public class HomeTabRadioFragment extends Fragment implements ClickCallback { dialog.setArguments(bundle); dialog.show(activity.getSupportFragmentManager(), null); } + + @Override + public void onDismiss() { + new Handler().postDelayed(() -> { + if (radioViewModel != null) + radioViewModel.refreshInternetRadioStations(getViewLifecycleOwner()); + }, 1000); + } } diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/RadioViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/RadioViewModel.java index f4ce7c51..fdafde08 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/RadioViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/RadioViewModel.java @@ -28,4 +28,8 @@ public class RadioViewModel extends AndroidViewModel { radioRepository.getInternetRadioStations().observe(owner, internetRadioStations::postValue); return internetRadioStations; } + + public void refreshInternetRadioStations(LifecycleOwner owner) { + radioRepository.getInternetRadioStations().observe(owner, internetRadioStations::postValue); + } }