Skip to content

Commit 96b740e

Browse files
committed
Now src/android/FCMPlugin.gradle is more resilient
1 parent 002fb2a commit 96b740e

File tree

1 file changed

+69
-42
lines changed

1 file changed

+69
-42
lines changed

src/android/FCMPlugin.gradle

Lines changed: 69 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,25 @@
11
buildscript {
22
ext {
3-
def PLUGIN_CONFIG = new Object()
3+
// Load system enviroment defined values, or, if unavailable, plugin defaults
4+
def ANDROID_GRADLE_TOOLS_VERSION = System.getenv('ANDROID_GRADLE_TOOLS_VERSION') ?: '4.1.0'
45
try {
5-
// Load configuration from install variables (package.json)
6-
PLUGIN_CONFIG = new groovy.json.JsonSlurper().parseText(file("${projectDir}/../../../package.json").text).cordova.plugins['cordova-plugin-fcm-with-dependecy-updated']
7-
} catch(Exception e) {
8-
def WARNING_STYLE = "${(char)27}[33;49"+"m"
9-
def DEFAULT_STYLE = "${(char)27}[39;49"+"m"
10-
print(WARNING_STYLE+"FCMPlugin: Plugin install variables are not accessible, as package.json was unreachable/unreadable."+DEFAULT_STYLE)
11-
// Load system enviroment defined values, or, if unavailable, plugin defaults
12-
PLUGIN_CONFIG.ANDROID_GRADLE_TOOLS_VERSION = System.getenv('ANDROID_GRADLE_TOOLS_VERSION') ?: '4.1.0'
6+
// Load configuration from install variables (package.json) two directories above
7+
def PLUGIN_CONFIG = new groovy.json.JsonSlurper().parseText(file("${projectDir}/../../package.json").text).cordova.plugins['cordova-plugin-fcm-with-dependecy-updated']
8+
ANDROID_GRADLE_TOOLS_VERSION = PLUGIN_CONFIG.ANDROID_GRADLE_TOOLS_VERSION
9+
} catch(Exception e0) {
10+
try {
11+
// Load configuration from install variables (package.json) three directories above
12+
def PLUGIN_CONFIG = new groovy.json.JsonSlurper().parseText(file("${projectDir}/../../../package.json").text).cordova.plugins['cordova-plugin-fcm-with-dependecy-updated']
13+
ANDROID_GRADLE_TOOLS_VERSION = PLUGIN_CONFIG.ANDROID_GRADLE_TOOLS_VERSION
14+
} catch(Exception e1) {
15+
def WARNING_STYLE = "${(char)27}[33;49"+"m"
16+
def DEFAULT_STYLE = "${(char)27}[39;49"+"m"
17+
print(WARNING_STYLE+"FCMPlugin: Plugin install variables are not accessible, as package.json was unreachable/unreadable."+DEFAULT_STYLE)
18+
}
1319
}
1420
// Override config with project values if available
15-
PLUGIN_CONFIG.ANDROID_GRADLE_TOOLS_VERSION = rootProject.hasProperty('ANDROID_GRADLE_TOOLS_VERSION') ? rootProject.ext.ANDROID_GRADLE_TOOLS_VERSION : PLUGIN_CONFIG.ANDROID_GRADLE_TOOLS_VERSION
16-
ext.gradleNumberVersion = PLUGIN_CONFIG.ANDROID_GRADLE_TOOLS_VERSION.substring(0, PLUGIN_CONFIG.ANDROID_GRADLE_TOOLS_VERSION.lastIndexOf(".")).toFloat()
21+
ANDROID_GRADLE_TOOLS_VERSION = rootProject.hasProperty('ANDROID_GRADLE_TOOLS_VERSION') ? rootProject.ext.ANDROID_GRADLE_TOOLS_VERSION : ANDROID_GRADLE_TOOLS_VERSION
22+
ext.gradleNumberVersion = ANDROID_GRADLE_TOOLS_VERSION.substring(0, ANDROID_GRADLE_TOOLS_VERSION.lastIndexOf(".")).toFloat()
1723
}
1824
repositories {
1925
mavenCentral()
@@ -24,24 +30,32 @@ buildscript {
2430
}
2531
}
2632
dependencies {
27-
def PLUGIN_CONFIG = new Object()
33+
// Load system enviroment defined values, or, if unavailable, plugin defaults
34+
def ANDROID_GOOGLE_SERVICES_VERSION = System.getenv('ANDROID_GOOGLE_SERVICES_VERSION') ?: '4.3.4'
35+
def ANDROID_GRADLE_TOOLS_VERSION = System.getenv('ANDROID_GRADLE_TOOLS_VERSION') ?: '4.1.0'
2836
try {
29-
// Load configuration from install variables (package.json)
30-
PLUGIN_CONFIG = new groovy.json.JsonSlurper().parseText(file("${projectDir}/../../../package.json").text).cordova.plugins['cordova-plugin-fcm-with-dependecy-updated']
31-
} catch(Exception e) {
32-
def WARNING_STYLE = "${(char)27}[33;49"+"m"
33-
def DEFAULT_STYLE = "${(char)27}[39;49"+"m"
34-
print(WARNING_STYLE+"FCMPlugin: Plugin install variables are not accessible, as package.json was unreachable/unreadable."+DEFAULT_STYLE)
35-
// Load system enviroment defined values, or, if unavailable, plugin defaults
36-
PLUGIN_CONFIG.ANDROID_GOOGLE_SERVICES_VERSION = System.getenv('ANDROID_GOOGLE_SERVICES_VERSION') ?: '4.3.4'
37-
PLUGIN_CONFIG.ANDROID_GRADLE_TOOLS_VERSION = System.getenv('ANDROID_GRADLE_TOOLS_VERSION') ?: '4.1.0'
37+
// Load configuration from install variables (package.json) two directories above
38+
def PLUGIN_CONFIG = new groovy.json.JsonSlurper().parseText(file("${projectDir}/../../package.json").text).cordova.plugins['cordova-plugin-fcm-with-dependecy-updated']
39+
ANDROID_GOOGLE_SERVICES_VERSION = PLUGIN_CONFIG.ANDROID_GOOGLE_SERVICES_VERSION
40+
ANDROID_GRADLE_TOOLS_VERSION = PLUGIN_CONFIG.ANDROID_GRADLE_TOOLS_VERSION
41+
} catch(Exception e0) {
42+
try {
43+
// Load configuration from install variables (package.json) three directories above
44+
def PLUGIN_CONFIG = new groovy.json.JsonSlurper().parseText(file("${projectDir}/../../../package.json").text).cordova.plugins['cordova-plugin-fcm-with-dependecy-updated']
45+
ANDROID_GOOGLE_SERVICES_VERSION = PLUGIN_CONFIG.ANDROID_GOOGLE_SERVICES_VERSION
46+
ANDROID_GRADLE_TOOLS_VERSION = PLUGIN_CONFIG.ANDROID_GRADLE_TOOLS_VERSION
47+
} catch(Exception e1) {
48+
def WARNING_STYLE = "${(char)27}[33;49"+"m"
49+
def DEFAULT_STYLE = "${(char)27}[39;49"+"m"
50+
print(WARNING_STYLE+"FCMPlugin: Plugin install variables are not accessible, as package.json was unreachable/unreadable."+DEFAULT_STYLE)
51+
}
3852
}
3953
// Override config with project values if available
40-
PLUGIN_CONFIG.ANDROID_GOOGLE_SERVICES_VERSION = rootProject.hasProperty('ANDROID_GOOGLE_SERVICES_VERSION') ? rootProject.ext.ANDROID_GOOGLE_SERVICES_VERSION : PLUGIN_CONFIG.ANDROID_GOOGLE_SERVICES_VERSION
41-
PLUGIN_CONFIG.ANDROID_GRADLE_TOOLS_VERSION = rootProject.hasProperty('ANDROID_GRADLE_TOOLS_VERSION') ? rootProject.ext.ANDROID_GRADLE_TOOLS_VERSION : PLUGIN_CONFIG.ANDROID_GRADLE_TOOLS_VERSION
54+
ANDROID_GOOGLE_SERVICES_VERSION = rootProject.hasProperty('ANDROID_GOOGLE_SERVICES_VERSION') ? rootProject.ext.ANDROID_GOOGLE_SERVICES_VERSION : ANDROID_GOOGLE_SERVICES_VERSION
55+
ANDROID_GRADLE_TOOLS_VERSION = rootProject.hasProperty('ANDROID_GRADLE_TOOLS_VERSION') ? rootProject.ext.ANDROID_GRADLE_TOOLS_VERSION : ANDROID_GRADLE_TOOLS_VERSION
4256
// Avoid use "GRADLE_VERSION" because jitpack sets this like a environment variable
43-
classpath "com.android.tools.build:gradle:${PLUGIN_CONFIG.ANDROID_GRADLE_TOOLS_VERSION}"
44-
classpath "com.google.gms:google-services:${PLUGIN_CONFIG.ANDROID_GOOGLE_SERVICES_VERSION}"
57+
classpath "com.android.tools.build:gradle:${ANDROID_GRADLE_TOOLS_VERSION}"
58+
classpath "com.google.gms:google-services:${ANDROID_GOOGLE_SERVICES_VERSION}"
4559
}
4660
}
4761
repositories {
@@ -52,29 +66,42 @@ repositories {
5266
}
5367
}
5468
dependencies {
55-
def PLUGIN_CONFIG = new Object()
69+
// Load system enviroment defined values, or, if unavailable, plugin defaults
70+
def ANDROID_FCM_VERSION = System.getenv('ANDROID_FCM_VERSION') ?: '21.0.0'
71+
def ANDROID_FIREBASE_BOM_VERSION = System.getenv('ANDROID_FIREBASE_BOM_VERSION') ?: '26.0.0'
5672
try {
57-
// Load configuration from install variables (package.json)
58-
PLUGIN_CONFIG = new groovy.json.JsonSlurper().parseText(file("${projectDir}/../../../package.json").text).cordova.plugins['cordova-plugin-fcm-with-dependecy-updated']
59-
} catch(Exception e) {
60-
def WARNING_STYLE = "${(char)27}[33;49"+"m"
61-
def DEFAULT_STYLE = "${(char)27}[39;49"+"m"
62-
print(WARNING_STYLE+"FCMPlugin: Plugin install variables are not accessible, as package.json was unreachable/unreadable."+DEFAULT_STYLE)
63-
// Load system enviroment defined values, or, if unavailable, plugin defaults
64-
PLUGIN_CONFIG.ANDROID_FCM_VERSION = System.getenv('ANDROID_FCM_VERSION') ?: '21.0.0'
65-
PLUGIN_CONFIG.ANDROID_FIREBASE_BOM_VERSION = System.getenv('ANDROID_FIREBASE_BOM_VERSION') ?: '26.0.0'
73+
// Load configuration from install variables (package.json) two directories above
74+
def PLUGIN_CONFIG = new groovy.json.JsonSlurper().parseText(file("${projectDir}/../../package.json").text).cordova.plugins['cordova-plugin-fcm-with-dependecy-updated']
75+
ANDROID_FCM_VERSION = PLUGIN_CONFIG.ANDROID_FCM_VERSION
76+
ANDROID_FIREBASE_BOM_VERSION = PLUGIN_CONFIG.ANDROID_FIREBASE_BOM_VERSION
77+
} catch(Exception e0) {
78+
try {
79+
// Load configuration from install variables (package.json) three directories above
80+
def PLUGIN_CONFIG = new groovy.json.JsonSlurper().parseText(file("${projectDir}/../../../package.json").text).cordova.plugins['cordova-plugin-fcm-with-dependecy-updated']
81+
ANDROID_FCM_VERSION = PLUGIN_CONFIG.ANDROID_FCM_VERSION
82+
ANDROID_FIREBASE_BOM_VERSION = PLUGIN_CONFIG.ANDROID_FIREBASE_BOM_VERSION
83+
} catch(Exception e1) {
84+
def WARNING_STYLE = "${(char)27}[33;49"+"m"
85+
def DEFAULT_STYLE = "${(char)27}[39;49"+"m"
86+
print(WARNING_STYLE+"FCMPlugin: Plugin install variables are not accessible, as package.json was unreachable/unreadable."+DEFAULT_STYLE)
87+
}
6688
}
6789
// Override config with project values if available
68-
PLUGIN_CONFIG.ANDROID_FCM_VERSION = rootProject.hasProperty('ANDROID_FCM_VERSION') ? rootProject.ext.ANDROID_FCM_VERSION : PLUGIN_CONFIG.ANDROID_FCM_VERSION
69-
PLUGIN_CONFIG.ANDROID_FIREBASE_BOM_VERSION = rootProject.hasProperty('ANDROID_FIREBASE_BOM_VERSION') ? rootProject.ext.ANDROID_FIREBASE_BOM_VERSION : PLUGIN_CONFIG.ANDROID_FIREBASE_BOM_VERSION
70-
if (gradleNumberVersion >= 3.4f) {
71-
implementation platform("com.google.firebase:firebase-bom:${PLUGIN_CONFIG.ANDROID_FIREBASE_BOM_VERSION}")
72-
implementation "com.google.firebase:firebase-messaging"
73-
} else {
90+
ANDROID_FCM_VERSION = rootProject.hasProperty('ANDROID_FCM_VERSION') ? rootProject.ext.ANDROID_FCM_VERSION : ANDROID_FCM_VERSION
91+
ANDROID_FIREBASE_BOM_VERSION = rootProject.hasProperty('ANDROID_FIREBASE_BOM_VERSION') ? rootProject.ext.ANDROID_FIREBASE_BOM_VERSION : ANDROID_FIREBASE_BOM_VERSION
92+
if (gradleNumberVersion < 3.4f) {
7493
def WARNING_STYLE = "${(char)27}[33;49"+"m"
7594
def DEFAULT_STYLE = "${(char)27}[39;49"+"m"
7695
print(WARNING_STYLE+"FCMPlugin: Support for Gradle v3.3 or lower is deprecated. Please upgrade to a newer version."+DEFAULT_STYLE)
77-
compile "com.google.firebase:firebase-messaging:${PLUGIN_CONFIG.ANDROID_FCM_VERSION}"
96+
compile "com.google.firebase:firebase-messaging:${ANDROID_FCM_VERSION}"
97+
} else if (gradleNumberVersion < 5.0f) {
98+
def WARNING_STYLE = "${(char)27}[33;49"+"m"
99+
def DEFAULT_STYLE = "${(char)27}[39;49"+"m"
100+
print(WARNING_STYLE+"FCMPlugin: Support for Gradle v4 or lower is deprecated. Please upgrade to a newer version."+DEFAULT_STYLE)
101+
implementation "com.google.firebase:firebase-messaging:${ANDROID_FCM_VERSION}"
102+
} else {
103+
implementation platform("com.google.firebase:firebase-bom:${ANDROID_FIREBASE_BOM_VERSION}")
104+
implementation "com.google.firebase:firebase-messaging"
78105
}
79106
}
80107
// apply plugin: 'com.google.gms.google-services'

0 commit comments

Comments
 (0)