Help test nb202

Hello everyone,

ai2-test has been updated with a subset of proposed changes for our next release: nb202.

This update includes the SDK 35 version bump for those looking to test their apps prior to the Google deadline on Aug 31.

Change log

New Features:

  • Implement a console UI for Notifier Log messages
  • Add a popup to show where to change UI theme but otherwise not show the theme picker at startup
  • Implement a permission registry for better min/max SDK handling of permissions
  • Add SimpleChatbot app as a starter template for new users
  • Implement dark mode for the web interface
  • Add image creation block to Chatbot (uses Google Gemini)

Bug fixes/improvements:

  • Make Google Voice SMS permissions included in compiled apps only when the corresponding property is checked
  • Bump minimum SDK to 14 and target SDK to 35
  • Remove READ_MEDIA_IMAGE and READ_MEDIA_VIDEO permissions from the companion app to comply with Google Play policy
  • Fix sorting of projects in nested folders
  • Fix lexvar flydown field background color in exported PNGs
  • Fix a bug where projects containing projects would lead to incorrect capabilities in APKs
  • Fix a bug where malformed keystores could hang builds
  • Fix for warning counter being incorrect in blocks editor
  • Fix an issue in index.jsp that would not respect query parameters like autoload=false

Internal changes:

  • Implement server side support for iOS app caching
  • Add password protection to the buildserver
  • Refactor editor hierarchy to support new editor types in the future
  • Remove an unused remote procedure call
  • Remove an unused message of the day service
  • Fix an issue where the read-only project message would occlude menus

Please reply to this post with any new errors you encounter.

Cheers,
Evan W. Patton, PhD
Lead Software Engineer, MIT App Inventor

3 Likes

Same settings, Android 16

Stable version

Test version

These permissions are still available in the non-Play-Store version of the Companion app (test server).

I notice changing between light and dark modes in Classic results in the Projects being sorted alphabetically, even though not requested.
sample run

Android 15 sets apps to full screen by default.

Left: built on the main server --- right built on test server:

Tested on Android 16 (APK).

Make searchBox Sticky

Add some padding & increase text size

Add export screen
image

Direct access to media files (except audio files) using READ_MEDIA_IMAGES and/or READ_MEDIA_VIDEO (on Android 13+) will no longer be permitted for apps in the Play Store starting May 28, 2025 (at least not without an explicit review of the app and its core functionality by Google).

This issue, which should be another nail in Google's coffin, can only be circumvented with the help of SAF.


BTW, if your app contains this block somewhere
grafik, all storage permissions are declared in the Manifest. @ewpatton

    <uses-permission android:name="android.permission.READ_MEDIA_AUDIO"/>
    <uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:maxSdkVersion="29" android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

At least READ_MEDIA_VIDEO and READ_MEDIA_IMAGES should not be declared automatically in the Manifest, but only when they are explicitly requested.


Note: If you use this block instead
grafik only these storage permissions are declared:

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:maxSdkVersion="29" android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

I would of course prefer the latter and then request special storage permissions individually if necessary.

I will also add this part to my guide Some basics on Android storage system in due course.

2 Likes

My understanding is that the sort order has never been saved. When you change the theme, the page refreshes. If you refresh the page on the production server are you seeing the sort order saved?

Yes this was an oversight on my part. It will be fixed in the next update of the test server.

1 Like

This bug seems to have finally been fixed on the test server: :pray:

I am guessing that the choice of sort column and sort direction is saved across sessions on the production server, and also persists during a switch between Classic and Neo.
Sample run:
sample run production server
The projects are sorted here according to the sort controls at the top of each column. The column with the up/down arrow wins.

On t ai2-test, the sort controls get out of sync with the choice of sort column, when switching between light and dark.
Sample run:
sample run ai2-test server

P.S. This is a harmless bug, easily worked around by resorting, that would rarely pop up. I doubt it's worth more than 5 minutes of time.

I am not seeing this on ai2. I sorted by Date Created ▼ and when I refreshed it switched back to Date Modified ▼ (Which I believe is the default).

I am using the Brave browser on Windows 10, for what it's worth.