mirror of
https://github.com/CappielloAntonio/tempo.git
synced 2026-02-05 16:43:07 +00:00
Added download button in album page
This commit is contained in:
@@ -1,18 +1,10 @@
|
|||||||
package com.cappielloantonio.play.ui.fragment;
|
package com.cappielloantonio.play.ui.fragment;
|
||||||
|
|
||||||
import android.graphics.PorterDuff;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.util.Log;
|
|
||||||
import android.view.ContextMenu;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
|
||||||
import android.view.MenuInflater;
|
|
||||||
import android.view.MenuItem;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.core.view.ViewCompat;
|
import androidx.core.view.ViewCompat;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
@@ -20,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider;
|
|||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
import com.cappielloantonio.play.App;
|
import com.cappielloantonio.play.App;
|
||||||
import com.cappielloantonio.play.R;
|
|
||||||
import com.cappielloantonio.play.adapter.SongResultSearchAdapter;
|
import com.cappielloantonio.play.adapter.SongResultSearchAdapter;
|
||||||
import com.cappielloantonio.play.databinding.FragmentAlbumPageBinding;
|
import com.cappielloantonio.play.databinding.FragmentAlbumPageBinding;
|
||||||
import com.cappielloantonio.play.glide.CustomGlideRequest;
|
import com.cappielloantonio.play.glide.CustomGlideRequest;
|
||||||
import com.cappielloantonio.play.helper.MusicPlayerRemote;
|
import com.cappielloantonio.play.helper.MusicPlayerRemote;
|
||||||
import com.cappielloantonio.play.repository.QueueRepository;
|
import com.cappielloantonio.play.repository.QueueRepository;
|
||||||
import com.cappielloantonio.play.ui.activities.MainActivity;
|
import com.cappielloantonio.play.ui.activities.MainActivity;
|
||||||
|
import com.cappielloantonio.play.util.DownloadUtil;
|
||||||
import com.cappielloantonio.play.viewmodel.AlbumPageViewModel;
|
import com.cappielloantonio.play.viewmodel.AlbumPageViewModel;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@@ -56,6 +48,7 @@ public class AlbumPageFragment extends Fragment {
|
|||||||
albumPageViewModel = new ViewModelProvider(requireActivity()).get(AlbumPageViewModel.class);
|
albumPageViewModel = new ViewModelProvider(requireActivity()).get(AlbumPageViewModel.class);
|
||||||
|
|
||||||
init();
|
init();
|
||||||
|
initDownloadButton();
|
||||||
initBackCover();
|
initBackCover();
|
||||||
initSongsView();
|
initSongsView();
|
||||||
|
|
||||||
@@ -78,6 +71,10 @@ public class AlbumPageFragment extends Fragment {
|
|||||||
albumPageViewModel.setAlbum(getArguments().getParcelable("album_object"));
|
albumPageViewModel.setAlbum(getArguments().getParcelable("album_object"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void initDownloadButton() {
|
||||||
|
bind.downloadIconButton.setOnClickListener(v -> DownloadUtil.getDownloadTracker(requireContext()).toggleDownload(albumPageViewModel.getAlbumSongList()));
|
||||||
|
}
|
||||||
|
|
||||||
private void initAppBar() {
|
private void initAppBar() {
|
||||||
activity.setSupportActionBar(bind.animToolbar);
|
activity.setSupportActionBar(bind.animToolbar);
|
||||||
|
|
||||||
@@ -90,7 +87,7 @@ public class AlbumPageFragment extends Fragment {
|
|||||||
bind.albumArtistLabel.setText(albumPageViewModel.getAlbum().getArtistName());
|
bind.albumArtistLabel.setText(albumPageViewModel.getAlbum().getArtistName());
|
||||||
bind.albumReleaseYearLabel.setText(albumPageViewModel.getAlbum().getYear() != 0 ? String.valueOf(albumPageViewModel.getAlbum().getYear()) : "");
|
bind.albumReleaseYearLabel.setText(albumPageViewModel.getAlbum().getYear() != 0 ? String.valueOf(albumPageViewModel.getAlbum().getYear()) : "");
|
||||||
|
|
||||||
albumPageViewModel.getAlbumSongList().observe(requireActivity(), songs -> {
|
albumPageViewModel.getAlbumSongLiveList().observe(requireActivity(), songs -> {
|
||||||
if(bind != null) {
|
if(bind != null) {
|
||||||
bind.albumPagePlayButton.setOnClickListener(v -> {
|
bind.albumPagePlayButton.setOnClickListener(v -> {
|
||||||
QueueRepository queueRepository = new QueueRepository(App.getInstance());
|
QueueRepository queueRepository = new QueueRepository(App.getInstance());
|
||||||
@@ -141,7 +138,7 @@ public class AlbumPageFragment extends Fragment {
|
|||||||
songResultSearchAdapter = new SongResultSearchAdapter(activity, requireContext(), getChildFragmentManager());
|
songResultSearchAdapter = new SongResultSearchAdapter(activity, requireContext(), getChildFragmentManager());
|
||||||
bind.songRecyclerView.setAdapter(songResultSearchAdapter);
|
bind.songRecyclerView.setAdapter(songResultSearchAdapter);
|
||||||
|
|
||||||
albumPageViewModel.getAlbumSongList().observe(requireActivity(), songs -> {
|
albumPageViewModel.getAlbumSongLiveList().observe(requireActivity(), songs -> {
|
||||||
songResultSearchAdapter.setItems(songs);
|
songResultSearchAdapter.setItems(songs);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,9 +7,7 @@ import androidx.lifecycle.AndroidViewModel;
|
|||||||
import androidx.lifecycle.LiveData;
|
import androidx.lifecycle.LiveData;
|
||||||
|
|
||||||
import com.cappielloantonio.play.model.Album;
|
import com.cappielloantonio.play.model.Album;
|
||||||
import com.cappielloantonio.play.model.Artist;
|
|
||||||
import com.cappielloantonio.play.model.Song;
|
import com.cappielloantonio.play.model.Song;
|
||||||
import com.cappielloantonio.play.repository.AlbumRepository;
|
|
||||||
import com.cappielloantonio.play.repository.SongRepository;
|
import com.cappielloantonio.play.repository.SongRepository;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -17,7 +15,7 @@ import java.util.List;
|
|||||||
public class AlbumPageViewModel extends AndroidViewModel {
|
public class AlbumPageViewModel extends AndroidViewModel {
|
||||||
private SongRepository songRepository;
|
private SongRepository songRepository;
|
||||||
|
|
||||||
private LiveData<List<Song>> songList;
|
private LiveData<List<Song>> songLiveList;
|
||||||
|
|
||||||
private Album album;
|
private Album album;
|
||||||
|
|
||||||
@@ -27,9 +25,13 @@ public class AlbumPageViewModel extends AndroidViewModel {
|
|||||||
songRepository = new SongRepository(application);
|
songRepository = new SongRepository(application);
|
||||||
}
|
}
|
||||||
|
|
||||||
public LiveData<List<Song>> getAlbumSongList() {
|
public LiveData<List<Song>> getAlbumSongLiveList() {
|
||||||
songList = songRepository.getAlbumListLiveSong(album.getId());
|
songLiveList = songRepository.getAlbumListLiveSong(album.getId());
|
||||||
return songList;
|
return songLiveList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Song> getAlbumSongList() {
|
||||||
|
return songRepository.getAlbumListSong(album.getId(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Album getAlbum() {
|
public Album getAlbum() {
|
||||||
|
|||||||
Reference in New Issue
Block a user