From 54db3fea11e76a2a189171c40c093c27e02b251d Mon Sep 17 00:00:00 2001 From: Advait Mahashabde Date: Tue, 12 Nov 2024 10:52:38 -0800 Subject: [PATCH 01/10] Initial commit. --- build.gradle | 8 +++---- gradle/publishing.gradle | 27 ++++++++++++++--------- gradle/wrapper/gradle-wrapper.properties | 2 +- shaky-sample/build.gradle | 1 + shaky-sample/src/main/AndroidManifest.xml | 6 ++--- shaky/build.gradle | 12 +++++----- shaky/src/main/AndroidManifest.xml | 3 +-- 7 files changed, 33 insertions(+), 26 deletions(-) diff --git a/build.gradle b/build.gradle index 7bd5e1d..82cb928 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:7.4.1' + classpath 'com.android.tools.build:gradle:8.7.2' } } @@ -24,8 +24,8 @@ subprojects { } ext { - compileSdkVersion = 31 - buildToolsVersion = '31.0.0' + compileSdkVersion = 35 + buildToolsVersion = '35.0.0' minSdkVersion = 21 - targetSdkVersion = 30 + targetSdkVersion = 35 } diff --git a/gradle/publishing.gradle b/gradle/publishing.gradle index 6be83a2..afb8185 100644 --- a/gradle/publishing.gradle +++ b/gradle/publishing.gradle @@ -4,20 +4,26 @@ apply plugin: 'signing' // Ideally AGP should provide sources and javadoc integration for their components: // https://issuetracker.google.com/issues/145670440 tasks.register("sourcesJar", Jar) { - classifier 'sources' + archiveClassifier.set('sources') from android.sourceSets.main.java.srcDirs } -tasks.register("javadoc", Javadoc) { +tasks.register('androidJavadocs', Javadoc) { failOnError false source = android.sourceSets.main.java.srcDirs classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) + android.libraryVariants.all { variant -> + if (variant.name == 'release') { + owner.classpath += variant.javaCompileProvider.get().classpath + } + } + exclude '**/R.html', '**/R.*.html', '**/index.html' } -tasks.register("javadocJar", Jar) { - dependsOn javadoc - classifier 'javadoc' - from javadoc.destinationDir +tasks.register('androidJavadocsJar', Jar) { + dependsOn androidJavadocs + archiveClassifier.set('javadoc') + from androidJavadocs.destinationDir } // AGP creates the components in afterEvaluate, so we need to use it too @@ -25,12 +31,11 @@ tasks.register("javadocJar", Jar) { afterEvaluate { publishing { publications { - maven(MavenPublication) { - from components.release - + maven(MavenPublication){ + from(components["release"]) + // Adds javadocs and sources as separate jars. artifact sourcesJar - artifact javadocJar - + artifact androidJavadocsJar pom { name = 'Shaky' description = 'Shake-to-send-feedback library for Android' diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 070cb70..e48eca5 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/shaky-sample/build.gradle b/shaky-sample/build.gradle index 62ebf93..8e306f0 100644 --- a/shaky-sample/build.gradle +++ b/shaky-sample/build.gradle @@ -1,6 +1,7 @@ apply plugin: 'com.android.application' android { + namespace "com.linkedin.android.shaky.app" compileSdkVersion rootProject.ext.compileSdkVersion compileOptions { diff --git a/shaky-sample/src/main/AndroidManifest.xml b/shaky-sample/src/main/AndroidManifest.xml index 548dc16..4c2b3fe 100644 --- a/shaky-sample/src/main/AndroidManifest.xml +++ b/shaky-sample/src/main/AndroidManifest.xml @@ -1,6 +1,5 @@ - + android:label="@string/app_name" + android:exported="true"> diff --git a/shaky/build.gradle b/shaky/build.gradle index 7976fc7..349a8ce 100644 --- a/shaky/build.gradle +++ b/shaky/build.gradle @@ -2,6 +2,7 @@ apply plugin: 'com.android.library' apply from: "$rootDir/gradle/publishing.gradle" android { + namespace "com.linkedin.android.shaky" compileSdkVersion rootProject.ext.compileSdkVersion compileOptions { @@ -16,10 +17,11 @@ android { versionName "1.0" } - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + publishing { + singleVariant("release") { + // if you don't want sources/javadoc, remove these lines + withSourcesJar() + withJavadocJar() } } @@ -41,5 +43,5 @@ dependencies { testImplementation 'junit:junit:4.13.2' testImplementation 'org.mockito:mockito-core:3.12.4' - testImplementation 'org.robolectric:robolectric:4.9.2' + testImplementation 'org.robolectric:robolectric:4.14-beta-1' } diff --git a/shaky/src/main/AndroidManifest.xml b/shaky/src/main/AndroidManifest.xml index 4712010..1e386a0 100644 --- a/shaky/src/main/AndroidManifest.xml +++ b/shaky/src/main/AndroidManifest.xml @@ -14,8 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. --> - + From da8f3f5b8b85033d6085b3ded28a0bf500b6cf95 Mon Sep 17 00:00:00 2001 From: Advait Mahashabde Date: Tue, 12 Nov 2024 11:05:50 -0800 Subject: [PATCH 02/10] Remove unwanted code --- gradle/publishing.gradle | 34 ++++++++++++++++------------------ shaky/build.gradle | 3 --- 2 files changed, 16 insertions(+), 21 deletions(-) diff --git a/gradle/publishing.gradle b/gradle/publishing.gradle index afb8185..770a774 100644 --- a/gradle/publishing.gradle +++ b/gradle/publishing.gradle @@ -8,23 +8,22 @@ tasks.register("sourcesJar", Jar) { from android.sourceSets.main.java.srcDirs } -tasks.register('androidJavadocs', Javadoc) { - failOnError false - source = android.sourceSets.main.java.srcDirs - classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) - android.libraryVariants.all { variant -> - if (variant.name == 'release') { - owner.classpath += variant.javaCompileProvider.get().classpath - } - } - exclude '**/R.html', '**/R.*.html', '**/index.html' -} - -tasks.register('androidJavadocsJar', Jar) { - dependsOn androidJavadocs - archiveClassifier.set('javadoc') - from androidJavadocs.destinationDir -} +//tasks.register('androidJavadocs', Javadoc) { +// failOnError false +// source = android.sourceSets.main.java.srcDirs +// classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) +// android.libraryVariants.all { variant -> +// if (variant.name == 'release') { +// owner.classpath += variant.javaCompileProvider.get().classpath +// } +// } +// exclude '**/R.html', '**/R.*.html', '**/index.html' +//} +// +//tasks.register('androidJavadocsJar', Jar) { +// dependsOn androidJavadocs +// from androidJavadocs.destinationDir +//} // AGP creates the components in afterEvaluate, so we need to use it too // https://developer.android.com/studio/build/maven-publish-plugin @@ -35,7 +34,6 @@ afterEvaluate { from(components["release"]) // Adds javadocs and sources as separate jars. artifact sourcesJar - artifact androidJavadocsJar pom { name = 'Shaky' description = 'Shake-to-send-feedback library for Android' diff --git a/shaky/build.gradle b/shaky/build.gradle index 349a8ce..55fc98a 100644 --- a/shaky/build.gradle +++ b/shaky/build.gradle @@ -19,9 +19,6 @@ android { publishing { singleVariant("release") { - // if you don't want sources/javadoc, remove these lines - withSourcesJar() - withJavadocJar() } } From fff71ad0cbe0928487ec3cb7b29f88232f31225e Mon Sep 17 00:00:00 2001 From: Advait Mahashabde Date: Tue, 12 Nov 2024 12:12:10 -0800 Subject: [PATCH 03/10] Set targetApi for flag --- shaky-sample/src/main/res/values/styles.xml | 6 +++++- shaky/src/main/res/values/shaky_styles.xml | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/shaky-sample/src/main/res/values/styles.xml b/shaky-sample/src/main/res/values/styles.xml index 42fb2b6..bb99257 100644 --- a/shaky-sample/src/main/res/values/styles.xml +++ b/shaky-sample/src/main/res/values/styles.xml @@ -1,4 +1,4 @@ - + + + diff --git a/shaky/src/main/res/values/shaky_styles.xml b/shaky/src/main/res/values/shaky_styles.xml index ed1abc0..5076e82 100644 --- a/shaky/src/main/res/values/shaky_styles.xml +++ b/shaky/src/main/res/values/shaky_styles.xml @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. --> - + - - - diff --git a/shaky/build.gradle b/shaky/build.gradle index 55fc98a..8566b45 100644 --- a/shaky/build.gradle +++ b/shaky/build.gradle @@ -17,11 +17,17 @@ android { versionName "1.0" } - publishing { - singleVariant("release") { + buildTypes { + release { + minifyEnabled true + proguardFiles 'proguard.cfg' } } + publishing { + singleVariant("release") + } + lintOptions { abortOnError true } @@ -32,13 +38,14 @@ android { dependencies { api 'com.squareup:seismic:1.0.3' implementation 'com.jraska:falcon:2.2.0' - implementation "androidx.appcompat:appcompat:1.3.1" - implementation "com.google.android.material:material:1.1.0" - implementation "androidx.recyclerview:recyclerview:1.2.1" + implementation "androidx.appcompat:appcompat:1.7.0" + implementation "com.google.android.material:material:1.12.0" + implementation "androidx.recyclerview:recyclerview:1.3.2" implementation "androidx.legacy:legacy-support-v4:1.0.0" - implementation "androidx.annotation:annotation:1.6.0" + implementation "androidx.annotation:annotation:1.9.1" testImplementation 'junit:junit:4.13.2' - testImplementation 'org.mockito:mockito-core:3.12.4' - testImplementation 'org.robolectric:robolectric:4.14-beta-1' + testImplementation 'org.mockito:mockito-core:5.14.2' + testImplementation 'org.robolectric:robolectric:4.13' } + From c1fc01b33feebdd89fb6ded3872f735e8346cb36 Mon Sep 17 00:00:00 2001 From: Advait Mahashabde Date: Tue, 12 Nov 2024 17:55:45 -0800 Subject: [PATCH 09/10] Skip running test for release build. --- build.gradle | 2 -- shaky/build.gradle | 9 +++++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index 82cb928..b6dd672 100644 --- a/build.gradle +++ b/build.gradle @@ -2,7 +2,6 @@ buildscript { repositories { google() mavenCentral() - jcenter() } dependencies { @@ -16,7 +15,6 @@ subprojects { repositories { google() mavenCentral() - jcenter() } group = GROUP_ID diff --git a/shaky/build.gradle b/shaky/build.gradle index 8566b45..cc3bf17 100644 --- a/shaky/build.gradle +++ b/shaky/build.gradle @@ -3,7 +3,7 @@ apply from: "$rootDir/gradle/publishing.gradle" android { namespace "com.linkedin.android.shaky" - compileSdkVersion rootProject.ext.compileSdkVersion + compileSdk rootProject.ext.compileSdkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 @@ -35,6 +35,12 @@ android { resourcePrefix 'shaky_' } +tasks.configureEach { + if (it.name == 'testReleaseUnitTest') { + it.enabled = false + } +} + dependencies { api 'com.squareup:seismic:1.0.3' implementation 'com.jraska:falcon:2.2.0' @@ -48,4 +54,3 @@ dependencies { testImplementation 'org.mockito:mockito-core:5.14.2' testImplementation 'org.robolectric:robolectric:4.13' } - From 4b55cc1f40b8cc943143073b22552e9dc123cfcb Mon Sep 17 00:00:00 2001 From: Advait Mahashabde Date: Tue, 12 Nov 2024 18:07:28 -0800 Subject: [PATCH 10/10] add minify coverage again --- shaky/build.gradle | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/shaky/build.gradle b/shaky/build.gradle index cc3bf17..66c0fce 100644 --- a/shaky/build.gradle +++ b/shaky/build.gradle @@ -19,8 +19,8 @@ android { buildTypes { release { - minifyEnabled true - proguardFiles 'proguard.cfg' + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -35,12 +35,6 @@ android { resourcePrefix 'shaky_' } -tasks.configureEach { - if (it.name == 'testReleaseUnitTest') { - it.enabled = false - } -} - dependencies { api 'com.squareup:seismic:1.0.3' implementation 'com.jraska:falcon:2.2.0'