Skip to content

Commit d1e0959

Browse files
Merge branch 'main' into markduckworth/objval-memo
2 parents 6a0f4c9 + 9d4553a commit d1e0959

File tree

8 files changed

+93
-78
lines changed

8 files changed

+93
-78
lines changed

agents.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,19 @@
22

33
This guide provides essential information for working within the `firebase-android-sdk` repository.
44

5+
## Project Structure
6+
7+
The `subprojects.cfg` file lists all the subprojects in this repository. Each line in this file
8+
follows the format `<project-path> # <project-type>`, where `project-type` can be one of the
9+
following:
10+
11+
- `sdk`: A public-facing SDK that is published.
12+
- `test`: A test application or a test-only module.
13+
- `util`: A utility module that is not part of the public API.
14+
- `directory`: A directory containing other subprojects.
15+
16+
This file is useful for understanding the role of each subproject in the repository.
17+
518
## Environment Setup
619

720
To work with this repository, the Android SDK must be installed. Use the `sdkmanager` command-line

firebase-sessions/firebase-sessions.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ android {
6060
}
6161
}
6262

63+
kotlin { explicitApi() }
64+
6365
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KaptGenerateStubs::class.java).configureEach {
6466
kotlinOptions.jvmTarget = "1.8"
6567
}

firebase-sessions/src/main/kotlin/com/google/firebase/sessions/api/CrashEventReceiver.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import com.google.firebase.sessions.SharedSessionRepository
2525
* This object provides a static-like entry point that Crashlytics calls to inform Sessions a fatal
2626
* crash has occurred.
2727
*/
28-
object CrashEventReceiver {
28+
public object CrashEventReceiver {
2929
@VisibleForTesting internal lateinit var sharedSessionRepository: SharedSessionRepository
3030

3131
/**
@@ -38,7 +38,7 @@ object CrashEventReceiver {
3838
* @see SharedSessionRepository.appBackground
3939
*/
4040
@JvmStatic
41-
fun notifyCrashOccurred() {
41+
public fun notifyCrashOccurred() {
4242
try {
4343
if (!::sharedSessionRepository.isInitialized) {
4444
sharedSessionRepository = SharedSessionRepository.instance

firebase-sessions/src/main/kotlin/com/google/firebase/sessions/api/FirebaseSessionsDependencies.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@ import kotlinx.coroutines.sync.withLock
3030
*
3131
* This is important because the Sessions SDK starts up before dependent SDKs.
3232
*/
33-
object FirebaseSessionsDependencies {
33+
public object FirebaseSessionsDependencies {
3434
private val dependencies = synchronizedMap(mutableMapOf<SessionSubscriber.Name, Dependency>())
3535

3636
/**
3737
* Add a subscriber as a dependency to the Sessions SDK. Every dependency must register itself, or
3838
* the Sessions SDK will never generate a session.
3939
*/
4040
@JvmStatic
41-
fun addDependency(subscriberName: SessionSubscriber.Name) {
41+
public fun addDependency(subscriberName: SessionSubscriber.Name) {
4242
if (dependencies.containsKey(subscriberName)) {
4343
Log.d(TAG, "Dependency $subscriberName already added.")
4444
return
@@ -54,7 +54,7 @@ object FirebaseSessionsDependencies {
5454
* return.
5555
*/
5656
@JvmStatic
57-
fun register(subscriber: SessionSubscriber) {
57+
public fun register(subscriber: SessionSubscriber) {
5858
val subscriberName = subscriber.sessionSubscriberName
5959
val dependency = getDependency(subscriberName)
6060

firebase-sessions/src/main/kotlin/com/google/firebase/sessions/api/SessionSubscriber.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,20 @@ package com.google.firebase.sessions.api
1919
import androidx.annotation.Discouraged
2020

2121
/** [SessionSubscriber] is an interface that dependent SDKs must implement. */
22-
interface SessionSubscriber {
22+
public interface SessionSubscriber {
2323
/** [SessionSubscriber.Name]s are used for identifying subscribers. */
24-
enum class Name {
24+
public enum class Name {
2525
CRASHLYTICS,
2626
PERFORMANCE,
2727
@Discouraged(message = "This is for testing purposes only.") MATT_SAYS_HI,
2828
}
2929

3030
/** [SessionDetails] contains session data passed to subscribers whenever the session changes */
31-
data class SessionDetails(val sessionId: String)
31+
public data class SessionDetails(val sessionId: String)
3232

33-
fun onSessionChanged(sessionDetails: SessionDetails)
33+
public fun onSessionChanged(sessionDetails: SessionDetails)
3434

35-
val isDataCollectionEnabled: Boolean
35+
public val isDataCollectionEnabled: Boolean
3636

37-
val sessionSubscriberName: Name
37+
public val sessionSubscriberName: Name
3838
}

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ firebaseCommon = "22.0.1"
2929
firebaseComponents = "19.0.0"
3030
firebaseCrashlyticsGradle = "3.0.4"
3131
glide = "4.16.0"
32-
googleApiClient = "1.30.9"
32+
googleApiClient = "2.8.1"
3333
googleServices = "4.3.15"
3434
gradleErrorpronePlugin = "4.2.0"
3535
grpc = "1.62.2"

settings.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,14 @@ dependencyResolutionManagement {
4646
*
4747
* Expected file format:
4848
* - Empty lines are ignored.
49-
* - Lines starting with # are considered comments.
49+
* - Text following a '#' character on the same line is treated as a comment.
5050
* - Other lines are treated as project paths.
5151
*/
5252
fun discoverSubprojects(subprojectsFile: File): List<String> {
5353
return subprojectsFile
5454
.readLines()
55-
.map { it.trim() }
56-
.filter { it.isNotEmpty() && !it.startsWith("#") }
55+
.map { it.split("#").firstOrNull()?.trim() ?: "" }
56+
.filter { it.isNotEmpty() }
5757
}
5858

5959
/**

subprojects.cfg

Lines changed: 63 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,71 @@
1-
appcheck
2-
appcheck:firebase-appcheck-debug-testing
3-
appcheck:firebase-appcheck-debug
4-
appcheck:firebase-appcheck-interop
5-
appcheck:firebase-appcheck-playintegrity
6-
appcheck:firebase-appcheck-recaptchaenterprise
7-
appcheck:firebase-appcheck
1+
appcheck # directory
2+
appcheck:firebase-appcheck-debug-testing # sdk
3+
appcheck:firebase-appcheck-debug # sdk
4+
appcheck:firebase-appcheck-interop # sdk
5+
appcheck:firebase-appcheck-playintegrity # sdk
6+
appcheck:firebase-appcheck-recaptchaenterprise # sdk
7+
appcheck:firebase-appcheck # sdk
88

9-
firebase-abt
10-
firebase-ai
11-
firebase-annotations
12-
firebase-appdistribution
13-
firebase-appdistribution-api
14-
firebase-common
15-
firebase-common:data-collection-tests
16-
firebase-components
17-
firebase-components:firebase-dynamic-module-support
18-
firebase-config
19-
firebase-config:bandwagoner
20-
firebase-config:test-app
21-
firebase-config-interop
22-
firebase-crashlytics
23-
firebase-crashlytics-ndk
24-
firebase-database
25-
firebase-database-collection
26-
firebase-dataconnect
27-
firebase-dataconnect:androidTestutil
28-
firebase-dataconnect:connectors
29-
firebase-dataconnect:testutil
30-
firebase-datatransport
31-
firebase-firestore
32-
firebase-functions
33-
firebase-messaging
34-
firebase-messaging-directboot
35-
firebase-inappmessaging
36-
firebase-inappmessaging-display
37-
firebase-installations-interop
38-
firebase-installations
39-
firebase-ml-modeldownloader
40-
firebase-ml-modeldownloader:ml-data-collection-tests
41-
firebase-perf
42-
firebase-perf:dev-app
43-
firebase-perf:e2e-app
44-
firebase-sessions
45-
firebase-sessions:benchmark
46-
firebase-sessions:test-app
47-
firebase-storage
48-
protolite-well-known-types
9+
firebase-abt # sdk
10+
firebase-ai # sdk
11+
firebase-annotations # sdk
12+
firebase-appdistribution # sdk
13+
firebase-appdistribution-api # sdk
14+
firebase-common # sdk
15+
firebase-common:data-collection-tests # test
16+
firebase-components # sdk
17+
firebase-components:firebase-dynamic-module-support # sdk
18+
firebase-config # sdk
19+
firebase-config:bandwagoner # test
20+
firebase-config:test-app # test
21+
firebase-config-interop # sdk
22+
firebase-crashlytics # sdk
23+
firebase-crashlytics-ndk # sdk
24+
firebase-database # sdk
25+
firebase-database-collection # sdk
26+
firebase-dataconnect # sdk
27+
firebase-dataconnect:androidTestutil # util
28+
firebase-dataconnect:connectors # sdk
29+
firebase-dataconnect:testutil # util
30+
firebase-datatransport # sdk
31+
firebase-firestore # sdk
32+
firebase-functions # sdk
33+
firebase-messaging # sdk
34+
firebase-messaging-directboot # sdk
35+
firebase-inappmessaging # sdk
36+
firebase-inappmessaging-display # sdk
37+
firebase-installations-interop # sdk
38+
firebase-installations # sdk
39+
firebase-ml-modeldownloader # sdk
40+
firebase-ml-modeldownloader:ml-data-collection-tests # test
41+
firebase-perf # sdk
42+
firebase-perf:dev-app # test
43+
firebase-perf:e2e-app # test
44+
firebase-sessions # sdk
45+
firebase-sessions:benchmark # util
46+
firebase-sessions:test-app # test
47+
firebase-storage # sdk
48+
protolite-well-known-types # sdk
4949

50-
encoders
51-
encoders:firebase-encoders
52-
encoders:firebase-encoders-json
53-
encoders:firebase-encoders-processor
54-
encoders:firebase-encoders-proto
55-
encoders:firebase-encoders-reflective
56-
encoders:firebase-decoders-json
57-
encoders:protoc-gen-firebase-encoders
58-
encoders:protoc-gen-firebase-encoders:tests
50+
encoders # directory
51+
encoders:firebase-encoders # sdk
52+
encoders:firebase-encoders-json # sdk
53+
encoders:firebase-encoders-processor # sdk
54+
encoders:firebase-encoders-proto # sdk
55+
encoders:firebase-encoders-reflective # sdk
56+
encoders:firebase-decoders-json # sdk
57+
encoders:protoc-gen-firebase-encoders # sdk
58+
encoders:protoc-gen-firebase-encoders:tests # test
5959

60-
integ-testing
60+
integ-testing # util
6161

62-
tools:lint
62+
tools:lint # util
6363

64-
transport
65-
transport:transport-api
66-
transport:transport-backend-cct
67-
transport:transport-runtime
68-
transport:transport-runtime-testing
64+
transport # directory
65+
transport:transport-api # sdk
66+
transport:transport-backend-cct # sdk
67+
transport:transport-runtime # sdk
68+
transport:transport-runtime-testing # sdk
6969

7070
# Test Apps
7171
# disabled since they require google-services.json to build which is not always available in CI.

0 commit comments

Comments
 (0)