343 lines
11 KiB
Java
343 lines
11 KiB
Java
package com.squareup.picasso;
|
|
|
|
import android.annotation.TargetApi;
|
|
import android.app.ActivityManager;
|
|
import android.content.Context;
|
|
import android.content.pm.PackageManager;
|
|
import android.content.res.Resources;
|
|
import android.graphics.Bitmap;
|
|
import android.net.Uri;
|
|
import android.os.Build;
|
|
import android.os.Handler;
|
|
import android.os.Looper;
|
|
import android.os.Message;
|
|
import android.os.Process;
|
|
import android.os.StatFs;
|
|
import android.provider.Settings;
|
|
import android.util.Log;
|
|
import com.ubt.jimu.base.util.FileUtil;
|
|
import java.io.ByteArrayOutputStream;
|
|
import java.io.File;
|
|
import java.io.FileNotFoundException;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.util.List;
|
|
import java.util.concurrent.ThreadFactory;
|
|
|
|
/* loaded from: classes.dex */
|
|
final class Utils {
|
|
static final StringBuilder a = new StringBuilder();
|
|
|
|
@TargetApi(11)
|
|
private static class ActivityManagerHoneycomb {
|
|
static int a(ActivityManager activityManager) {
|
|
return activityManager.getLargeMemoryClass();
|
|
}
|
|
}
|
|
|
|
@TargetApi(12)
|
|
private static class BitmapHoneycombMR1 {
|
|
static int a(Bitmap bitmap) {
|
|
return bitmap.getByteCount();
|
|
}
|
|
}
|
|
|
|
private static class OkHttpLoaderCreator {
|
|
static Downloader a(Context context) {
|
|
return new OkHttpDownloader(context);
|
|
}
|
|
}
|
|
|
|
private static class PicassoThread extends Thread {
|
|
public PicassoThread(Runnable runnable) {
|
|
super(runnable);
|
|
}
|
|
|
|
@Override // java.lang.Thread, java.lang.Runnable
|
|
public void run() {
|
|
Process.setThreadPriority(10);
|
|
super.run();
|
|
}
|
|
}
|
|
|
|
static class PicassoThreadFactory implements ThreadFactory {
|
|
PicassoThreadFactory() {
|
|
}
|
|
|
|
@Override // java.util.concurrent.ThreadFactory
|
|
public Thread newThread(Runnable runnable) {
|
|
return new PicassoThread(runnable);
|
|
}
|
|
}
|
|
|
|
static int a(Bitmap bitmap) {
|
|
int a2 = Build.VERSION.SDK_INT >= 12 ? BitmapHoneycombMR1.a(bitmap) : bitmap.getRowBytes() * bitmap.getHeight();
|
|
if (a2 >= 0) {
|
|
return a2;
|
|
}
|
|
throw new IllegalStateException("Negative size: " + bitmap);
|
|
}
|
|
|
|
static boolean b() {
|
|
return Looper.getMainLooper().getThread() == Thread.currentThread();
|
|
}
|
|
|
|
static Downloader c(Context context) {
|
|
try {
|
|
Class.forName("com.squareup.okhttp.OkHttpClient");
|
|
return OkHttpLoaderCreator.a(context);
|
|
} catch (ClassNotFoundException unused) {
|
|
return new UrlConnectionDownloader(context);
|
|
}
|
|
}
|
|
|
|
static boolean d(Context context) {
|
|
try {
|
|
return Settings.System.getInt(context.getContentResolver(), "airplane_mode_on", 0) != 0;
|
|
} catch (NullPointerException unused) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
static File b(Context context) {
|
|
File file = new File(context.getApplicationContext().getCacheDir(), "picasso-cache");
|
|
if (!file.exists()) {
|
|
file.mkdirs();
|
|
}
|
|
return file;
|
|
}
|
|
|
|
static byte[] c(InputStream inputStream) throws IOException {
|
|
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
|
byte[] bArr = new byte[FileUtil.ZIP_BUFFER_SIZE];
|
|
while (true) {
|
|
int read = inputStream.read(bArr);
|
|
if (-1 != read) {
|
|
byteArrayOutputStream.write(bArr, 0, read);
|
|
} else {
|
|
return byteArrayOutputStream.toByteArray();
|
|
}
|
|
}
|
|
}
|
|
|
|
static <T> T a(T t, String str) {
|
|
if (t != null) {
|
|
return t;
|
|
}
|
|
throw new NullPointerException(str);
|
|
}
|
|
|
|
static boolean b(Context context, String str) {
|
|
return context.checkCallingOrSelfPermission(str) == 0;
|
|
}
|
|
|
|
static void a() {
|
|
if (!b()) {
|
|
throw new IllegalStateException("Method call should happen from the main thread.");
|
|
}
|
|
}
|
|
|
|
static boolean b(InputStream inputStream) throws IOException {
|
|
byte[] bArr = new byte[12];
|
|
return inputStream.read(bArr, 0, 12) == 12 && "RIFF".equals(new String(bArr, 0, 4, "US-ASCII")) && "WEBP".equals(new String(bArr, 8, 4, "US-ASCII"));
|
|
}
|
|
|
|
static String a(BitmapHunter bitmapHunter) {
|
|
return a(bitmapHunter, "");
|
|
}
|
|
|
|
static String a(BitmapHunter bitmapHunter, String str) {
|
|
StringBuilder sb = new StringBuilder(str);
|
|
Action a2 = bitmapHunter.a();
|
|
if (a2 != null) {
|
|
sb.append(a2.b.d());
|
|
}
|
|
List<Action> b = bitmapHunter.b();
|
|
if (b != null) {
|
|
int size = b.size();
|
|
for (int i = 0; i < size; i++) {
|
|
if (i > 0 || a2 != null) {
|
|
sb.append(", ");
|
|
}
|
|
sb.append(b.get(i).b.d());
|
|
}
|
|
}
|
|
return sb.toString();
|
|
}
|
|
|
|
static void a(String str, String str2, String str3) {
|
|
a(str, str2, str3, "");
|
|
}
|
|
|
|
static void a(String str, String str2, String str3, String str4) {
|
|
Log.d("Picasso", String.format("%1$-11s %2$-12s %3$s %4$s", str, str2, str3, str4));
|
|
}
|
|
|
|
static String a(Request request) {
|
|
String a2 = a(request, a);
|
|
a.setLength(0);
|
|
return a2;
|
|
}
|
|
|
|
static String a(Request request, StringBuilder sb) {
|
|
String str = request.f;
|
|
if (str != null) {
|
|
sb.ensureCapacity(str.length() + 50);
|
|
sb.append(request.f);
|
|
} else {
|
|
Uri uri = request.d;
|
|
if (uri != null) {
|
|
String uri2 = uri.toString();
|
|
sb.ensureCapacity(uri2.length() + 50);
|
|
sb.append(uri2);
|
|
} else {
|
|
sb.ensureCapacity(50);
|
|
sb.append(request.e);
|
|
}
|
|
}
|
|
sb.append('\n');
|
|
if (request.m != 0.0f) {
|
|
sb.append("rotation:");
|
|
sb.append(request.m);
|
|
if (request.p) {
|
|
sb.append('@');
|
|
sb.append(request.n);
|
|
sb.append('x');
|
|
sb.append(request.o);
|
|
}
|
|
sb.append('\n');
|
|
}
|
|
if (request.c()) {
|
|
sb.append("resize:");
|
|
sb.append(request.h);
|
|
sb.append('x');
|
|
sb.append(request.i);
|
|
sb.append('\n');
|
|
}
|
|
if (request.j) {
|
|
sb.append("centerCrop");
|
|
sb.append('\n');
|
|
} else if (request.k) {
|
|
sb.append("centerInside");
|
|
sb.append('\n');
|
|
}
|
|
List<Transformation> list = request.g;
|
|
if (list != null) {
|
|
int size = list.size();
|
|
for (int i = 0; i < size; i++) {
|
|
sb.append(request.g.get(i).a());
|
|
sb.append('\n');
|
|
}
|
|
}
|
|
return sb.toString();
|
|
}
|
|
|
|
static void a(InputStream inputStream) {
|
|
if (inputStream == null) {
|
|
return;
|
|
}
|
|
try {
|
|
inputStream.close();
|
|
} catch (IOException unused) {
|
|
}
|
|
}
|
|
|
|
static boolean a(String str) {
|
|
if (str == null) {
|
|
return false;
|
|
}
|
|
String[] split = str.split(" ", 2);
|
|
if ("CACHE".equals(split[0])) {
|
|
return true;
|
|
}
|
|
if (split.length == 1) {
|
|
return false;
|
|
}
|
|
try {
|
|
if ("CONDITIONAL_CACHE".equals(split[0])) {
|
|
return Integer.parseInt(split[1]) == 304;
|
|
}
|
|
return false;
|
|
} catch (NumberFormatException unused) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
static long a(File file) {
|
|
long j;
|
|
try {
|
|
StatFs statFs = new StatFs(file.getAbsolutePath());
|
|
j = (statFs.getBlockCount() * statFs.getBlockSize()) / 50;
|
|
} catch (IllegalArgumentException unused) {
|
|
j = 5242880;
|
|
}
|
|
return Math.max(Math.min(j, 52428800L), 5242880L);
|
|
}
|
|
|
|
static int a(Context context) {
|
|
ActivityManager activityManager = (ActivityManager) a(context, "activity");
|
|
boolean z = (context.getApplicationInfo().flags & 1048576) != 0;
|
|
int memoryClass = activityManager.getMemoryClass();
|
|
if (z && Build.VERSION.SDK_INT >= 11) {
|
|
memoryClass = ActivityManagerHoneycomb.a(activityManager);
|
|
}
|
|
return (memoryClass * 1048576) / 7;
|
|
}
|
|
|
|
static <T> T a(Context context, String str) {
|
|
return (T) context.getSystemService(str);
|
|
}
|
|
|
|
static int a(Resources resources, Request request) throws FileNotFoundException {
|
|
Uri uri;
|
|
if (request.e == 0 && (uri = request.d) != null) {
|
|
String authority = uri.getAuthority();
|
|
if (authority != null) {
|
|
List<String> pathSegments = request.d.getPathSegments();
|
|
if (pathSegments != null && !pathSegments.isEmpty()) {
|
|
if (pathSegments.size() == 1) {
|
|
try {
|
|
return Integer.parseInt(pathSegments.get(0));
|
|
} catch (NumberFormatException unused) {
|
|
throw new FileNotFoundException("Last path segment is not a resource ID: " + request.d);
|
|
}
|
|
}
|
|
if (pathSegments.size() == 2) {
|
|
return resources.getIdentifier(pathSegments.get(1), pathSegments.get(0), authority);
|
|
}
|
|
throw new FileNotFoundException("More than two path segments: " + request.d);
|
|
}
|
|
throw new FileNotFoundException("No path segments: " + request.d);
|
|
}
|
|
throw new FileNotFoundException("No package provided: " + request.d);
|
|
}
|
|
return request.e;
|
|
}
|
|
|
|
static Resources a(Context context, Request request) throws FileNotFoundException {
|
|
Uri uri;
|
|
if (request.e == 0 && (uri = request.d) != null) {
|
|
String authority = uri.getAuthority();
|
|
if (authority != null) {
|
|
try {
|
|
return context.getPackageManager().getResourcesForApplication(authority);
|
|
} catch (PackageManager.NameNotFoundException unused) {
|
|
throw new FileNotFoundException("Unable to obtain resources for package: " + request.d);
|
|
}
|
|
}
|
|
throw new FileNotFoundException("No package provided: " + request.d);
|
|
}
|
|
return context.getResources();
|
|
}
|
|
|
|
static void a(Looper looper) {
|
|
Handler handler = new Handler(looper) { // from class: com.squareup.picasso.Utils.1
|
|
@Override // android.os.Handler
|
|
public void handleMessage(Message message) {
|
|
sendMessageDelayed(obtainMessage(), 1000L);
|
|
}
|
|
};
|
|
handler.sendMessageDelayed(handler.obtainMessage(), 1000L);
|
|
}
|
|
}
|