LEDテーマのポートレートモードをダークモードの配色に追従させる - #6842
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Essentials Run ID: 📒 Files selected for processing (9)
Included review availability: 2 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 3 reviews per hour. 📝 WalkthroughWalkthrough変更概要
Changes解決済み配色の利用
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to ポートレートモードのLEDテーマ表示をライト/ダーク設定に追従させる局所的なバグ修正で、現時点で対応が必要なマージ阻害リスクはありません。 Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Docstring CoverageExplanation No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 7 files. (2 skipped: 2 unsupported.) ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
概要
電光掲示板風(LED)テーマを選んでいると、ポートレートモードの走行画面がダークモード設定を無視してライト配色で描画される不具合を修正します。端末・アプリの配色設定がダークでも縦画面だけが白く光る状態でした。
変更の種類
変更内容
原因は
appColorsAtomの仕様です。この atom は「LEDテーマは全画面で行先表示器を模した独自配色を持つ」という前提で、LEDテーマ選択中はダークモード設定を無視してLIGHT_APP_COLORSを返します。ところがポートレートモードの走行画面(PortraitMain)は路線テーマに依存しないレイアウトで、LED風の配色を一切持ちません(isLEDThemeの分岐がゼロ)。それでもappColorsAtomを読んでいたため、LEDテーマ選択中だけライト配色に固定されていました。src/store/atoms/colorScheme.ts:overlayAppColorsAtomをresolvedAppColorsAtomへ改名。中身(APP_COLORS[resolvedColorScheme])は変えていませんが、用途が「アクションシートなど OS 側レイヤーの UI」だけでなく「路線テーマに依存しないレイアウト」にも広がったため、名前とコメントを実態に合わせました。src/components/PortraitMain.tsx: 参照する atom をappColorsAtomからresolvedAppColorsAtomへ変更。LEDテーマの上書きを受けず、配色設定どおりのライト/ダークが効くようになります。src/components/Permitted.tsx/src/screens/Licenses.tsx/src/utils/actionSheetColors.ts: atom 改名への追従のみ。assets/translations/{ja,en}.json: 外観設定画面の説明文colorSchemeDescriptionが「電光掲示板風テーマを選んでいる間は、この設定にかかわらず電光掲示板風テーマの配色が使われます」と言い切っていたため、ポートレートモードの表示を除外する旨を追記しました。src/components/PortraitMain.test.tsx/src/store/atoms/colorScheme.test.ts: 回帰テストを追加・追従。横向き(LEDテーマ本来の表示)は従来どおり
appColorsAtomを読むため、見た目は変わりません。回帰リスクと緩和
resolvedAppColorsAtomへの改名がアクションシートの配色に波及する可能性。緩和: 改名のみで atom の定義は不変です。
src/store/atoms/colorScheme.test.tsの既存テスト(LEDテーマ選択中でも配色設定に追従すること)がそのまま通ることを確認しました。緩和: これは意図した修正で、外観設定画面の説明文(「ポートレートモードの表示だけはこの設定に追従します」)が元から宣言していた挙動に実装を揃えるものです。配色設定がライトまたは端末がライトの場合の見た目は変わりません。
緩和: 修正前のコードで新規テストが落ちること(
#FAFAFAが返る)を確認したうえで、修正後に通ることを確認しています。実機でも前後を撮り比べています。テスト
実機(Galaxy SCG13 / Android 16)で、LEDテーマ固定・端末ダークモードON・ポートレートモードONの条件で走行画面を縦向き表示し、修正前後の描画を確認しました。ユニットテストは、修正前のコードでは新規テストが失敗することを確認したうえで追加しています。
npm run lintが通ることnpm testが通ることnpm run typecheckが通ること関連Issue
スクリーンショット(任意)
Galaxy SCG13 (Android 16)
修正前: LEDテーマ・端末ダークモード・ポートレートモードONで縦画面がライト配色のまま
修正後: 同じ条件でダーク配色に追従する
Summary by CodeRabbit
改善
ドキュメント