- 08 Dec, 2016 2 commits
-
-
Jeffrey I. Schiller authored
Newer versions of the App Engine SDK insist that we declare our statically served files. We omitted /reference/**. This commit adds it. Change-Id: I652adae99b7bf3df50ea8b6fb3f201c430d3e002
-
hal authored
Change-Id: I45302130bece743ac779ed5c569208b534f82e57
-
- 06 Dec, 2016 1 commit
-
-
ribeiroana authored
Selected element in the palette is now colored green making it easier to see that it is selected. Change-Id: I09006eb537495343bef3dfdad2888a3d96135e29
-
- 23 Nov, 2016 1 commit
-
-
Evan W. Patton authored
There is a prompt for the user to create or open a project. However, this is based on whether currentFileEditor is set, which is a problem is a project load is in process. This commit adds a check to EditorManager to see if there is an editor even though currentFileEditor is null, in which case no prompt is shown. Change-Id: Icf044a638fef19d7fb5660a4783f852c7ccbb6cb
-
- 19 Nov, 2016 2 commits
-
-
Evan W. Patton authored
The loading of GallerySettings has a high latency in production. This commit makes it so that the GallerySetting object is created only once per GAE instance. It also updates the Flag class to cache the value on first read since these flags are set in appengine-web.xml and are only expected to change during deployment of a new version of App Inventor. Change-Id: I7bb123697e821f2510807c5cbd5671bae71db307
-
Evan W. Patton authored
This commit updates Google App Engine and Google Cloud Storage libraries to the most recent versions. This fixes exceptions in the dev server regarding the deprecated Files API. Change-Id: Icd3883c292cfb055bb18560ca04aaf2b313ba9ba
-
- 18 Nov, 2016 4 commits
-
-
Evan W. Patton authored
Commit e38f54e9 deferred gallery loading until the user opened the gallery. This commit provides more complex logic for managing the "Loading..." messages shown during loading of the gallery by counting the number of tabs that have loaded content. In the earlier commit, if the primary tab wasn't loaded the message would go away if one of the non-visible tabs finished loading. Now the loading message will only go away if all tabs have loaded their content. Change-Id: I019891c4b3160f91658f43ad1d42f47e00cffd32
-
Evan W. Patton authored
Switching between tabs will save settings even if nothing has changed. This results in more network operations than is necessary to maintain correct behavior of the application. This commit updates the CommonSettings class hierarchy to record when changes have been made. UserSettings and ProjectSettings will perform RPC if and only if the changed flag is true. Otherwise, saving settings is a no-op. Change-Id: I1f15d39418036b320ee3050003034b97e46415be
-
Evan W. Patton authored
Only certain actions modify the state of android.keystore on the server. The keystore can only change if a new one is imported, the current keystore is deleted, or when no keystore exists but the user builds an app. However, this is not reflected in the flow control of App Inventor. Switching between projects, for example, will check for the state of android.keystore even though this is a user file not a project file, and the state of the android.keystore will be invariant between projects. This commit caches the result of checks for android.keystore to reduce the number of round trips to the server and only rechecks when an action may result in an update to the status or in the event an earlier call to hasUserFile fails. Change-Id: I65df499d509ea7098f6b349d0da09cdaea84dd08
-
Jeffrey I. Schiller authored
Reduce logging so only anomalous situations result in log entries (you can turn logging back on by setting appinventor.debugging to true in appengine-web.xml). Disable App Stats, as it really isn’t needed in production. Provide reasonable caching and expiration on some static files, including making sure they are served statically (this is required when removing App Stats). Change-Id: I84bd4877a2cbeba79f7da9248919920ea27c499b
-
- 15 Nov, 2016 1 commit
-
-
Evan W. Patton authored
Daily we have 750,000+ requests for resources via /ode/gallery. These requests occur even if the user never actually accesses the gallery since they are done at initialization of Ode. This commit defers the initialization of the gallery UI so that it is only generated once the user accesses the gallery. Change-Id: Ic16ae5f45c8f79570d763408f5958170fa332ae1
-
- 08 Nov, 2016 1 commit
-
-
Evan W. Patton authored
Commit 72e0ca15 added a callback to handle loading of assets to the Companion. However, if the Companion is connected to a project without assets, the callback to switch from ASSET state to CONNECTED state will never fire. This commit checks whether the asset map has 0 elements, in which case it will synchronously fire the callback so that projects without assets will immediately transition to CONNECTED state. Change-Id: Iba12232966752ed9cb61af0f97aa16ebcffeed4a
-
- 07 Nov, 2016 2 commits
-
-
Jeffrey I. Schiller authored
Apparently the canvas.toDataURL method does not work reliably when the blocks image is large. Instead convert it to a block with canvas.toBlob and create a URL from the blob. This seems to work with blocks areas that fail with the toDataURL approach. Change-Id: I8706c91c23e1522be193f5391afb6390ea036f81
-
Evan W. Patton authored
Change-Id: I4a6084d1a6cd83ac69d73fcc1b3e3a510ece7997
-
- 04 Nov, 2016 1 commit
-
-
Jeffrey I. Schiller authored
Asset loading is performed asynchronously and usually happens quickly. However with many or large assets, the transferring of the asset to the device (or emulator) may not finish in time, resulting in an error and a re-try (which eventually succeeds). We re-factor the asset transferring code to properly handle its asynchronous nature using appropriate callbacks. Change-Id: Idf0170d9a6d929a7ca964b3852811b2b09dc49ce
-
- 21 Oct, 2016 1 commit
-
-
hal authored
Change-Id: I8b786623776c50edfd44af519eee87c7779cbd56
-
- 21 Sep, 2016 1 commit
-
-
Jeffrey I. Schiller authored
Fix to permit extension loading again. Change-Id: I6edb0391d1f4abb9815eda198af8ed16b7b5da7c
-
- 19 Sep, 2016 1 commit
-
-
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
-
- 14 Sep, 2016 2 commits
-
-
Jeffrey I. Schiller authored
Change-Id: I040f50fbe9fadf0fbd3b26e7312fa98b43f3d374
-
Jeffrey I. Schiller authored
-
- 06 Sep, 2016 1 commit
-
-
Justus authored
Change-Id: I375eddc7d09e1042ad372e2c581552c1401954d6
-
- 29 Aug, 2016 1 commit
-
-
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
-
- 27 Aug, 2016 3 commits
-
-
Jeffrey I. Schiller authored
Android Servlet let’s you download your packaged apps to your own device. Change-Id: I1b074fc65591642e8e8e9fe468609cd6a7d5af2b
-
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
-
hal authored
Change-Id: I1d50c87acab77adc301b551ee32570d81a7a90f7
-
- 23 Aug, 2016 1 commit
-
-
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
-
- 21 Aug, 2016 2 commits
-
-
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
-
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
-
- 16 Aug, 2016 1 commit
-
-
Jeffrey I. Schiller authored
Arrange to make a screenshot of the blocks whenever a blocks editor is exited. Change-Id: I4f88aa8c479e6b111bdc477a0fb3821cc815be15
-
- 08 Aug, 2016 1 commit
-
-
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
-
- 30 Jul, 2016 1 commit
-
-
Jeffrey I. Schiller authored
Fix some XSS issues on the server side. Change-Id: I5f0b2a1da87666ef56b4d83c1414d66d8f1d3eb6
-
- 29 Jul, 2016 2 commits
-
-
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
-
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
-
- 27 Jul, 2016 2 commits
- 26 Jul, 2016 3 commits
-
-
佛跳墙 authored
Change-Id: I371ab03f71bbabae60d9c9d01cab7b975737f875
-
Jeffrey I. Schiller authored
Change-Id: Ie3374ef51d4f16a2916242f691649f0c6bc4f57a
-
Jeffrey I. Schiller authored
-
- 24 Jul, 2016 1 commit
-
-
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
-
- 20 Jul, 2016 1 commit
-
-
Lokhin Cheng authored
Activities must now have an action specified Change-Id: Icafa0edbc3bec4afdb4f4ba12cf68d15f2a6a8a8
-