Joinで通知同期したときに、すぐ通知が見られるようにする
Kospet Prime2では、Bluetoothによる親スマホとの通知同期より、LTEを介して通知同期したほうが省電力です。しかしながらJoinによる通知はデフォルトのホームアプリwiiteでは即座に通知画面にならないという制約があります。
と言うことでAutomateを使用して強引に解決してみました。
作ったもの
Automate for Android ⋅ join show 2.6.2n
Full Android Smart Watchにて、Joinで親スマホと通知同期させた場合、通知取得時に自動的に通知表示画面にならないので、これを力業で強引に解決したものです。
前提
- Smart Watch側でNotification Bright Screenがオンになっている。
- Joinにてスマホ側からSmart Watchに通知を送っている。
- ホームアプリはデフォルトのwiite
- ホーム画面は時計表示である。
- Kospet Prime2とRogbid Brave Proにて動作確認。
動作
- Joinにて通知が来た場合、左からスワイプして通知を表示する。Vibration強を追加し、6秒表示後、右からスワイプして時計画面に戻し、画面をロックする。
- 最初の通知から9秒以内に追加の通知が来た場合には表示時間を延長する。
- ホームアプリwiite以外がフロントに来ている場合には動作しない。また、Joinからの通知到達時に画面がオンの場合にも動作しない。
- Flow Beginning: stopのフローを外部などからスタートさせた場合、動作を停止する。別に組んだジェスチャー操作にてここを叩かせることで意図しない動作を止めるもの。
蛇足
別フローからファイバーをキルする方法がよくわからなかったのでatomicを使用して強引に解決してますが、なんか上手い方法あったら知りたい。
注意点としてはファイバーが分岐するときにatomicではない関数はそれぞれのファイバーに別れて付いていき、フロー全体で共有されないので、Stop Fiberの手前にてChild FiberのURIが関数に格納されていなければ、Stopさせられない、ってことかなぁ。