Skip to content
This repository was archived by the owner on Oct 31, 2022. It is now read-only.

Commit b64adb1

Browse files
committed
Omit version override on module transformation
* When reading DependencyResolveDetails use target instead of requested to check if we should override version - This fixes an issue where Jetifier would change the package group from com.android.support to androidx but this plugin would still override the version
1 parent ba9f91f commit b64adb1

File tree

3 files changed

+37
-8
lines changed

3 files changed

+37
-8
lines changed

src/main/groovy/com/onesignal/androidsdk/GradleProjectPlugin.groovy

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ class GradleProjectPlugin implements Plugin<Project> {
9292
26: '27.+',
9393
27: '27.+',
9494
28: '28.+'
95+
// There is no 29, AndroidX has taken it's place
9596
]
9697
],
9798

@@ -465,7 +466,7 @@ class GradleProjectPlugin implements Plugin<Project> {
465466
if (!inGroupAlignList(details))
466467
return
467468

468-
String toVersion = finalAlignmentRules()[details.requested.group]['version']
469+
String toVersion = finalAlignmentRules()[details.target.group]['version']
469470
overrideVersion(details, toVersion)
470471
}
471472

@@ -510,9 +511,9 @@ class GradleProjectPlugin implements Plugin<Project> {
510511
}
511512

512513
static void overrideVersion(DependencyResolveDetails details, String groupVersionOverride) {
513-
def group = details.requested.group
514-
def name = details.requested.name
515-
def version = details.requested.version
514+
def group = details.target.group
515+
def name = details.target.name
516+
def version = details.target.version
516517

517518
String resolvedVersion = null
518519
def moduleOverride = versionModuleAligns["$group:$name"]
@@ -573,8 +574,8 @@ class GradleProjectPlugin implements Plugin<Project> {
573574
}
574575

575576
static void logModuleOverride(DependencyResolveDetails details, String resolvedVersion) {
576-
def modName = "${details.requested.group}:${details.requested.name}"
577-
def versionsMsg = "'${details.requested.version}' to '${resolvedVersion}'"
577+
def modName = "${details.target.group}:${details.target.name}"
578+
def versionsMsg = "'${details.target.version}' to '${resolvedVersion}'"
578579
def msg = "${modName} overridden from ${versionsMsg}"
579580
project.logger.info("OneSignalProjectPlugin: ${msg}")
580581
}
@@ -595,7 +596,7 @@ class GradleProjectPlugin implements Plugin<Project> {
595596
}
596597

597598
static boolean inGroupAlignList(DependencyResolveDetails details) {
598-
inGroupAlignListFindByStrings(details.requested.group, details.requested.name)
599+
inGroupAlignListFindByStrings(details.target.group, details.target.name)
599600
}
600601

601602
// Compares two exact versions
@@ -699,7 +700,7 @@ class GradleProjectPlugin implements Plugin<Project> {
699700
return
700701

701702
// Needed for "Upgrade to compatible OneSignal SDK when using Android Support library rev 27" test
702-
String curOverrideVersion = versionGroupAligns[details.requested.group]['version']
703+
String curOverrideVersion = versionGroupAligns[details.target.group]['version']
703704
overrideVersion(details, curOverrideVersion)
704705
}
705706

src/test/groovy/com/onesignal/androidsdk/GradleTestTemplate.groovy

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,12 +106,21 @@ class GradleTestTemplate {
106106
'''.stripIndent()
107107
}
108108

109+
static def createGradlePropertiesFile(buildSections) {
110+
def gradlePropertiesFile = testProjectDir.newFile("gradle.properties")
111+
gradlePropertiesFile << """\
112+
android.useAndroidX=${buildSections['android.useAndroidX'] ?: false}
113+
android.enableJetifier=${buildSections['android.enableJetifier'] ?: false}
114+
""".stripIndent()
115+
}
116+
109117
static void createBuildFile(buildSections) {
110118
testProjectDir = new TemporaryFolder()
111119
testProjectDir.create()
112120
testProjectDir.newFolder('src', 'main')
113121
createManifest('src/main')
114122
createGoogleServicesJson('')
123+
createGradlePropertiesFile(buildSections)
115124

116125
buildFileStr = """\
117126
buildscript {

src/test/groovy/com/onesignal/androidsdk/MainTest.groovy

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,25 @@ class MainTest extends Specification {
294294
}
295295
}
296296

297+
def 'Works with Jetifier and picks correct version AndroidX version'() {
298+
when:
299+
def results = runGradleProject([
300+
'android.useAndroidX': true,
301+
'android.enableJetifier': true,
302+
compileLines: """
303+
implementation 'com.google.android.gms:play-services-ads:18.1.0'
304+
implementation 'com.android.support:cardview-v7:[26.0.0, 27.2.0)'
305+
""",
306+
skipGradleVersion: GRADLE_OLDEST_VERSION
307+
])
308+
309+
then:
310+
assert results // Assert success and contains 1+ entries
311+
results.each {
312+
assert it.value.contains('com.android.support:cardview-v7:[26.0.0, 27.2.0) -> androidx.cardview:cardview:1.0.0')
313+
}
314+
}
315+
297316
def "Upgrade to compatible OneSignal SDK when using Android Support library rev 27"() {
298317
when:
299318
def results = runGradleProject([

0 commit comments

Comments
 (0)