Skip to content

Commit f69f4f4

Browse files
authored
Set fis as an unloader (#3222)
* update * add gmp app id * update * gJF * update * update fix * update
1 parent 2dd41ce commit f69f4f4

File tree

3 files changed

+24
-32
lines changed

3 files changed

+24
-32
lines changed

firebase-installations/src/main/java/com/google/firebase/installations/FirebaseInstallations.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import com.google.android.gms.tasks.Tasks;
2626
import com.google.firebase.FirebaseApp;
2727
import com.google.firebase.FirebaseOptions;
28-
import com.google.firebase.heartbeatinfo.HeartBeatInfo;
28+
import com.google.firebase.heartbeatinfo.HeartBeatController;
2929
import com.google.firebase.inject.Provider;
3030
import com.google.firebase.installations.FirebaseInstallationsException.Status;
3131
import com.google.firebase.installations.internal.FidListener;
@@ -36,7 +36,6 @@
3636
import com.google.firebase.installations.remote.FirebaseInstallationServiceClient;
3737
import com.google.firebase.installations.remote.InstallationResponse;
3838
import com.google.firebase.installations.remote.TokenResult;
39-
import com.google.firebase.platforminfo.UserAgentPublisher;
4039
import java.io.IOException;
4140
import java.util.ArrayList;
4241
import java.util.HashSet;
@@ -124,9 +123,7 @@ public Thread newThread(Runnable r) {
124123

125124
/** package private constructor. */
126125
FirebaseInstallations(
127-
FirebaseApp firebaseApp,
128-
@NonNull Provider<UserAgentPublisher> publisher,
129-
@NonNull Provider<HeartBeatInfo> heartbeatInfo) {
126+
FirebaseApp firebaseApp, @NonNull Provider<HeartBeatController> heartBeatProvider) {
130127
this(
131128
new ThreadPoolExecutor(
132129
CORE_POOL_SIZE,
@@ -137,7 +134,7 @@ public Thread newThread(Runnable r) {
137134
THREAD_FACTORY),
138135
firebaseApp,
139136
new FirebaseInstallationServiceClient(
140-
firebaseApp.getApplicationContext(), publisher, heartbeatInfo),
137+
firebaseApp.getApplicationContext(), heartBeatProvider),
141138
new PersistedInstallation(firebaseApp),
142139
Utils.getInstance(),
143140
new IidStore(firebaseApp),

firebase-installations/src/main/java/com/google/firebase/installations/FirebaseInstallationsRegistrar.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
import com.google.firebase.components.Component;
2020
import com.google.firebase.components.ComponentRegistrar;
2121
import com.google.firebase.components.Dependency;
22-
import com.google.firebase.heartbeatinfo.HeartBeatInfo;
22+
import com.google.firebase.heartbeatinfo.HeartBeatConsumerComponent;
23+
import com.google.firebase.heartbeatinfo.HeartBeatController;
2324
import com.google.firebase.platforminfo.LibraryVersionComponent;
24-
import com.google.firebase.platforminfo.UserAgentPublisher;
2525
import java.util.Arrays;
2626
import java.util.List;
2727

@@ -34,15 +34,13 @@ public List<Component<?>> getComponents() {
3434
return Arrays.asList(
3535
Component.builder(FirebaseInstallationsApi.class)
3636
.add(Dependency.required(FirebaseApp.class))
37-
.add(Dependency.optionalProvider(HeartBeatInfo.class))
38-
.add(Dependency.optionalProvider(UserAgentPublisher.class))
37+
.add(Dependency.optionalProvider(HeartBeatController.class))
3938
.factory(
4039
c ->
4140
new FirebaseInstallations(
42-
c.get(FirebaseApp.class),
43-
c.getProvider(UserAgentPublisher.class),
44-
c.getProvider(HeartBeatInfo.class)))
41+
c.get(FirebaseApp.class), c.getProvider(HeartBeatController.class)))
4542
.build(),
43+
HeartBeatConsumerComponent.create(),
4644
LibraryVersionComponent.create("fire-installations", BuildConfig.VERSION_NAME));
4745
}
4846
}

firebase-installations/src/main/java/com/google/firebase/installations/remote/FirebaseInstallationServiceClient.java

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,12 @@
2929
import com.google.android.gms.common.util.AndroidUtilsLight;
3030
import com.google.android.gms.common.util.Hex;
3131
import com.google.android.gms.common.util.VisibleForTesting;
32-
import com.google.firebase.heartbeatinfo.HeartBeatInfo;
33-
import com.google.firebase.heartbeatinfo.HeartBeatInfo.HeartBeat;
32+
import com.google.android.gms.tasks.Tasks;
33+
import com.google.firebase.heartbeatinfo.HeartBeatController;
3434
import com.google.firebase.inject.Provider;
3535
import com.google.firebase.installations.FirebaseInstallationsException;
3636
import com.google.firebase.installations.FirebaseInstallationsException.Status;
3737
import com.google.firebase.installations.remote.InstallationResponse.ResponseCode;
38-
import com.google.firebase.platforminfo.UserAgentPublisher;
3938
import java.io.BufferedReader;
4039
import java.io.IOException;
4140
import java.io.InputStream;
@@ -46,6 +45,7 @@
4645
import java.net.URL;
4746
import java.net.URLConnection;
4847
import java.nio.charset.Charset;
48+
import java.util.concurrent.ExecutionException;
4949
import java.util.regex.Pattern;
5050
import java.util.zip.GZIPOutputStream;
5151
import org.json.JSONException;
@@ -88,8 +88,7 @@ public class FirebaseInstallationServiceClient {
8888
/** Heartbeat tag for firebase installations. */
8989
private static final String FIREBASE_INSTALLATIONS_ID_HEARTBEAT_TAG = "fire-installations-id";
9090

91-
private static final String HEART_BEAT_HEADER = "x-firebase-client-log-type";
92-
private static final String USER_AGENT_HEADER = "x-firebase-client";
91+
private static final String HEART_BEAT_HEADER = "x-firebase-client";
9392

9493
private static final String X_ANDROID_PACKAGE_HEADER_KEY = "X-Android-Package";
9594
private static final String X_ANDROID_CERT_HEADER_KEY = "X-Android-Cert";
@@ -114,17 +113,13 @@ public class FirebaseInstallationServiceClient {
114113
static final String PARSING_EXPIRATION_TIME_ERROR_MESSAGE = "Invalid Expiration Timestamp.";
115114

116115
private final Context context;
117-
private final Provider<UserAgentPublisher> userAgentPublisher;
118-
private final Provider<HeartBeatInfo> heartbeatInfo;
116+
private final Provider<HeartBeatController> heartBeatProvider;
119117
private final RequestLimiter requestLimiter;
120118

121119
public FirebaseInstallationServiceClient(
122-
@NonNull Context context,
123-
@NonNull Provider<UserAgentPublisher> publisher,
124-
@NonNull Provider<HeartBeatInfo> heartbeatInfo) {
120+
@NonNull Context context, @NonNull Provider<HeartBeatController> heartBeatProvider) {
125121
this.context = context;
126-
this.userAgentPublisher = publisher;
127-
this.heartbeatInfo = heartbeatInfo;
122+
this.heartBeatProvider = heartBeatProvider;
128123
this.requestLimiter = new RequestLimiter();
129124
}
130125

@@ -485,14 +480,16 @@ private HttpURLConnection openHttpURLConnection(URL url, String apiKey)
485480
httpURLConnection.addRequestProperty(CONTENT_ENCODING_HEADER_KEY, GZIP_CONTENT_ENCODING);
486481
httpURLConnection.addRequestProperty(CACHE_CONTROL_HEADER_KEY, CACHE_CONTROL_DIRECTIVE);
487482
httpURLConnection.addRequestProperty(X_ANDROID_PACKAGE_HEADER_KEY, context.getPackageName());
488-
if ((heartbeatInfo.get() != null) && (userAgentPublisher.get() != null)) {
489-
HeartBeat heartbeat =
490-
heartbeatInfo.get().getHeartBeatCode(FIREBASE_INSTALLATIONS_ID_HEARTBEAT_TAG);
491-
if (heartbeat != HeartBeat.NONE) {
492-
httpURLConnection.addRequestProperty(
493-
USER_AGENT_HEADER, userAgentPublisher.get().getUserAgent());
483+
HeartBeatController heartBeatController = heartBeatProvider.get();
484+
if (heartBeatController != null) {
485+
try {
494486
httpURLConnection.addRequestProperty(
495-
HEART_BEAT_HEADER, Integer.toString(heartbeat.getCode()));
487+
HEART_BEAT_HEADER, Tasks.await(heartBeatController.getHeartBeatsHeader()));
488+
} catch (ExecutionException e) {
489+
Log.w(TAG, "Failed to get heartbeats header", e);
490+
} catch (InterruptedException e) {
491+
Thread.currentThread().interrupt();
492+
Log.w(TAG, "Failed to get heartbeats header", e);
496493
}
497494
}
498495
httpURLConnection.addRequestProperty(X_ANDROID_CERT_HEADER_KEY, getFingerprintHashForPackage());

0 commit comments

Comments
 (0)