issues
search
nsaito92
/
Frock
0
stars
0
forks
source link
スヌーズ機能追加
#19
Closed
nsaito92
closed
4 years ago
nsaito92
commented
4 years ago
概要
スヌーズ機能追加
期待値
対応内容
参考情報
備考
*
nsaito92
commented
4 years ago
Frock スヌーズ機能検討
スヌーズ機能対応について整理する。
作業全体像
要求仕様検討
基本設計
詳細設計
要求仕様について検討
現状、アラームは一度鳴動すると、停止が明示的にされるか端末が再起動されるまで、鳴動し続ける。
ではなく、一定の時間鳴動した後、一時的に停止する様に対応したい。
基本設計
基本の仕様が以下。
アラーム開始
5分間鳴動後、アラーム終了。
5分後、アラーム再実行。
再実行は5回行う。
詳細設計
アラームのスヌーズデータ
アラーム設定ごとに保持する。
検討
スヌースの回数を管理する方法
SharedPreferenceで管理する
カウント
アラーム鳴動開始のたびに回数をカウント
リセット
アラーム鳴動中に停止ボタンが押された時
所定回数実行された時
スヌーズよりも先に鳴動するアラーム設定があった時
処理の流れイメージ
アラームを設定し、予定時間になると鳴動開始する。
停止ボタンを押された。
スヌーズカウンターをリセット
従来の次のアラームを設定する処理へ。
5分後、アラームを終了。
スヌーズカウンターをチェック、5回に満たない場合かどうか
満たない場合
スヌーズ設定により、次にアラーム予定のCalenderを取得
アラームDB設定で次にアラーム予定のCalenderを取得
どちらが先のCalenderかチェック
スヌーズが先
スヌーズ予定のCalenderをAlarmManagerにセットする
スヌーズカウンターをインクリメントする
DBのアラームが先
スヌーズカウンターをリセット
従来の次のアラームを設定する処理へ。
満たしていた場合
スヌーズカウンターをリセット
従来の次のアラームを設定する処理へ。
DB設定変更時
スヌーズカウンターをリセット
従来の次のアラームを設定する処理へ。
端末再起動時
スヌーズカウンターをリセット
従来の次のアラームを設定する処理へ。
作る必要のある処理
クラス/メソッド検討
アラーム(スヌーズ)を管理するクラス(追加)
【対応済】アラーム鳴動中開始から5分後にアラームを終了するAlarmManagerをセットする。
【対応済】アラームサービスを終了する処理
スヌーズの実施可否判定処理
【対応済】スヌーズ予定のCalenderを生成する機能
【対応済】DBで次に鳴動予定のCalenderを生成する機能
スヌーズアラームとDBアラームのCalenderを比較する機能
【対応済】アラームサービス(追加実装)
【対応済】スヌーズ実施メソッドを実行
Utilクラス(追加)
【対応済】SharedPreferenceでスヌーズのカウンタを管理する機能
【対応済】書き込み処理
【対応済】読み込み処理
アラーム鳴動ダイアログ画面(追加)
5分経ったら、画面を閉じる処理
アラーム鳴動中通知
5分経ったら、通知を閉じる処理
アラームが鳴動したことを通知する機能
シーケンス検討
現状整理
スヌーズは動作するように対応出来たので、以下検討中。
アラーム鳴動終了時、鳴動ダイアログを閉じる。
鳴動中に通知を表示。
アラーム鳴動終了時、鳴動ダイアログを閉じる
実現に必要そうなのは、この辺?
ServiceからActivityへAIDLによるプロセス間通信でCallbackする案。
Serviceからbroadcastを送信してActivityで受けるというもの案。
「Serviceからbroadcastを送信してActivityで受ける」の実現方法整理
アラームダイアログ表示Activitiyに、BroadcastReceiverを受信処理を実装しておく。
アラーム鳴動時間終了時、Broadcastをsendする処理を追加。
スヌーズ通知について
表示タイミング
開始するタイミング
スヌーズが開始された際に表示
終了するタイミング
スヌーズが終了した時に非表示
通知をタップした際の処理
アプリを開く
タップしても、通知は消さない。
通知からスヌーズを終了できるようにする。
参考 : 公式ページ
概要
期待値
対応内容
参考情報
備考
*