1. 04 Jan, 2018 2 commits
    • Evan W. Patton's avatar
      Buffer PUT files on disk to prevent OutOfMemoryError (#1078) · 6c4f0ac5
      Evan W. Patton authored
      The new companion is too large to fit in the emulator's 8 MB memory
      limit all at one time. This commit changes NanoHTTPD so that for PUT
      operations the contents of the file being PUT are first written to a
      temporary location rather than being kept fully in memory.
      
      Fixes #1077
      
      Change-Id: I61207c57d7d3dca8e8a2f65ba1b0afe676e6342b
      6c4f0ac5
    • Evan W. Patton's avatar
      Fix Windows build problems in AARLibrary (#1083) · 71bca4d2
      Evan W. Patton authored
      A hard-coded '/' breaks builds involving Maps on Windows. This commit
      switches to using File.getName() to get the name of archive before
      stripping its '.aar' file extension.
      
      Change-Id: I2b43569011975ef1d1ee33f28fbc4d1270e5f331
      71bca4d2
  2. 03 Jan, 2018 1 commit
  3. 28 Dec, 2017 3 commits
  4. 27 Dec, 2017 1 commit
  5. 23 Dec, 2017 4 commits
  6. 22 Dec, 2017 1 commit
    • Evan W. Patton's avatar
      Add Map and related components · 95be2f24
      Evan W. Patton authored
      This commit adds support for Maps using OpenStreetMaps and USGS tile
      layers. It also adds a number of components related to Maps:
      
      1. Marker: Custom markers to represent points on a map.
      2. LineString: Line segments drawn on the map.
      3. Polygon: Polygons to draw 2D areas on the map.
      4. Circle: Draw a circle at a point with a given radius.
      5. Rectangle: Polygons, but fixed corners/sides.
      6. FeatureCollection: Collections of the above loaded
         from a GeoJSON file.
      
      Change-Id: Ib2d7155094f2557e102de118d5c629abb9675086
      95be2f24
  7. 21 Dec, 2017 2 commits
    • Jeffrey I. Schiller's avatar
      The CloudDB Component · 3cfbee8f
      Jeffrey I. Schiller authored
      CloudDB is similar to the FirebaseDB component but does not require a
      proprietary back-end database. Instead the back-end is based on the open
      source Redis system which is a well used and scale-able data storage
      solution.
      
      With CloudDB you can store arbitrary data, including binary image data,
      based on a “tag” which is a string. The “tag” is combined with
      ProjectID (which defaults to the name of the current project, but can be
      changed) so that multiple projects can use the same tags without
      interfering with each other.
      
      The domain name system name of the Redis server should be configured the
      “RedisServer” property. This defaults to “DEFAULT” which is a server
      provided default (more on that below). The “Token” property should be
      the password required for the Redis Server. An “out of the box” Redis
      server does not implement SSL, so the UseSSL property should be
      unchecked.
      
      In the DEFAULT setup, the server name is set to DEFAULT, UseSSL is
      checked and the Token is automatically generated when you load a
      project. In the DEFAULT case, a special modified Redis server is used
      which implements multi-user features which provide isolation between
      different MIT App Inventor programmers. It also uses SSL to protect
      on-line communications from interception.
      
      Author: Natalie Lao <natalie@csail.mit.edu>
      Author: Jeffrey I. Schiller <jis@mit.edu>
      Author: Joy Mitra <joymitro1989@gmail.com>
      
      Change-Id: Ic7d7aa0f7337a5452d9c138920813deb797fac20
      3cfbee8f
    • Jeffrey I. Schiller's avatar
      Fix AccelerometerSensor component for Tablets · d58d40ce
      Jeffrey I. Schiller authored
      Fix the AcclerometerSensor component for tablets that use Landscape mode
      by default. Add a “LegacyMode” designer property so people can revert
      this behavior for apps where they have performed the needed compensation
      in their own blocks (though we would prefer they just fix their blocks).
      
      Change-Id: I29157612d54dd28ec0e85a822ef47f6ddd73b05c
      d58d40ce
  8. 20 Dec, 2017 2 commits
  9. 13 Dec, 2017 1 commit
  10. 11 Dec, 2017 2 commits
  11. 25 Nov, 2017 1 commit
  12. 20 Nov, 2017 1 commit
  13. 19 Nov, 2017 1 commit
  14. 15 Nov, 2017 1 commit
  15. 14 Nov, 2017 2 commits
    • ColinTree's avatar
      Permit sub-directories in extensions · ccd4bc04
      ColinTree authored
      Permit sub-packages stored in sub-directories in extensions. Before this
      change sub-packages were mistakenly placed in the main package’s
      directory, resulting in a non-functional situation
      
      Fixes #962
      
      Change-Id: I8797cdca8fb98485264d7f691b5f90eb83f20fd6
      ccd4bc04
    • Evan W. Patton's avatar
      Add WorkspaceMove event for undoing viewport moves · c0374682
      Evan W. Patton authored
      We added a mechanism that moves the workspace when highlighting a
      procedure definition block. However, we do not provide a mechanism to
      go back to the original viewport position prior to the move. This
      commit adds a WorkspaceMove event that is recorded when the workspace
      is shifted and can be undo via the normal undo/redo stack to return
      the user from where they came in the workspace.
      
      Note this is not robust to changes in the viewport size between
      operations.
      
      Change-Id: I09f1af2f3d7db62af0f1487a90a56a66f99273bc
      c0374682
  16. 11 Nov, 2017 6 commits
    • Evan W. Patton's avatar
      Prevent error checking on block during drag · 7f5bcb65
      Evan W. Patton authored
      There was a visual glitch when dragging variable getters into sockets
      due to the error icon appearing and shifting the block visually from
      the coordinate Blockly maintained as the drag position. This resulted
      in the connection highlight and checking algorithms to not fire when
      the blocks were visually aligned but rather when the internal states
      were visually aligned. This commit prevents checking a block for
      errors if the block is being dragged. After the drag is complete, a
      Move event will be triggered and the workspaceChanged listener will
      perform an error check at the time the block is dropped. This prevents
      an error icon from causing the aforementioned glitch.
      
      Fixes #971
      
      Change-Id: I225dac2a278b58dae9e520747a9f2c69c96bf109
      7f5bcb65
    • Evan W. Patton's avatar
      Scroll to highlighted procedure · f5fdcd0e
      Evan W. Patton authored
      Previously the blocks editor would only highlight a procedure block
      when the "Highlight Definition" context menu item was chosen. This
      version will also scroll the workspace so that the definition block is
      visually centered in the workspace when possible, with a constraint
      that the top-left coordinate must appear on the screen.
      
      Fixes #984
      
      Change-Id: If8c06825b285ad7008cbf6f7e7948392be12c0c0
      f5fdcd0e
    • Evan W. Patton's avatar
      Fix component methods in typeblocking · 54565cde
      Evan W. Patton authored
      Fixes #995
      
      Change-Id: Icc3c90f9b5d18925031e1183d84ca84310208e7b
      54565cde
    • Evan W. Patton's avatar
      Bypass Closure's SafeHtml for HTML known to be safe · e2b5693d
      Evan W. Patton authored
      When we updated the Closure Compiler for the Blockly update, some
      strings containing HTML were escaped unnecessarily. These strings are
      part of internationalization, and so they will be code reviewed before
      acceptance into the code base. We therefore break the SafeHtml
      contract imposed by Google Closure Library and manipulate the content
      element directly so that the static HTML content is preserved.
      
      Fixes #985
      
      Change-Id: I8a545d46aceedcb8039f194ce03a86d924ab0867
      e2b5693d
    • Evan W. Patton's avatar
      Fix extension upgrade issues · 157e5944
      Evan W. Patton authored
      An interaction between an upgrading an extension with a new version
      number and a change to YaVersion results in being unable to open a
      project with extensions. This fix does two things to address this:
      
      1. Force a save of the project so that the version numbers of the
      extension are persisted back to the server.
      2. Check whether a component to be upgraded is an external component,
      and if so, skip the upgrade step since we don't have an upgrader for
      it anyway.
      
      Fixes #996
      
      Change-Id: I6d39f70b3cac80961ed538f5a2bd99ab81729a5e
      157e5944
    • Evan W. Patton's avatar
      Add "Extension Version" field to help widget · 494ca7d1
      Evan W. Patton authored
      Assisting users with extensions is difficult because it is unclear
      whether problems occur because of bugs in the extension or due to a
      mismatch in versions when extensions work together. This commit adds
      an "Extension Version" header on the helper widget that displays the
      version number specified in the @DesignerComponent annotation if the
      version number is greater than 0.
      
      Closes #894
      
      Change-Id: If7fdd49795e81f8ff784036ce5745de499aafbd9
      494ca7d1
  17. 27 Oct, 2017 2 commits
    • Evan W. Patton's avatar
      Make if block mutator robust to undo/redo operations · 00be41cd
      Evan W. Patton authored
      This commit reconciles our implementation of the `if` block with the
      implementation in Blockly. In particular, our implementation only
      works under the assumption that the user is making changes via the
      mutator and causes graphical problems when the undo/redo feature in
      Blockly is used. The Blockly version correctly handles undo/redo, but
      the mutator is slightly different in its implementation. This change
      maintains our visual presentation of the mutator but uses the Blockly
      logic for updating.
      
      Fixes #973
      
      Change-Id: Ib335d4cd7f132f8bf21f9c691ee7a7e53f28e674
      00be41cd
    • Conor's avatar
      Update reference materials with new logo (#966) · 6deba8bc
      Conor authored
      I have updated all of the reference documentation pages to use the new
      MIT AI logo.
      
      Fixes #932
      6deba8bc
  18. 24 Oct, 2017 1 commit
  19. 23 Oct, 2017 1 commit
  20. 22 Oct, 2017 1 commit
    • Evan W. Patton's avatar
      Update block tooltips when property selection changed · e2d49de6
      Evan W. Patton authored
      Prior to this commit, changing the target property in a getter/setter
      block would not update the tooltip of the block to match the new
      property. This commit updates the tooltip in response to the dropdown
      selection changing.
      
      Fixes #964
      
      Change-Id: I7ab095699f533fd262f2dc69cbae515e96163b8f
      e2d49de6
  21. 16 Oct, 2017 2 commits
    • Jeffrey I. Schiller's avatar
      Add Flag to enable AcceleratormeterSensor change · fef99674
      Jeffrey I. Schiller authored
      The previous commit adds support for the AccelerometerSensor to
      compensate for default landscape tablets. This change adds a flag that
      can be used (in branding branches) to disable this change at compile
      time.
      
      Change-Id: I6a98d2c7e2fdfab06ac5b40c9f9641acdd836be8
      fef99674
    • hal's avatar
      Support default landscape tablets · 0f01fbe5
      hal authored
      Change the accelerometer so that Xaccel and Yaccel behave on
      LandscapePrimary devices the same way as they do on PortraitPrimary
      devices.  If you hold the device vetically (long edge vertical) then
      xAccel should be 0 and yAccel should be -9.  Rotate 90 degree
      counterclock wise and xAccel,Yaccel should be 9,0.  This should be true
      on both PortraitPrimary and LandscapePrimary devices.
      
      Change-Id: I2537be388a7c77fee0a7f85bff98abe217546c80
      0f01fbe5
  22. 13 Oct, 2017 1 commit
    • Jeffrey I. Schiller's avatar
      ActionBar: Work with older Companion · 0a51d0f9
      Jeffrey I. Schiller authored
      Do not store the ActionBar property if it is set to its default value,
      which is “False.” This permits the Pre-ActionBar aware Companion to work
      with projects, as long as the ActionBar property is left unchecked.
      
      Change-Id: I3afaa761e66d7eecc5eb5ed79d9d6d7aa86835f3
      0a51d0f9
  23. 11 Oct, 2017 1 commit
    • Evan W. Patton's avatar
      Reduce number of companion updates · 51cafd67
      Evan W. Patton authored
      Opening and closing a mutator or clicking a block would result in the
      blocks code being resent to the companion because any workspace event
      would force a YAIL update. This change adds a isUi method to check
      whether a Blockly event is a UI event, which doesn't change the
      semantics of the program, and ignores such events for the purpose of
      updating the companion.
      
      Change-Id: Id80d1d094e585cc7182fe3987f8e0adc2b45b872
      51cafd67