Skip to content

電卓ダイアログを小さい画面に収め、会計中にぐるぐるを出す - #52

Merged
Atsumi3 merged 4 commits into
mainfrom
feature/calculator-register-ui
Aug 23, 2026
Merged

電卓ダイアログを小さい画面に収め、会計中にぐるぐるを出す#52
Atsumi3 merged 4 commits into
mainfrom
feature/calculator-register-ui

Conversation

@Atsumi3

@Atsumi3 Atsumi3 commented Aug 23, 2026

Copy link
Copy Markdown
Member

背景

Nexus 7 の横向きで電卓ダイアログが画面からはみ出し、もどる・かいけいのボタンがスクロール領域の中に隠れて押せなくなっていた。あわせて、おつり画面でかいけいを押してからレシートが出るまで数秒かかるのに、画面上は何も変わらず二重に押せてしまう状態だった。

変更内容

電卓ダイアログのレイアウト

  • もどる・かいけいのフッターをスクロール領域の外に固定し、どの画面サイズでも常に見えて押せるようにした
  • 本体を weight 付きの BoxWithConstraints に入れ、フッターを引いた残りの高さを実測してからキーパッドの大きさを決めるようにした
  • キーパッドの幅を横幅だけでなく高さからも制限し、正方形のキーを保ったまま画面に収まるようにした
  • 金額の文字サイズを横幅に加えて高さでも判定し、3段の金額とラベルがはみ出さないようにした

会計中の進捗表示

  • AccountResultState に processing を追加し、createSale の実行中だけ true にする
  • おつり画面のかいけいボタンに進捗インジケータを表示し、実行中はもどる・かいけいの両方を無効化する
  • 実行中の再押下は ViewModel 側でも弾き、二重送信を防ぐ
  • 失敗時は processing を戻し、おつり画面に留まって再試行できるようにした

テスト

  • Nexus 7 横向き 960x600dp と小型スマホ縦 360x640dp で、ダイアログが画面に収まり、かいけい・もどる・最下段のキーがすべて表示されることを検証
  • 会計の実行中に進捗インジケータが出てボタンが無効化され、完了後に消えることを検証
  • ViewModel で processing が完了まで維持されること、実行中の再押下で createSale が二重に呼ばれないこと、失敗時に processing が戻ることを検証

Generated by Claude Code

- ごうけい・おあずかり・おつり/たりない を大きな文字で常時表示し、数字を押しながら比較できるようにする
- 預かりが足りないときは たりない と不足額をエラー色で、足りたときは おつり を強調色で表示する
- 会計結果はおつりを主役にした専用ダイアログにし、ごうけい・おあずかりを補足に降格する
- タブレットの広い画面では金額と数字パッドを左右2カラムに並べる
- 文字崩れを防ぐため、実測して枠に収まる最大のタイポグラフィを選ぶ
- バージョンを 1.0.10 に上げる
Robolectric のデフォルト端末は 320x470dp と狭く、電卓ダイアログの数字キーが
縦スクロールの外に置かれてタップが届かないため、預かり金額が加算されず
金額表示の検証がすべて失敗していた。実際の利用端末に合わせて
MediumTablet の画面サイズで実行し、キーが表示されていることも明示的に確認する。
- もどる・かいけいのフッターをスクロール領域の外に固定し、常に押せるようにする
- 残りの高さからキーパッドの大きさを決め、Nexus 7 の横向きでも画面に収まるようにする
- 金額の文字サイズを横幅だけでなく高さでも判定する
- おつり画面のかいけい押下からレシート発行が終わるまで進捗インジケータを表示し、二重送信を防ぐ
#51 が squash マージされ、同じ内容の変更が main と本ブランチの双方に
入ったためコンフリクトした。本ブランチ側の内容が #51 の内容に追加修正を
重ねたものなので、そちらを採用する
@github-actions

Copy link
Copy Markdown
Contributor

UI差分

main_screen_calculator

main_screen_calculator

main_screen_calculator_shortage

main_screen_calculator_shortage

全画面スクリーンショット

main_screen

main_screen

main_screen_account_result

main_screen_account_result

main_screen_calculator

main_screen_calculator

main_screen_calculator_shortage

main_screen_calculator_shortage

main_screen_drawer

main_screen_drawer

main_screen_empty

main_screen_empty

main_screen_error

main_screen_error

main_screen_item_selection

main_screen_item_selection

main_screen_item_selection_failed

main_screen_item_selection_failed

main_screen_item_selection_loading

main_screen_item_selection_loading

main_screen_store_selection

main_screen_store_selection

main_screen_store_selection_failed

main_screen_store_selection_failed

main_screen_store_selection_loading

main_screen_store_selection_loading

settings_screen

settings_screen

settings_screen_install_not_permitted

settings_screen_install_not_permitted

settings_screen_up_to_date

settings_screen_up_to_date

settings_screen_update_available

settings_screen_update_available

settings_screen_update_check_failed

settings_screen_update_check_failed

github-actions Bot added a commit that referenced this pull request Aug 23, 2026
@Atsumi3
Atsumi3 merged commit 8e427c7 into main Aug 23, 2026
2 checks passed
@Atsumi3
Atsumi3 deleted the feature/calculator-register-ui branch August 23, 2026 08:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant