2013年4月1日月曜日

[GoogleIME+ON/OFF]くぅッ。ちょっと厳しいか。。


キーボードON/OFFモニタの時と同じ現象なんだけど、入力補間系とか、デフォルトでキーボードを隠す設定になっている場合うまく動かない。
たとえばLINEで入力出来ないとか、GooglePlayで補間されないとかいうパターン。

SwipeStarterでは、キーボードON/OFFのインテント(ONになったよーとかOFFになったよーとか)を受け取ると、サービスを再起動します。
ここで言ってるサービスっていうのは、SwipeStarterの基本サービスでマーカーを表示しているやつ。
今のところ、マーカーをOFFにしようとした場合、マーカーのサービスを再起動してマーカーを消しています。
 →再起動しないで消せないか調査中。

で、これのネックは、いったんSwipeStarterに処理が移ってしまうっていうところ。
たとえば、TwitterアプリでON/OFFつかった場合

Twitter起動
 ↓
投稿画面
 ↓
キーボード表示
 ↓
ON/OFFインテント発行
 ↓
SwipeStarterが受信
 ↓
Twitterが保留扱い
 ↓
SwipeStarterがマーカー除去処理
 ↓
SwipeStarterがマーカー除去終了
 ↓
Twitterに戻ってくる(保留だったのでもう一回再構築)

普通の入力ボックスとかなら問題ないんですが、再構築されるとよろしくない動作をするものがあります。
初回表示でキーボードを自動で隠すアプリ:再構築後にまた自動で隠しちゃう→キーボードが永遠に出てこない
入力途中で補間する入力ボックス:履歴が一瞬出て再構築で消えちゃう

キーボードON/OFFモニタではこれを除外することで対応してたんだけど、除外ってなんか悔しい。
なので、もう少しなにか対策を練ってからにすることにします。

このインテントを標準で発行していない理由がなんとなくわかった気がする。

0 件のコメント:

コメントを投稿