[ANN] SivaSiva App on Google Play
brahma at hindu.org
Mon Dec 25 21:09:31 EST 2017
My new Pixel arrived the day before Pancha Ganapati amidst a 72 hour solo code sprint, working with the new 8.1.9 to get an Android version done. At the last minute I solved rendering issues on Android (not happening on Desktop or iOS) and with a little help from Jacque, today got the app up on Google play.
I want to thank the team in Edinburgh for the hard work that got us here and all the support from this community, especially Jacqueline and Andre and all of you who have been so patient and generous with your time and answering and sharing your knowledge.
Our app opens and closes stacks aka "modules"…. we had a serious rendering issue with our "Journal" module… this reads data from a dbase that tracks users history, lets her mark favorites etc. It uses a template "subgroup" on card 2… which includes a few widget icons. The "layout" command deletes the parent group "item list" on card 1 and then locks the screen and adds subgroups to the main group… as many as 50-100. AcceleratedRendering is required for scrolling this "beast" of a parent group. going to the journal consistently locked up the screen on Android, cause quits and strange ghastly images on screen… until I changed the order and timing of events, which, in the end, is just "logical"
1) we turn off accelerated Rendering of Stack A, but leave it open (You have to have a stack open all the time)
2) Open stack "journal" and in the preopenstack handler, delete any existing "item list" (will not exist on mobile, but does during dev)
3) the key was DO NOT set the acceleratedRendering, and issue the layout command (which fetches and builds the parent group dynamically. in either the preopenstack NOR the preopenCard handler!
my gut is telling me there is a conflick on mobile between Stack A being open while Stack B tries to open and run stuff in the preopen handlers, but I just guessing.
4) What works is: open the journal Stack B, our navigation system will the close Stack A. I throw up a small busy indicate and a bottom toast (hardly needed) saying "Loading Entries"
5) Now, *after* the card is open and Stack A is closed, on openCard, set the acceleratedRendering to true, lock the screen, run the layout routine which build the giant parent group with subgroups and unlock the screen.
After doing getting this to work… it seemed just so obvious the best practice order of events…
It's just that on desktop and iOS, it did not seem to matter what you did first, or in what order or whether you did stuff in the preopenstack handler (where we were issuing the layout command before)
but now it works. We still have some crashes here and there and there seems to be a regression in the browser widget in 8.1.9 when you rotate the phone to landscape if the video has not been loaded yet from YouTube. (only on Android) But otherwise the app is running pretty well, given all the arms and legs it has.
Cheers and Happy Solstice/New Year to all!
More information about the Use-livecode