Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/develop.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ jobs:

# Tests
- name: Compile Unit Tests
run: "./gradlew compileDebugUnitTestSources compileReleaseUnitTestSources"
run: "./gradlew compileDebugUnitTestSources"
working-directory: mobile
if: "${{ env.BUILD_MOBILE == 'true' }}"
- name: Lint
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/verifyPr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ jobs:
# Tests

- name: Compile Unit Tests
run: "./gradlew compileDebugUnitTestSources compileReleaseUnitTestSources"
run: "./gradlew compileDebugUnitTestSources"
working-directory: mobile
- name: Lint
run: "./gradlew lintRelease runDebugDetekt assertModuleGraph buildHealth detectTooManyFiles :bucketsync:data:verifyDebugDatabaseMigration reportMerge --continue"
Expand Down
9 changes: 5 additions & 4 deletions mobile/app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,11 @@ android {
}
}

applicationVariants.all {
outputs.all {
val output = this as com.android.build.gradle.internal.api.ApkVariantOutputImpl
output.outputFileName = "notificationcenter-mobile.apk"
androidComponents.apply {
onVariants { variant ->
variant.outputs.forEach { output ->
output.outputFileName.set("notificationcenter-mobile.apk")
}
}
}
}
Expand Down
24 changes: 11 additions & 13 deletions mobile/buildSrc/src/main/kotlin/android-module-commons.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,13 @@ import com.android.build.gradle.tasks.asJavaVersion
import dev.detekt.gradle.extensions.DetektExtension
import jacoco.setupJacocoMergingAndroid
import org.gradle.accessors.dm.LibrariesForLibs
import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension
import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidProjectExtension
import util.commonAndroid
import util.commonAndroidComponents

val libs = the<LibrariesForLibs>()

plugins {
id("org.jetbrains.kotlin.android")

id("all-modules-commons")
id("org.gradle.android.cache-fix")
}
Expand All @@ -28,20 +26,20 @@ commonAndroid {

compileSdk = 36

compileOptions {
compileOptions.apply {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17

isCoreLibraryDesugaringEnabled = true
}

defaultConfig {
defaultConfig.apply {
minSdk = 24

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}

testOptions {
testOptions.apply {
unitTests.all {
it.useJUnitPlatform()

Expand All @@ -55,13 +53,13 @@ commonAndroid {
}
}

packaging {
packaging.apply {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}

buildFeatures {
buildFeatures.apply {
buildConfig = false
resValues = false
shaders = false
Expand All @@ -72,18 +70,18 @@ commonAndroid {
androidResources.enable = false
}

compileOptions {
compileOptions.apply {
// Android still creates java tasks, even with 100% Kotlin.
// Ensure that target compatiblity is equal to kotlin's jvmToolchain
lateinit var javaVersion: JavaVersion
the<KotlinProjectExtension>().jvmToolchain { javaVersion = this.languageVersion.get().asJavaVersion() }
project.the<KotlinAndroidProjectExtension>().jvmToolchain { javaVersion = this.languageVersion.get().asJavaVersion() }

targetCompatibility = javaVersion
}

buildTypes {
debug {
testCoverage {
buildTypes.apply {
getByName("debug") {
testCoverage.apply {
jacocoVersion = libs.versions.jacoco.get()
}

Expand Down
2 changes: 1 addition & 1 deletion mobile/buildSrc/src/main/kotlin/checks.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ apply(plugin = "dev.detekt")

if (isAndroidProject()) {
commonAndroid {
lint {
lint.apply {
lintConfig = file("$rootDir/config/android-lint.xml")
abortOnError = true

Expand Down
20 changes: 2 additions & 18 deletions mobile/buildSrc/src/main/kotlin/util/Android.kt
Original file line number Diff line number Diff line change
@@ -1,39 +1,23 @@
package util

import com.android.build.api.dsl.AndroidResources
import com.android.build.api.dsl.BuildFeatures
import com.android.build.api.dsl.BuildType
import com.android.build.api.dsl.CommonExtension
import com.android.build.api.dsl.DefaultConfig
import com.android.build.api.dsl.Installation
import com.android.build.api.dsl.ProductFlavor
import com.android.build.api.variant.AndroidComponentsExtension
import com.android.build.api.variant.Variant
import com.android.build.api.variant.VariantBuilder
import com.android.build.gradle.internal.utils.KOTLIN_ANDROID_PLUGIN_ID
import org.gradle.api.Action
import org.gradle.api.Project

/**
* android {} block that can be used without applying specific android plugin
*/
fun Project.commonAndroid(
block: Action<
CommonExtension<
BuildFeatures,
BuildType,
DefaultConfig,
ProductFlavor,
AndroidResources,
Installation
>
>,
block: CommonExtension.() -> Unit,
) {
(this as org.gradle.api.plugins.ExtensionAware).extensions.configure("android", block)
}

fun Project.isAndroidProject(): Boolean {
return pluginManager.hasPlugin(KOTLIN_ANDROID_PLUGIN_ID)
return pluginManager.hasPlugin("com.android.base")
}

/**
Expand Down
3 changes: 3 additions & 0 deletions mobile/config/android-lint.xml
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,7 @@ Ignore unknown issue id to allow us to configure issues in this file that

<!-- We do not even have the internet permission, so this does not apply to us -->
<issue id="DefaultCleartextTraffic" severity="ignore" />

<!-- We have query all apps enabled, so this is a non-issue -->
<issue id="QueryPermissionsNeeded" severity="ignore" />
</lint>
4 changes: 2 additions & 2 deletions mobile/config/libs.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ accompanist = "0.37.3"
android-securityLints = "1.0.4"
# See https://developer.android.com/jetpack/androidx/releases/compose-kotlin
androidGradleCacheFix = "3.0.3"
androidGradlePlugin = "8.13.2"
androidGradlePlugin = "9.3.0"
androidx-activity-compose = "1.13.0"
androidx-compose-material3 = "1.4.0"
androidx-compose-runtime = "1.11.3"
Expand Down Expand Up @@ -49,7 +49,7 @@ sqldelight = "2.3.2"
tinylog = "2.7.0"
turbine = "1.2.1"
unmock-androidJar = "16-robolectric-13921718"
unmock-plugin = "0.9.0"
unmock-plugin = "0.11.0"
versionCatalogUpdate = "1.1.0"

[libraries]
Expand Down
Loading