- 24 Oct, 2017 1 commit
-
-
Farzeen Harunani authored
-
- 16 Oct, 2017 2 commits
-
-
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
-
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
-
- 13 Oct, 2017 1 commit
-
-
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
-
- 28 Sep, 2017 1 commit
-
-
Evan W. Patton authored
This commit fixes two bugs: 1. NPE due to a race condition where clear() was called in the ReplForm before the FrameLayout was initialized. 2. setImageTintMode on an internal Widget wasn't supported on Android 4.x, resulting in a crash on connection. Change-Id: Ia28f9eaa404fa0b8f830d5a809d77226a611b36c
-
- 12 Sep, 2017 2 commits
-
-
Evan W. Patton authored
The component processor only allows concrete types to be specified as Java method parameters and return values. However, for abstraction it is sometimes useful to use an interface or abstract base class in order to reduce repeat code. This commit updates ComponentProcessor to use the class hierarchy of any parameter or return type of a property, method, or event to determine whether an entity passed through would be a Component. Change-Id: Ie2487ed20ad1b4ca6e8acc08ca8102cb6b7eb258
-
Evan W. Patton authored
Change-Id: Ib30e302ecf5f19970532bab66e409e50aed08b40
-
- 08 Sep, 2017 1 commit
-
-
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
-
- 01 Sep, 2017 2 commits
-
-
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
-
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
-
- 28 Aug, 2017 4 commits
-
-
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
-
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
-
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
-
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
-
- 23 Aug, 2017 2 commits
-
-
Jeffrey I. Schiller authored
Includes the favicon.ico as well as the logo Change-Id: Ie05bd5e3a6a3f072c81c91d11aee60b52fe9905c
-
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
-
- 17 Aug, 2017 3 commits
-
-
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
-
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
-
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
-
- 15 Aug, 2017 1 commit
-
-
Jeffrey I. Schiller authored
Replace the default App Logo with our new Bee based version. Change-Id: Ibfaa3792bf29d799b253b261cd83b26e187eaa18
-
- 12 Aug, 2017 1 commit
-
-
Jeffrey I. Schiller authored
Change-Id: I16d609f13d7818a03f4de13761aaca3d1f5c40b2
-
- 11 Aug, 2017 1 commit
-
-
Jeffrey I. Schiller authored
Change-Id: Ic5f5d83e40051cfd62504196bd71f9a9781b521f
-
- 21 Jul, 2017 1 commit
-
-
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
-
- 18 Jul, 2017 1 commit
-
-
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
-
- 08 Jul, 2017 2 commits
-
-
Jeffrey I. Schiller authored
Remove references to AI1 from the No Projects Dialog in non-English language translations. Change-Id: Ic518901c445cb65fbf6d0ac6b2abcd1276e23264
-
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
-
- 06 Jul, 2017 3 commits
-
-
Klomi authored
Change-Id: I4811755660bdcbb662f39f719b0cb7ad89b9f12f
-
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
-
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
-
- 05 Jul, 2017 1 commit
-
-
Jeffrey I. Schiller authored
Remove the “Beta” tag from MIT App Inventor. Also remove the “2” as well. Change-Id: Ifed997d86e13b5f59a93e736f5caee7299ca1039
-
- 04 Jul, 2017 2 commits
-
-
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
-
Jeffrey I. Schiller authored
Change-Id: I1166ec3b843665338e6fdd8155d1486cce23b7b7
-
- 03 Jul, 2017 2 commits
-
-
Jeffrey I. Schiller authored
Change-Id: Ic3deb5ee2bfe9ac98f3d0f64b6a98b987e2d36d6
-
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
-
- 30 Jun, 2017 1 commit
-
-
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
-
- 14 Jun, 2017 2 commits
-
-
Jeffrey I. Schiller authored
Change-Id: I110e242808fae3f32a3ae7a4627934accfffb546
-
Jeffrey I. Schiller authored
-
- 12 Jun, 2017 3 commits
-
-
Evan W. Patton authored
Fixes #888 Change-Id: Ib394778a30729c54cfdc787107e542b85cfd3a1a
-
Evan W. Patton authored
Change-Id: I62d20ee830af8f88ce816736d71ab78da90fed9d
-
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
-