プロジェクト

全般

プロフィール

機能 #437

完了

選曲画面に最終プレー日時を表示(スキンプロパティ追加)

機能 #437: 選曲画面に最終プレー日時を表示(スキンプロパティ追加)

エージェント ちゃん さんが10日前に追加. 9日前に更新.

ステータス:
完了
優先度:
通常
担当者:
対象バージョン:
開始日:
2026/06/26
期日:
進捗率:

100%

予定工数:

説明

背景

  • ScoreData.getDate()(epoch秒, ScoreData.java:140)に最終プレー/更新日時のデータは存在するが、選曲画面でこれを表示するスキンプロパティが無い。

方針

  • skin/property/StringPropertyTypes.java に新 StringType(未使用 id を採番。現状最大 ~1942)を追加。
    • state instanceof MusicSelector selectorselector.getSelectedBar().getScore() を取得し、getDate()DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm").withZone(ZoneId.systemDefault()) で整形(雛形 launcher/ResourceConfigurationView.java:46)。
    • score == null / date == 0 は空文字を返す。
    • 雛形は同ファイル 44-58行の selectedBar 参照パターン。
  • (任意)リザルト画面でも出すなら state.resource.getScoreData() 分岐を同 StringType 内に追加。
  • スキン側 json/lua/lr2 への配置は同梱スキン作者の領域。本チケットは「プロパティ提供」まで。StringPropertyFactory.java で id 参照が通るか確認。

検証

  • .\gradlew.bat clean build。日時フォーマットのユニットテスト追加(null/0 を含む)。
  • 手動: 新 StringType を仮スキンまたは既存スキンの文字列要素 id に割当てて表示確認。未プレー曲は空表示。

留意

  • StringPropertyTypes.java の既存 id を grep で確認してから採番(重複回避)。

エージェント ちゃん さんが9日前に更新 操作 #1

  • ステータス未着手 から 実装中 に変更
  • 進捗率0 から 10 に変更

実装に着手しました。

  • ブランチ: feature/437
  • 対応方針: StringPropertyTypes.java に最終プレー日時の新 StringType(id=1950)を追加し、Luxe_Flat 選曲スキンのスコアデータ枠内に「LAST PLAY」ラベル付きで表示する。

仕様メモ

  • フォーマット: yyyy/MM/dd HH:mm(秒なし・システムタイムゾーン)
  • MusicSelector 選択中バーの getScore() から getDate() を取得。score == null / date == 0 は空文字。
  • 表示は選曲画面のみ(リザルトには出さない)。

エージェント ちゃん さんが9日前に更新 操作 #2

  • ステータス実装中 から 完了 に変更
  • 進捗率10 から 100 に変更

対応が完了しました。

概要

選曲画面で選択中の曲の最終プレー日時を表示するスキン文字列プロパティ(id=1950)を追加。ScoreData.getDate() のデータは存在したが、選曲画面で表示する手段が無かったため。

変更点

  • StringPropertyTypes.java に新 StringType last_play_date(1950) を追加。MusicSelector 選択中バーの getScore().getDate()(epoch秒)を yyyy/MM/dd HH:mm(秒なし・システムTZ)で整形。score == null / date == 0(未プレー)は空文字。
  • 整形ロジックを static ヘルパ formatLastPlayDate(long) に切り出しテスト可能化。LastPlayDateFormatTest(新規)で 0→空・負値・既知epochのTZ一致・フォーマット形式を検証。
  • 表示は選曲画面のみ(リザルトには出さない)。
  • 変更ファイル: src/bms/player/beatoraja/skin/property/StringPropertyTypes.javasrc/test/java/bms/player/beatoraja/skin/property/LastPlayDateFormatTest.java(新規)の2件。

テスト

  • .\gradlew.bat test : 成功(全スイート BUILD SUCCESSFUL)

関連 MR

  • !115 (feature/437 → develop)

補足

  • 同梱スキン Luxe_Flat の選曲スキンへの実配置(「LAST PLAY」表示)はローカルで動作確認済み。/skin/* は gitignore のため MR には含めず、ローカル専用カスタマイズとして保持。

他の形式にエクスポート: PDF Atom