mirror of
https://github.com/antebudimir/tempus.git
synced 2025-12-31 17:43:32 +00:00
Set track number inside the track adapter in AlbumPageFragment
This commit is contained in:
parent
9ae9873326
commit
d78668d6c5
11 changed files with 50 additions and 14 deletions
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
|
|
@ -69,7 +69,7 @@
|
||||||
<entry key="app/src/main/res/layout/item_horizontal_artist.xml" value="0.3229166666666667" />
|
<entry key="app/src/main/res/layout/item_horizontal_artist.xml" value="0.3229166666666667" />
|
||||||
<entry key="app/src/main/res/layout/item_horizontal_playlist.xml" value="0.3229166666666667" />
|
<entry key="app/src/main/res/layout/item_horizontal_playlist.xml" value="0.3229166666666667" />
|
||||||
<entry key="app/src/main/res/layout/item_horizontal_playlist_dialog_track.xml" value="0.3229166666666667" />
|
<entry key="app/src/main/res/layout/item_horizontal_playlist_dialog_track.xml" value="0.3229166666666667" />
|
||||||
<entry key="app/src/main/res/layout/item_horizontal_track.xml" value="4.0" />
|
<entry key="app/src/main/res/layout/item_horizontal_track.xml" value="0.5557163531114327" />
|
||||||
<entry key="app/src/main/res/layout/item_library_album.xml" value="0.3229166666666667" />
|
<entry key="app/src/main/res/layout/item_library_album.xml" value="0.3229166666666667" />
|
||||||
<entry key="app/src/main/res/layout/item_library_genre.xml" value="0.3229166666666667" />
|
<entry key="app/src/main/res/layout/item_library_genre.xml" value="0.3229166666666667" />
|
||||||
<entry key="app/src/main/res/layout/item_login_server.xml" value="0.25" />
|
<entry key="app/src/main/res/layout/item_login_server.xml" value="0.25" />
|
||||||
|
|
|
||||||
|
|
@ -34,14 +34,16 @@ public class SongHorizontalAdapter extends RecyclerView.Adapter<SongHorizontalAd
|
||||||
private final MainActivity mainActivity;
|
private final MainActivity mainActivity;
|
||||||
private final Context context;
|
private final Context context;
|
||||||
private final LayoutInflater mInflater;
|
private final LayoutInflater mInflater;
|
||||||
|
private final boolean isCoverVisible;
|
||||||
|
|
||||||
private List<Song> songs;
|
private List<Song> songs;
|
||||||
|
|
||||||
public SongHorizontalAdapter(MainActivity mainActivity, Context context) {
|
public SongHorizontalAdapter(MainActivity mainActivity, Context context, boolean isCoverVisible) {
|
||||||
this.mainActivity = mainActivity;
|
this.mainActivity = mainActivity;
|
||||||
this.context = context;
|
this.context = context;
|
||||||
this.mInflater = LayoutInflater.from(context);
|
this.mInflater = LayoutInflater.from(context);
|
||||||
this.songs = new ArrayList<>();
|
this.songs = new ArrayList<>();
|
||||||
|
this.isCoverVisible = isCoverVisible;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
|
|
@ -58,6 +60,7 @@ public class SongHorizontalAdapter extends RecyclerView.Adapter<SongHorizontalAd
|
||||||
holder.songTitle.setText(MusicUtil.getReadableString(song.getTitle()));
|
holder.songTitle.setText(MusicUtil.getReadableString(song.getTitle()));
|
||||||
holder.songArtist.setText(MusicUtil.getReadableString(song.getArtistName()));
|
holder.songArtist.setText(MusicUtil.getReadableString(song.getArtistName()));
|
||||||
holder.songDuration.setText(MusicUtil.getReadableDurationString(song.getDuration(), false));
|
holder.songDuration.setText(MusicUtil.getReadableDurationString(song.getDuration(), false));
|
||||||
|
holder.trackNumber.setText(String.valueOf(song.getTrackNumber()));
|
||||||
|
|
||||||
if (DownloadUtil.getDownloadTracker(context).isDownloaded(song)) {
|
if (DownloadUtil.getDownloadTracker(context).isDownloaded(song)) {
|
||||||
holder.downloadIndicator.setVisibility(View.VISIBLE);
|
holder.downloadIndicator.setVisibility(View.VISIBLE);
|
||||||
|
|
@ -65,11 +68,15 @@ public class SongHorizontalAdapter extends RecyclerView.Adapter<SongHorizontalAd
|
||||||
holder.downloadIndicator.setVisibility(View.GONE);
|
holder.downloadIndicator.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
CustomGlideRequest.Builder
|
if(isCoverVisible) CustomGlideRequest.Builder
|
||||||
.from(context, song.getPrimary(), CustomGlideRequest.SONG_PIC, null)
|
.from(context, song.getPrimary(), CustomGlideRequest.SONG_PIC, null)
|
||||||
.build()
|
.build()
|
||||||
.transform(new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
|
.transform(new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
|
||||||
.into(holder.cover);
|
.into(holder.cover);
|
||||||
|
|
||||||
|
if(isCoverVisible) holder.trackNumber.setVisibility(View.INVISIBLE);
|
||||||
|
|
||||||
|
if(!isCoverVisible) holder.cover.setVisibility(View.INVISIBLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -90,7 +97,9 @@ public class SongHorizontalAdapter extends RecyclerView.Adapter<SongHorizontalAd
|
||||||
TextView songTitle;
|
TextView songTitle;
|
||||||
TextView songArtist;
|
TextView songArtist;
|
||||||
TextView songDuration;
|
TextView songDuration;
|
||||||
|
TextView trackNumber;
|
||||||
View downloadIndicator;
|
View downloadIndicator;
|
||||||
|
View coverSeparator;
|
||||||
ImageView more;
|
ImageView more;
|
||||||
ImageView cover;
|
ImageView cover;
|
||||||
|
|
||||||
|
|
@ -100,9 +109,11 @@ public class SongHorizontalAdapter extends RecyclerView.Adapter<SongHorizontalAd
|
||||||
songTitle = itemView.findViewById(R.id.search_result_song_title_text_view);
|
songTitle = itemView.findViewById(R.id.search_result_song_title_text_view);
|
||||||
songArtist = itemView.findViewById(R.id.album_artist_text_view);
|
songArtist = itemView.findViewById(R.id.album_artist_text_view);
|
||||||
songDuration = itemView.findViewById(R.id.search_result_song_duration_text_view);
|
songDuration = itemView.findViewById(R.id.search_result_song_duration_text_view);
|
||||||
|
trackNumber = itemView.findViewById(R.id.track_number_text_view);
|
||||||
downloadIndicator = itemView.findViewById(R.id.search_result_dowanload_indicator_image_view);
|
downloadIndicator = itemView.findViewById(R.id.search_result_dowanload_indicator_image_view);
|
||||||
more = itemView.findViewById(R.id.search_result_song_more_button);
|
more = itemView.findViewById(R.id.search_result_song_more_button);
|
||||||
cover = itemView.findViewById(R.id.song_cover_image_view);
|
cover = itemView.findViewById(R.id.song_cover_image_view);
|
||||||
|
coverSeparator = itemView.findViewById(R.id.cover_image_separator);
|
||||||
|
|
||||||
itemView.setOnClickListener(this);
|
itemView.setOnClickListener(this);
|
||||||
itemView.setOnLongClickListener(this);
|
itemView.setOnLongClickListener(this);
|
||||||
|
|
|
||||||
|
|
@ -187,7 +187,7 @@ public class AlbumPageFragment extends Fragment {
|
||||||
bind.songRecyclerView.setLayoutManager(new LinearLayoutManager(requireContext()));
|
bind.songRecyclerView.setLayoutManager(new LinearLayoutManager(requireContext()));
|
||||||
bind.songRecyclerView.setHasFixedSize(true);
|
bind.songRecyclerView.setHasFixedSize(true);
|
||||||
|
|
||||||
songHorizontalAdapter = new SongHorizontalAdapter(activity, requireContext());
|
songHorizontalAdapter = new SongHorizontalAdapter(activity, requireContext(), false);
|
||||||
bind.songRecyclerView.setAdapter(songHorizontalAdapter);
|
bind.songRecyclerView.setAdapter(songHorizontalAdapter);
|
||||||
|
|
||||||
albumPageViewModel.getAlbumSongLiveList().observe(requireActivity(), songs -> {
|
albumPageViewModel.getAlbumSongLiveList().observe(requireActivity(), songs -> {
|
||||||
|
|
|
||||||
|
|
@ -180,7 +180,7 @@ public class ArtistPageFragment extends Fragment {
|
||||||
private void initTopSongsView() {
|
private void initTopSongsView() {
|
||||||
bind.mostStreamedSongRecyclerView.setLayoutManager(new LinearLayoutManager(requireContext()));
|
bind.mostStreamedSongRecyclerView.setLayoutManager(new LinearLayoutManager(requireContext()));
|
||||||
|
|
||||||
songHorizontalAdapter = new SongHorizontalAdapter(activity, requireContext());
|
songHorizontalAdapter = new SongHorizontalAdapter(activity, requireContext(), true);
|
||||||
bind.mostStreamedSongRecyclerView.setAdapter(songHorizontalAdapter);
|
bind.mostStreamedSongRecyclerView.setAdapter(songHorizontalAdapter);
|
||||||
artistPageViewModel.getArtistTopSongList(10).observe(requireActivity(), songs -> {
|
artistPageViewModel.getArtistTopSongList(10).observe(requireActivity(), songs -> {
|
||||||
if (bind != null) bind.artistPageTopSongsSector.setVisibility(!songs.isEmpty() ? View.VISIBLE : View.GONE);
|
if (bind != null) bind.artistPageTopSongsSector.setVisibility(!songs.isEmpty() ? View.VISIBLE : View.GONE);
|
||||||
|
|
|
||||||
|
|
@ -216,7 +216,7 @@ public class DownloadFragment extends Fragment {
|
||||||
private void initDownloadedSongView() {
|
private void initDownloadedSongView() {
|
||||||
bind.downloadedTracksRecyclerView.setHasFixedSize(true);
|
bind.downloadedTracksRecyclerView.setHasFixedSize(true);
|
||||||
|
|
||||||
downloadedTrackAdapter = new SongHorizontalAdapter(activity, requireContext());
|
downloadedTrackAdapter = new SongHorizontalAdapter(activity, requireContext(), true);
|
||||||
bind.downloadedTracksRecyclerView.setAdapter(downloadedTrackAdapter);
|
bind.downloadedTracksRecyclerView.setAdapter(downloadedTrackAdapter);
|
||||||
downloadViewModel.getDownloadedTracks(requireActivity(), 20).observe(requireActivity(), songs -> {
|
downloadViewModel.getDownloadedTracks(requireActivity(), 20).observe(requireActivity(), songs -> {
|
||||||
if (songs == null) {
|
if (songs == null) {
|
||||||
|
|
|
||||||
|
|
@ -336,7 +336,7 @@ public class HomeFragment extends Fragment {
|
||||||
private void initStarredTracksView() {
|
private void initStarredTracksView() {
|
||||||
bind.starredTracksRecyclerView.setHasFixedSize(true);
|
bind.starredTracksRecyclerView.setHasFixedSize(true);
|
||||||
|
|
||||||
starredSongAdapter = new SongHorizontalAdapter(activity, requireContext());
|
starredSongAdapter = new SongHorizontalAdapter(activity, requireContext(), true);
|
||||||
bind.starredTracksRecyclerView.setAdapter(starredSongAdapter);
|
bind.starredTracksRecyclerView.setAdapter(starredSongAdapter);
|
||||||
homeViewModel.getStarredTracks(requireActivity()).observe(requireActivity(), songs -> {
|
homeViewModel.getStarredTracks(requireActivity()).observe(requireActivity(), songs -> {
|
||||||
if (songs == null) {
|
if (songs == null) {
|
||||||
|
|
|
||||||
|
|
@ -154,7 +154,7 @@ public class PlaylistPageFragment extends Fragment {
|
||||||
bind.songRecyclerView.setLayoutManager(new LinearLayoutManager(requireContext()));
|
bind.songRecyclerView.setLayoutManager(new LinearLayoutManager(requireContext()));
|
||||||
bind.songRecyclerView.setHasFixedSize(true);
|
bind.songRecyclerView.setHasFixedSize(true);
|
||||||
|
|
||||||
songHorizontalAdapter = new SongHorizontalAdapter(activity, requireContext());
|
songHorizontalAdapter = new SongHorizontalAdapter(activity, requireContext(), true);
|
||||||
bind.songRecyclerView.setAdapter(songHorizontalAdapter);
|
bind.songRecyclerView.setAdapter(songHorizontalAdapter);
|
||||||
|
|
||||||
playlistPageViewModel.getPlaylistSongLiveList().observe(requireActivity(), songs -> {
|
playlistPageViewModel.getPlaylistSongLiveList().observe(requireActivity(), songs -> {
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,7 @@ public class SearchFragment extends Fragment {
|
||||||
bind.searchResultTracksRecyclerView.setLayoutManager(new LinearLayoutManager(requireContext()));
|
bind.searchResultTracksRecyclerView.setLayoutManager(new LinearLayoutManager(requireContext()));
|
||||||
bind.searchResultTracksRecyclerView.setHasFixedSize(true);
|
bind.searchResultTracksRecyclerView.setHasFixedSize(true);
|
||||||
|
|
||||||
songHorizontalAdapter = new SongHorizontalAdapter(activity, requireContext());
|
songHorizontalAdapter = new SongHorizontalAdapter(activity, requireContext(), true);
|
||||||
bind.searchResultTracksRecyclerView.setAdapter(songHorizontalAdapter);
|
bind.searchResultTracksRecyclerView.setAdapter(songHorizontalAdapter);
|
||||||
|
|
||||||
// Albums
|
// Albums
|
||||||
|
|
|
||||||
|
|
@ -141,7 +141,7 @@ public class SongListPageFragment extends Fragment {
|
||||||
bind.songListRecyclerView.setLayoutManager(new LinearLayoutManager(requireContext()));
|
bind.songListRecyclerView.setLayoutManager(new LinearLayoutManager(requireContext()));
|
||||||
bind.songListRecyclerView.setHasFixedSize(true);
|
bind.songListRecyclerView.setHasFixedSize(true);
|
||||||
|
|
||||||
songHorizontalAdapter = new SongHorizontalAdapter(activity, requireContext());
|
songHorizontalAdapter = new SongHorizontalAdapter(activity, requireContext(), true);
|
||||||
bind.songListRecyclerView.setAdapter(songHorizontalAdapter);
|
bind.songListRecyclerView.setAdapter(songHorizontalAdapter);
|
||||||
songListPageViewModel.getSongList(requireActivity()).observe(requireActivity(), songs -> songHorizontalAdapter.setItems(songs));
|
songListPageViewModel.getSongList(requireActivity()).observe(requireActivity(), songs -> songHorizontalAdapter.setItems(songs));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,26 @@
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/track_number_text_view"
|
||||||
|
style="@style/TrackNumberTextView"
|
||||||
|
android:layout_width="52dp"
|
||||||
|
android:layout_height="52dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:layout_margin="2dp"
|
||||||
|
android:text="1"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:id="@+id/cover_image_separator"
|
||||||
|
android:layout_width="12dp"
|
||||||
|
android:layout_height="52dp"
|
||||||
|
app:layout_constraintEnd_toStartOf="@+id/search_result_song_title_text_view"
|
||||||
|
app:layout_constraintStart_toEndOf="@+id/song_cover_image_view"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/search_result_song_title_text_view"
|
android:id="@+id/search_result_song_title_text_view"
|
||||||
style="@style/ItemTitleTextView"
|
style="@style/ItemTitleTextView"
|
||||||
|
|
@ -28,14 +48,13 @@
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:focusableInTouchMode="true"
|
android:focusableInTouchMode="true"
|
||||||
android:marqueeRepeatLimit="marquee_forever"
|
android:marqueeRepeatLimit="marquee_forever"
|
||||||
android:paddingStart="12dp"
|
|
||||||
android:paddingTop="10dp"
|
android:paddingTop="10dp"
|
||||||
android:paddingEnd="12dp"
|
android:paddingEnd="12dp"
|
||||||
android:scrollHorizontally="true"
|
android:scrollHorizontally="true"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
android:text="@string/label_placeholder"
|
android:text="@string/label_placeholder"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/search_result_dowanload_indicator_image_view"
|
app:layout_constraintEnd_toStartOf="@+id/search_result_dowanload_indicator_image_view"
|
||||||
app:layout_constraintStart_toEndOf="@+id/song_cover_image_view"
|
app:layout_constraintStart_toEndOf="@+id/cover_image_separator"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
|
@ -46,7 +65,7 @@
|
||||||
app:layout_constrainedWidth="true"
|
app:layout_constrainedWidth="true"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/search_result_dowanload_indicator_image_view"
|
app:layout_constraintEnd_toStartOf="@+id/search_result_dowanload_indicator_image_view"
|
||||||
app:layout_constraintHorizontal_bias="0.0"
|
app:layout_constraintHorizontal_bias="0.0"
|
||||||
app:layout_constraintStart_toEndOf="@+id/song_cover_image_view"
|
app:layout_constraintStart_toEndOf="@+id/cover_image_separator"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/search_result_song_title_text_view">
|
app:layout_constraintTop_toBottomOf="@+id/search_result_song_title_text_view">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
@ -57,7 +76,6 @@
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:ellipsize="end"
|
android:ellipsize="end"
|
||||||
android:maxLines="1"
|
android:maxLines="1"
|
||||||
android:paddingStart="12dp"
|
|
||||||
android:paddingEnd="4dp"
|
android:paddingEnd="4dp"
|
||||||
android:text="@string/label_placeholder" />
|
android:text="@string/label_placeholder" />
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -136,4 +136,11 @@
|
||||||
<item name="android:textFontWeight">700</item>
|
<item name="android:textFontWeight">700</item>
|
||||||
<item name="android:textColor">@color/darkIconColor</item>
|
<item name="android:textColor">@color/darkIconColor</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<!-- Font utilizzato nel conteggio delle canzoni nella visualizzazione per album -->
|
||||||
|
<style name="TrackNumberTextView" parent="InterFontFamily">
|
||||||
|
<item name="android:textSize">18sp</item>
|
||||||
|
<item name="android:textFontWeight">700</item>
|
||||||
|
<item name="android:textColor">@color/titleTextColor</item>
|
||||||
|
</style>
|
||||||
</resources>
|
</resources>
|
||||||
Loading…
Add table
Add a link
Reference in a new issue