diff --git a/app/src/main/java/com/cappielloantonio/tempo/subsonic/models/ItemDate.kt b/app/src/main/java/com/cappielloantonio/tempo/subsonic/models/ItemDate.kt index e32e9842..3a77e93f 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/subsonic/models/ItemDate.kt +++ b/app/src/main/java/com/cappielloantonio/tempo/subsonic/models/ItemDate.kt @@ -14,11 +14,20 @@ open class ItemDate : Parcelable { var month: Int? = null var day: Int? = null - fun getFormattedDate(): String { - val calendar = Calendar.getInstance() - val dateFormat = SimpleDateFormat("MMMM dd, yyyy", Locale.getDefault()) + fun getFormattedDate(): String? { + if (year == null && month == null && day == null) return null - calendar.set(year ?: 0, month ?: 0, day ?: 0) + val calendar = Calendar.getInstance() + val dateFormat = if (month == null && day == null) { + SimpleDateFormat("yyyy", Locale.getDefault()) + } else if (day == null) { + SimpleDateFormat("MMMM yyyy", Locale.getDefault()) + } + else{ + SimpleDateFormat("MMMM dd, yyyy", Locale.getDefault()) + } + + calendar.set(year ?: 0, month ?: 1, day ?: 1) // Default to 1 if day is null return dateFormat.format(calendar.time) } diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/AlbumPageFragment.java b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/AlbumPageFragment.java index f830888e..83bc8ece 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/AlbumPageFragment.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/AlbumPageFragment.java @@ -149,13 +149,16 @@ public class AlbumPageFragment extends Fragment implements ClickCallback { bind.albumGenresTextview.setText(album.getGenre()); if (album.getReleaseDate() != null && album.getOriginalReleaseDate() != null) { - bind.albumReleaseYearsTextview.setVisibility(View.VISIBLE); + if (album.getReleaseDate().getFormattedDate() != null || album.getOriginalReleaseDate().getFormattedDate() != null) + bind.albumReleaseYearsTextview.setVisibility(View.VISIBLE); + else + bind.albumReleaseYearsTextview.setVisibility(View.GONE); - if (album.getReleaseDate() == null || album.getOriginalReleaseDate() == null) { + if (album.getReleaseDate().getFormattedDate() == null || album.getOriginalReleaseDate().getFormattedDate() == null) { bind.albumReleaseYearsTextview.setText(getString(R.string.album_page_release_date_label, album.getReleaseDate() != null ? album.getReleaseDate().getFormattedDate() : album.getOriginalReleaseDate().getFormattedDate())); } - if (album.getReleaseDate() != null && album.getOriginalReleaseDate() != null) { + if (album.getReleaseDate().getFormattedDate() != null && album.getOriginalReleaseDate().getFormattedDate() != null) { if (Objects.equals(album.getReleaseDate().getYear(), album.getOriginalReleaseDate().getYear()) && Objects.equals(album.getReleaseDate().getMonth(), album.getOriginalReleaseDate().getMonth()) && Objects.equals(album.getReleaseDate().getDay(), album.getOriginalReleaseDate().getDay())) { bind.albumReleaseYearsTextview.setText(getString(R.string.album_page_release_date_label, album.getReleaseDate().getFormattedDate())); } else {