fix: reload after action

This commit is contained in:
antonio 2023-06-04 20:45:10 +02:00
parent 44a18fc5aa
commit df4ef74dd2
3 changed files with 18 additions and 4 deletions

View file

@ -79,9 +79,9 @@ public class RadioEditorDialog extends DialogFragment {
((AlertDialog) Objects.requireNonNull(getDialog())).getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(v -> { ((AlertDialog) Objects.requireNonNull(getDialog())).getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(v -> {
if (validateInput()) { if (validateInput()) {
if (radioEditorViewModel.getRadioToEdit() == null) { if (radioEditorViewModel.getRadioToEdit() == null) {
radioEditorViewModel.createRadio(radioName, radioStreamURL, radioHomepageURL); radioEditorViewModel.createRadio(radioName, radioStreamURL, radioHomepageURL.isEmpty() ? null : radioHomepageURL);
} else { } else {
radioEditorViewModel.updateRadio(radioName, radioStreamURL, radioHomepageURL); radioEditorViewModel.updateRadio(radioName, radioStreamURL, radioHomepageURL.isEmpty() ? null : radioHomepageURL);
} }
dismissDialog(); dismissDialog();

View file

@ -2,6 +2,7 @@ package com.cappielloantonio.play.ui.fragment;
import android.content.ComponentName; import android.content.ComponentName;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -17,6 +18,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import com.cappielloantonio.play.databinding.FragmentHomeTabRadioBinding; import com.cappielloantonio.play.databinding.FragmentHomeTabRadioBinding;
import com.cappielloantonio.play.interfaces.ClickCallback; import com.cappielloantonio.play.interfaces.ClickCallback;
import com.cappielloantonio.play.interfaces.RadioCallback;
import com.cappielloantonio.play.service.MediaManager; import com.cappielloantonio.play.service.MediaManager;
import com.cappielloantonio.play.service.MediaService; import com.cappielloantonio.play.service.MediaService;
import com.cappielloantonio.play.ui.activity.MainActivity; import com.cappielloantonio.play.ui.activity.MainActivity;
@ -28,7 +30,7 @@ import com.cappielloantonio.play.viewmodel.RadioViewModel;
import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListenableFuture;
@UnstableApi @UnstableApi
public class HomeTabRadioFragment extends Fragment implements ClickCallback { public class HomeTabRadioFragment extends Fragment implements ClickCallback, RadioCallback {
private static final String TAG = "HomeTabRadioFragment"; private static final String TAG = "HomeTabRadioFragment";
private FragmentHomeTabRadioBinding bind; private FragmentHomeTabRadioBinding bind;
@ -80,7 +82,7 @@ public class HomeTabRadioFragment extends Fragment implements ClickCallback {
private void init() { private void init() {
bind.internetRadioStationPreTextView.setOnClickListener(v -> { bind.internetRadioStationPreTextView.setOnClickListener(v -> {
RadioEditorDialog dialog = new RadioEditorDialog(() -> radioViewModel.getInternetRadioStations(getViewLifecycleOwner())); RadioEditorDialog dialog = new RadioEditorDialog(this);
dialog.show(activity.getSupportFragmentManager(), null); dialog.show(activity.getSupportFragmentManager(), null);
}); });
@ -133,4 +135,12 @@ public class HomeTabRadioFragment extends Fragment implements ClickCallback {
dialog.setArguments(bundle); dialog.setArguments(bundle);
dialog.show(activity.getSupportFragmentManager(), null); dialog.show(activity.getSupportFragmentManager(), null);
} }
@Override
public void onDismiss() {
new Handler().postDelayed(() -> {
if (radioViewModel != null)
radioViewModel.refreshInternetRadioStations(getViewLifecycleOwner());
}, 1000);
}
} }

View file

@ -28,4 +28,8 @@ public class RadioViewModel extends AndroidViewModel {
radioRepository.getInternetRadioStations().observe(owner, internetRadioStations::postValue); radioRepository.getInternetRadioStations().observe(owner, internetRadioStations::postValue);
return internetRadioStations; return internetRadioStations;
} }
public void refreshInternetRadioStations(LifecycleOwner owner) {
radioRepository.getInternetRadioStations().observe(owner, internetRadioStations::postValue);
}
} }