1. 06 Dec, 2018 2 commits
  2. 03 Dec, 2018 1 commit
  3. 29 Nov, 2018 4 commits
    • Jeffrey I. Schiller's avatar
      Update Companion Version to 2.48 · 3e533338
      Jeffrey I. Schiller authored
      Change-Id: Ic1a9060e2664a9709267e6dc3a36116f79ecca49
      3e533338
    • Jeffrey I. Schiller's avatar
      Merge branch 'ucr' · 2ad313fe
      Jeffrey I. Schiller authored
      2ad313fe
    • Jeffrey I. Schiller's avatar
      Communicate with the Companion with WebRTC · 3362b271
      Jeffrey I. Schiller authored
      Add support for using WebRTC to communicate between the browser and the
      Companion. While using WebRTC assets (images, sounds, etc.) are
      downloaded directly to the Companion from the MIT App Inventor server
      without being redirected through the user’s browser.
      
      By supporting WebRTC we pave the way for offering MIT App Inventor over
      https. The current HTTP based communications system used today (without
      WebRTC) prohibits us from using https for MIT App Inventor itself.
      
      This version of code supports both the new WebRTC approach as well as
      the pre-WebRTC approach both within the MIT App Inventor
      client (browser) and the Companion.
      
      The new Companion will use WebRTC by default, but can be told to use the
      HTTP based system (called a “Legacy Connection”) by checking a box on
      the Companion home screen.
      
      We will have to remove HTTP (Legacy) support prior to serving MIT App
      Inventor over https.
      
      Change-Id: Ib7b2db4261f2c852a7593b7a7b32b7356ff8cb6c
      3362b271
    • Evan W. Patton's avatar
      Numerous Changes in order to target Android API 26 · 3b3f7d08
      Evan W. Patton authored
      Set target api to 26 which corresponds to Android verison
      8.0 (Oreo). Numerous changes where required in order to target api 26
      while still having minSdk set to 7. As a trade-off, some “theme”
      selections will not be available on older devices, but the apps packaged
      with this code will operate on API 7 (Android 2.1).
      
      Author: Evan W. Patton <ewpatton@mit.edu>
      Author: Jeffrey I. Schiller <jis@mit.edu>
      
      Change-Id: Ia307c080072c76d4699550892c99a07b65d3465e
      3b3f7d08
  4. 27 Nov, 2018 1 commit
    • Evan W. Patton's avatar
      Enable debug panel logging only when admin · 79347ed8
      Evan W. Patton authored
      Projects with many components may cause a large number calls to
      OdeLog.log, which appends messages by converting the debugger panel's
      content to HTML and back. This change enables logging only if the user
      is an Admin, since only Admins have access to the debugger panel to
      begin with. This reduces the number of cycles spent on logging for the
      vast majority of App Inventor users. We also optimize how the log is
      constructed so that users with Admin rights have reasonable
      performance on complicated projects.
      
      Change-Id: I62cc2af0e421d3f5fda668f72de62c1895414092
      79347ed8
  5. 26 Nov, 2018 1 commit
  6. 21 Nov, 2018 1 commit
  7. 20 Nov, 2018 1 commit
  8. 19 Nov, 2018 1 commit
    • Evan W. Patton's avatar
      Replace use of isRenderingOn with Blockly event management · c8199a08
      Evan W. Patton authored
      When the 2017 Blockly update was done, it used isRenderingOn to
      determine when to position and render the blocks. This was to optimize
      the interaction between the load/upgrade process and workspace
      resizes. However, in rare instances it seems to result in blocks not
      being placed correctly.
      
      This change removes the special handling of upgrading. Instead, it
      disables and enables the Blockly event system during a load/upgrade
      operation. At the end of the upgrade process (if needed), it will also
      force a save of the blocks workspace.
      
      Fixes #1071
      
      Change-Id: I6bec41dd67bc6371e794e93850ea1455b9acf8c7
      c8199a08
  9. 18 Nov, 2018 1 commit
    • Evan W. Patton's avatar
      Reset min size of button with images (#1398) · 3ed2f95a
      Evan W. Patton authored
      * Reset min size of button with images
      
      If someone sets an image on a button in a non-Classic theme, the
      minimum width/height settings in the theme will force the button to
      sometimes resize the image arbitrarily to fit the minimum constraints
      rather than allowing the button to assume the shape of the image like
      it would in the Classic theme. This fix sets the minimum size of a
      button to 0x0 so that it can take on the image size regardless of what
      the platform's default dimensions for a button.
      
      Change-Id: I590eb1bec860cda221e821c663c03c5cd81a65fe
      3ed2f95a
  10. 15 Nov, 2018 1 commit
    • Jeffrey I. Schiller's avatar
      Bugfix to AARLibrary · eebd635f
      Jeffrey I. Schiller authored
      Some aar files do not have an explicit directory entry for every
      object. Make sure we create the needed directories.
      
      Change-Id: Ic79d8852b6cc48f2399794c4087507e8f9c3bbaf
      eebd635f
  11. 09 Nov, 2018 2 commits
    • Evan W. Patton's avatar
      Remove BOM from GeoJSON files · 560b3724
      Evan W. Patton authored
      While GeoJSON files should not have a BOM per the spec, sometimes
      systems will include the UTF byte order marker (BOM). This breaks the
      JSON parsing on both in the web client and app. This change will check
      for and strip out the BOM before passing the JSON string along for
      further processing.
      
      Change-Id: I9452871e19b3985f9beea48b30cf49b60e4835cb
      560b3724
    • Evan W. Patton's avatar
      Fix clearing of MockFeatureCollection when Source is None · 0206b006
      Evan W. Patton authored
      Change-Id: Icf74d804689dcaa323bac3b4d1f0400631b74a5e
      0206b006
  12. 08 Nov, 2018 1 commit
    • Evan W. Patton's avatar
      Fix GeoJSON Source processing in MockFeatureCollection (#1248) · 9d950986
      Evan W. Patton authored
      If there were multiple features of the same type in a GeoJSON file and
      the file did not include names for the components, one would receive
      multiple components with the same name (e.g., LineString1). LineString
      processing was also broken, resulting in a coordinate string without
      values. Setting the Source to None... would remove the components but
      not clear the features off the map.
      
      This commit addresses three changes:
      
      1. Refactors how naming of map features is handled during the loading
         of GeoJSON into a MockFeatureCollection so that each component has a
         unique name.
      2. It corrects handling of LineString coordinates when the line string
         is not part of a MultiLineString construct.
      3. It cleans up how features are removed when a feature collection is
         cleared.
      
      Change-Id: Iccbcab65989169ab730239b8915b62ca6b6f636c
      9d950986
  13. 07 Nov, 2018 2 commits
    • Jeffrey I. Schiller's avatar
      Changes for Java 8 and the Buildservers · c51e829a
      Jeffrey I. Schiller authored
      We properly close the HttpURLConnection between App Engine (the App
      Inventor server) and the buildserver infrastructure. If we don’t App
      Engine sends RST packets which causes issues for some buildserver
      infrastructures.
      
      Also limit project size to 10MB up-front (rather then after an
      IOException is thrown). Add reporting to the buildserver status page to
      report the number of Java threads.
      
      Change-Id: I934df537dfe9419f5f8effafe80f0a2460091cdd
      c51e829a
    • Evan W. Patton's avatar
      Stop propagation of mouse events on warning toggle button · c1e9dc7e
      Evan W. Patton authored
      In Firefox, Blockly seems to handle mouse events differently than in
      Chrome. This generally isn't a problem, but it affects the warning
      indicator toggle button. Blockly starts a drag at the mousedown but
      then we never will see a mouseup or click event.
      
      This change registers a mouse down listener on the toggle to stop
      propagation to Blockly so that the warning indicator can receive the
      click event. We also update to include support for touch events on the
      toggle button to support App Inventor on tablets.
      
      Change-Id: Iba4e1e274dd3eac86939bb122a1c7f15cc7d41f9
      c1e9dc7e
  14. 02 Nov, 2018 1 commit
    • Evan W. Patton's avatar
      Trim extraneous whitespace from base64-encoded aia · cef1f872
      Evan W. Patton authored
      The base64 utility on macOS writes a carriage return at the end of the
      base64 encoded string. When App Inventor attempts to read a project
      template with this extra whitespace, it causes an exception to be
      thrown since the server's decode() implementation expects a string
      with a length multiple of 4. This change switches to using
      decodeLines(), which ignores whitespace.
      
      Change-Id: I34f6c7b1ef1fcd12b82eab67c98ffb422bbf5894
      cef1f872
  15. 30 Oct, 2018 1 commit
  16. 21 Oct, 2018 1 commit
  17. 19 Oct, 2018 2 commits
    • Mark Sherman's avatar
    • Susan Rati Lane's avatar
      Add Online Documentation for Built-In Blocks to repo (#1358) · 4ba0f8f4
      Susan Rati Lane authored
      The advantage to tracking the documentation in the same repo as the code itself is that changes to docco can be tightly coupled to the code changes it describes.
      
      blocks.html has been changed to index.html. Images are also added to the repository with related links updated. All other links in the html are now external links appinventor.mit.edu/explore
      
      HELPURLs are now relative links to the new location of the documentation.
      
      Links are now set only in the English message file, since we only have English docco for the forseeable future, and all links in the localization files point to the same place anyway.
      4ba0f8f4
  18. 26 Sep, 2018 1 commit
  19. 24 Sep, 2018 2 commits
  20. 11 Sep, 2018 1 commit
    • Conor Shipp's avatar
      Added context menu items to enable and disable all blocks (#1353) · 860cd765
      Conor Shipp authored
      This commit adds two new items to the context menu of the blocks editor. The first one is "Enable All Blocks" which enables all blocks on the workspace. The second option is "Disable All Blocks" which disables all of the blocks on the workspace.
      
      Resolves #1091
      860cd765
  21. 10 Sep, 2018 1 commit
  22. 05 Sep, 2018 1 commit
  23. 24 Aug, 2018 1 commit
    • Jeffrey I. Schiller's avatar
      Fix a 500 Error · 49c25e75
      Jeffrey I. Schiller authored
      Google Search reported this to us. If you go to “/b” you get an
      ArrayIndexOutOfBounds exception. This is not a valid URL, normally in
      practice a code follows the /b/ which points to the APK to download. So
      given that /b is not valid, we turn the error into a 404, which makes
      more sense.
      
      Change-Id: Id3ac26a35eb2cb51038a74974850ee401b9fb91c
      49c25e75
  24. 12 Aug, 2018 1 commit
    • Evan W. Patton's avatar
      Set webViewString directly to bypass event from blocks (#1320) · 2869a13e
      Evan W. Patton authored
      Setting the WebViewString from blocks will also trigger a
      WebViewStringChange event. This forces users to have to work around
      the extra change event when they are typically expecting the change
      from within JavaScript code only. This change sets the internal value
      directly to bypass firing the event.
      
      Change-Id: Ic8f38bfb34faad1f67ee0bcc29289417ef780eb3
      2869a13e
  25. 10 Aug, 2018 1 commit
  26. 31 Jul, 2018 1 commit
    • Jeffrey I. Schiller's avatar
      Provide for a second buildserver. · 308f1f33
      Jeffrey I. Schiller authored
      Provide for a second buildserver. If provided then the user is presented
      a choice of two different build servers. This feature was introduced to
      support building against two different versions of the Android SDK. As
      of 8/1/2018 MIT is using this feature with the first buildserver
      building Apps with a minSdk of 7 (but no targetSdk defined) to support
      older devices. The second buildserver is configured with a minSdk of 14
      and a targetSdk of 26 (along with the necessary component code
      changes). This is required for new Apps submitted to the Google Play
      Store. Having two buildservers provides us the flexibility to support
      older devices while also ensuring that people can submit MIT App
      Inventor created Apps to the Google Play Store.
      
      Change-Id: Iae58f9ff4d112f8bc5d3203675f37cec7bf76920
      308f1f33
  27. 11 Jul, 2018 3 commits
  28. 07 Jul, 2018 1 commit
  29. 06 Jul, 2018 1 commit
  30. 05 Jul, 2018 1 commit