Files
adif-api-reverse-engineering/apk_decompiled/sources/com/google/firebase/messaging/ImageDownload.java

110 lines
3.8 KiB
Java

package com.google.firebase.messaging;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.text.TextUtils;
import android.util.Log;
import com.google.android.gms.common.internal.Preconditions;
import com.google.android.gms.tasks.Task;
import com.google.android.gms.tasks.TaskCompletionSource;
import java.io.Closeable;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
/* loaded from: classes3.dex */
public class ImageDownload implements Closeable {
private static final int MAX_IMAGE_SIZE_BYTES = 1048576;
private volatile Future<?> future;
private Task<Bitmap> task;
private final URL url;
private ImageDownload(URL url) {
this.url = url;
}
private byte[] blockingDownloadBytes() throws IOException {
URLConnection openConnection = this.url.openConnection();
if (openConnection.getContentLength() > MAX_IMAGE_SIZE_BYTES) {
throw new IOException("Content-Length exceeds max size of 1048576");
}
InputStream inputStream = openConnection.getInputStream();
try {
byte[] byteArray = ByteStreams.toByteArray(ByteStreams.limit(inputStream, 1048577L));
if (inputStream != null) {
inputStream.close();
}
if (Log.isLoggable(Constants.TAG, 2)) {
Log.v(Constants.TAG, "Downloaded " + byteArray.length + " bytes from " + this.url);
}
if (byteArray.length <= MAX_IMAGE_SIZE_BYTES) {
return byteArray;
}
throw new IOException("Image exceeds max size of 1048576");
} catch (Throwable th) {
if (inputStream != null) {
try {
inputStream.close();
} catch (Throwable th2) {
th.addSuppressed(th2);
}
}
throw th;
}
}
public static ImageDownload create(String str) {
if (TextUtils.isEmpty(str)) {
return null;
}
try {
return new ImageDownload(new URL(str));
} catch (MalformedURLException unused) {
Log.w(Constants.TAG, "Not downloading image, bad URL: " + str);
return null;
}
}
public /* synthetic */ void lambda$start$0(TaskCompletionSource taskCompletionSource) {
try {
taskCompletionSource.setResult(blockingDownload());
} catch (Exception e4) {
taskCompletionSource.setException(e4);
}
}
public Bitmap blockingDownload() throws IOException {
if (Log.isLoggable(Constants.TAG, 4)) {
Log.i(Constants.TAG, "Starting download of: " + this.url);
}
byte[] blockingDownloadBytes = blockingDownloadBytes();
Bitmap decodeByteArray = BitmapFactory.decodeByteArray(blockingDownloadBytes, 0, blockingDownloadBytes.length);
if (decodeByteArray == null) {
throw new IOException("Failed to decode image: " + this.url);
}
if (Log.isLoggable(Constants.TAG, 3)) {
Log.d(Constants.TAG, "Successfully downloaded image: " + this.url);
}
return decodeByteArray;
}
@Override // java.io.Closeable, java.lang.AutoCloseable
public void close() {
this.future.cancel(true);
}
public Task<Bitmap> getTask() {
return (Task) Preconditions.checkNotNull(this.task);
}
public void start(ExecutorService executorService) {
TaskCompletionSource taskCompletionSource = new TaskCompletionSource();
this.future = executorService.submit(new i(this, taskCompletionSource, 3));
this.task = taskCompletionSource.getTask();
}
}