Skip to content

Redesign artist#105

Merged
koiverse merged 5 commits intodevfrom
redesignArtist
Nov 25, 2025
Merged

Redesign artist#105
koiverse merged 5 commits intodevfrom
redesignArtist

Conversation

@koiverse
Copy link
Copy Markdown
Owner

No description provided.

Copilot AI review requested due to automatic review settings November 25, 2025 13:06
@koiverse koiverse merged commit 7b1da0b into dev Nov 25, 2025
8 checks passed
@koiverse koiverse deleted the redesignArtist branch November 25, 2025 13:07
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR redesigns the artist screen with a modernized UI featuring circular artist images, gradient backgrounds extracted from artist thumbnails, improved button layouts, statistics display, and enhanced content organization with "view all" functionality.

  • Adds string resources for "view_all" and "more" in multiple languages (English, Korean, Japanese, Indonesian, French, German)
  • Redesigns artist screen with circular image, mesh gradient background, parallax effects, and improved layout
  • Implements palette-based gradient extraction for visual enhancement

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
app/src/main/res/values/strings.xml Adds "view_all" and "more" string resources
app/src/main/res/values-ko/strings.xml Korean translations for new strings
app/src/main/res/values-ja/strings.xml Japanese translations for new strings
app/src/main/res/values-in-rID/strings.xml Indonesian translations for new strings
app/src/main/res/values-fr/strings.xml French translations for new strings
app/src/main/res/values-de-rDE/strings.xml German translations for new strings
app/src/main/kotlin/moe/koiverse/archivetune/ui/screens/artist/ArtistScreen.kt Complete redesign of artist screen UI with new visual effects, circular images, gradient backgrounds, stats display, and improved layout

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

)
}
},
onLongClick = {},
Copy link

Copilot AI Nov 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Empty onLongClick handler serves no purpose. If long-click functionality is not needed, remove this parameter. If it's meant to prevent parent handlers from triggering, add a comment explaining this intent.

Suggested change
onLongClick = {},

Copilot uses AI. Check for mistakes.
)
}
},
onLongClick = {},
Copy link

Copilot AI Nov 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Empty onLongClick handler serves no purpose. If long-click functionality is not needed, remove this parameter. If it's meant to prevent parent handlers from triggering, add a comment explaining this intent.

Suggested change
onLongClick = {},

Copilot uses AI. Check for mistakes.
Toast.makeText(context, R.string.link_copied, Toast.LENGTH_SHORT).show()
}
},
onLongClick = {},
Copy link

Copilot AI Nov 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Empty onLongClick handler serves no purpose. If long-click functionality is not needed, remove this parameter. If it's meant to prevent parent handlers from triggering, add a comment explaining this intent.

Suggested change
onLongClick = {},

Copilot uses AI. Check for mistakes.
}
context.startActivity(Intent.createChooser(shareIntent, null))
},
onLongClick = {},
Copy link

Copilot AI Nov 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Empty onLongClick handler serves no purpose. If long-click functionality is not needed, remove this parameter. If it's meant to prevent parent handlers from triggering, add a comment explaining this intent.

Suggested change
onLongClick = {},

Copilot uses AI. Check for mistakes.
items(
items = filteredLibraryAlbums,
key = { "local_album_${it.id}_${filteredLibraryAlbums.indexOf(it)}" }
key = { "local_album_${it.id}" }
Copy link

Copilot AI Nov 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The key format was changed from \"local_album_${it.id}_${filteredLibraryAlbums.indexOf(it)}\" to \"local_album_${it.id}\". While the new format is cleaner, ensure that album IDs are guaranteed to be unique within the filtered list. If duplicate IDs are possible (e.g., from different sources), this could cause item recomposition issues.

Suggested change
key = { "local_album_${it.id}" }
key = { album -> "local_album_${album.id}_${filteredLibraryAlbums.indexOf(album)}" }

Copilot uses AI. Check for mistakes.
items(
items = section.items.distinctBy { it.id },
key = { "youtube_album_${it.id}" },
key = { "youtube_item_${it.id}" },
Copy link

Copilot AI Nov 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The key format was changed from \"youtube_album_${it.id}\" to \"youtube_item_${it.id}\". This is more accurate since the section can contain various item types (albums, playlists, artists), but ensure all item types in this section have unique IDs to prevent key collisions.

Suggested change
key = { "youtube_item_${it.id}" },
key = {
val type = when (it) {
is SongItem -> "song"
is AlbumItem -> "album"
is ArtistItem -> "artist"
is PlaylistItem -> "playlist"
else -> "item"
}
"youtube_${type}_${it.id}"
},

Copilot uses AI. Check for mistakes.
koiverse pushed a commit that referenced this pull request Feb 14, 2026
Keep this branch alive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants