1. 12 Sep, 2017 1 commit
  2. 08 Sep, 2017 1 commit
    • Evan W. Patton's avatar
      Add support for app themes · 6e23c47c
      Evan W. Patton authored
      With the addition of the Android support libraries we can now allow
      users to change the theme and colors of their apps globally. This
      commit adds a handful of properties to accomplish and give rough
      approximations of the theme in both the web environment and
      companion. Some colors cannot be changed at runtime so the only way to
      see the results is to compile an app.
      
      Change-Id: Iba0be346f1824445ab4edcdca37dd384abd42850
      6e23c47c
  3. 01 Sep, 2017 2 commits
    • Evan W. Patton's avatar
      Add support for 32-bit color palette picker · ecb66599
      Evan W. Patton authored
      This commit adds a Custom... menu item to color pickers to allow users
      more customizability in their user interfaces. This was originally
      part of the Maps commit, but has been broken out to a separate commit
      since it also supports customizing theme colors with Material UI.
      
      Change-Id: Iea5ec183a086d8541f81e1c8280c45b48c12d17f
      ecb66599
    • Evan W. Patton's avatar
      Add support for Android Archive (AAR) libraries · 6d1548a8
      Evan W. Patton authored
      To support newer features of Android devices, such as the action bar
      and new UI themes, this commit adds support for compiling App Inventor
      apps with the Android Archives (AAR).
      
      Change-Id: I6e51b07f6ff3a5516ea5b945b39c9260f6fd5423
      6d1548a8
  4. 28 Aug, 2017 4 commits
    • Evan W. Patton's avatar
      Make tests run from module directory · 9764976a
      Evan W. Patton authored
      Before this commit, tests were run with the current working directory
      different depending on whether the tests were run from within the
      submodule directory (e.g., components) versus in the top level ant
      script. This means that relative paths may not be correct if one wants
      to run tests only on a specific submodule.
      
      This commit makes it so that the ai.dojunit macro changes directory
      into the appropriate submodule before running any tests so that
      relative paths do not need to be adjusted based on whether all or some
      subset of tests are being run.
      
      Change-Id: I3d3c5803f3c29adc9e371e106aed08d92968eb35
      9764976a
    • Evan W. Patton's avatar
      Fix cast exception from ScaleDrawable to ClipDrawble · 4a086e97
      Evan W. Patton authored
      We grab the progress drawable and cast it to ClipDrawable. This causes
      a ClassCastException on phones where the manufacturer provides custom
      view hierarchies for the slider but do not use the same classes as the
      original Android views. However, the only method we call is defined on
      Drawable, so this commit switches to using the Drawable superclass and
      removes the cast to ClipDrawable.
      
      Fixes #912
      
      Change-Id: I20b0691ca684a2e34140aafa9d3b04eb4adf7148
      4a086e97
    • Evan W. Patton's avatar
      Report java.lang.Errors to blocks editor · 1336ff9f
      Evan W. Patton authored
      Stack overflow errors (and other subclasses of java.lang.Error) were
      not beign reported to the blocks editor/ReplMgr, as reported on the
      forum. This commit updates runtime.scm so that Throwable is caught at
      key points and if the Throwable is an Error that it is converted to a
      string since the dalvikvm may not provide useful information in the
      Throwable's getMessage(). This resulted in an "undefined" error due to
      the lack of an error message.
      
      Fixes #909
      
      Change-Id: I02e2065321bd92cb566f40cb478e9ec3e9c24246
      1336ff9f
    • hal's avatar
      Replace the Kawa implementation of join-strings by an implementation · e3d1a878
      hal authored
      in Java.  Join-strings takes a list of strings and a string separator.
      I concatenates the strings, with the separator interlaced, and
      returns the result.  On small-memory systems (e.g., the emulator), and
      with list of strings that have many elements (thousands), the Kawa
      implementation was running out of stack (recursive implementation) and
      blowing out memory (tail-recursive implementation).   So we'll use
      a Java implementation instead.
      
      Change-Id: Id5e9f1bf9d04f70e4a5dd181708f58d2779ccbac
      e3d1a878
  5. 23 Aug, 2017 2 commits
    • Jeffrey I. Schiller's avatar
      Update logo (slight color change) · 61aa36dc
      Jeffrey I. Schiller authored
      Includes the favicon.ico as well as the logo
      
      Change-Id: Ie05bd5e3a6a3f072c81c91d11aee60b52fe9905c
      61aa36dc
    • Evan W. Patton's avatar
      Fix infinite loop when connecting companion · 289b888d
      Evan W. Patton authored
      A user reported an issue with a project where connecting the companion
      caused the ReplMgr to go into an infinite loop. The issue was due to a
      combination of setter block having an empty socket (triggering an
      error resulting in the slow path) and the fact that there were more
      than 20 top-level blocks in the project. After testing the first 20
      blocks it would attempt the fast path, which would retrigger the slow
      path, ad infinitum.
      
      This commit updates the countdown in the slow path to use the number
      of top-level blocks in the workspace rather than hard-coding 20
      checks.
      
      Fixes #887
      
      Change-Id: Ie15b0f35cd145ecc0b789707f032eca6c179d107
      289b888d
  6. 17 Aug, 2017 3 commits
    • Evan W. Patton's avatar
      Add option to generate extensions with old-style layout · 645eb86f
      Evan W. Patton authored
      Prior to the IOT release, extensions were packaged using the FQCN of
      the extension inside of the AIX file. To faciltate being able to
      contain multiple extension components in a single package, we switched
      to using the package name rather than the FQCN. This causes backward
      compatibility issues for extension developers who released extensions
      prior to the update.
      
      This commit adds a extensions.packagefqcn property to ant that can be
      set to true by developers supporting older extensions so that the
      internals of the extension package reflect the older layout. It is
      recommended that all new extensions be built with the default (false)
      to benefit from the new layout.
      
      Change-Id: Idd9134c7d4d7c19f9a8869e4f88e164e2efa5cc8
      645eb86f
    • Evan W. Patton's avatar
      Fix XSS vulnerability in ClientJsonParser · 902ac3d8
      Evan W. Patton authored
      ClientJsonParser was calling a GWT API that used eval() to parse JSON
      content rather than JSON.parse(). A maliciously crafted project
      containing an extension components.json file with Javascript instead
      of JSON would allow injecting arbitrary Javascript into the user's
      session. This commit switches to strict parsing and includes exception
      handling to report corrupt/invalid components.json to the user.
      
      Change-Id: Iafaaf004310ac45cf0c1cea18eae1cfd58de17ef
      902ac3d8
    • Evan W. Patton's avatar
      Make extension deletion robust to package name collisions · 563ec8c2
      Evan W. Patton authored
      If a project contained multiple extensions sharing the same package
      name, deleting one extension would also remove the other extensions
      sharing that package name. This generally shouldn't happen going
      forward because extension bundles automatically group extensions by
      package name (which is why this logic is in place), but it didn't
      handle the case where old extensions were in the same package.
      
      This commit groups extensions by the components.json file that defines
      them, and only deletes those extensions that are siblings by the
      components.json file, rather than blanket-deleting extensions solely
      by package name.
      
      Fixes #910
      
      Change-Id: I26a5db29a3919033fd50f2a2d65c6f805513ae2c
      563ec8c2
  7. 15 Aug, 2017 1 commit
  8. 12 Aug, 2017 1 commit
  9. 11 Aug, 2017 1 commit
  10. 21 Jul, 2017 1 commit
    • Evan W. Patton's avatar
      Add failure condition when extensions collide on package name · 5e072d92
      Evan W. Patton authored
      Taifun reported that importing many extensions of the same package
      name into a single project made them unable to load. This change
      detects this scenario and returns an error to the user preventing them
      from loading the conflicting extension. There is also a test to ensure
      that if one has two extensions in the same package and then loads a
      bundle containing the individually FQCN extensions the old extensions
      will be removed and placed with the bundled version.
      
      Change-Id: If35663d650d3a24f6c5aaeceaf490a24ac008522
      5e072d92
  11. 18 Jul, 2017 1 commit
    • Jeffrey I. Schiller's avatar
      Fix Tutorial Panel height on Firefox · 618e6500
      Jeffrey I. Schiller authored
      Firefox requires that the <div> that includes the Tutorial Panel has its
      height set to 100%, otherwise it displays it with a height of 150px (per
      the CSS standard).
      
      Change-Id: Id7afd34f4aa058dd5f7b4982d6409941d472d907
      618e6500
  12. 08 Jul, 2017 2 commits
    • Jeffrey I. Schiller's avatar
      Remove References to AI1 from No Projects Dialog · a41b262b
      Jeffrey I. Schiller authored
      Remove references to AI1 from the No Projects Dialog in non-English
      language translations.
      
      Change-Id: Ic518901c445cb65fbf6d0ac6b2abcd1276e23264
      a41b262b
    • Jeffrey I. Schiller's avatar
      Remove obsolete Splash Screen Message · 20462d16
      Jeffrey I. Schiller authored
      Remove the Splash Screen Message from OdeMessages. The message now comes
      from the data store. The update made to take the message from the data
      store neglected to remove the obsolete message from OdeMessages. We
      remove it here.
      
      Change-Id: I1ed7e751ce4a3ab150cf4250270b0a544416e9ac
      20462d16
  13. 06 Jul, 2017 3 commits
    • Klomi's avatar
      Update zh-CN and zh-TW localization files · 5d63ca64
      Klomi authored
      Change-Id: I4811755660bdcbb662f39f719b0cb7ad89b9f12f
      5d63ca64
    • Magdalena Sowder's avatar
      Added video and image enlargement · 03b4f234
      Magdalena Sowder authored
      Created a modal pop-up for videos and images from the tutorial. Added
      changes to separate file to create a new class that extends Frame.
      
      Change-Id: Ie47ce9896aefff2bcebe3cbe64fbe512a1258661
      03b4f234
    • Katie Mathison's avatar
      Fixed broken generic component method blocks · d6cbce49
      Katie Mathison authored
      There was an issue where some generic component method blocks did not have the
      mutator labeling them as such. This was fixed by explicitly setting the
      is_generic mutator along with the other mutators when these blocks are generated
      in the drawer.
      
      There was another issue where generic clock add blocks expected a time unit
      dropdown which only exists on the instance version of the clock add blocks. This
      was fixed by only setting the time unit if the block is not generic, since this
      attribute is only used in the instance version of these blocks.
      
      Change-Id: I9fb4bee9bef9fa76e40a240b587ec0b05ba86693
      d6cbce49
  14. 05 Jul, 2017 1 commit
    • Jeffrey I. Schiller's avatar
      Remove the “Beta” Tag · c829f1bf
      Jeffrey I. Schiller authored
      Remove the “Beta” tag from MIT App Inventor. Also remove the “2” as
      well.
      
      Change-Id: Ifed997d86e13b5f59a93e736f5caee7299ca1039
      c829f1bf
  15. 04 Jul, 2017 2 commits
    • Jeffrey I. Schiller's avatar
      Eliminate IllegalArgumentExceptions · b4800e4e
      Jeffrey I. Schiller authored
      If someone attempts to download a packaged project while a new build is
      running, we throw in IllegalArgumentException because the built apk is
      no longer present (the first thing a new build does is remove the old
      apk). This happens often enough that it is one of the top errors being
      logged by the Google Cloud Console.
      
      This change eliminates the IllegalArgumentException and instead just
      returns a “File Not Found” error (404 error) to the user attempting the
      download.
      
      Change-Id: I6fb92e51477c1ad93059cf57a449396d4fea0d7d
      b4800e4e
    • Jeffrey I. Schiller's avatar
      Update Companion Version to 2.43 · ead08b21
      Jeffrey I. Schiller authored
      Change-Id: I1166ec3b843665338e6fdd8155d1486cce23b7b7
      ead08b21
  16. 03 Jul, 2017 2 commits
    • Jeffrey I. Schiller's avatar
      Dutch Translation · 8a60b2ef
      Jeffrey I. Schiller authored
      Change-Id: Ic3deb5ee2bfe9ac98f3d0f64b6a98b987e2d36d6
      8a60b2ef
    • Jeffrey I. Schiller's avatar
      Change URL for TinyWebDB · d01b1568
      Jeffrey I. Schiller authored
      Update the URL to use tinywebdb.appinventor.mit.edu instead of at
      appspot.com. This gives us the flexibility to move the service from
      Google’s App Engine to a service hosted anywhere, including at MIT.
      
      Change-Id: I1f68f118e20f25740b7667b1efe93b2a1b925ce0
      d01b1568
  17. 30 Jun, 2017 1 commit
    • Evan W. Patton's avatar
      Fix redirection in Google Voice utilities · 1de86a4b
      Evan W. Patton authored
      The old version of Google Voice used by the Texting component
      redirects to a newer version, breaking the existing
      functionality. This change uses a special URL redirection and cookie
      provided by Google to legacy Google Voice to work around the
      issue. This will likely break again in the future but will buy time to
      implement a more robust solution, likely based on a non-Google
      product.
      
      Change-Id: Ie519a34fde18204060bd44278f206c1d4c77034b
      1de86a4b
  18. 14 Jun, 2017 2 commits
  19. 12 Jun, 2017 3 commits
    • Evan W. Patton's avatar
      Make extension strings internationalized · b19bcc03
      Evan W. Patton authored
      Fixes #888
      
      Change-Id: Ib394778a30729c54cfdc787107e542b85cfd3a1a
      b19bcc03
    • Evan W. Patton's avatar
      Fix bug with selection clearing triggered when dev tools open · 0909eb27
      Evan W. Patton authored
      Change-Id: I62d20ee830af8f88ce816736d71ab78da90fed9d
      0909eb27
    • Evan W. Patton's avatar
      Fix issue with deleting an instantiated extension · 57286750
      Evan W. Patton authored
      It was reported that deleting an extension that had been instantiated
      results in an "Oops! something broke" message. The issue is caused by
      collecting all of the sibling component types in the same package (due
      to extension bundles) and accidentally double-counting the extension
      type that triggered the deletion. This would result in an attempt to
      delete the same component twice resulting in an error because the
      component no longer existed.
      
      This commit fixes the problem by checking the sibling name against the
      set of to-be-removed classes to ensure that adding a sibling doesn't
      duplicate the original class for removal.
      
      Change-Id: Id3d5e17da4e3a5c4e8423ac32fc427cfdcd8ebdc
      57286750
  20. 09 Jun, 2017 1 commit
    • Evan W. Patton's avatar
      Make error message when loading projects with missing components · e7fefb22
      Evan W. Patton authored
      A user reported when loading an old project with a reference to the
      BLE component resulted in an unexpected error. This was due to the
      component being present in the Screen1.scm but not in the assets. This
      commit makes it so that looking up an undefined component will result
      in an error message being reported to the user indicating that the
      project in question cannot be loaded.
      
      Change-Id: Ida96802fd8152bf94dc2ac1f481c3acb3810a724
      e7fefb22
  21. 04 Jun, 2017 2 commits
    • Jeffrey I. Schiller's avatar
      Add a TutorialURL property · 6e7fc03a
      Jeffrey I. Schiller authored
      The TutorialURL will be opened in a sidebar in MIT App Inventor. This
      permits people to build “template” projects with a tutorial (hosted on
      their own site) displayed in a sidebar.
      
      For now, we only allow tutorial urls from http://appinventor.mit.edu/ or
      http://appinv.us/.
      
      Change-Id: Ia79eeac6bd3809ce32d0475aa3954ad2c996c776
      6e7fc03a
    • Jeffrey I. Schiller's avatar
      Add “DRAINING” State to Buildserver · 6497ac17
      Jeffrey I. Schiller authored
      When running a set of buildservers behind a load balancer there is a
      bunching effect that can happen when one buildserver winds up with a
      large number of simultaneous builds while other buildservers are
      idle. This happens when a buildserver becomes a little busy and as a
      result runs slower then the other servers. This increases the likelihood
      that it will get more work to do while it is still working on existing
      jobs. Which slows it even further which results in more jobs until it
      hits its maximum and rejects jobs (while the other buildservers are
      idle!).
      
      This change results in the buildserver returning an unhealthy status to
      the load balancer (most load balancers can be configured to check a
      buildservers health periodically) after it reaches 2/3 of its maximum
      load. It then stays in this “DRAINING” state until the load becomes less
      then 1/3 at which point the state becomes “UP” again.
      
      Change-Id: Id6be52475151a0208000ced17fe1f2d3f15e7b94
      6497ac17
  22. 03 Jun, 2017 1 commit
    • User's avatar
      Update _messages.js · 631b5bdc
      User authored
      Correct a translation error
      
      Change-Id: I85ef2c21e7ad56daa9aec8efa4e386aaf9fa55ae
      631b5bdc
  23. 30 May, 2017 2 commits
    • Evan W. Patton's avatar
      Fix splash screen and mutators in Blockly release · 30e307e3
      Evan W. Patton authored
      This commit fixes the following:
      
      1. Blocks in the mutator workspace did not respond to mouse down
      events in Firefox versions earlier than 53.0 due to the lack of a
      focus method on SVG elements.
      
      2. Made the splash screens only appear after leaving the project list
      (if the user had projects). This prevents a scrolling issue that
      occurs when the user has more than one screen's height worth of
      projects and the DeckPanel transitions from the project list to the
      designer view while the splash screen is being shown. In some cases,
      users were unable to scroll to or otherwise access the dialog to
      dismiss it.
      
      Change-Id: If368f4c15a55993f95ef17050bb8c0e9493cf40e
      30e307e3
    • Pavitra's avatar
      Fixed Markdown errors · cc00c110
      Pavitra authored
      Change-Id: If1b6dcd50078f3b214d03fa8bb13032a88b54c96
      cc00c110