Skip to content

Commit

Permalink
Merge pull request #3721 from Catrobat/release-0.9.74
Browse files Browse the repository at this point in the history
Release 0.9.74
  • Loading branch information
wslany authored Jul 29, 2020
2 parents 430402e + e505fe7 commit 75dff2e
Show file tree
Hide file tree
Showing 220 changed files with 6,855 additions and 4,569 deletions.
2 changes: 1 addition & 1 deletion Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ def webTestUrlParameter() {

def allFlavoursParameters() {
return env.BUILD_ALL_FLAVOURS?.toBoolean() ? 'assembleCreateAtSchoolDebug ' +
'assembleLunaAndCatDebug assemblePhiroDebug assembleArduinoDebug' : ''
'assembleLunaAndCatDebug assemblePhiroDebug assembleEmbroideryDesignerDebug' : ''
}

def useDebugLabelParameter(defaultLabel) {
Expand Down
2 changes: 1 addition & 1 deletion Jenkinsfile.OutgoingNetworkCallsTests
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ pipeline {
step([$class: 'LogParserPublisher', failBuildOnError: true, projectRulePath: 'buildScripts/log_parser_rules', unstableOnWarning: true, useProjectRule: true])
}
unsuccessful {
notifyChat(['#s2cc', '#catroweb-deployment'])
notifyChat(['#system-tests'])
}
}
}
2 changes: 1 addition & 1 deletion Jenkinsfile.releaseAPK
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,8 @@ pipeline {
sh '''
fastlane android upload_APK_Catroid
fastlane android upload_APK_CreateAtSchool
fastlane android upload_APK_EmbroideryDesigner
fastlane android upload_APK_LunaAndCat
fastlane android upload_APK_Arduino
fastlane android upload_APK_Phiro
'''
} else {
Expand Down
18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

Catroid, also known as **Pocket Code**, is an on-device visual programming system for Android devices.

**Catrobat** is a visual programming language and a set of creativity tools for smartphones, tablets, and mobile browsers.
Catrobat programs can be written by using the Catroid programming system on Android phones and tablets.
**Catrobat** is a visual programming language and a set of creativity tools for smartphones.
Catrobat programs can be written by using Catrobat's Android and iOS apps.

For more information [oriented towards developers], check out our [developers page](http://developer.catrobat.org/).
For more information [oriented towards developers], check out our [developers page](https://developer.catrobat.org/).

# Issues #

Expand All @@ -17,23 +17,23 @@ For reporting issues use our [JIRA Bugtracking System](https://jira.catrob.at/se
If you want to contribute we suggest that you start with [forking](https://help.github.com/articles/fork-a-repo/) our repository and browse the code. Then you can look at our [Issue-Tracker](https://jira.catrob.at/secure/RapidBoard.jspa?rapidView=60) and start with fixing one ticket. We strictly use [Test-Driven Development](http://c2.com/cgi/wiki?TestDrivenDevelopment) and [Clean Code](http://www.planetgeek.ch/wp-content/uploads/2013/06/Clean-Code-V2.2.pdf), so first read everything you can about these development methods. Code developed in a different style will not be accepted.
After you've created a pull request we will review your code and do a full testrun on your branch.

If you want to implement a new feature, please ask about the details on http://catrob.at/mailinglist
If you want to implement a new feature, please ask about the details on https://catrob.at/mailinglist

Start setting up the working environment by following the instructions: https://github.com/Catrobat/Catroid/wiki/Setup-working-environment

Also make sure to read our guidelines for [creating a pull request](https://github.com/Catrobat/Catroid/wiki/Creating-a-pull-request)


# Resources and links #
* [Google Play Store Download](https://play.google.com/store/apps/details?id=org.catrobat.catroid)
* [Community website with sample programs](https://pocketcode.org/)
* [Google Play Store Download](https://catrob.at/gp)
* [Community website with sample programs](https://share.catrob.at/)
* [Installation Instructions](https://github.com/Catrobat/Catroid/wiki/Installation-Instructions)
* [Frequently Asked Questions](https://github.com/Catrobat/Catroid/wiki/Frequently-Asked-Questions)
* [Credits](http://developer.catrobat.org/credits)
* [Credits](https://developer.catrobat.org/credits)
* [Statistics on OpenHub](https://www.openhub.net/p/catrobat/)
* [Twitter](http://twitter.com/Catroid)
* [Twitter](https://twitter.com/Catroid)
* [Google+](https://plus.google.com/u/0/+CatrobatOrgAdmin/posts)
* [Our Google group](https://groups.google.com/forum/?fromgroups#!forum/catrobat)

# License #
[License](http://developer.catrobat.org/licenses) of our project (mainly AGPL v3).
[License](https://catrob.at/licenses) of our project (mainly AGPL v3).
47 changes: 31 additions & 16 deletions catroid/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,9 @@ ext {
gdxVersion = "1.9.10"
mockitoVersion = "2.8.47"
espressoVersion = "3.1.0"
paintroidVersion = "2.5.0"
paintroidVersion = "2.5.1"
playServicesVersion = "17.0.0"
cameraXVersion = "1.0.0-beta06"
}

apply plugin: 'com.android.application'
Expand Down Expand Up @@ -138,8 +140,8 @@ android {
targetSdkVersion 28
applicationId appId
testInstrumentationRunner 'org.catrobat.catroid.runner.UiTestApplicationRunner'
versionCode 78
versionName "0.9.73"
versionCode 79
versionName "0.9.74"
println "VersionCode is $versionCode"
println "VersionName is $versionName"
multiDexEnabled true
Expand Down Expand Up @@ -177,15 +179,17 @@ android {
buildConfigField "boolean", "FEATURE_USERBRICKS_ENABLED", "true"
buildConfigField "boolean", "FEATURE_WEBREQUEST_BRICK_ENABLED", "true"
buildConfigField "boolean", "FEATURE_MULTIPLAYER_VARIABLES_ENABLED", "true"
resValue "string", "FEATURE_ARDUINO_PREFERENCES_ENABLED", "false"
buildConfigField "boolean", "FEATURE_TESTBRICK_ENABLED", "true"
resValue "string", "FEATURE_EMBROIDERY_PREFERENCES_ENABLED", "false"
resValue "string", "FEATURE_PHIRO_PREFERENCES_ENABLED", "false"
resValue "string", "FEATURE_RASPI_PREFERENCES_ENABLED", "false"
resValue "string", "SNACKBAR_HINTS_ENABLED", "false"
resValue "string", "DEBUG_MODE", "false"
}

lintOptions {
lintConfig file('config/lint.xml')
ignore 'GradleDependency', 'OldTargetApi', 'ExtraTranslation', 'MissingTranslation', 'LintBaseline'
ignore 'GradleDependency', 'OldTargetApi', 'ExtraTranslation', 'MissingTranslation',
'LintBaseline', 'ObsoleteLintCustomCheck'

abortOnError false

Expand Down Expand Up @@ -251,6 +255,7 @@ android {
buildTypes {
debug {
buildConfigField "boolean", "USE_ANDROID_LOCALES_FOR_SCREENSHOTS", useAndroidLocales()
resValue "string", "DEBUG_MODE", "true"
ext.enableCrashlytics = false
testCoverageEnabled = rootProject.hasProperty('enableCoverage')
signingConfig signingConfigs.debug
Expand All @@ -262,6 +267,7 @@ android {
buildConfigField "boolean", "FEATURE_USERBRICKS_ENABLED", "false"
buildConfigField "boolean", "FEATURE_MULTIPLAYER_VARIABLES_ENABLED", "false"
resValue "string", "SNACKBAR_HINTS_ENABLED", "true"
signingConfig signingConfigs.debug
}

signedRelease {
Expand All @@ -283,20 +289,21 @@ android {
createAtSchool {
applicationIdSuffix '.createatschool'
}
embroideryDesigner {
applicationIdSuffix '.embroiderydesigner'
resValue "string", "FEATURE_EMBROIDERY_PREFERENCES_ENABLED", "true"
}
lunaAndCat {
applicationIdSuffix '.lunaandcat'
}
phiro {
applicationIdSuffix '.phiro'
resValue "string", "FEATURE_PHIRO_PREFERENCES_ENABLED", "true"
}
arduino {
applicationIdSuffix '.arduino'
resValue "string", "FEATURE_ARDUINO_PREFERENCES_ENABLED", "true"
resValue "string", "FEATURE_RASPI_PREFERENCES_ENABLED", "true"
}
standalone {
applicationIdSuffix '.standalone'
if (!project.hasProperty('packageName')) {
applicationIdSuffix '.standalone'
}
versionCode 1
versionName '1.0'

Expand Down Expand Up @@ -373,10 +380,10 @@ dependencies {
implementation 'com.parrot:arsdk:3.12.6'

// CAST
implementation 'com.google.android.gms:play-services-cast:12.0.0'
implementation "com.google.android.gms:play-services-cast:$playServicesVersion"

// Analytics
implementation 'com.google.android.gms:play-services-analytics:12.0.0'
implementation "com.google.android.gms:play-services-analytics:$playServicesVersion"

implementation 'com.google.guava:guava:28.2-android'
implementation 'com.google.code.gson:gson:2.8.0'
Expand All @@ -396,11 +403,19 @@ dependencies {
// Pocket Paint
catroidImplementation "org.catrobat.paintroid:paintroid:$paintroidVersion"
createAtSchoolImplementation "org.catrobat.paintroid:paintroid:$paintroidVersion"
embroideryDesignerImplementation "org.catrobat.paintroid:paintroid:$paintroidVersion"
lunaAndCatImplementation "org.catrobat.paintroid:paintroid:$paintroidVersion"
phiroImplementation "org.catrobat.paintroid:paintroid:$paintroidVersion"
arduinoImplementation "org.catrobat.paintroid:paintroid:$paintroidVersion"
implementation "org.catrobat.paintroid:colorpicker:$paintroidVersion"

// CameraX
implementation "androidx.camera:camera-camera2:$cameraXVersion"
implementation "androidx.camera:camera-lifecycle:$cameraXVersion"
implementation 'androidx.camera:camera-view:1.0.0-alpha13'

// ML Kit
implementation 'com.google.android.gms:play-services-mlkit-face-detection:16.0.0'

// libGDX
implementation "com.badlogicgames.gdx:gdx:$gdxVersion"
implementation "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
Expand All @@ -414,7 +429,7 @@ dependencies {
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi-v7a"
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-arm64-v8a"

implementation 'com.google.android.gms:play-services-auth:12.0.0'
implementation "com.google.android.gms:play-services-auth:$playServicesVersion"

androidTestImplementation('tools.fastlane:screengrab:1.2.0') {
// https://issuetracker.google.com/issues/123060356
Expand Down
5 changes: 4 additions & 1 deletion catroid/gradle/standalone_apk_tasks.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@ task standalonePreparation() {
*/
if (project.hasProperty('download')) {
project.ext.projectId = project['suffix']
if (project.hasProperty('packageName')) {
project.ext.appId = project['packageName']
}
project.ext.appId += '.' + project['suffix']
project.ext.manifestAppIcon = '@drawable/icon'
project.ext.appZipFile = new File(makeAppsCache().absolutePath + '/' + project.ext.projectId + '.zip')
Expand Down Expand Up @@ -221,7 +224,7 @@ def messUpIntentFilters() {
*/

tasks.whenTaskAdded { task ->
if (task.name == 'preStandaloneDebugBuild') {
if (task.name == 'preStandaloneDebugBuild' || task.name == 'preStandaloneSignedReleaseBuild') {
task.dependsOn 'standalonePreparation'
} else if (task.name == 'assembleStandaloneDebug') {
task.finalizedBy 'standaloneCleanup'
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,70 @@ public void testFailListMismatchingTypes() throws Exception {
testAsset("testFailListMismatchingTypes.catrobat", "catrobatTestRunnerTests/fail");
}

@Test
public void testFailParamMismatch() throws Exception {
exception.expectMessage("Failed Tests:\n\n"
+ "[2] actual = 1.0\n"
+ "expected: <1.1>\n"
+ "actual: <1.0>\n"
+ "deviation: --^\n\n"
+ "[3] actual = String\n"
+ "expected: <123>\n"
+ "actual: <String>\n"
+ "deviation: ^\n\n"
+ "[4] actual = 345\n"
+ "expected: <Test String>\n"
+ "actual: <345>\n"
+ "deviation: ^\n\n"
+ "[5] actual = Actual\n"
+ "expected: <Expected>\n"
+ "actual: <Actual>\n"
+ "deviation: ^\n\n\n"
+ "Succeeded Tests:\n\n"
+ "[0] actual = 5.0\n"
+ "5.0 == 5\n\n"
+ "[1] actual = 3\n"
+ "3 == 3.0");
testAsset("testFailParamMismatch.catrobat", "catrobatTestRunnerTests/fail");
}

@Test
public void testFailParamStringNotEqual() throws Exception {
exception.expectMessage("ParameterizedAssertError\n"
+ "Failed Tests:\n\n"
+ "[1] firstPart = puppy | secondPart = naughty\n"
+ "expected: <puppy is not naughty>\n"
+ "actual: <puppy is naughty>\n"
+ "deviation: ----------^\n\n\n"
+ "Succeeded Tests:\n\n"
+ "[0] firstPart = kitty | secondPart = cute\n"
+ "kitty is cute == kitty is cute\n\n"
+ "[2] firstPart = octopus | secondPart = intelligent\n"
+ "octopus is intelligent == octopus is intelligent");
testAsset("testFailParamStringNotEqual.catrobat", "catrobatTestRunnerTests/fail");
}

@Test
public void testFailParamMissingInput() throws Exception {
exception.expectMessage("ParameterizedInitialisationError\n"
+ "Input was not selected");
testAsset("testFailParamMissingInput.catrobat", "catrobatTestRunnerTests/fail");
}

@Test
public void testFailParamEmptyInput() throws Exception {
exception.expectMessage("ParameterizedInitialisationError\n"
+ "Input list is missing elements\n"
+ "Failed Tests:\n\n\n"
+ "Succeeded Tests:");
testAsset("testFailParamEmptyInput.catrobat", "catrobatTestRunnerTests/fail");
}

@Test
public void testSuccessParamCalculations() throws Exception {
testAsset("testSuccessParamCalculations.catrobat", "catrobatTestRunnerTests/success");
}

private void testAsset(String assetName, String assetPath) throws Exception {
catrobatTestRunner.assetName = assetName;
catrobatTestRunner.assetPath = assetPath;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -408,6 +408,12 @@ public class BricksHelpUrlTest {
"https://wiki.catrobat.org/bin/view/Documentation/Brick%20Documentation/Data%20Bricks/#StoreCSVIntoUserListBrick");
brickToHelpUrlMapping.put("org.catrobat.catroid.content.bricks.AssertUserListsBrick",
"https://wiki.catrobat.org/bin/view/Documentation/Brick%20Documentation/Testing%20Bricks/#AssertUserListsBrick");
brickToHelpUrlMapping.put("org.catrobat.catroid.content.bricks.ExitStageBrick",
"https://wiki.catrobat.org/bin/view/Documentation/Brick%20Documentation/Control%20Bricks/#ExitStageBrick");
brickToHelpUrlMapping.put("org.catrobat.catroid.content.bricks.ParameterizedBrick",
"https://wiki.catrobat.org/bin/view/Documentation/Brick%20Documentation/Testing%20Bricks/#ParameterizedBrick");
brickToHelpUrlMapping.put("org.catrobat.catroid.content.bricks.ParameterizedEndBrick",
"https://wiki.catrobat.org/bin/view/Documentation/Brick%20Documentation/Testing%20Bricks/#ParameterizedEndBrick");
}

@Parameterized.Parameters(name = "{0}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue;

import static org.catrobat.catroid.stage.StageListener.SCREENSHOT_AUTOMATIC_FILE_NAME;
import static org.catrobat.catroid.stage.StageListener.SCREENSHOT_MANUAL_FILE_NAME;
import static org.catrobat.catroid.common.Constants.SCREENSHOT_AUTOMATIC_FILE_NAME;
import static org.catrobat.catroid.common.Constants.SCREENSHOT_MANUAL_FILE_NAME;

@RunWith(AndroidJUnit4.class)
public class DefaultProjectHandlerTest {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@
import org.catrobat.catroid.content.bricks.DroneTakeOffLandBrick;
import org.catrobat.catroid.content.bricks.DroneTurnLeftBrick;
import org.catrobat.catroid.content.bricks.DroneTurnRightBrick;
import org.catrobat.catroid.content.bricks.ExitStageBrick;
import org.catrobat.catroid.content.bricks.FinishStageBrick;
import org.catrobat.catroid.content.bricks.FlashBrick;
import org.catrobat.catroid.content.bricks.ForVariableFromToBrick;
Expand Down Expand Up @@ -109,6 +110,7 @@
import org.catrobat.catroid.content.bricks.MoveNStepsBrick;
import org.catrobat.catroid.content.bricks.NextLookBrick;
import org.catrobat.catroid.content.bricks.NoteBrick;
import org.catrobat.catroid.content.bricks.ParameterizedBrick;
import org.catrobat.catroid.content.bricks.PenDownBrick;
import org.catrobat.catroid.content.bricks.PenUpBrick;
import org.catrobat.catroid.content.bricks.PhiroIfLogicBeginBrick;
Expand Down Expand Up @@ -317,6 +319,7 @@ public static Collection<Object[]> data() {
ForVariableFromToBrick.class,
SceneTransitionBrick.class,
SceneStartBrick.class,
ExitStageBrick.class,
StopScriptBrick.class,
CloneBrick.class,
DeleteThisCloneBrick.class,
Expand Down Expand Up @@ -396,6 +399,7 @@ public static Collection<Object[]> data() {
RaspiPwmBrick.class)},
{"Testing", Arrays.asList(AssertEqualsBrick.class,
AssertUserListsBrick.class,
ParameterizedBrick.class,
WaitTillIdleBrick.class,
TapAtBrick.class,
FinishStageBrick.class,
Expand Down
Loading

0 comments on commit 75dff2e

Please sign in to comment.