Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

library: song-copies follow-ups (metered ranking, missing files, merge-off cost)

オープン
#1,095 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
android, kotlin
領域
backend, mobile

調査の方向性

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 の本文から書いたものです。

説明

bug

Follow-ups to #1069 step 1 (song copies merged across sources), from the re-review of worktree-song-match-corpus:

  1. Ranking after a network change (medium). LibraryModule.kt reads meteredNetwork.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 on MeteredNetwork.
  2. missingSongIds is 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).
  3. Wasted work with merging off (LibraryCopies.kt). ranking() still emits on availability changes, so collectors re-filter and re-sort the whole library. Gate ranking() and grouping behind enabled.
  4. Race when merging is switched back on (LibraryCopies.kt). For a moment enabled is true while library still holds the unmerged snapshot. A favourite or exclude in that window touches one copy only.
  5. countSongsByProvider still counts per copy.
  6. 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 はありません

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

timusus/Shuttle2 のほかの issue

timusus/Shuttle2 の issue をすべて見る

似ている issue

Kotlin の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。