Added artist and year button in AlbumPage

This commit is contained in:
CappielloAntonio 2021-05-01 17:11:09 +02:00
parent 1598e2964f
commit 7d17916a5e
4 changed files with 36 additions and 5 deletions

View file

@ -8,12 +8,15 @@ import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.view.ViewCompat;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation;
import androidx.navigation.fragment.NavHostFragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.cappielloantonio.play.App;
@ -21,6 +24,8 @@ import com.cappielloantonio.play.R;
import com.cappielloantonio.play.adapter.SongResultSearchAdapter;
import com.cappielloantonio.play.databinding.FragmentAlbumPageBinding;
import com.cappielloantonio.play.glide.CustomGlideRequest;
import com.cappielloantonio.play.model.Artist;
import com.cappielloantonio.play.model.Song;
import com.cappielloantonio.play.service.MusicPlayerRemote;
import com.cappielloantonio.play.repository.QueueRepository;
import com.cappielloantonio.play.ui.activity.MainActivity;
@ -28,6 +33,7 @@ import com.cappielloantonio.play.util.DownloadUtil;
import com.cappielloantonio.play.viewmodel.AlbumPageViewModel;
import java.util.Collections;
import java.util.Objects;
public class AlbumPageFragment extends Fragment {
private static final String TAG = "AlbumPageFragment";
@ -55,6 +61,7 @@ public class AlbumPageFragment extends Fragment {
super.onActivityCreated(savedInstanceState);
initAppBar();
initAlbumInfoTextButton();
initMusicButton();
}
@ -125,6 +132,25 @@ public class AlbumPageFragment extends Fragment {
bind.animToolbar.setNavigationOnClickListener(v -> activity.navController.navigateUp());
}
private void initAlbumInfoTextButton() {
bind.albumArtistLabel.setOnClickListener(v -> {
Artist artist = albumPageViewModel.getArtist();
if(artist != null) {
Bundle bundle = new Bundle();
bundle.putParcelable("artist_object", artist);
activity.navController.navigate(R.id.artistPageFragment, bundle);
}
else Toast.makeText(requireContext(), "Error retrieving artist", Toast.LENGTH_SHORT).show();
});
bind.albumReleaseYearLabel.setOnClickListener(v -> {
Bundle bundle = new Bundle();
bundle.putString(Song.BY_YEAR, Song.BY_YEAR);
bundle.putInt("year_object", albumPageViewModel.getAlbum().getYear());
activity.navController.navigate(R.id.songListPageFragment, bundle);
});
}
private void initMusicButton() {
albumPageViewModel.getAlbumSongLiveList().observe(requireActivity(), songs -> {
if(bind != null) {

View file

@ -7,13 +7,16 @@ import androidx.lifecycle.AndroidViewModel;
import androidx.lifecycle.LiveData;
import com.cappielloantonio.play.model.Album;
import com.cappielloantonio.play.model.Artist;
import com.cappielloantonio.play.model.Song;
import com.cappielloantonio.play.repository.ArtistRepository;
import com.cappielloantonio.play.repository.SongRepository;
import java.util.List;
public class AlbumPageViewModel extends AndroidViewModel {
private SongRepository songRepository;
private ArtistRepository artistRepository;
private LiveData<List<Song>> songLiveList;
@ -23,6 +26,7 @@ public class AlbumPageViewModel extends AndroidViewModel {
super(application);
songRepository = new SongRepository(application);
artistRepository = new ArtistRepository(application);
}
public LiveData<List<Song>> getAlbumSongLiveList() {
@ -41,4 +45,8 @@ public class AlbumPageViewModel extends AndroidViewModel {
public void setAlbum(Album album) {
this.album = album;
}
public Artist getArtist() {
return artistRepository.getArtistByID(album.getArtistId());
}
}

View file

@ -50,7 +50,6 @@
android:ellipsize="end"
android:maxLines="2"
android:singleLine="false"
android:text="American Idiot"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/album_cover_image_view"
app:layout_constraintTop_toTopOf="@+id/album_cover_image_view" />
@ -64,7 +63,6 @@
android:layout_marginEnd="16dp"
android:ellipsize="end"
android:maxLines="1"
android:text="Green Day"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/album_cover_image_view"
app:layout_constraintTop_toBottomOf="@+id/album_name_label" />
@ -76,7 +74,6 @@
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginEnd="16dp"
android:text="2004"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/album_cover_image_view"
app:layout_constraintTop_toBottomOf="@+id/album_artist_label" />

View file

@ -106,13 +106,13 @@
<style name="ShowcaseSubtitleTextView" parent="InterFontFamily">
<item name="android:textSize">14sp</item>
<item name="android:textFontWeight">500</item>
<item name="android:textColor">@color/subtitleTextColor</item>
<item name="android:textColor">@color/titleTextColor</item>
</style>
<style name="ShowcaseExtraTextView" parent="InterFontFamily">
<item name="android:textSize">12sp</item>
<item name="android:textFontWeight">400</item>
<item name="android:textColor">@color/subtitleTextColor</item>
<item name="android:textColor">@color/titleTextColor</item>
</style>
<!-- Font dei pulsanti vari presenti nell'applicazione -->