From a543d4d4bf8a9dfe8bf5bcf84bac88e5ffb2d2ca Mon Sep 17 00:00:00 2001 From: Sylvia van Os Date: Tue, 13 May 2025 20:28:57 +0200 Subject: [PATCH 1/2] Use Java 21 --- .github/workflows/android.yml | 6 +++--- app/build.gradle.kts | 10 +++++++++- build.sh | 10 +++++----- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 422d38bcb..6475f79d5 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -24,7 +24,7 @@ permissions: security-events: none statuses: none env: - JAVA_HOME: /usr/lib/jvm/java-17-openjdk-amd64 + JAVA_HOME: /usr/lib/jvm/java-21-openjdk-amd64 jobs: build: runs-on: ubuntu-latest @@ -36,10 +36,10 @@ jobs: - name: Fail on bad translations run: if grep -ri "<xliff" app/src/main/res/values*/strings.xml; then echo "Invalidly escaped translations found"; exit 1; fi - uses: gradle/actions/wrapper-validation@v4 - - name: set up OpenJDK 17 + - name: set up OpenJDK 21 run: | sudo apt-get update - sudo apt-get install -y openjdk-17-jdk-headless + sudo apt-get install -y openjdk-21-jdk-headless sudo update-alternatives --auto java - name: Build run: ./gradlew assemble${{ matrix.flavor }}Release diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 97d3e5683..d34f5e0af 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,6 +14,10 @@ spotbugs { reportsDir.set(layout.buildDirectory.file("reports/spotbugs/").get().asFile) } +kotlin { + jvmToolchain(21) +} + android { namespace = "protect.card_locker" compileSdk = 35 @@ -104,7 +108,11 @@ android { lintConfig = file("lint.xml") } kotlinOptions { - jvmTarget = "17" + jvmTarget = "21" + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_21 + targetCompatibility = JavaVersion.VERSION_21 } } diff --git a/build.sh b/build.sh index 8cd9e6b99..d7168d018 100755 --- a/build.sh +++ b/build.sh @@ -11,13 +11,13 @@ if [ -z "${ANDROID_SDK_ROOT:-}" ]; then fi if [ -z "${JAVA_HOME:-}" ]; then - echo "JAVA_HOME is not set, setting to Java 17" + echo "JAVA_HOME is not set, setting to Java 21" if [ -f "/etc/debian_version" ]; then - echo "Debian-based distro, Java 17 is /usr/lib/jvm/java-17-openjdk-amd64" - export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 + echo "Debian-based distro, Java 21 is /usr/lib/jvm/java-21-openjdk-amd64" + export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64 else - echo "Not Debian-based, assuming Fedora and setting Java 17 as /usr/lib/jvm/java-17-openjdk" - export JAVA_HOME=/usr/lib/jvm/java-17-openjdk + echo "Not Debian-based, assuming Fedora and setting Java 21 as /usr/lib/jvm/java-21-openjdk" + export JAVA_HOME=/usr/lib/jvm/java-21-openjdk fi fi From e89392316445d966757c08424de90ae63978611d Mon Sep 17 00:00:00 2001 From: Sylvia van Os Date: Tue, 13 May 2025 22:01:46 +0200 Subject: [PATCH 2/2] Remove spotBugs We've been running an old version for very long because there hasn't been any time to update it. A newer version doesn't support Java 21. Given Java 21 ihas more priority, let's just get rid of spotBugs. --- .github/workflows/android.yml | 2 -- CONTRIBUTING.md | 4 ---- app/build.gradle.kts | 24 ------------------- .../card_locker/LoyaltyCardEditActivity.java | 2 -- build.gradle.kts | 1 - 5 files changed, 33 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 6475f79d5..534c35776 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -64,8 +64,6 @@ jobs: api-level: 35 arch: x86_64 script: ./gradlew connected${{ matrix.flavor }}DebugAndroidTest - - name: SpotBugs - run: ./gradlew spotbugs${{ matrix.flavor }}Release - name: Archive test results if: always() uses: actions/upload-artifact@v4.6.2 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 89f9464a4..42e37ee99 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -36,10 +36,6 @@ These are the Android lint checker, run using: # ./gradlew lintRelease -and SpotBugs, run using: - - # ./gradlew spotbugsRelease - The final check is by testing the application on a live device and verifying the basic functionality works as expected. diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d34f5e0af..9c525d330 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,19 +1,10 @@ import com.android.build.gradle.internal.tasks.factory.dependsOn -import com.github.spotbugs.snom.SpotBugsTask plugins { id("com.android.application") - id("com.github.spotbugs") id("org.jetbrains.kotlin.android") } -spotbugs { - ignoreFailures.set(false) - setEffort("max") - excludeFilter.set(file("./config/spotbugs/exclude.xml")) - reportsDir.set(layout.buildDirectory.file("reports/spotbugs/").get().asFile) -} - kotlin { jvmToolchain(21) } @@ -136,9 +127,6 @@ dependencies { implementation("com.jaredrummler:colorpicker:1.1.0") implementation("net.lingala.zip4j:zip4j:2.11.5") - // SpotBugs - implementation("io.wcm.tooling.spotbugs:io.wcm.tooling.spotbugs.annotations:1.0.0") - // Testing val androidXTestVersion = "1.6.1" val junitVersion = "4.13.2" @@ -154,18 +142,6 @@ dependencies { androidTestImplementation("androidx.test.espresso:espresso-core:3.6.1") } -tasks.withType().configureEach { - description = "Run spotbugs" - group = "verification" - - //classes = fileTree("build/intermediates/javac/debug/compileDebugJavaWithJavac/classes") - //source = fileTree("src/main/java") - //classpath = files() - - reports.maybeCreate("xml").required.set(false) - reports.maybeCreate("html").required.set(true) -} - tasks.register("copyRawResFiles", Copy::class) { from( layout.projectDirectory.file("../CHANGELOG.md"), diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java index 57baed170..13df8c480 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java @@ -576,7 +576,6 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements binding.tabs.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override - @edu.umd.cs.findbugs.annotations.SuppressFBWarnings("NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE") public void onTabSelected(TabLayout.Tab tab) { viewModel.setTabIndex(tab.getPosition()); showPart(tab.getText().toString()); @@ -588,7 +587,6 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements } @Override - @edu.umd.cs.findbugs.annotations.SuppressFBWarnings("NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE") public void onTabReselected(TabLayout.Tab tab) { viewModel.setTabIndex(tab.getPosition()); showPart(tab.getText().toString()); diff --git a/build.gradle.kts b/build.gradle.kts index f2d9dbaae..1c3ccbc01 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,7 +2,6 @@ plugins { id("com.android.application") version "8.10.0" apply false - id("com.github.spotbugs") version "5.1.4" apply false id("org.jetbrains.kotlin.android") version "2.1.10" apply false }