Skip to content

Commit 4beb35a

Browse files
jrothfederjrothfeder
andauthored
Remove passthrough register method from FirebaseSessions since `F… (#5452)
…irebaseSessionsDependencies` can be accessed directly. --------- Co-authored-by: jrothfeder <[email protected]>
1 parent 10f8ad5 commit 4beb35a

File tree

8 files changed

+39
-45
lines changed

8 files changed

+39
-45
lines changed

firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/CrashlyticsRegistrar.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,6 @@ private FirebaseCrashlytics buildCrashlytics(ComponentContainer container) {
6969
FirebaseSessions firebaseSessions = container.get(FirebaseSessions.class);
7070

7171
return FirebaseCrashlytics.init(
72-
app, firebaseInstallations, firebaseSessions, nativeComponent, analyticsConnector);
72+
app, firebaseInstallations, nativeComponent, analyticsConnector);
7373
}
7474
}

firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/FirebaseCrashlytics.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
import com.google.firebase.crashlytics.internal.settings.SettingsController;
4242
import com.google.firebase.inject.Deferred;
4343
import com.google.firebase.installations.FirebaseInstallationsApi;
44-
import com.google.firebase.sessions.FirebaseSessions;
44+
import com.google.firebase.sessions.api.FirebaseSessionsDependencies;
4545
import java.util.List;
4646
import java.util.concurrent.Callable;
4747
import java.util.concurrent.ExecutorService;
@@ -64,7 +64,6 @@ public class FirebaseCrashlytics {
6464
static @Nullable FirebaseCrashlytics init(
6565
@NonNull FirebaseApp app,
6666
@NonNull FirebaseInstallationsApi firebaseInstallationsApi,
67-
@NonNull FirebaseSessions firebaseSessions,
6867
@NonNull Deferred<CrashlyticsNativeComponent> nativeComponent,
6968
@NonNull Deferred<AnalyticsConnector> analyticsConnector) {
7069

@@ -93,7 +92,7 @@ public class FirebaseCrashlytics {
9392

9493
CrashlyticsAppQualitySessionsSubscriber sessionsSubscriber =
9594
new CrashlyticsAppQualitySessionsSubscriber(arbiter, fileStore);
96-
firebaseSessions.register(sessionsSubscriber);
95+
FirebaseSessionsDependencies.register(sessionsSubscriber);
9796

9897
final CrashlyticsCore core =
9998
new CrashlyticsCore(

firebase-perf/src/main/java/com/google/firebase/perf/FirebasePerfEarly.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import com.google.firebase.perf.metrics.AppStartTrace;
2525
import com.google.firebase.perf.session.PerfSession;
2626
import com.google.firebase.perf.session.SessionManager;
27-
import com.google.firebase.sessions.FirebaseSessions;
27+
import com.google.firebase.sessions.api.FirebaseSessionsDependencies;
2828
import com.google.firebase.sessions.api.SessionSubscriber;
2929
import java.util.concurrent.Executor;
3030

@@ -38,10 +38,7 @@
3838
public class FirebasePerfEarly {
3939

4040
public FirebasePerfEarly(
41-
FirebaseApp app,
42-
FirebaseSessions firebaseSessions,
43-
@Nullable StartupTime startupTime,
44-
Executor uiExecutor) {
41+
FirebaseApp app, @Nullable StartupTime startupTime, Executor uiExecutor) {
4542
Context context = app.getApplicationContext();
4643

4744
// Initialize ConfigResolver early for accessing device caching layer.
@@ -59,7 +56,7 @@ public FirebasePerfEarly(
5956
}
6057

6158
// Register with Firebase sessions to receive updates about session changes.
62-
firebaseSessions.register(
59+
FirebaseSessionsDependencies.register(
6360
new SessionSubscriber() {
6461
@Override
6562
public void onSessionChanged(@NonNull SessionDetails sessionDetails) {

firebase-perf/src/main/java/com/google/firebase/perf/FirebasePerfRegistrar.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ public List<Component<?>> getComponents() {
7979
container ->
8080
new FirebasePerfEarly(
8181
container.get(FirebaseApp.class),
82-
container.get(FirebaseSessions.class),
8382
container.getProvider(StartupTime.class).get(),
8483
container.get(uiExecutor)))
8584
.build(),

firebase-sessions/api.txt

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,35 @@
11
// Signature format: 2.0
2-
package com.google.firebase.sessions {
2+
package com.google.firebase.sessions.api {
33

4-
public final class FirebaseSessions {
5-
method @NonNull public static com.google.firebase.sessions.FirebaseSessions getInstance();
6-
method @NonNull public static com.google.firebase.sessions.FirebaseSessions getInstance(@NonNull com.google.firebase.FirebaseApp app);
7-
method public void register(@NonNull com.google.firebase.sessions.api.SessionSubscriber subscriber);
8-
property @NonNull public static final com.google.firebase.sessions.FirebaseSessions instance;
9-
field @NonNull public static final com.google.firebase.sessions.FirebaseSessions.Companion Companion;
4+
public final class FirebaseSessionsDependencies {
5+
method public void addDependency(@NonNull com.google.firebase.sessions.api.SessionSubscriber.Name subscriberName);
6+
method public static void register(@NonNull com.google.firebase.sessions.api.SessionSubscriber subscriber);
7+
field @NonNull public static final com.google.firebase.sessions.api.FirebaseSessionsDependencies INSTANCE;
108
}
119

12-
public static final class FirebaseSessions.Companion {
13-
method @NonNull public com.google.firebase.sessions.FirebaseSessions getInstance();
14-
method @NonNull public com.google.firebase.sessions.FirebaseSessions getInstance(@NonNull com.google.firebase.FirebaseApp app);
15-
property @NonNull public final com.google.firebase.sessions.FirebaseSessions instance;
10+
public interface SessionSubscriber {
11+
method @NonNull public com.google.firebase.sessions.api.SessionSubscriber.Name getSessionSubscriberName();
12+
method public boolean isDataCollectionEnabled();
13+
method public void onSessionChanged(@NonNull com.google.firebase.sessions.api.SessionSubscriber.SessionDetails sessionDetails);
14+
property public abstract boolean isDataCollectionEnabled;
15+
property @NonNull public abstract com.google.firebase.sessions.api.SessionSubscriber.Name sessionSubscriberName;
16+
}
17+
18+
public enum SessionSubscriber.Name {
19+
method @NonNull public static com.google.firebase.sessions.api.SessionSubscriber.Name valueOf(@NonNull String name) throws java.lang.IllegalArgumentException;
20+
method @NonNull public static com.google.firebase.sessions.api.SessionSubscriber.Name[] values();
21+
enum_constant public static final com.google.firebase.sessions.api.SessionSubscriber.Name CRASHLYTICS;
22+
enum_constant @Discouraged(message="This is for testing purposes only.") public static final com.google.firebase.sessions.api.SessionSubscriber.Name MATT_SAYS_HI;
23+
enum_constant public static final com.google.firebase.sessions.api.SessionSubscriber.Name PERFORMANCE;
24+
}
25+
26+
public static final class SessionSubscriber.SessionDetails {
27+
ctor public SessionSubscriber.SessionDetails(@NonNull String sessionId);
28+
method @NonNull public String component1();
29+
method @NonNull public com.google.firebase.sessions.api.SessionSubscriber.SessionDetails copy(@NonNull String sessionId);
30+
method @NonNull public String getSessionId();
31+
property @NonNull public final String sessionId;
1632
}
1733

1834
}
35+

firebase-sessions/src/main/kotlin/com/google/firebase/sessions/FirebaseSessions.kt

Lines changed: 2 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,14 @@ import android.util.Log
2121
import com.google.firebase.Firebase
2222
import com.google.firebase.FirebaseApp
2323
import com.google.firebase.app
24-
import com.google.firebase.sessions.api.FirebaseSessionsDependencies
2524
import com.google.firebase.sessions.api.SessionSubscriber
2625
import com.google.firebase.sessions.settings.SessionsSettings
2726
import kotlin.coroutines.CoroutineContext
2827
import kotlinx.coroutines.CoroutineScope
2928
import kotlinx.coroutines.launch
3029

31-
/** The [FirebaseSessions] API provides methods to register a [SessionSubscriber]. */
32-
class FirebaseSessions
33-
internal constructor(
30+
/** Responsible for initializing AQS */
31+
internal class FirebaseSessions(
3432
private val firebaseApp: FirebaseApp,
3533
private val settings: SessionsSettings,
3634
backgroundDispatcher: CoroutineContext,
@@ -63,23 +61,6 @@ internal constructor(
6361
}
6462
}
6563

66-
/** Register the [subscriber]. This must be called for every dependency. */
67-
fun register(subscriber: SessionSubscriber) {
68-
if (!settings.sessionsEnabled) {
69-
Log.d(TAG, "Sessions SDK disabled. Ignoring dependency registration.")
70-
return
71-
}
72-
73-
FirebaseSessionsDependencies.register(subscriber)
74-
75-
Log.d(
76-
TAG,
77-
"Registering Sessions SDK subscriber with name: ${subscriber.sessionSubscriberName}, " +
78-
"data collection enabled: ${subscriber.isDataCollectionEnabled}"
79-
)
80-
}
81-
82-
/** Calculate whether we should sample events using [sessionSettings] data. */
8364
companion object {
8465
private const val TAG = "FirebaseSessions"
8566

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ object FirebaseSessionsDependencies {
5353
* Register and unlock the subscriber. This must be called before [getRegisteredSubscribers] can
5454
* return.
5555
*/
56-
internal fun register(subscriber: SessionSubscriber) {
56+
@JvmStatic
57+
fun register(subscriber: SessionSubscriber) {
5758
val subscriberName = subscriber.sessionSubscriberName
5859
val dependency = getDependency(subscriberName)
5960

firebase-sessions/test-app/src/androidTest/kotlin/com/google/firebase/testing/sessions/FirebaseSessionsTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class FirebaseSessionsTest {
4949

5050
// Add a fake dependency and register it, otherwise sessions will never send.
5151
val fakeSessionSubscriber = FakeSessionSubscriber()
52-
FirebaseSessions.instance.register(fakeSessionSubscriber)
52+
FirebaseSessionsDependencies.register(fakeSessionSubscriber)
5353

5454
// Wait for the session start event to send.
5555
Thread.sleep(TIME_TO_LOG_SESSION)

0 commit comments

Comments
 (0)