Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
0816c89
[Infra] Bump kotlin and related deps to 2.0.21
rlazo Jul 3, 2025
fecdf64
Update kapt to a version supporting kotlin2
rlazo Jul 3, 2025
062d564
Bump dagger to the last version supporting kotlin 2.0
rlazo Jul 3, 2025
a0c44ca
Fix issue preveting crashlytics-ndk from compile
rlazo Jul 4, 2025
0d20bd8
Merge branch 'main' into rl.bump.kotlin.2021
rlazo Jul 4, 2025
d4f9752
Fix format
rlazo Jul 4, 2025
b44962d
Fix smoke-tests
rlazo Jul 4, 2025
1be2033
Merge branch 'main' into rl.bump.kotlin.2021
rlazo Jul 4, 2025
f144e57
Fix errors in lint tests
rlazo Jul 5, 2025
aa3df90
Address usage of API 24 within perf
rlazo Jul 5, 2025
0cab42a
Reduce mockk bump to prevent bug in spyk
rlazo Jul 5, 2025
b1707cc
Bump mockito dependencies
rlazo Jul 7, 2025
fa58d50
Bump jacoco dependency
rlazo Jul 7, 2025
f362d77
Remove unnecessary mockito-inline dep
rlazo Jul 7, 2025
46bacc7
Add missing mock dependency in appdistro
rlazo Jul 7, 2025
b6d44df
Address appdistro test bug
rlazo Jul 7, 2025
250dc43
Merge branch 'main' into rl.bump.kotlin.2021
rlazo Jul 7, 2025
5a09fc8
Merge branch 'main' into rl.bump.kotlin.2021
rlazo Jul 7, 2025
18465b6
Reduce dagger version bump
rlazo Jul 7, 2025
d567cc6
Address sessions breakage
rlazo Jul 7, 2025
0dd1816
Undo kapt update
rlazo Jul 8, 2025
a5c5bea
Use non-deprecated reflector in FCM
rlazo Jul 8, 2025
4ca3a11
Update sessions to handle null fid correctly
rlazo Jul 8, 2025
e79f663
Keep robolectric in a sane version
rlazo Jul 8, 2025
60a7258
Fix format
rlazo Jul 8, 2025
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: 0 additions & 2 deletions appcheck/firebase-appcheck/firebase-appcheck.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,6 @@ dependencies {
testImplementation libs.junit
testImplementation libs.junit
testImplementation libs.mockito.core
testImplementation libs.mockito.mockito.inline
testImplementation libs.robolectric

androidTestImplementation project(':appcheck:firebase-appcheck')
Expand All @@ -85,5 +84,4 @@ dependencies {
androidTestImplementation libs.truth
androidTestImplementation libs.junit
androidTestImplementation libs.mockito.core
androidTestImplementation libs.mockito.mockito.inline
}
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@ dependencies {
testImplementation libs.truth
testImplementation libs.junit
testImplementation libs.mockito.core
testImplementation libs.mockito.mockito.inline
testImplementation libs.robolectric

androidTestImplementation libs.androidx.test.core
Expand Down
3 changes: 1 addition & 2 deletions firebase-appdistribution/firebase-appdistribution.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ dependencies {
testImplementation libs.androidx.test.core
testImplementation libs.truth
testImplementation libs.junit
testImplementation libs.mockito.mockito.inline
testImplementation libs.mockito.core
testImplementation libs.robolectric

androidTestImplementation(project(":integ-testing")){
Expand All @@ -111,5 +111,4 @@ dependencies {
androidTestImplementation libs.truth
androidTestImplementation libs.junit
androidTestImplementation libs.mockito.core
androidTestImplementation libs.mockito.mockito.inline
}
2 changes: 0 additions & 2 deletions firebase-installations/firebase-installations.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,6 @@ dependencies {
testImplementation libs.truth
testImplementation libs.junit
testImplementation libs.mockito.core
testImplementation libs.mockito.mockito.inline
testImplementation libs.robolectric

androidTestImplementation(project(":integ-testing")){
Expand All @@ -86,5 +85,4 @@ dependencies {
androidTestImplementation libs.truth
androidTestImplementation libs.junit
androidTestImplementation libs.mockito.core
androidTestImplementation libs.mockito.mockito.inline
}
1 change: 0 additions & 1 deletion firebase-messaging/firebase-messaging.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -155,5 +155,4 @@ dependencies {
androidTestImplementation libs.truth
androidTestImplementation libs.junit
androidTestImplementation libs.mockito.core
androidTestImplementation libs.mockito.mockito.inline
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,16 @@
// limitations under the License.
package com.google.firebase.messaging.shadows;

import static org.robolectric.util.reflector.Reflector.reflector;

import android.os.Message;
import android.os.Messenger;
import android.os.RemoteException;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.annotation.RealObject;
import org.robolectric.shadow.api.Shadow;
import org.robolectric.util.reflector.Direct;
import org.robolectric.util.reflector.ForType;

@Implements(Messenger.class)
public class ShadowMessenger {
Expand All @@ -28,12 +31,18 @@ public class ShadowMessenger {

private static RemoteException sendException = null;

@ForType(Messenger.class)
interface MessengerReflector {
@Direct
void send(Messenger messenger, Message message) throws RemoteException;
}

@Implementation
protected void send(Message message) throws RemoteException {
if (sendException != null) {
throw sendException;
} else {
Shadow.directlyOn(realMessenger, Messenger.class).send(message);
reflector(Messenger.class, realMessenger).send(message);
}
}

Expand Down
1 change: 0 additions & 1 deletion firebase-perf/firebase-perf.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,5 @@ dependencies {
testImplementation libs.androidx.test.rules
testImplementation libs.junit
testImplementation libs.mockito.core
testImplementation libs.mockito.mockito.inline
testImplementation group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.6'
}
Original file line number Diff line number Diff line change
Expand Up @@ -363,7 +363,7 @@ private void triggerFirebaseRemoteConfigFetchAndActivateOnSuccessfulFetch() {
@VisibleForTesting
protected void syncConfigValues(Map<String, FirebaseRemoteConfigValue> newlyFetchedMap) {
allRcConfigMap.putAll(newlyFetchedMap);
for (String existingKey : allRcConfigMap.keySet()) {
for (String existingKey : ((Map<String, FirebaseRemoteConfigValue>) allRcConfigMap).keySet()) {
if (!newlyFetchedMap.containsKey(existingKey)) {
allRcConfigMap.remove(existingKey);
}
Expand Down
5 changes: 4 additions & 1 deletion firebase-sessions/firebase-sessions.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,10 @@ android {
targetSdk = targetSdkVersion
unitTests { isIncludeAndroidResources = true }
}
lint { targetSdk = targetSdkVersion }
lint {
baseline = file("lint-baseline.xml")
targetSdk = targetSdkVersion
}
}

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KaptGenerateStubs::class.java).configureEach {
Expand Down
4 changes: 4 additions & 0 deletions firebase-sessions/lint-baseline.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<issues format="6" by="lint 8.6.1" type="baseline" client="gradle" dependencies="false" name="AGP (8.6.1)" variant="all" version="8.6.1">

</issues>
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ internal class InstallationId private constructor(val fid: String, val authToken
}
val fid: String =
try {
firebaseInstallations.id.await()
firebaseInstallations.id.await() ?: ""
} catch (ex: Exception) {
Log.w(TAG, "Error getting Firebase installation id .", ex)
""
Expand Down
15 changes: 7 additions & 8 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ cardview = "1.0.0"
checkerQual = "2.5.2"
constraintlayout = "2.1.4"
coreKtx = "1.12.0"
coroutines = "1.7.3"
dagger = "2.43.2"
coroutines = "1.9.0"
dagger = "2.51" # Don't bump above 2.51 as it causes a bug in AppDistro FeedbackSender JPEG code
datastore = "1.1.3"
dexmaker = "2.28.1"
dexmakerVersion = "1.2"
Expand All @@ -45,16 +45,16 @@ javalite = "3.25.5"
jsonassert = "1.5.0"
kotest = "5.9.0" # Do not use 5.9.1 because it reverts the fix for https://github.com/kotest/kotest/issues/3981
kotestAssertionsCore = "5.8.1"
kotlin = "1.8.22"
ktorVersion = "2.3.2"
kotlin = "2.0.21"
ktorVersion = "3.0.3"
legacySupportV4 = "1.0.0"
lifecycleProcess = "2.3.1"
material = "1.12.0"
mavenResolverApi = "1.9.23"
mavenResolverProvider = "3.9.9"
mockito = "5.2.0"
mockito = "5.16.0"
mockitoAndroid = "3.4.0"
mockk = "1.13.11"
mockk = "1.14.0" # Do not use 1.14.2 or above due to a bug in spyK and bumps kotlin to 2.1.x
playServicesCloudMessaging = "17.2.0"
playServicesStats = "17.0.2"
playServicesVision = "20.1.3"
Expand All @@ -68,7 +68,7 @@ robolectric = "4.12"
runner = "1.0.2"
rxandroid = "2.0.2"
rxjava = "2.1.14"
serialization = "1.5.1"
serialization = "1.7.3"
slf4jNop = "2.0.9"
spotless = "7.0.4"
testServices = "1.2.0"
Expand Down Expand Up @@ -195,7 +195,6 @@ kotlin-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-te
mockito-android = { module = "org.mockito:mockito-android", version.ref = "mockitoAndroid" }
mockito-core = { module = "org.mockito:mockito-core", version.ref = "mockito" }
mockito-dexmaker = { module = "com.linkedin.dexmaker:dexmaker-mockito", version = "2.28.3" }
mockito-mockito-inline = { module = "org.mockito:mockito-inline", version.ref = "mockito" }
mockk = { module = "io.mockk:mockk", version.ref = "mockk" }
mockk-android = { module = "io.mockk:mockk-android", version.ref = "mockk" }
protobuf-java-util = { module = "com.google.protobuf:protobuf-java-util", version.ref = "protobufjavautil" }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ import java.io.BufferedOutputStream
import java.io.File
import java.util.zip.ZipEntry
import java.util.zip.ZipOutputStream
import kotlin.properties.ReadOnlyProperty
import kotlin.reflect.KProperty
import org.gradle.api.DefaultTask
import org.gradle.api.Project
import org.gradle.api.Task
Expand All @@ -39,7 +41,6 @@ import org.gradle.kotlin.dsl.apply
import org.gradle.workers.WorkAction
import org.gradle.workers.WorkParameters
import org.gradle.workers.WorkQueue
import org.jetbrains.kotlin.gradle.utils.provider

/**
* Creates a file at the buildDir for the given [Project].
Expand Down Expand Up @@ -307,3 +308,15 @@ val Provider<Directory>.nestedFile: Provider<File>
*/
val Directory.nestedFile: File
get() = asFileTree.single { it.isFile }

/**
* Creates a delegated provider.
*
* Useful to expose a provide via delegated properties. See [tempFile] for a reference usage.
*/
internal fun <T : Any> provider(provider: () -> T) =
object : ReadOnlyProperty<Any?, T> {
override operator fun getValue(thisRef: Any?, property: KProperty<*>): T {
return provider()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public static void apply(FirebaseLibraryExtension firebaseLibrary) {
File reportsDir = new File(project.getBuildDir(), "/reports/jacoco");
JacocoPluginExtension jacoco = project.getExtensions().getByType(JacocoPluginExtension.class);

jacoco.setToolVersion("0.8.8");
jacoco.setToolVersion("0.8.13");
jacoco.getReportsDirectory().set(reportsDir);
project
.getTasks()
Expand Down
26 changes: 13 additions & 13 deletions smoke-tests/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ buildscript {
}

dependencies {
classpath "com.android.tools.build:gradle:8.3.2"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0"
classpath "com.google.gms:google-services:4.3.14"
classpath "com.google.firebase:firebase-crashlytics-gradle:2.8.1"
classpath "com.android.tools.build:gradle:8.6.1"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:2.0.21"
classpath "com.google.gms:google-services:4.4.3"
classpath "com.google.firebase:firebase-crashlytics-gradle:3.0.4"
}
}

Expand Down Expand Up @@ -69,33 +69,33 @@ apply from: "configure.gradle"
dependencies {
implementation libs.androidx.test.core
// Common utilities (application side)
implementation "androidx.test:rules:1.4.0"
implementation "androidx.test:runner:1.4.0"
implementation "androidx.test:rules:1.5.0"
implementation "androidx.test:runner:1.6.2"
// Firebase
implementation "com.google.firebase:firebase-analytics"
implementation "com.google.firebase:firebase-annotations"
implementation "com.google.firebase:firebase-appdistribution:16.0.0-beta03"
implementation "com.google.firebase:firebase-appdistribution-api:16.0.0-beta03"
implementation "com.google.firebase:firebase-appdistribution:16.0.0-beta15"
implementation "com.google.firebase:firebase-appdistribution-api:16.0.0-beta15"
implementation "com.google.firebase:firebase-auth"
implementation "com.google.firebase:firebase-common"
implementation "com.google.firebase:firebase-config"
implementation "com.google.firebase:firebase-crashlytics:18.6.4"
implementation "com.google.firebase:firebase-crashlytics:19.4.4"
implementation "com.google.firebase:firebase-database"
implementation "com.google.firebase:firebase-firestore"
implementation "com.google.firebase:firebase-functions"
// TODO(yifany): remove after the issue is fixed
// https://github.com/firebase/firebase-android-sdk/issues/4206
implementation "com.google.firebase:firebase-iid:21.1.0"
implementation "com.google.firebase:firebase-iid"
implementation "com.google.firebase:firebase-inappmessaging"
implementation "com.google.firebase:firebase-messaging"
implementation "com.google.firebase:firebase-ml-modeldownloader:24.2.3"
implementation "com.google.firebase:firebase-ml-modeldownloader:25.0.1"
implementation "com.google.firebase:firebase-perf"
implementation "com.google.firebase:firebase-storage"
implementation "com.google.truth:truth:1.0.1"
implementation "com.google.truth:truth:1.4.4"
implementation libs.junit

// Common utilities (instrumentation side)
androidTestImplementation "androidx.test:runner:1.4.0"
androidTestImplementation "androidx.test:runner:1.6.2"
androidTestImplementation libs.junit

// Desugaring library
Expand Down
2 changes: 1 addition & 1 deletion smoke-tests/configure.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@


def configurePlatform() {
def bom = "com.google.firebase:firebase-bom:20.0.0"
def bom = "com.google.firebase:firebase-bom:33.16.0"
if (project.hasProperty("firebase-bom")) {
bom = project.getProperty("firebase-bom")
}
Expand Down
1 change: 0 additions & 1 deletion smoke-tests/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.

android.enableR8=true
android.useAndroidX=true

org.gradle.jvmargs=-Xmx8g
4 changes: 2 additions & 2 deletions tools/lint/src/test/kotlin/FirebaseAppGetDetectorTests.kt
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ class FirebaseAppGetDetectorTests : LintDetectorTest() {
val instance = FirebaseApp.getInstance().get(Foo::class.java)

@JvmStatic
fun getInstance(app: FirebaseApp) = app.get(Foo::class.java)
fun getInstance(app: FirebaseApp): Foo = app.get(Foo::class.java)
}
}
"""
Expand All @@ -145,7 +145,7 @@ class FirebaseAppGetDetectorTests : LintDetectorTest() {
val instance = FirebaseApp.getInstance().get(FooImpl::class.java)

@JvmStatic
fun getInstance(app: FirebaseApp) = app.get(FooImpl::class.java)
fun getInstance(app: FirebaseApp): Foo = app.get(FooImpl::class.java)
}
}
class FooImpl : Foo()
Expand Down
Loading