Highlights ========== V3 brings lots of major improvements, including - - An much improved code editor with extensions. - A new 'Package Registry' with developer monetization support. - A new VLE (visual layout extension) for in-browser drag-drop coding. - A new 'DriveBackup' extension for easy backing up of your projects. - No restrictions on project folder structure. - Support for 'main.js', 'index.js' and 'icon.js' as primary project files. - Lots of powerful new editor extensions! (Note: The manifest version of this APK is set to 2.79, so you can easily downgrade to 2.79 if requird.) Release History =============== DS 3.00.3b - Improved 'New App' experience (uses an extension, so we can update it). - Added new Package Registry extension with a developer marketplace. - Added support for projects with main.js instead of [appname].js - Upgraded Editor and VLE to v0.33. - Added support for icon.png at the top level. - Fixed ext.appType for 'hybrid' app types. - Moved default ./Img/app-icon.png to ./icon.png - ext.productId now returns either "droidscript" or "nodestudio". - theme.SetHighlightColor now affects the progressbar color. - Added SetTextLinkColor method to text control (sets html link color). - Removed support cfg.Fast mode (libs are too old). - Removed support for GLView (too basic and confusing with two game engines) - The ProgressBar now picks up the app theme. - Added mainFile parameter to ext_OnProject (eg. main.js, main.py, index.html). - Added optional support for lower case 'service.js' and 'job.js' files. - Fixed setDataDirectorySuffix issue with running service and job at same time - Made premium license checking more reliable. - Added app/web.SetCookie(url,val) and app/web.GetCookies(url) methods. - Fixed incorrect Drawer top margin when not using EdgeToEdge mode. - Improved 'New App' experience (uses an extension, so we can update it). DS 2.79.1b - Fixed missing ScratchPad extension on device IDE. - Fixed module/ESM based projects not working in APKs (new apkbuilder needed). - Fixed issue with app.SetScreenMode( "game" ) showing black bar at bottom. - Filtered .*android_webview/browser.* errors in NodeJS apps. - Added 'AllFiles' permission to app.GetPermissions/CheckPermissions (for X version). - Fixed import statements not working for libs in sub-folders. - Fixed issue with wifi-ide not showing app-icon.png files. DS 2.78.9 - Fixed app icon and provider authority issue in APK/AAB builder. - Set AAB builder default to SDK level 35. DS 2.78.8b - Added app.GetNavBarHeight method. - Updated nav bar detection/measuring to support runtime changes. DS 2.78.7b - Enabled drawing over camera notch. - Changed internal method for calculating Navbar height. DS 2.78b1 - Updated targetSdkVersion to SDK 35 - Updated Google Play Billing Library to version 7.0.0 - Added support for edge-to-edge mode on Android 15+. - Permission "Media" is now only added in 'X' version (due to GPlay restriction) - Fixed bug preventing spks/ppks/epks from being installed from file managers. - Fix docs open/close, unwanted refresh bug. - Added wbs.SetOnWsReceive, wbs.SetOnWsOpen, wbs.SetOnWsClose callbacks. - App name is now (space) trimmed when creating a new app on the device. - App now starts up faster (no orientation flips). - Added new cfg.EdgeToEdge mode to enable it if available on the device. - Added new app.IsEdgeToEdge() method. DS 2.77b2 - Fixed bug where HTTP PUT requests were failing in Hybrid and Python apps. - Added ForceCors option to app.SetOptions to force CORS checks on Hybrid and Python apps. - Added new obfuscator and made ide.Obfuscate modal. - Added support for Espressif ESP32 chips to UsbSerial module (tested on QT-Pi-ESP32-S3) - Added mobile programming support for ESP32 chips running MicroPython + examples. - Fixed editor not resizing after returning from docs when keyboard was show. - Fixed IDE 'Create Shortcut' error always showing on Android 26+. - Fixed APKBuilder mistakenly using old DS engine (caused mimetype errors etc). - Stopped using V8 libs for IDE (js engine too old for new obfuscator libs). - Downloading APKBuilder from plugins menu now downloads matching build version. - Fixed Notificationlistener or _AddOptions("NotifyService") making project behave like HTML project. - Fixed app.QueryContent() always asking for "Media" permissions (use _AddPermissions instead). - Marked 'Query Videos/Images' samples as 'X' version only (due to new Google Play restrictions). - Fixed HTML and Hybrid apps now auto-size when keyboard is shown. DS 2.77b1 - Removed READ_MEDIA_IMAGES/VIDEOS permissions for GPlay version (Google requirement). - Removed FOREGROUND_SERVICE_LOCATION permission for GPlay version (Google requirement). - Re-enabled 32bit ARM support (too many devices still running 32bit). DS 2.76b3 - Fixed bug when switching between 'Game' mode and 'Normal' mode. - Updated docs to include Python fixes. - Updated UI controls to v0.31. - Fixed delay when first showing left side panel (docs). - Wifi-IDE: New UI for text search (similar to Edit extension). - Wifi-IDE: When creating and naming new files, the enter key now confirms the dialog. - Wifi-IDE: Fixed meta key not working for MacBooks. - Fixed Pixel7 text sizing and offscreen button issues. - Fixed app.IsTablet response for Pixel7 (and other large phones). DS 2.76b2 - 'Game' mode now fills the camera notch area too (if present). - Added "application/wasm" mime type to jetty/ide server. - cfg.ESM is now automatic if 'export' or 'import' statements are found. - Added support for .mjs files. - Added new file type 'JS-Module'. - Changed Hybrid samples to use import statements. - Enabled creation of Python apps from wifi IDE. - Switched Python Hybrid default to light mode. - Removed Github feature (more work on wifi ide version needed). - Added missing imports from many Python samples in docs. - Html and Hybrid apps no longer allow pinch/zoom/scroll by default. - Added 'desktop' option to app.CreateWebView() methods (enables desktop mode) - Added WebView.SetOptions method so that (most) options can be changed at runtime. DS 2.76b1 - Fixed issue with null timer ids when using app.SetOnError in Node apps. - Added missing Bluetooth/Location permissions when app.DiscoverBtDevices is used. - Fixed right-click 'Install' option in wifi ide for ppks. - Fixed app.UnzipFile failure on some devices. - Added the .mjs MIME mapping to Jetty web server. - Fixed cfg.ESM mode for recent Android WebViews. - Fixed atob bug breaking pre-encoded plugin strings sent with CallScript method. - Fixed automatic resize for Hybrid and Python apps on screen rotation. - Added ext.deviceName and ext.appType fields to extension object. - Added appType parameter to ext_OnProject callback. - Fixed using app.CreateNode method inside services. - Fixed PlayStore.GetPurchases() not returning 'IAP' types. - Updated docs theme to look more modern (and match v3 editor). - Upgraded material icons version for docs and extensions. - Added SetWeight( weight, orient ) method to all controls. - Added Layout.SetWeightSum( sum ). - Switched plugin installer to use Android built-in zip extractor. - Fixed wiping out of .mjs files when using cfg.NodeESM mode. - Modified NodeJS os.homedir() func to return same as app.RealPath("/Private"). - Added (dark) Google group to forum tab. - Fixed bug stopping demos work after using docs pythons samples. DS 2.75b2 - Prevented high CPU/power usage of NodeJS apps. - Fixed DoEvents to prevent lockups in Node based apps. - Added 'doevents' option to app.CopyFolder (keeps UI alive when copying large folders). - Fixed 'Simple' Node Native template. DS 2.75b1 - Fixed crash when calling !buildapk option from Wifi-IDE. - Added extra 'password' param to !buildapk (user.keystore musts exist). - Added new '!buildaab' command to Wifi-IDE. - Added 'noHeadless' option to config.json (block TV/Headless mode). - Fixed app.SetOnError method for Node based apps (trap errors to prevent app exit). - Crypto now uses "AES/GCM/NoPadding" (pass "AES/ECB/PKCS5Padding" to app.CreateCrypt for old method) - Removed old samples tab from Wifi-IDE. - Removed scanning for 'HeartRate' keyword (related to restricted body sensor permission). - Fixed missing docs + 90% installation lockup for TV devices.