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.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@ -47,7 +48,7 @@ public class StarredSyncDialog extends DialogFragment {
public void onStart() {
super.onStart();
setButtonAction();
setButtonAction(requireContext());
}
@Override
@ -56,14 +57,14 @@ public class StarredSyncDialog extends DialogFragment {
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_NEGATIVE).setTextColor(getResources().getColor(R.color.colorAccent, null));
((AlertDialog) Objects.requireNonNull(getDialog())).getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(v -> {
starredSyncViewModel.getStarredTracks(requireActivity()).observe(requireActivity(), songs -> {
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.service.MusicPlayerRemote;
import com.cappielloantonio.play.util.DownloadUtil;
import com.cappielloantonio.play.util.PreferenceUtil;
import java.util.Collections;
import java.util.List;
@ -53,7 +54,10 @@ public class PlayerBottomSheetViewModel extends AndroidViewModel {
} else {
songRepository.star(song.getId());
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.lifecycle.AndroidViewModel;
import androidx.lifecycle.LiveData;
import androidx.preference.Preference;
import com.cappielloantonio.play.model.Album;
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.SongRepository;
import com.cappielloantonio.play.util.DownloadUtil;
import com.cappielloantonio.play.util.PreferenceUtil;
import java.util.Collections;
@ -47,7 +49,10 @@ public class SongBottomSheetViewModel extends AndroidViewModel {
} else {
songRepository.star(song.getId());
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);
}
}
}