Fix crash when getting context in an observable

This commit is contained in:
CappielloAntonio 2021-09-13 11:38:52 +02:00
parent 575c77baf9
commit 3de858e3d9
3 changed files with 15 additions and 5 deletions

View file

@ -2,6 +2,7 @@ package com.cappielloantonio.play.ui.fragment.dialog;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.Dialog; import android.app.Dialog;
import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@ -47,7 +48,7 @@ public class StarredSyncDialog extends DialogFragment {
public void onStart() { public void onStart() {
super.onStart(); super.onStart();
setButtonAction(); setButtonAction(requireContext());
} }
@Override @Override
@ -56,14 +57,14 @@ public class StarredSyncDialog extends DialogFragment {
bind = null; bind = null;
} }
private void setButtonAction() { private void setButtonAction(Context context) {
((AlertDialog) Objects.requireNonNull(getDialog())).getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(getResources().getColor(R.color.colorAccent, null)); ((AlertDialog) Objects.requireNonNull(getDialog())).getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(getResources().getColor(R.color.colorAccent, null));
((AlertDialog) Objects.requireNonNull(getDialog())).getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(getResources().getColor(R.color.colorAccent, null)); ((AlertDialog) Objects.requireNonNull(getDialog())).getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(getResources().getColor(R.color.colorAccent, null));
((AlertDialog) Objects.requireNonNull(getDialog())).getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(v -> { ((AlertDialog) Objects.requireNonNull(getDialog())).getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(v -> {
starredSyncViewModel.getStarredTracks(requireActivity()).observe(requireActivity(), songs -> { starredSyncViewModel.getStarredTracks(requireActivity()).observe(requireActivity(), songs -> {
if (songs != null) { if (songs != null) {
DownloadUtil.getDownloadTracker(requireContext()).download(songs, null, null); DownloadUtil.getDownloadTracker(context).download(songs, null, null);
} }
}); });

View file

@ -13,6 +13,7 @@ import com.cappielloantonio.play.repository.QueueRepository;
import com.cappielloantonio.play.repository.SongRepository; import com.cappielloantonio.play.repository.SongRepository;
import com.cappielloantonio.play.service.MusicPlayerRemote; import com.cappielloantonio.play.service.MusicPlayerRemote;
import com.cappielloantonio.play.util.DownloadUtil; import com.cappielloantonio.play.util.DownloadUtil;
import com.cappielloantonio.play.util.PreferenceUtil;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@ -53,7 +54,10 @@ public class PlayerBottomSheetViewModel extends AndroidViewModel {
} else { } else {
songRepository.star(song.getId()); songRepository.star(song.getId());
song.setFavorite(true); song.setFavorite(true);
DownloadUtil.getDownloadTracker(context).download(Collections.singletonList(song), null, null);
if(PreferenceUtil.getInstance(context).isStarredSyncEnabled()) {
DownloadUtil.getDownloadTracker(context).download(Collections.singletonList(song), null, null);
}
} }
} }
} }

View file

@ -6,6 +6,7 @@ import android.content.Context;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.AndroidViewModel;
import androidx.lifecycle.LiveData; import androidx.lifecycle.LiveData;
import androidx.preference.Preference;
import com.cappielloantonio.play.model.Album; import com.cappielloantonio.play.model.Album;
import com.cappielloantonio.play.model.Artist; import com.cappielloantonio.play.model.Artist;
@ -14,6 +15,7 @@ import com.cappielloantonio.play.repository.AlbumRepository;
import com.cappielloantonio.play.repository.ArtistRepository; import com.cappielloantonio.play.repository.ArtistRepository;
import com.cappielloantonio.play.repository.SongRepository; import com.cappielloantonio.play.repository.SongRepository;
import com.cappielloantonio.play.util.DownloadUtil; import com.cappielloantonio.play.util.DownloadUtil;
import com.cappielloantonio.play.util.PreferenceUtil;
import java.util.Collections; import java.util.Collections;
@ -47,7 +49,10 @@ public class SongBottomSheetViewModel extends AndroidViewModel {
} else { } else {
songRepository.star(song.getId()); songRepository.star(song.getId());
song.setFavorite(true); song.setFavorite(true);
DownloadUtil.getDownloadTracker(context).download(Collections.singletonList(song), null, null);
if(PreferenceUtil.getInstance(context).isStarredSyncEnabled()) {
DownloadUtil.getDownloadTracker(context).download(Collections.singletonList(song), null, null);
}
} }
} }