diff --git a/.gitignore b/.gitignore index e423d44..8e498fa 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,6 @@ # Gradle: .idea/gradle.xml .idea/libraries + +.idea/caches/* +.idea/modules.xml \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..15a15b2 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="Encoding" addBOMForNewFiles="with NO BOM" /> +</project> \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..d557a56 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" /> +</project> \ No newline at end of file diff --git a/android/ScratchJr/.idea/caches/build_file_checksums.ser b/android/ScratchJr/.idea/caches/build_file_checksums.ser new file mode 100644 index 0000000..3de5b8e Binary files /dev/null and b/android/ScratchJr/.idea/caches/build_file_checksums.ser differ diff --git a/android/ScratchJr/.idea/caches/gradle_models.ser b/android/ScratchJr/.idea/caches/gradle_models.ser new file mode 100644 index 0000000..f9f5c40 Binary files /dev/null and b/android/ScratchJr/.idea/caches/gradle_models.ser differ diff --git a/android/ScratchJr/.idea/misc.xml b/android/ScratchJr/.idea/misc.xml index cbd46bd..e8ee3d9 100644 --- a/android/ScratchJr/.idea/misc.xml +++ b/android/ScratchJr/.idea/misc.xml @@ -1,33 +1,41 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> - <component name="EntryPointsManager"> - <entry_points version="2.0" /> - </component> <component name="NullableNotNullManager"> <option name="myDefaultNullable" value="android.support.annotation.Nullable" /> <option name="myDefaultNotNull" value="android.support.annotation.NonNull" /> <option name="myNullables"> <value> - <list size="4"> + <list size="10"> <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" /> <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" /> <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" /> <item index="3" class="java.lang.String" itemvalue="android.support.annotation.Nullable" /> + <item index="4" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" /> + <item index="5" class="java.lang.String" itemvalue="androidx.annotation.Nullable" /> + <item index="6" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNullable" /> + <item index="7" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.Nullable" /> + <item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableDecl" /> + <item index="9" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableType" /> </list> </value> </option> <option name="myNotNulls"> <value> - <list size="4"> + <list size="9"> <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" /> <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" /> <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" /> <item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" /> + <item index="4" class="java.lang.String" itemvalue="androidx.annotation.NonNull" /> + <item index="5" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNonNull" /> + <item index="6" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.NonNull" /> + <item index="7" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullDecl" /> + <item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullType" /> </list> </value> </option> </component> - <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> <output url="file://$PROJECT_DIR$/build/classes" /> </component> <component name="ProjectType"> diff --git a/android/ScratchJr/app/build.gradle b/android/ScratchJr/app/build.gradle index e7bce47..7482857 100644 --- a/android/ScratchJr/app/build.gradle +++ b/android/ScratchJr/app/build.gradle @@ -1,8 +1,8 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 27 - buildToolsVersion "24.0.2" + compileSdkVersion 28 + buildToolsVersion "28.0.3" defaultConfig { applicationId "org.scratchjr.android" @@ -15,11 +15,13 @@ android { } } + flavorDimensions 'scratchjrversion' productFlavors { free { + dimension = 'scratchjrversion' applicationId "org.scratchjr.androidfree" minSdkVersion 19 - targetSdkVersion 27 + targetSdkVersion 28 versionCode 21 versionName "1.2.0" } @@ -27,10 +29,10 @@ android { } dependencies { - compile fileTree(include: ['*.jar'], dir: 'libs') - compile 'com.android.support:appcompat-v7:27.1.0' - compile 'com.android.support:support-v4:27.1.0' - compile 'com.google.android.gms:play-services-analytics:15.0.0' + implementation fileTree(include: ['*.jar'], dir: 'libs') + implementation 'com.google.android.gms:play-services-location:17.0.0' + implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'com.google.android.gms:play-services-analytics:17.0.0' } def appModuleRootFolder = '.' @@ -89,13 +91,12 @@ class CleanScratchJrResourcesTask extends DefaultTask { task generateScratchJrPNGs(type: GenerateScratchJrPNGsTask) task cleanScratchJrResources(type: CleanScratchJrResourcesTask) +assemble.dependsOn switchToFree afterEvaluate { preBuild.dependsOn generateWebpackBundle processFreeDebugGoogleServices.dependsOn switchToFreeGA processFreeReleaseGoogleServices.dependsOn switchToFreeGA - prepareFreeDebugDependencies.dependsOn switchToFree - prepareFreeReleaseDependencies.dependsOn switchToFree generateFreeReleaseResources.dependsOn generateScratchJrPNGs generateFreeDebugResources.dependsOn generateScratchJrPNGs diff --git a/android/ScratchJr/app/src/main/AndroidManifest.xml b/android/ScratchJr/app/src/main/AndroidManifest.xml index 0927de2..f5baabe 100644 --- a/android/ScratchJr/app/src/main/AndroidManifest.xml +++ b/android/ScratchJr/app/src/main/AndroidManifest.xml @@ -2,7 +2,6 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.scratchjr.android"> - <uses-sdk android:targetSdkVersion="23" android:minSdkVersion="17" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> @@ -36,13 +35,15 @@ <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> - <intent-filter> + <intent-filter > <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:mimeType="@string/share_mimetype" /> <data android:pathPattern="@string/share_extension_filter" /> <data android:host="*" /> + <data android:scheme="file" /> + <data android:scheme="content" /> </intent-filter> </activity> diff --git a/android/ScratchJr/app/src/main/java/org/scratchjr/android/ScratchJrActivity.java b/android/ScratchJr/app/src/main/java/org/scratchjr/android/ScratchJrActivity.java index 92ef32e..e62757f 100644 --- a/android/ScratchJr/app/src/main/java/org/scratchjr/android/ScratchJrActivity.java +++ b/android/ScratchJr/app/src/main/java/org/scratchjr/android/ScratchJrActivity.java @@ -13,9 +13,9 @@ import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.Handler; -import android.support.annotation.NonNull; -import android.support.v4.app.ActivityCompat; -import android.support.v4.content.ContextCompat; +import androidx.annotation.NonNull; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; import android.util.Base64; import android.util.Log; import android.view.KeyEvent; diff --git a/android/ScratchJr/app/src/main/java/org/scratchjr/android/SoundRecorderManager.java b/android/ScratchJr/app/src/main/java/org/scratchjr/android/SoundRecorderManager.java index 40ba3ec..e4ecf4f 100644 --- a/android/ScratchJr/app/src/main/java/org/scratchjr/android/SoundRecorderManager.java +++ b/android/ScratchJr/app/src/main/java/org/scratchjr/android/SoundRecorderManager.java @@ -28,7 +28,7 @@ import android.util.Log; * @author markroth8 */ public class SoundRecorderManager { - private static final String LOG_TAG = "ScratchJr.SoundRecorderManager"; + private static final String LOG_TAG = "SoundRecorderManager"; // Recording parameters private static final int SAMPLE_RATE_IN_HZ_DEVICE = 22050; diff --git a/android/ScratchJr/build.gradle b/android/ScratchJr/build.gradle index 0ceb1e6..7b1c37c 100644 --- a/android/ScratchJr/build.gradle +++ b/android/ScratchJr/build.gradle @@ -6,10 +6,11 @@ buildscript { url "https://maven.google.com" } jcenter() + google() } dependencies { - classpath 'com.android.tools.build:gradle:2.2.1' - classpath 'com.google.gms:google-services:3.1.0' + classpath 'com.android.tools.build:gradle:3.4.2' + classpath 'com.google.gms:google-services:4.3.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/android/ScratchJr/gradle/wrapper/gradle-wrapper.properties b/android/ScratchJr/gradle/wrapper/gradle-wrapper.properties index 3535276..4d5f8d2 100644 --- a/android/ScratchJr/gradle/wrapper/gradle-wrapper.properties +++ b/android/ScratchJr/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Mar 07 11:49:06 EST 2018 +#Mon Sep 09 13:26:20 EDT 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip