When running the app from Android Studio the React packager is not automatically started. In vanilla RN projects this is done by the "react-native run-android" command, but often times it is desired to run from Android Studio. This fixes that by starting the packager from Gradle.
159 lines
5.3 KiB
Groovy
159 lines
5.3 KiB
Groovy
apply plugin: 'com.android.application'
|
|
|
|
boolean googleServicesEnabled = project.file('google-services.json').exists()
|
|
|
|
// Crashlytics integration is done as part of Firebase now, so it gets
|
|
// automagically activated with google-services.json
|
|
if (googleServicesEnabled) {
|
|
apply plugin: 'io.fabric'
|
|
}
|
|
|
|
|
|
android {
|
|
compileSdkVersion rootProject.ext.compileSdkVersion
|
|
buildToolsVersion rootProject.ext.buildToolsVersion
|
|
|
|
defaultConfig {
|
|
applicationId 'org.jitsi.meet'
|
|
versionCode Integer.parseInt(project.buildNumber)
|
|
versionName project.appVersion
|
|
|
|
minSdkVersion rootProject.ext.minSdkVersion
|
|
targetSdkVersion rootProject.ext.targetSdkVersion
|
|
|
|
ndk {
|
|
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
debug {
|
|
minifyEnabled true
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules-debug.pro'
|
|
buildConfigField "boolean", "GOOGLE_SERVICES_ENABLED", "${googleServicesEnabled}"
|
|
}
|
|
release {
|
|
minifyEnabled true
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules-release.pro'
|
|
buildConfigField "boolean", "GOOGLE_SERVICES_ENABLED", "${googleServicesEnabled}"
|
|
}
|
|
}
|
|
|
|
compileOptions {
|
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
}
|
|
}
|
|
|
|
repositories {
|
|
maven { url 'https://maven.fabric.io/public' }
|
|
}
|
|
|
|
dependencies {
|
|
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
|
implementation "com.android.support:support-v4:${rootProject.ext.supportLibVersion}"
|
|
implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
|
|
implementation 'com.google.android.gms:play-services-auth:16.0.1'
|
|
|
|
implementation project(':sdk')
|
|
|
|
debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.6.1'
|
|
releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.6.1'
|
|
|
|
// Glide
|
|
implementation("com.github.bumptech.glide:glide:${rootProject.ext.glideVersion}") {
|
|
exclude group: "com.android.support", module: "glide"
|
|
}
|
|
implementation("com.github.bumptech.glide:annotations:${rootProject.ext.glideVersion}") {
|
|
exclude group: "com.android.support", module: "annotations"
|
|
}
|
|
annotationProcessor "com.github.bumptech.glide:compiler:${rootProject.ext.glideVersion}"
|
|
|
|
// Firebase
|
|
// - Crashlytics
|
|
// - Dynamic Links
|
|
implementation 'com.google.firebase:firebase-core:16.0.6'
|
|
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.8'
|
|
implementation 'com.google.firebase:firebase-dynamic-links:16.1.5'
|
|
}
|
|
|
|
gradle.projectsEvaluated {
|
|
// Dropbox integration
|
|
//
|
|
|
|
def dropboxAppKey
|
|
if (project.file('dropbox.key').exists()) {
|
|
dropboxAppKey = project.file('dropbox.key').text.trim() - 'db-'
|
|
}
|
|
|
|
if (dropboxAppKey) {
|
|
android.defaultConfig.resValue('string', 'dropbox_app_key', "${dropboxAppKey}")
|
|
|
|
def dropboxActivity = """
|
|
<activity
|
|
android:configChanges="keyboard|orientation"
|
|
android:launchMode="singleTask"
|
|
android:name="com.dropbox.core.android.AuthActivity">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
<category android:name="android.intent.category.BROWSABLE" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<data android:scheme="db-${dropboxAppKey}" />
|
|
</intent-filter>
|
|
</activity>"""
|
|
|
|
android.applicationVariants.all { variant ->
|
|
variant.outputs.each { output ->
|
|
output.getProcessManifestProvider().get().doLast {
|
|
def outputDir = manifestOutputDirectory.get().asFile
|
|
def manifestPath = new File(outputDir, 'AndroidManifest.xml')
|
|
def charset = 'UTF-8'
|
|
def text
|
|
text = manifestPath.getText(charset)
|
|
text = text.replace('</application>', "${dropboxActivity}</application>")
|
|
manifestPath.write(text, charset)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Run React packager
|
|
android.applicationVariants.all { variant ->
|
|
def targetName = variant.name.capitalize()
|
|
|
|
def currentRunPackagerTask = tasks.create(
|
|
name: "run${targetName}ReactPackager",
|
|
type: Exec) {
|
|
group = "react"
|
|
description = "Run the React packager."
|
|
|
|
doFirst {
|
|
println "Starting the React packager..."
|
|
|
|
def androidRoot = file("${projectDir}/../")
|
|
|
|
// Set up the call to the script
|
|
workingDir androidRoot
|
|
|
|
// Run the packager
|
|
commandLine("scripts/run-packager.sh")
|
|
}
|
|
|
|
// Set up dev mode
|
|
def devEnabled = !targetName.toLowerCase().contains("release")
|
|
|
|
// Only enable for dev builds
|
|
enabled devEnabled
|
|
}
|
|
|
|
def packageTask = variant.packageApplicationProvider.get()
|
|
|
|
packageTask.dependsOn(currentRunPackagerTask)
|
|
}
|
|
|
|
}
|
|
|
|
if (googleServicesEnabled) {
|
|
apply plugin: 'com.google.gms.google-services'
|
|
}
|