iOS: update tab icons, skip interval, cover radius, and mini player progress bar fix
Some checks failed
CI / UI / Build (pull_request) Failing after 6s
CI / Scraper / Test (pull_request) Failing after 6s
CI / Scraper / Lint (pull_request) Failing after 9s
CI / Scraper / Build (pull_request) Has been skipped
iOS CI / Build (push) Has been cancelled
iOS CI / Test (push) Has been cancelled
iOS CI / Build (pull_request) Failing after 2s
iOS CI / Test (pull_request) Has been skipped

This commit is contained in:
Admin
2026-03-08 19:23:14 +05:00
parent fa8fb96631
commit 57591766f2
4 changed files with 11 additions and 12 deletions

View File

@@ -27,15 +27,15 @@ struct RootTabView: View {
.tag(Tab.home) .tag(Tab.home)
LibraryView() LibraryView()
.tabItem { Label("Library", systemImage: "books.vertical.fill") } .tabItem { Label("Library", systemImage: "book.pages.fill") }
.tag(Tab.library) .tag(Tab.library)
BrowseView() BrowseView()
.tabItem { Label("Discover", systemImage: "globe.americas.fill") } .tabItem { Label("Discover", systemImage: "sparkles") }
.tag(Tab.browse) .tag(Tab.browse)
ProfileView() ProfileView()
.tabItem { Label("Profile", systemImage: "person.fill") } .tabItem { Label("Profile", systemImage: "gear") }
.tag(Tab.profile) .tag(Tab.profile)
} }
// Reserve space for the mini-player above the tab bar so scroll content // Reserve space for the mini-player above the tab bar so scroll content

View File

@@ -510,9 +510,9 @@ final class AudioPlayerService: ObservableObject {
self?.togglePlayPause() self?.togglePlayPause()
return .success return .success
} }
center.skipForwardCommand.preferredIntervals = [30] center.skipForwardCommand.preferredIntervals = [15]
center.skipForwardCommand.addTarget { [weak self] _ in center.skipForwardCommand.addTarget { [weak self] _ in
self?.skip(by: 30) self?.skip(by: 15)
return .success return .success
} }
center.skipBackwardCommand.preferredIntervals = [15] center.skipBackwardCommand.preferredIntervals = [15]

View File

@@ -62,7 +62,7 @@ struct BookDetailView: View {
.font(.subheadline) .font(.subheadline)
.foregroundStyle(.white.opacity(0.8)) .foregroundStyle(.white.opacity(0.8))
HStack { HStack {
TagChip(label: book.status).colorScheme(.dark) // TagChip(label: book.status).colorScheme(.dark)
ForEach(book.genres.prefix(2), id: \.self) { ForEach(book.genres.prefix(2), id: \.self) {
TagChip(label: $0).colorScheme(.dark) TagChip(label: $0).colorScheme(.dark)
} }

View File

@@ -22,7 +22,7 @@ struct MiniPlayerView: View {
Button { showFullPlayer = true } label: { Button { showFullPlayer = true } label: {
AsyncCoverImage(url: audioPlayer.coverURL) AsyncCoverImage(url: audioPlayer.coverURL)
.frame(width: 56, height: 56) .frame(width: 56, height: 56)
.clipShape(RoundedRectangle(cornerRadius: 12)) .clipShape(RoundedRectangle(cornerRadius: 40))
} }
.buttonStyle(.plain) .buttonStyle(.plain)
@@ -141,8 +141,7 @@ struct MiniPlayerView: View {
.fill(Color.black.opacity(0.3)) .fill(Color.black.opacity(0.3))
) )
) )
.frame(height: 80) .frame(height: 20)
.padding(.horizontal, 12)
.shadow(color: .black.opacity(0.3), radius: 12, y: 4) .shadow(color: .black.opacity(0.3), radius: 12, y: 4)
// Follow finger in both directions while dragging vertically // Follow finger in both directions while dragging vertically
.offset(y: dragOffset) .offset(y: dragOffset)
@@ -789,7 +788,7 @@ struct PlayerSlider: View {
let fraction = (value - range.lowerBound) / (range.upperBound - range.lowerBound) let fraction = (value - range.lowerBound) / (range.upperBound - range.lowerBound)
let clampedFraction = max(0, min(1, fraction)) let clampedFraction = max(0, min(1, fraction))
let filled = width * clampedFraction let filled = width * clampedFraction
let thumbSize: CGFloat = isDragging ? 22 : 16 let thumbSize: CGFloat = isDragging ? 22 : 22
let trackHeight: CGFloat = isDragging ? 5 : 4 let trackHeight: CGFloat = isDragging ? 5 : 4
ZStack(alignment: .leading) { ZStack(alignment: .leading) {
@@ -840,10 +839,11 @@ private struct MiniPlayerProgressBar: View {
ZStack(alignment: .leading) { ZStack(alignment: .leading) {
RoundedRectangle(cornerRadius: 40) RoundedRectangle(cornerRadius: 40)
.fill(Color.white.opacity(0.2)) .fill(Color.white.opacity(0.2))
RoundedRectangle(cornerRadius: 40) RoundedRectangle(cornerRadius: 6)
.fill(Color.amber.opacity(0.3)) .fill(Color.amber.opacity(0.3))
.frame(width: max(0, geo.size.width * fraction)) .frame(width: max(0, geo.size.width * fraction))
} }
.clipShape(RoundedRectangle(cornerRadius: 40))
} }
} }
@@ -879,7 +879,6 @@ private struct PlayerProgressSection: View {
.foregroundStyle(.white.opacity(0.5)) .foregroundStyle(.white.opacity(0.5))
} }
.padding(.horizontal, 28) .padding(.horizontal, 28)
.padding(.top, 16)
} }
private func formatTime(_ seconds: Double) -> String { private func formatTime(_ seconds: Double) -> String {