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.