2012年4月14日土曜日

ssFlickerのデータ異常の対応

しばらく前にssFlickerのデータ異常に関する不具合を指摘された。
v0.8.3で一度対応はしたものの、それだと対応が不十分だった事に気付き、引き続き色々と修正した。
ちょっと今回はいつもと書き方を変えてみる。

ssFlickerにストローク起動を追加しました

恒例のバージョンアップ内容についてです。
v0.9.0でセンサー起動を強化しました。

 v0.9.0                                     

□センサー起動を追加し、シェイク起動をセンサー起動のオプションに変更
□センサー起動のオプションにストローク起動を追加
□センサー起動を追加し、シェイク起動をセンサー起動のオプションに変更。
□センサー起動のオプションにストローク起動を追加。
これまで、加速度センサーを利用したシェイク起動があったけど、新たに近接センサーを利用したストローク起動を追加し、それらを纏めてセンサー起動とした。
Androidスマートフォンには受話口の近くに近接センサーがあって、通話中などの誤操作を防ぐため、耳を近づけるとスクリーンオフするようになっている。
ストローク起動はこれと同じセンサーを利用してssFlickerを起動するようにしている。
センサー起動はどうしても誤起動することも多いので、まずはお試し程度で使ってみて欲しい。

□スクリーンオフ中、画面ロック中、着信中、通話中はセンサー起動を停止するよう変更。
シェイク起動は一度ONにすると、端末の状態に関わらず常に加速度センサーから数値を取得するようになっていた。
ただ、スクリーンオフ中や画面ロック中はssFlickerを起動する必要はない。
また、電話の着信があったり発信する際は誤起動も多く、ストレスを感じてしまう。
なので、このような場合にセンサーからの数値の取得を停止するように変更した。

□バージョンアップ後にステータスバー起動、オーバーレイ起動、センサー起動が再起動するように変更。
ssFlickerのバージョンアップが行われると、これらのサービスが停止されていた。
一度停止しても設定画面を開けば再起動するようにはしていたんだけど、知らずに動かなくなったと勘違いする人も多いと思う。
なので、バージョンアップ時に自動でサービスを再起動するように変更。
バージョンアップ時にサービス再起動ってできないと思っていたんだけど、調べ直してみたら結構簡単にできた。

□設定画面の見た目や順番を変更。
細々と変更しています。

□アプリ情報の保持ロジックを変更。
プログラミングの話ですが。
ssFlickerではいくつかの独自データクラスを作っており、App、IntentApp、Function、AppWidgetなどがあった。
これまでそれぞれ別のクラスとしていたんだけど、内容的に重複する点が多いので、Appクラスを親クラスとし他のクラスをサブクラスに変更した。