These are all the changes since the last official release - DS 2.57 * Chat extension now deleted on install (using Discord now). * UpdateProgressBar now has 'doevents' option to force ui update in v8 mode. * Fixed issue with slow APK builds. * Fixed issue with APK install just showing folder after build. * Hybrid apps are now auto-detected (don't need cfg.Hybrid) * Hybrid apps now removed from samples list, use UI plugin docs instead. * Main DS App class changed to DsApp, so won't clash with Hybrid/Enjine apps. * Added include() function for compatibility with Hybrid/Enjine apps. * Updated Hybrid templates. * Fixed crash with Notification listener during WhatsApp messages. DS 2.56b1 * Hybrid components docs now visible after UI plugin install. * Layout extension now automatically installed from UI plugin. * Progress bar now shown when extracting assets at startup. DS 2.55b1 * Added new 'CloudStore' tab to device IDE. * Added new SSH/Device Terminal tab to device IDE. * Switched device IDE 'Chat' tab to use Discord. * Added new 'RemoteTerminal' SSH extension to wifi IDE. * Move UI controls into an updatable internal DS plugin. * Support ds:/* style paths in HTML elements (eg. ds:/Sys/app.js). * The 'FontAwesome' option can now be used with app.CreateTabs. * Changed wifi IDE right side tabs to show icons only. * Changed node.Run() method to use separate VM contexts on each call. * Changed FileDiff extension to full browser width. * Fixed problem of ide.AddModule() only working once after DS restart. * Added link to playstore unsubscribe page. * APKBuilder now defaults to target API level 31. DS 2.54b1 * Added 'YouTube Player' and 'Google Maps' samples. * Added 'Card Flip' and 'Card Animation' samples. * Added 'Shopping Cart' sample. * Fixed bugs with device IDE image chooser. * Added ext.displayWidth + ext.displayHeight to extensions API. * Added ext.Play, ext.Stop, ext.Save to extensions API. * Fixed bug causing notification listener to fail. * Fixed bug with fine/coarse location in AABs. * Made AAB builder more reliable (was often getting stuck at 99%) * Added new WYSIWYG Layout extension to WiFi IDE (in experiments mode) * Added version number to APK/AAB build output files. * Added SPK auto-save feature when building APKs/AABs. * Fixed problem with turkish characters in control callbacks. DS 2.53b1 * Added new app.eventSource property. * Fixed extraction issues with APK asset files containing 'dots'. * Fixed mui.js not found bug when building Node APKs. * Fixed build.json being ignored for AAB files. * Fixed debug messages from NodeJS apps not readable. * Improved !addmodule command to support versions (eg. mi...@1.6.0) * Added new GitHub feature for premium users. DS 2.52b1 * Added SetSpeed and SetPitch methods to MediaPlayer. * Plugins can now contain sub-folders ('docs' sub-folder is removed in APK build). * Added support for Cancel(id) or Cancel('*') in notification listener. * JS errors from remote pages are now ignored for HTML and Hybrid apps. * Multiple cfg.Hybrid app samples added when in 'experiments' mode. * Re-organized app templates. DS 2.51b1_p3 * Fixed app.SaveText() causing 'Storage' permission request. * Added 'fillscreen' and 'fullscreen' options for Custom Dialogs. DS 2.51b1_p2 * Updated app.ChooseFile() to support GoogleDrive,OneDrive and DropBox. * Added 'nodownload' option to app.ChooseFile (just returns uri, no downloading of files). * Added 'persist' option to app.ChooseFile (persists file permission after reboot). * Added 'pretty' option to app.Uri2Path (returns DS style paths). * AddPermission 'alert' bug fixed (introduced in 2.51b1). DS 2.51b1 * Fixed playback of transparent animated gifs in Image control. * APKBuilder is no longer sensitive to spaces around brackets of LoadPlugin call. * List.OnTouch() event now returns unicode chars with correct upper case hex codes. * Transparent apps now startup with zero size (to prevent black flash). * Added cfg.Legacy option to enable various legacy transparent app behaviour. * Added app.UpdateUI() method for forcing UI drawing during heavy processing. * Enabled 3rd party cookies by default for webviews, fetch and xmlHttpRequest. * Fixed broken app.SetAlarm() method. * app.ListFolder() now supports SAF (can list outside scoped storage). * Added app.ListPermissions and app.RemovePermissions. DS 2.51a1 * Added support for /Internal/* and /External/* SAF paths. * app.GetPermission() now supports 'external' and 'internal' keywords. * Replaced 'Sdcard Access' sample with 'Storage Access' sample. * Improved permissions detection for file:/ / / android_asset paths. * Fixed 'Share SPK' for scoped storage devices. * Fixed app.SendFile, app.SendImage, app.SendMail for scoped storage devices. * Added QUERY_ALL_PACKAGES permission to X version. * Removed default params from edit/mui.js (older webviews don't not like it) * Added web.Func(name,args...) for easy calling of functions defined in a WebView. * Added app.Func(name,args...) for easy calling of main script functions from a WebView. * app.SimulateTouch() now copes with lower case keywords. * Fixed 'atob' issue with console logging in NodeJS apps. * Added new GetDocumentFile() method to Plugin parent object. * Added new app.GetRouterAddress() method. * Added tabs.SetTextSize(size,mode) method. * Added cfg.Fast mode for premium users (3x faster apps!) * Added XMLHttpRequest polyfill for Fast mode. DS 2.50p1 * Added 'Query Images' and 'Query Videos' samples. * Fixed crash when building APKs/AABs for Html apps.