scratchjr/android/ScratchJr/app/build.gradle
Chris Garrity b965440709 Switch to firebase analytics
* Remove ScratchJrApplication class - it was only being used to initialize the old Google Analytics.
* Change AppUsage (home, school, other, noanswer) from being a prefix on `label` to being a Firebase user property.
* Set the user property when loading the index page - it shouldn’t change for the rest of the session.
2019-10-21 10:48:03 -04:00

110 lines
3.2 KiB
Groovy

apply plugin: 'com.android.application'
android {
compileSdkVersion 28
buildToolsVersion "28.0.3"
defaultConfig {
applicationId "org.scratchjr.android"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
flavorDimensions 'scratchjrversion'
productFlavors {
free {
dimension = 'scratchjrversion'
applicationId "org.scratchjr.androidfree"
minSdkVersion 19
targetSdkVersion 28
versionCode 21
versionName "1.2.0"
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.google.firebase:firebase-core:17.2.0'
implementation 'com.google.firebase:firebase-analytics:17.2.0'
implementation 'com.google.android.gms:play-services-location:17.0.0'
implementation 'androidx.appcompat:appcompat:1.1.0'
}
def appModuleRootFolder = '.'
def srcDir = 'src'
def googleServicesJson = 'google-services.json'
def commonHome = '../../..'
def html5Assets = 'src/main/assets/HTML5'
task switchToFree(type: Copy) {
def buildType = 'free'
from "${commonHome}/editions/${buildType}/src"
into html5Assets
}
task switchToFreeGA(type: Copy) {
def buildType = 'free'
from "${commonHome}/editions/${buildType}/android-resources"
include "$googleServicesJson"
into "$appModuleRootFolder"
}
task generateWebpackBundle(type: Exec) {
workingDir '../../../bin'
commandLine './bundle-compile.sh'
}
class GenerateScratchJrPNGsTask extends DefaultTask {
File commonHome = project.file("../../..")
File binDir = project.file("${commonHome}/bin")
@OutputDirectory
File generatedAssets = project.file("src/main/assets")
File generatedHtml5Assets = project.file("${generatedAssets}/HTML5")
File pngLibrary = project.file("${generatedHtml5Assets}/pnglibrary")
File svgLibrary = project.file("${generatedHtml5Assets}/svglibrary")
@TaskAction
def go() {
pngLibrary.mkdirs()
ant.exec(executable: "${binDir}/convert-svg-to-png.py",
failOnError: true)
{
arg(value: "-i ${svgLibrary}/")
arg(value: "-o ${pngLibrary}/")
}
}
}
class CleanScratchJrResourcesTask extends DefaultTask {
File generatedAssets = project.file('src/main/assets')
@TaskAction
def go() {
generatedAssets.deleteDir()
}
}
task generateScratchJrPNGs(type: GenerateScratchJrPNGsTask)
task cleanScratchJrResources(type: CleanScratchJrResourcesTask)
afterEvaluate {
preBuild.dependsOn generateWebpackBundle
processFreeDebugGoogleServices.dependsOn switchToFreeGA
processFreeReleaseGoogleServices.dependsOn switchToFreeGA
generateFreeReleaseResources.dependsOn switchToFree
generateFreeDebugResources.dependsOn switchToFree
generateFreeReleaseResources.dependsOn generateScratchJrPNGs
generateFreeDebugResources.dependsOn generateScratchJrPNGs
generateScratchJrPNGs.mustRunAfter switchToFree
}
clean.dependsOn('cleanScratchJrResources')
apply plugin: 'com.google.gms.google-services'