library: song-copies follow-ups (metered ranking, missing files, merge-off cost)
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
調査の方向性
Start with LibraryModule.kt, MeteredNetwork, CopyAvailability.kt, and LibraryCopies.kt, then read the linked follow-up context in #1069. The issue lists six separate follow-ups involving network changes, missing files, copy ranking, merge state, provider counts, and a later UI design step; identify which item is in scope before changing anything. For the first five, done means addressing the specified behavior and verifying it with focused playback or library tests; the sixth is deferred to a UI/UX design pass.
索引モデルが issue の本文から書いたものです。
説明
Follow-ups to #1069 step 1 (song copies merged across sources), from the re-review of worktree-song-match-corpus:
- Ranking after a network change (medium).
LibraryModule.ktreadsmeteredNetwork.isMetered()only when a quality setting changes, so the streaming cap used for ranking is fixed at launch. Start on Wi-Fi, move to mobile data with a 128 kbps cap, and a remote FLAC still outranks a local 320 kbps MP3 under BestQuality. Needs a connectivity flow onMeteredNetwork. missingSongIdsis never filled (CopyAvailability.kt). A local file deleted since the last scan still outranks a reachable server copy, then fails to play. Feed it from playback load failures or file checks, and fall back to the next copy (this ties in with step 2 playback fallback).- Wasted work with merging off (
LibraryCopies.kt).ranking()still emits on availability changes, so collectors re-filter and re-sort the whole library. Gateranking()and grouping behindenabled. - Race when merging is switched back on (
LibraryCopies.kt). For a momentenabledis true whilelibrarystill holds the unmerged snapshot. A favourite or exclude in that window touches one copy only. countSongsByProviderstill counts per copy.- Make primary and Preferred copy have no UI or setter use case yet. That belongs to step 3, which starts with the UI/UX design pass.
- 主要言語
- Kotlin
- スター
- 232
- フォーク
- 28
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
timusus/Shuttle2 のほかの issue
-
design
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
enhancement impact:U2 P3 reach:R1 size:S
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
enhancement
難易度 3/5 1〜2日 初心者へのやさしさ 65/100
-
enhancement impact:U2 P3 reach:R1 size:M
難易度 4/5 1〜2日 初心者へのやさしさ 54/100
-
bug
難易度 4/5 1〜2日 初心者へのやさしさ 55/100
timusus/Shuttle2 の issue をすべて見る
似ている issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
react/react-native#59693 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 80/100
pengchujin/aerial-tv#989 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
-
[Submission] Viaオープンsubmit-adaption submit-adaption-violation
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
BetterAndroid/android-notification-icon-project#811 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信