Release Highlights - 1. A new Premium+ subscription which allows you to - - Access a personal Cloud Dashboard. - Publish of Static Websites and URLs. - Create Cloud Apps and public REST APIs. - Build a Cloud Database for Apps/Websites to use. - Control Database Access via user Roles. - Upload, manage and edit files in the cloud. - Store your Google Play license files online. - Use 1 GB of Cloud File Storage. 2. A new on-device FileBrowser which allows - - Browsing of DS scoped storage. - Exporting of files from scoped storage to other apps. - Exporting/Importing of files between scoped storage and normal storage. - Viewing and editing of various file types. Note: If you want to use Premium+, then you will need to cancel your current Premium subscription and then signup for Premium+, then send an email to support@droidscript.org asking for your personal cloud key. http://androidscript.org/beta/DroidScript_269b2/ Here is the full list of changes since the last official release - DS 2.70b1 - Fixed app.SetOrientation in Python apps. - Fixed bug in app.CheckPermission for top level folders. - Added new "Media" permission for Android 13+. - Added missing "Query Images" to on-device samples list. - No longer need to disable password for local file browser to work. - Removed tab chars from Python 'Simple' template (4 spaces instead). DS 2.69b2p4 - User no longer needs to remove extra .zip extension from downloaded ppk/spk files. - Set wifi ide editorToolbar width to 99%. DS 2.69b2p3 - Added speech.SetLanguage() method. eg. speech.SetLanguage("Fr"). - Modified wifi server to work on Samsung devices. - Fix for hybrid app template with latest UI libs. - Removed wifi ide editorToolbar width (to prevent scrollbars). DS 2.69b2p2 - Fixed APK install 'NOT VALID' failure caused by min api v23 change. - Fixed cfg.NodeESM crash out error caused by chdir on .mjs file. - Fixed crash/lockup when opening of .ppk files. DS 2.69b2p1 - Fixed ide.AddModule() crash out. - Updated UI components to v28. - Fixed double slash problem with ext.ReadFile in extensions. - Added PhoneState.GetNumber() method + required permission. - Fixed SAF bug where folders with same root name assumed permissions were ok. DS 2.69b2 - Added web.SetOnBlob() method to handle objectUrls/blobs. - Enabled wifi button to work when hotspot running. - Added app.HideDialogs() method. - Wifi connect IP/Info dialog now hidden automatically on remote connect. - Upgraded Wifi IDE to use CodeMirror editor instead of Ace. - Added local File Browser extension. - Enabled cfg.ESM in Hybrid apps (Main class must be exported). - Fix Web App template. DS 2.69b1 - Moved up to minSdkVersion 23 (Android 6). - Added 'BypassDnd' option to CreateNotification() method. - Added app.Print() method (prints contents of the app screen). - Added app.HasExternalStorage() to check for read/write external sdcard/partition. - Fixed parent.SendMessage() in nodejs apps. - Added node.Func() and parent.Func() method to node apps. - Fixed docs plugin not extracting after update or .edit folder deletion. - Added Premium+ subscription option (Cloud Services). - Improved error handling for ds:/* includes. - Added cfg.ESM to enable ES module imports (Note: OnStart func must be exported). - Added app.Import() and app.Include() methods (app.Include now preferred over app.Script). Here is an example of using the database in a native app - app.Import( "PocketBase", "https://cdn.jsdelivr.net/gh/pocketbase/js-sdk/dist/pocketbase.es.js" ) async function OnStart() { try { var pb = new PocketBase('https://${username}-db.droidscript.cloud') const records = await pb.collection('people').getFullList({ sort: '-created', }) alert( JSON.stringify(records) ) } catch( e ) { console.error( e ) } }