1. 31 Dec, 2016 1 commit
    • Evan W. Patton's avatar
      Fix SoundRecorder crashing on Start method call · 8cbe40cf
      Evan W. Patton authored
      Reported by the forum posting [1], the SoundRecorder crashes when the
      Start method is called. After some debugging, this is due to
      unexpected values being reported via the onInfo method being called
      with an unexpected, non-documented value of `what`. The code always
      called controller.recorder.stop(), but since the MediaRecorder hadn't
      transitioned to the recording state yet, stop() throws an uncaught
      IllegalStateException, which kills the program.
      
      This commit makes the onInfo method more robust by reporting known
      `what` values via dispatchErrorOccurredEvent and ignoring any values
      not declared by AOSP. It also adds a call to StoppedRecording()
      otherwise the app may not have been aware of the failure state.
      
      [1] https://groups.google.com/d/msg/mitappinventortest/qMPzn5s82UY/LJu8znfrAwAJ
      
      Change-Id: Ifd12fcf016df07b500b958bd4900781bf6ff6c47
      8cbe40cf
  2. 12 Dec, 2016 1 commit
    • hal's avatar
      Add the “ShowListsAsJson” Property · 160f16c0
      hal authored
      When set this property causes lists to be displayed in JSON notation
      rather then Lisp notation. Its default value is “false” so current
      projects continue to work and new projects will still use Lisp
      format. This can be changed in the future once the Companion that
      supports ShowListsAsJson is widely deployed.
      
      Change-Id: I2e6b25c32d27377685eb8111f44536479e7c55b7
      160f16c0
  3. 30 Oct, 2016 2 commits
    • William S. Byrne's avatar
      Added support for activity starting from any component. · c976f01e
      William S. Byrne authored
      Summary:
      Using the @ActivityElement and @UsesActivities annotations, it is now
      possible to launch an arbitrary activity from a component without
      hacking Compiler.java to register that activity in AndroidManifest.xml.
      
      Using the @ReceiverElement and @UsesBroadcastReceivers annotations, it is
      now possible to leverage the full functionality of the Android
      framework when creating <receiver> elements in AndroidManifest.xml.
      
      Both of these new annotations allow App Inventor component developers
      to add <intent-filter> and <meta-data> subelements to activities and
      broadcast receivers declared in AndroidManifest.xml with the
      @IntentFilterElement and @MetaDataElement annotations.
      
      -ListPicker has been refactored to use these new annotations.
      -BarcodeScanner has been refactored to use these new annotations.
      -Twitter has been refactored to use these new annotations.
      -Texting has been refactored to use these new annotations.
      -Since the NearField component makes changes to the main activity contingent
       on information that is only available at build time, Form and NearField
       cannot be refactored to use these annotations at the moment.
      -New unit tests for broadcast receiver and activity generation were added in
       com.google.appinventor.buildserver.CompilerTest.java.
      -Added legacy support for the deprecated @SimpleBroadcastReceiver annotation
       so that we don't break extensions that are currently using it.
      
      Change-Id: I2114f2b522bdbcf51e1e1b79a642010ff040e183
      c976f01e
    • Evan W. Patton's avatar
      Disable suggestions in TextView · 2ad58dd7
      Evan W. Patton authored
      This commit disables suggestions in the TextView, which appears to
      crash the Companion on Android 7+ due to missing layouts.
      
      Change-Id: I932f5aeaded2584e80f1e2e512e401000a7214ed
      2ad58dd7
  4. 21 Oct, 2016 1 commit
  5. 21 Sep, 2016 1 commit
  6. 19 Sep, 2016 1 commit
    • Evan W. Patton's avatar
      Fix erroneous reference to getProcedureDef · 54611776
      Evan W. Patton authored
      When changing the called procedure name in a procedure block that
      returns a value, the parameter sockets disappear and the block becomes
      unusable. This is caused by the fact that the code looks to call
      getProcedureDef but it is undefined, even on procedure blocks. The
      issue was that it is supposed to be copied from the no return version
      of the procedure call block, but the reference was wrong and so the
      value was undefined. This commit fixes the erroneous reference in
      order that the behavior is correct. This also has the side effect of
      fixing the (unreported?) bug that the "Highlight Proceduce" context
      menu action was not working due to the same issue.
      
      Fixes #844
      
      Change-Id: I7041c3ab05a89c1a710128a7d91a543bb601940a
      54611776
  7. 14 Sep, 2016 2 commits
  8. 06 Sep, 2016 1 commit
  9. 29 Aug, 2016 1 commit
    • Jeffrey I. Schiller's avatar
      Mitigate Race Condition · 17b61875
      Jeffrey I. Schiller authored
      Mitigate a Race Condition where blockly reads the component database
      before the project has finished initializing the component
      database. This race only tends to manifest in projects with several (or
      many) screens each of which have a significant number of blocks.
      
      Change-Id: I073c4fb30a522d59e6ba060b39183798ce9ac10e
      17b61875
  10. 27 Aug, 2016 3 commits
    • Jeffrey I. Schiller's avatar
      Fix Android Servlet · f26f6a03
      Jeffrey I. Schiller authored
      Android Servlet let’s you download your packaged apps to your own
      device.
      
      Change-Id: I1b074fc65591642e8e8e9fe468609cd6a7d5af2b
      f26f6a03
    • Jeffrey I. Schiller's avatar
      Remove Obsolete Code · 9325bf0a
      Jeffrey I. Schiller authored
      Remove code that was used to communicate with the AI Classic Blocks
      editor. It is no longer in use.
      
      Change-Id: I5a1dc1e3a4081723a74c4370265158f29cd4ae34
      9325bf0a
    • hal's avatar
      Add VR paper writeup · e2303697
      hal authored
      Change-Id: I1d50c87acab77adc301b551ee32570d81a7a90f7
      e2303697
  11. 23 Aug, 2016 1 commit
    • Evan W. Patton's avatar
      Update ActivityStarter to use TextUtils.isEmpty(String) · 8da740e6
      Evan W. Patton authored
      ActivityStarter uses String.isEmpty(), which was introduced in Java
      1.6. However, older versions of Android are only binary compatible
      with Java 1.5, such as the version used in the emulator. This causes
      the ActivityStarter to throw an exception when starting an activity.
      
      This commit fixes the issue by replacing the call to String.isEmpty()
      with android.text.TextUtils.isEmpty(String), which is available since
      Android API version 1. This is consistent with other checks in
      components, such as Canvas and Web.
      
      Closes #827
      
      Change-Id: I5c26bab97421a86b3d62888af447d999af38450a
      8da740e6
  12. 21 Aug, 2016 2 commits
    • Jeffrey I. Schiller's avatar
      Do not erase UserSettings when App Inventor Closed · 412e928e
      Jeffrey I. Schiller authored
      There is a race condition where if App Inventor is closed (browser
      window closed) while the system is still initializing, the user’s global
      settings will be over-written by an empty settings object because the
      global settings have not finished loading. We detect that with this code
      and avoid over-writing the settings.
      
      Change-Id: Icfcf8204b860984bf36e2a7d525ebf5814a2ffd8
      412e928e
    • Jeffrey I. Schiller's avatar
      Improve Project List Loading time · 68de59b9
      Jeffrey I. Schiller authored
      Generate the user’s project list by doing one bulk API call to to the
      datastore to fetch project meta data.
      
      Change-Id: Ie3a93126b22e2292bc4b270d4d54c5c382880cf9
      68de59b9
  13. 16 Aug, 2016 1 commit
  14. 08 Aug, 2016 1 commit
    • Jeffrey I. Schiller's avatar
      Add a No-Op function · 4a61eb97
      Jeffrey I. Schiller authored
      Add a No-Op function. Along with a session idle timeout and session
      renew time, we can ensure that closed browsers (which will stop
      performing no-op operations) will be logged out.
      
      Change-Id: Ibdd1a55b172fc2aad2c8bed012ae86508d1d025b
      4a61eb97
  15. 30 Jul, 2016 1 commit
  16. 29 Jul, 2016 2 commits
    • Jeffrey I. Schiller's avatar
      Sanitize the HTML placed in a Label · 7d21acba
      Jeffrey I. Schiller authored
      Now that we support HTML markup in Labels, we need to make sure it is
      safe to display in the user’s browser.
      
      Change-Id: I17cd06a4ade1e7a58ffeb9ba256ac83a166afd0d
      7d21acba
    • Jeffrey I. Schiller's avatar
      Pass the values of locale,repo and galleryId · 82efdcf8
      Jeffrey I. Schiller authored
      “repo” is used by the template code to indicate a user supplied template
      repository (so you can build your own webpage and link to App Inventor
      with something like
      http://ai2.appinventor.mit.edu/?repo=<myrepo>. Similarly the galleryId
      value is used to point to an App in the Gallery which should be opened
      upon login. The locale value determines which language App Inventor
      should start in.
      
      This commit fixes how we handle these values as we move from the client
      application to the LoginServlet and back to the client application so
      that they are preserved.
      
      Note: A person’s very first login does not preserve these values because
      the code that displays the terms of service fails to preserve them. This
      is an old bug that we do not fix here (but can at a later date).
      
      Change-Id: I53768cfaadd12175e3c1fe821e58024d984afcfa
      82efdcf8
  17. 27 Jul, 2016 2 commits
  18. 26 Jul, 2016 3 commits
  19. 24 Jul, 2016 1 commit
    • hal's avatar
      Change division by 0 to show generate an error. · 93810c8c
      hal authored
      We trigger an “ErrorOccurred” event when we attempt to divide by
      zero. This can be handled by the App Inventor programmers. If it isn’t
      handled, a Notification is generated to the end-user. If the numerator
      is non-zero, +-INTEGER_MAX (2147483647) is returned. If the numerator is
      0, then a 0 is returned.
      
      Change-Id: Ib323c692528fd331c33fcd64de5caa24c2ff9126
      93810c8c
  20. 20 Jul, 2016 3 commits
    • Lokhin Cheng's avatar
      Disable Activity Starter on null activities · 5ac4f709
      Lokhin Cheng authored
      Activities must now have an action specified
      
      Change-Id: Icafa0edbc3bec4afdb4f4ba12cf68d15f2a6a8a8
      5ac4f709
    • Jeffrey I. Schiller's avatar
      Merge branch 'master' into ucr · 02a80261
      Jeffrey I. Schiller authored
      02a80261
    • Jeffrey I. Schiller's avatar
      Create our Own Cookie · 74370bc8
      Jeffrey I. Schiller authored
      Instead of using App Engine sessions, create our own cookie
      instead. This cookie contains all of the session state itself, encrypted
      and mac’d so that the end-user cannot tamper with it.
      
      The cookie itself is constructed using Google’s Protobufs code and
      encrypted with the Keyczar library
      
      Change-Id: Icde67c34bd3828a488876f6a1c0800fb86d7e7b2
      74370bc8
  21. 17 Jul, 2016 1 commit
    • E-H's avatar
      ListView returns proper selection Index · 81838cbd
      E-H authored
      The returned value of the selection index in a ListView is now
      independent of any filter that is applied. So it is always based on the
      position in the list that is given ListView to select from.
      
      Change-Id: I50bcf8d7ed21dbd06dcbca81fec2a9d631f0b7da
      81838cbd
  22. 15 Jul, 2016 1 commit
    • Justus's avatar
      Support upgrading of extension components · 6f9b348a
      Justus authored
      You can now load a new version of an extension, provided it has the same
      package name, over a previous version. Any incompatible block changes
      between the old and new version will result in the blocks being marked
      “bad”. The MIT App Inventor programmer then has to do some cleanup, but
      this is way better then having to delete the old component, which
      removes all associated blocks.
      
      Change-Id: I05ad39e16dcb8ea298091fa01338d5cf6c16c23e
      6f9b348a
  23. 14 Jul, 2016 2 commits
  24. 13 Jul, 2016 1 commit
    • Thomas Oropeza's avatar
      Gallery Moderation: Update Message Sent to User · f6d78b5b
      Thomas Oropeza authored
      Refers the user of an app that has been reported to the Terms and
      conditions when deactivating it. Also now it is required to add a
      description when reporting an app (Makes moderation easier).
      
      Change-Id: I59ecfe1bf38c33cf4ab1dcf3c3f17b5ead750fe8
      f6d78b5b
  25. 11 Jul, 2016 1 commit
    • Kseniia Shumelchyk's avatar
      Added Scrollable Arrangements · d621adfd
      Kseniia Shumelchyk authored
      Add Scrollable versions of Horizontal and Vertical Arrangements
      
      Author: Kseniia Shumelchyk <shumelchyk@gmail.com>
      Author: Jeffrey I. Schiller <jis@mit.edu>
      
      Change-Id: Iddb20dca7835de8dad548dbb8043a600b60f9ded
      d621adfd
  26. 10 Jul, 2016 2 commits
    • hal's avatar
      Add numbers to the designer alignment dropdowns · 15f56833
      hal authored
      Add numbers to the property values shown in the designer dropdowns for
      aligment, as requested in issue #182
      
      Change-Id: Ia57d2911e2389436b37fe9a8ecb53a007ebca691
      15f56833
    • Lokhin Cheng's avatar
      Add Comments to Block Save Images · a5fb4ede
      Lokhin Cheng authored
      Fixed the issue where text in comment blocks disappears when the user
      downloads blocks as images
      
      Change-Id: I00339e03fda72d3b563631b536e6391ee05332b5
      a5fb4ede
  27. 01 Jul, 2016 1 commit