Minecraft風Pebble時計の開発2

Pebble watchface開発の続き。

なんとなくPebble Classicにも対応してみた。単純にPebble Time向けに作ったpngファイルをHyperditherというアプリで白黒にしただけのやっつけ対応。

通知を表示してwatchfaceに戻ったときに画面の一部が白くなったまま再描画されないことがあるバグは解決できた。

前回は検索の仕方が甘かっただけで同じ質問をForumで見つけた。
https://forums.getpebble.com/discussion/30257/layers-corrupt-after-notifications

AppFocusServiceでWatchappのFocusが戻ってくるイベントを取れた。以下のように修正。

static void app_did_focus(bool in_focus) {
  if (in_focus) {
    Layer *window_layer = window_get_root_layer(s_window);
    layer_mark_dirty(window_layer);
  }
}

static void init(void) {
  s_window = window_create();
  ...
  app_focus_service_subscribe_handlers((AppFocusHandlers){
    .did_focus = app_did_focus,
  });
  ...
}

一瞬は画面の一部は白くなるけど数秒で更新されるので毎分の更新タイミングを待つよりはマシだろう。

バッテリー問題は解決していないんだけど実際のところちゃんと他のwatchfaceと比べていないのでどれくらい変わるのか計ってみるか・・・

人見知りソフトウェアエンジニアです。ビジュアル系、お笑い、Pixarが好き。勢いで吉本超合金おたけびBOTを作った。オールザッツ漫才が放送されない東京在住。

趣味や日常からアウトプットの場としてブログを書いています。自作のWordPressプラグインにGitHub Flavored MarkdownAmazonJSなど。