Skip to content

Commit 56408ae

Browse files
committed
Clean up ApkUpdater (#4482)
1 parent e96d8a9 commit 56408ae

File tree

2 files changed

+4
-28
lines changed

2 files changed

+4
-28
lines changed

firebase-appdistribution/src/main/java/com/google/firebase/appdistribution/impl/ApkUpdater.java

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import androidx.annotation.NonNull;
2727
import androidx.annotation.VisibleForTesting;
2828
import com.google.android.gms.tasks.Task;
29-
import com.google.android.gms.tasks.TaskCompletionSource;
3029
import com.google.firebase.FirebaseApp;
3130
import com.google.firebase.appdistribution.FirebaseAppDistribution;
3231
import com.google.firebase.appdistribution.FirebaseAppDistributionException;
@@ -47,7 +46,6 @@ class ApkUpdater {
4746
private static final String REQUEST_METHOD_GET = "GET";
4847
private static final String DEFAULT_APK_FILE_NAME = "downloaded_release.apk";
4948

50-
private TaskCompletionSource<File> downloadTaskCompletionSource;
5149
private final Executor blockingExecutor; // Executor to run task listeners on a background thread
5250
private final Context context;
5351
private final ApkInstaller apkInstaller;
@@ -142,25 +140,11 @@ private void installApk(File file, boolean showDownloadNotificationManager) {
142140
@NonNull
143141
Task<File> downloadApk(
144142
@NonNull AppDistributionReleaseInternal newRelease, boolean showNotification) {
145-
if (downloadTaskCompletionSource != null
146-
&& !downloadTaskCompletionSource.getTask().isComplete()) {
147-
return downloadTaskCompletionSource.getTask();
148-
}
149-
150-
downloadTaskCompletionSource = new TaskCompletionSource<>();
151-
152-
blockingExecutor.execute(
153-
() -> {
154-
try {
155-
makeApkDownloadRequest(newRelease, showNotification);
156-
} catch (FirebaseAppDistributionException e) {
157-
safeSetTaskException(downloadTaskCompletionSource, e);
158-
}
159-
});
160-
return downloadTaskCompletionSource.getTask();
143+
return TaskUtils.runAsyncInTask(
144+
blockingExecutor, () -> makeApkDownloadRequest(newRelease, showNotification));
161145
}
162146

163-
private void makeApkDownloadRequest(
147+
private File makeApkDownloadRequest(
164148
@NonNull AppDistributionReleaseInternal newRelease, boolean showNotification)
165149
throws FirebaseAppDistributionException {
166150
String downloadUrl = newRelease.getDownloadUrl();
@@ -197,7 +181,7 @@ private void makeApkDownloadRequest(
197181
UpdateStatus.DOWNLOADED,
198182
showNotification,
199183
R.string.download_completed);
200-
safeSetTaskResult(downloadTaskCompletionSource, apkFile);
184+
return apkFile;
201185
}
202186

203187
private static boolean isResponseSuccess(int responseCode) {

firebase-appdistribution/src/test/java/com/google/firebase/appdistribution/impl/ApkUpdaterTest.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727

2828
import android.app.Activity;
2929
import androidx.test.core.app.ApplicationProvider;
30-
import com.google.android.gms.tasks.Task;
3130
import com.google.android.gms.tasks.TaskCompletionSource;
3231
import com.google.android.gms.tasks.Tasks;
3332
import com.google.firebase.FirebaseApp;
@@ -264,13 +263,6 @@ public void updateApk_showNotificationFalse_doesNotUpdateNotificationManager() {
264263
verifyNoInteractions(mockNotificationsManager);
265264
}
266265

267-
@Test
268-
public void downloadApk_whenCalledMultipleTimes_returnsSameTask() {
269-
Task<File> task1 = apkUpdater.downloadApk(TEST_RELEASE, false);
270-
Task<File> task2 = apkUpdater.downloadApk(TEST_RELEASE, false);
271-
assertThat(task1).isEqualTo(task2);
272-
}
273-
274266
@Test
275267
public void updateApp_whenCalledMultipleTimesWithApk_returnsSameUpdateTask() {
276268
doReturn(Tasks.forResult(mockFile)).when(apkUpdater).downloadApk(TEST_RELEASE, false);

0 commit comments

Comments
 (0)