Use external browser for configuring pebble apps #235

Merged
ashimokawa merged 16 commits from feature-configuration into master 6 years ago
daniele commented 6 years ago
Owner

Needed steps before this code can be merged:

  • Save the app keys to map the configuration values from the webpage to pebble keys.
  • Save the configuration javascript contained in the pbw file.
  • Create a local webview with javascript access that is able to emulate the javascript Pebble object (needed by the original javascript configuration files).
  • Interact with the connected device to get the real platform (aplite, basalt, chalk, ...)
  • Override the emulated Pebble js methods to use an external browser.
  • Convert the JSON returned by the website to local keys.
  • Handle booleans correctly (int32?)
  • Interact with the connected device to push the message to the watch app.
  • fix 64k limit for .js files
  • Support further Pebble js methods like Pebble.getWatchToken().hashCode(); found on squared4 watchface
  • Style the local webpage. (migrated to issue)
  • Properly warn the user if there is no configuration option (the app does not contain js file, or we fail to support it in some way) (migrated to issue)
  • Consider / add support for https://github.com/pebble/clay/ (migrated to issue)

Limitations:

  • The pebble configuration site must support the return_to parameter.
  • inline configuration pages (data url) support has yet to be investigated
Needed steps before this code can be merged: - [x] Save the app keys to map the configuration values from the webpage to pebble keys. - [x] Save the configuration javascript contained in the pbw file. - [x] Create a local webview with javascript access that is able to emulate the javascript Pebble object (needed by the original javascript configuration files). - [x] Interact with the connected device to get the real platform (aplite, basalt, chalk, ...) - [x] Override the emulated Pebble js methods to use an external browser. - [x] Convert the JSON returned by the website to local keys. - [x] Handle booleans correctly (int32?) - [x] Interact with the connected device to push the message to the watch app. - [x] fix 64k limit for .js files - [x] Support further Pebble js methods like Pebble.getWatchToken().hashCode(); found on squared4 watchface - [x] Style the local webpage. (migrated to issue) - [x] Properly warn the user if there is no configuration option (the app does not contain js file, or we fail to support it in some way) (migrated to issue) - [x] Consider / add support for https://github.com/pebble/clay/ (migrated to issue) Limitations: - The pebble configuration site must support the return_to parameter. - inline configuration pages (data url) support has yet to be investigated
Owner

I don't mind if we merge this early.
What does clay support mean for us?

I don't mind if we merge this early. What does clay support mean for us?
Owner

This branch makes it impossible to install morpheuz.
The .js file seems to be > 64k

This branch makes it impossible to install morpheuz. The .js file seems to be > 64k
Poster
Owner

I guess you answered to yourself re what clay could mean to us: bigger local JS. Possibly multiple js files as well...

I guess you answered to yourself re what clay could mean to us: bigger local JS. Possibly multiple js files as well...
Owner

Merged early, sorry ;)

Merged early, sorry ;)
Poster
Owner

Ok this has still to be tracked because of checkboxes, should I create a new issue?

Ok this has still to be tracked because of checkboxes, should I create a new issue?
Owner

okay, go ahead - seems we have some work to to ;)

okay, go ahead - seems we have some work to to ;)
Poster
Owner

remaining work moved to #251

remaining work moved to #251
The pull request has been merged as 044844de3f.
Sign in to join this conversation.
No reviewers
No Milestone
No Assignees
2 Participants
Notifications
Due Date

No due date set.

Dependencies

This pull request currently doesn't have any dependencies.

Loading…
There is no content yet.