Skip to content

Commit df8b9e6

Browse files
committed
Potential refactor
1 parent e4369ab commit df8b9e6

File tree

6 files changed

+20
-23
lines changed

6 files changed

+20
-23
lines changed

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,6 @@ public static FirebasePerformance getInstance() {
151151
* @param firebaseRemoteConfigProvider The {@link Provider} for FirebaseRemoteConfig instance.
152152
* @param firebaseInstallationsApi The FirebaseInstallationsApi instance.
153153
* @param transportFactoryProvider The {@link Provider} for the the {@link TransportFactory}.
154-
* @param remoteConfigManager The RemoteConfigManager instance.
155154
* @param configResolver The ConfigResolver instance.
156155
* @param sessionManager The SessionManager instance.
157156
*/
@@ -162,7 +161,6 @@ public static FirebasePerformance getInstance() {
162161
Provider<RemoteConfigComponent> firebaseRemoteConfigProvider,
163162
FirebaseInstallationsApi firebaseInstallationsApi,
164163
Provider<TransportFactory> transportFactoryProvider,
165-
RemoteConfigManager remoteConfigManager,
166164
ConfigResolver configResolver,
167165
SessionManager sessionManager) {
168166

@@ -185,8 +183,8 @@ public static FirebasePerformance getInstance() {
185183
// TODO(b/110178816): Explore moving off of main thread.
186184
mMetadataBundle = extractMetadata(appContext);
187185

188-
remoteConfigManager.setFirebaseRemoteConfigProvider(firebaseRemoteConfigProvider);
189186
this.configResolver = configResolver;
187+
this.configResolver.getRemoteConfigManager().setFirebaseRemoteConfigProvider(firebaseRemoteConfigProvider);
190188
this.configResolver.setMetadataBundle(mMetadataBundle);
191189
this.configResolver.setApplicationContext(appContext);
192190
sessionManager.setApplicationContext(appContext);

firebase-perf/src/main/java/com/google/firebase/perf/config/ConfigResolver.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public class ConfigResolver {
5858
private static volatile ConfigResolver instance;
5959

6060
// Configuration Storage objects.
61-
private final RemoteConfigManager remoteConfigManager;
61+
private RemoteConfigManager remoteConfigManager;
6262
private ImmutableBundle metadataBundle;
6363
private DeviceCacheManager deviceCacheManager;
6464

@@ -75,7 +75,7 @@ public ConfigResolver(
7575
@Nullable ImmutableBundle metadataBundle,
7676
@Nullable DeviceCacheManager deviceCacheManager) {
7777
this.remoteConfigManager =
78-
remoteConfigManager == null ? RemoteConfigManager.getInstance() : remoteConfigManager;
78+
remoteConfigManager != null ? remoteConfigManager : new RemoteConfigManager();
7979
this.metadataBundle = metadataBundle == null ? new ImmutableBundle() : metadataBundle;
8080
this.deviceCacheManager =
8181
deviceCacheManager == null ? DeviceCacheManager.getInstance() : deviceCacheManager;
@@ -98,6 +98,11 @@ public void setDeviceCacheManager(DeviceCacheManager deviceCacheManager) {
9898
this.deviceCacheManager = deviceCacheManager;
9999
}
100100

101+
@VisibleForTesting
102+
public void setRemoteConfigManager(RemoteConfigManager remoteConfigManager) {
103+
this.remoteConfigManager = remoteConfigManager;
104+
}
105+
101106
public void setContentProviderContext(Context context) {
102107
setApplicationContext(context.getApplicationContext());
103108
}
@@ -916,4 +921,8 @@ private boolean isGaugeCaptureFrequencyMsValid(long frequencyMilliseconds) {
916921
private boolean isSessionsMaxDurationMinutesValid(long maxDurationMin) {
917922
return maxDurationMin > 0;
918923
}
924+
925+
public RemoteConfigManager getRemoteConfigManager() {
926+
return remoteConfigManager;
927+
}
919928
}

firebase-perf/src/main/java/com/google/firebase/perf/config/RemoteConfigManager.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747
public class RemoteConfigManager {
4848

4949
private static final AndroidLogger logger = AndroidLogger.getInstance();
50-
private static final RemoteConfigManager instance = new RemoteConfigManager();
5150
private static final String FIREPERF_FRC_NAMESPACE_NAME = "fireperf";
5251
private static final long TIME_AFTER_WHICH_A_FETCH_IS_CONSIDERED_STALE_MS =
5352
TimeUnit.HOURS.toMillis(12);
@@ -67,7 +66,7 @@ public class RemoteConfigManager {
6766

6867
// TODO(b/258263016): Migrate to go/firebase-android-executors
6968
@SuppressLint("ThreadPoolCreation")
70-
private RemoteConfigManager() {
69+
public RemoteConfigManager() {
7170
this(
7271
DeviceCacheManager.getInstance(),
7372
new ThreadPoolExecutor(
@@ -96,11 +95,6 @@ private RemoteConfigManager() {
9695
this.remoteConfigFetchDelayInMs = remoteConfigFetchDelayInMs;
9796
}
9897

99-
/** Gets the singleton instance. */
100-
public static RemoteConfigManager getInstance() {
101-
return instance;
102-
}
103-
10498
/**
10599
* Sets the {@link Provider} for {@link RemoteConfigComponent} from which we can extract the
106100
* {@link FirebaseRemoteConfig} instance whenever it gets available.

firebase-perf/src/main/java/com/google/firebase/perf/injection/modules/FirebasePerformanceModule.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,6 @@ Provider<TransportFactory> providesTransportFactoryProvider() {
6666
return transportFactoryProvider;
6767
}
6868

69-
@Provides
70-
RemoteConfigManager providesRemoteConfigManager() {
71-
return RemoteConfigManager.getInstance();
72-
}
73-
7469
@Provides
7570
ConfigResolver providesConfigResolver() {
7671
return ConfigResolver.getInstance();

firebase-perf/src/test/java/com/google/firebase/perf/FirebasePerformanceTest.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public class FirebasePerformanceTest {
6363
"firebase_performance_collection_deactivated";
6464
private static final String FIREPERF_ENABLED_KEY = "firebase_performance_collection_enabled";
6565

66-
@Nullable private RemoteConfigManager spyRemoteConfigManager = null;
66+
@Nullable private RemoteConfigManager spyRemoteConfigManager = spy(new RemoteConfigManager());
6767
@Nullable private ConfigResolver spyConfigResolver = null;
6868

6969
@Nullable private SessionManager spySessionManager = null;
@@ -100,9 +100,10 @@ public void setUp() throws NameNotFoundException {
100100
sharedPreferences.edit().clear().commit();
101101
DeviceCacheManager.clearInstance();
102102

103-
spyRemoteConfigManager = spy(RemoteConfigManager.getInstance());
104103
ConfigResolver.clearInstance();
105-
spyConfigResolver = spy(ConfigResolver.getInstance());
104+
ConfigResolver configResolver = ConfigResolver.getInstance();
105+
configResolver.setRemoteConfigManager(spyRemoteConfigManager);
106+
spyConfigResolver = spy(configResolver);
106107

107108
spySessionManager = spy(SessionManager.getInstance());
108109
fakeDirectExecutorService = new FakeDirectExecutorService();
@@ -470,6 +471,7 @@ public void firebasePerformanceInitialization_providesRcProvider_remoteConfigMan
470471
() -> FirebaseApp.getInstance().get(TransportFactory.class));
471472

472473
verify(spyRemoteConfigManager).setFirebaseRemoteConfigProvider(firebaseRemoteConfigProvider);
474+
assertThat(spyRemoteConfigManager.isFirebaseRemoteConfigAvailable()).isTrue();
473475
}
474476

475477
@Test
@@ -577,7 +579,6 @@ private FirebasePerformance initializeFirebasePerformancePreferences(
577579
firebaseRemoteConfigProvider,
578580
mock(FirebaseInstallationsApi.class),
579581
transportFactoryProvider,
580-
spyRemoteConfigManager,
581582
spyConfigResolver,
582583
spySessionManager);
583584
}

firebase-perf/src/test/java/com/google/firebase/perf/config/RemoteConfigManagerTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ public void setUp() {
7676

7777
@Test
7878
public void getInstance_verifiesSingleton() {
79-
RemoteConfigManager instanceOne = RemoteConfigManager.getInstance();
80-
RemoteConfigManager instanceTwo = RemoteConfigManager.getInstance();
79+
RemoteConfigManager instanceOne = ConfigResolver.getInstance().getRemoteConfigManager();
80+
RemoteConfigManager instanceTwo = ConfigResolver.getInstance().getRemoteConfigManager();
8181

8282
assertThat(instanceOne).isSameInstanceAs(instanceTwo);
8383
}

0 commit comments

Comments
 (0)