省電力モードを試験的機能から外し設定に「バッテリー」画面を新設して移動#6409
Conversation
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
📝 WalkthroughWalkthrough省電力測位設定を実験設定から専用のバッテリー設定画面へ移し、保存処理と初期状態管理を追加しました。位置情報更新処理は、設定または端末の低電力モードに応じて省電力オプションを選択します。 Changesバッテリー設定画面と状態管理
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)sequenceDiagram
participant AppSettingsScreen
participant BatterySettingsScreen
participant storage
participant useStartBackgroundLocationUpdates
AppSettingsScreen->>BatterySettingsScreen: BatterySettingsへ遷移
BatterySettingsScreen->>storage: 省電力測位設定を保存
useStartBackgroundLocationUpdates->>storage: 保存済み設定を状態として参照
useStartBackgroundLocationUpdates->>useStartBackgroundLocationUpdates: 省電力用位置情報オプションを選択
Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (2)
src/screens/BatterySettings.tsx (1)
22-23: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueインポートパスの表記が混在しています。
同ファイル内で
~/エイリアス(19-20行目)と相対パス(22-23行目)が混在しています。battery.tsなど他ファイルでは~/constants/storageや~/lib/storageのようにエイリアス表記が使われているため、統一すると保守性が上がります。♻️ 提案
-import { STORAGE_KEYS } from '../constants'; -import { storage } from '../lib/storage'; +import { STORAGE_KEYS } from '~/constants'; +import { storage } from '~/lib/storage';🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/screens/BatterySettings.tsx` around lines 22 - 23, BatterySettings.tsxのSTORAGE_KEYSとstorageのインポートを、同ファイルで使用している~/エイリアス形式に統一してください。既存のインポート対象と動作は変更せず、相対パス表記のみエイリアス表記へ更新してください。src/screens/BatterySettings.test.tsx (1)
24-35: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win
renderWithStoreヘルパーの重複定義。このヘルパーは
src/screens/ExperimentalSettings.test.tsxにも同様の形(createStore+Provider+render)で存在しており、セットアップコードが重複しています。src/utils/test/配下へ共通化して両ファイルから再利用することを推奨します。コーディングガイドライン「Reuse helper utilities from
src/utils/test/to avoid duplicate setup code in tests.」に基づくコメントです。🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/screens/BatterySettings.test.tsx` around lines 24 - 35, 共通セットアップが重複しているため、BatterySettings.test.tsx の renderWithStore と ExperimentalSettings.test.tsx の同等ヘルパーを src/utils/test/ 配下の共有ユーティリティへ移動してください。両テストからそのユーティリティを再利用し、createStore、Provider、render、および必要な atom 初期化の既存動作を維持してください。Source: Coding guidelines
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@src/screens/BatterySettings.test.tsx`:
- Around line 24-35: 共通セットアップが重複しているため、BatterySettings.test.tsx の
renderWithStore と ExperimentalSettings.test.tsx の同等ヘルパーを src/utils/test/
配下の共有ユーティリティへ移動してください。両テストからそのユーティリティを再利用し、createStore、Provider、render、および必要な
atom 初期化の既存動作を維持してください。
In `@src/screens/BatterySettings.tsx`:
- Around line 22-23:
BatterySettings.tsxのSTORAGE_KEYSとstorageのインポートを、同ファイルで使用している~/エイリアス形式に統一してください。既存のインポート対象と動作は変更せず、相対パス表記のみエイリアス表記へ更新してください。
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 6eefe8ee-acaa-4777-8a84-c61cf9380028
📒 Files selected for processing (13)
assets/translations/en.jsonassets/translations/ja.jsonsrc/components/Permitted.tsxsrc/hooks/useStartBackgroundLocationUpdates.test.tsxsrc/hooks/useStartBackgroundLocationUpdates.tssrc/screens/AppSettings.tsxsrc/screens/BatterySettings.test.tsxsrc/screens/BatterySettings.tsxsrc/screens/ExperimentalSettings.test.tsxsrc/screens/ExperimentalSettings.tsxsrc/stacks/MainStack.tsxsrc/store/atoms/battery.tssrc/store/atoms/experimental.ts
💤 Files with no reviewable changes (2)
- src/screens/ExperimentalSettings.tsx
- src/store/atoms/experimental.ts
概要
省電力測位モード(省電力モード)を試験的機能から外し、設定画面に新設した「バッテリー」項目へ移動しました。あわせて実験的機能扱いだった
isDevAppゲートを撤去し、全ユーザーが利用できる正式機能へ昇格しています。変更の種類
変更内容
AppSettings)の「通知」の下に「バッテリー」項目を追加し、全ユーザーへ表示(アイコンbattery-half/ 遷移先BatterySettings)BatterySettingsを追加し、MainStackに登録ExperimentalSettings)から省電力トグル・ハンドラ・atom 参照を削除powerSavingLocationEnabledAtomをstore/atoms/experimentalからstore/atoms/batteryへ移設(MMKV 同期での初期値確定ロジックはそのまま維持)useStartBackgroundLocationUpdatesのisDevAppゲートを撤去し、手動 ON 時・端末の省電力モード中の測位プロファイル切り替えを本番でも有効化batterySettings(バッテリー / Battery)を追加BatterySettings.testを追加、ExperimentalSettings.testから省電力ケースを削除、フックのテストを昇格後の挙動(低電力モードは全ビルドで有効)に合わせて再構成)テスト
npm run lintが通ることnpm testが通ることnpm run typecheckが通ること関連Issue
スクリーンショット(任意)
Summary by CodeRabbit
新機能
変更