mirror of
https://github.com/antebudimir/tempus.git
synced 2026-01-01 09:53:33 +00:00
feat: added ui for radio stations and podcast channels existence check
This commit is contained in:
parent
ff1fb78d4a
commit
a57487d38d
8 changed files with 589 additions and 85 deletions
|
|
@ -5,6 +5,7 @@ import android.content.res.TypedArray;
|
|||
import android.graphics.drawable.Drawable;
|
||||
import android.graphics.drawable.InsetDrawable;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
|
@ -33,8 +34,11 @@ import com.cappielloantonio.play.ui.activity.MainActivity;
|
|||
import com.cappielloantonio.play.ui.adapter.PodcastChannelHorizontalAdapter;
|
||||
import com.cappielloantonio.play.ui.adapter.PodcastEpisodeAdapter;
|
||||
import com.cappielloantonio.play.util.Constants;
|
||||
import com.cappielloantonio.play.util.Preferences;
|
||||
import com.cappielloantonio.play.util.UIUtil;
|
||||
import com.cappielloantonio.play.viewmodel.PodcastViewModel;
|
||||
import com.google.android.material.divider.MaterialDividerItemDecoration;
|
||||
import com.google.android.material.snackbar.Snackbar;
|
||||
import com.google.common.util.concurrent.ListenableFuture;
|
||||
|
||||
import java.util.Objects;
|
||||
|
|
@ -62,8 +66,6 @@ public class HomeTabPodcastFragment extends Fragment implements ClickCallback {
|
|||
View view = bind.getRoot();
|
||||
podcastViewModel = new ViewModelProvider(requireActivity()).get(PodcastViewModel.class);
|
||||
|
||||
init();
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
|
|
@ -71,6 +73,8 @@ public class HomeTabPodcastFragment extends Fragment implements ClickCallback {
|
|||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
|
||||
init();
|
||||
initPodcastView();
|
||||
initNewestPodcastsView();
|
||||
initPodcastChannelsView();
|
||||
}
|
||||
|
|
@ -96,6 +100,19 @@ public class HomeTabPodcastFragment extends Fragment implements ClickCallback {
|
|||
|
||||
private void init() {
|
||||
bind.podcastChannelsTextViewClickable.setOnClickListener(v -> activity.navController.navigate(R.id.action_homeFragment_to_podcastChannelCatalogueFragment));
|
||||
bind.hideSectionButton.setOnClickListener(v -> Preferences.setPodcastSectionHidden());
|
||||
}
|
||||
|
||||
private void initPodcastView() {
|
||||
podcastViewModel.getPodcastChannels(getViewLifecycleOwner()).observe(getViewLifecycleOwner(), podcastChannels -> {
|
||||
if (podcastChannels == null) {
|
||||
if (bind != null) bind.homePodcastChannelsSector.setVisibility(View.GONE);
|
||||
if (bind != null) bind.emptyPodcastLayout.setVisibility(View.GONE);
|
||||
} else {
|
||||
if (bind != null) bind.homePodcastChannelsSector.setVisibility(!podcastChannels.isEmpty() ? View.VISIBLE : View.GONE);
|
||||
if (bind != null) bind.emptyPodcastLayout.setVisibility(podcastChannels.isEmpty() ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void initPodcastChannelsView() {
|
||||
|
|
@ -133,8 +150,6 @@ public class HomeTabPodcastFragment extends Fragment implements ClickCallback {
|
|||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void initializeMediaBrowser() {
|
||||
mediaBrowserListenableFuture = new MediaBrowser.Builder(requireContext(), new SessionToken(requireContext(), new ComponentName(requireContext(), MediaService.class))).buildAsync();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ import com.cappielloantonio.play.ui.activity.MainActivity;
|
|||
import com.cappielloantonio.play.ui.adapter.InternetRadioStationAdapter;
|
||||
import com.cappielloantonio.play.ui.dialog.RadioEditorDialog;
|
||||
import com.cappielloantonio.play.util.Constants;
|
||||
import com.cappielloantonio.play.util.Preferences;
|
||||
import com.cappielloantonio.play.viewmodel.RadioViewModel;
|
||||
import com.google.common.util.concurrent.ListenableFuture;
|
||||
|
||||
|
|
@ -87,6 +88,8 @@ public class HomeTabRadioFragment extends Fragment implements ClickCallback {
|
|||
radioViewModel.getInternetRadioStations(getViewLifecycleOwner());
|
||||
return true;
|
||||
});
|
||||
|
||||
bind.hideSectionButton.setOnClickListener(v -> Preferences.setRadioSectionHidden());
|
||||
}
|
||||
|
||||
private void initRadioStationView() {
|
||||
|
|
@ -97,14 +100,13 @@ public class HomeTabRadioFragment extends Fragment implements ClickCallback {
|
|||
bind.internetRadioStationRecyclerView.setAdapter(internetRadioStationAdapter);
|
||||
radioViewModel.getInternetRadioStations(getViewLifecycleOwner()).observe(getViewLifecycleOwner(), internetRadioStations -> {
|
||||
if (internetRadioStations == null) {
|
||||
if (bind != null)
|
||||
bind.internetRadioStationPlaceholder.placeholder.setVisibility(View.VISIBLE);
|
||||
if (bind != null) bind.internetRadioStationSector.setVisibility(View.GONE);
|
||||
if (bind != null) bind.homeRadioStationSector.setVisibility(View.GONE);
|
||||
if (bind != null) bind.emptyRadioStationLayout.setVisibility(View.GONE);
|
||||
} else {
|
||||
if (bind != null)
|
||||
bind.internetRadioStationPlaceholder.placeholder.setVisibility(View.GONE);
|
||||
bind.homeRadioStationSector.setVisibility(!internetRadioStations.isEmpty() ? View.VISIBLE : View.GONE);
|
||||
if (bind != null)
|
||||
bind.internetRadioStationSector.setVisibility(!internetRadioStations.isEmpty() ? View.VISIBLE : View.GONE);
|
||||
bind.emptyRadioStationLayout.setVisibility(internetRadioStations.isEmpty() ? View.VISIBLE : View.GONE);
|
||||
|
||||
internetRadioStationAdapter.setItems(internetRadioStations);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -215,8 +215,18 @@ object Preferences {
|
|||
return App.getInstance().preferences.getBoolean(PODCAST_SECTION_VISIBILITY, true)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun setPodcastSectionHidden() {
|
||||
App.getInstance().preferences.edit().putBoolean(PODCAST_SECTION_VISIBILITY, false).apply()
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun isRadioSectionVisible(): Boolean {
|
||||
return App.getInstance().preferences.getBoolean(RADIO_SECTION_VISIBILITY, true)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun setRadioSectionHidden() {
|
||||
App.getInstance().preferences.edit().putBoolean(RADIO_SECTION_VISIBILITY, false).apply()
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue