diff --git a/SPEC.md b/SPEC.md index ad555e6..6a9b055 100644 --- a/SPEC.md +++ b/SPEC.md @@ -129,3 +129,16 @@ required - any new Cwtch work is beyond the scope of this initial spec. - [ ] Leave Group - [ ] Pressing Back should go back to the message pane for the group + + +## Android Requirements Notes + +What are our expectations here? + +- Can we periodically check groups in the background to power notifications? +- Either way we need networking in the service not the main/UI thread. +- We probably don't want to and very likely can't persist tor connections to peers indefinitely. +- Neither google nor apple are very tolerant of apps that try to create their own push message infrastructure. + +- "Aside": Retrieving a CallbackHandle for a method from PluginUtilities.getCallbackHandle has the side effect of populating a callback cache within the Flutter engine, as seen in the diagram above. This cache maps information required to retrieve callbacks to raw integer handles, which are simply hashes calculated based on the properties of the callback. This cache persists across launches, but be aware that callback lookups may fail if the callback is renamed or moved and PluginUtilities.getCallbackHandle is not called for the updated callback. +- The above seems to imply that there is a persistent cache somewhere that can affect code between launches...the ramifications of this are ?!?! diff --git a/cwtch-android-lifecycle.png b/cwtch-android-lifecycle.png new file mode 100644 index 0000000..ce47b55 Binary files /dev/null and b/cwtch-android-lifecycle.png differ