i.java 源代码


package w0;

import android.annotation.TargetApi;
import android.app.ActivityManager;
import android.content.Context;
import android.text.format.Formatter;
import android.util.DisplayMetrics;
import android.util.Log;

public class i {

    private final int f27335a;

    private final int f27336b;

    private final Context f27337c;

    private static class a implements b {

        private final DisplayMetrics f27338a;

        public a(DisplayMetrics displayMetrics) {
            this.f27338a = displayMetrics;
        }

        @Override
        public int a() {
            return this.f27338a.heightPixels;
        }

        @Override
        public int b() {
            return this.f27338a.widthPixels;
        }
    }

    interface b {
        int a();

        int b();
    }

    public i(Context context) {
        this(context, (ActivityManager) context.getSystemService("activity"), new a(context.getResources().getDisplayMetrics()));
    }

    private static int b(ActivityManager activityManager) {
        float f6;
        float memoryClass = activityManager.getMemoryClass() * 1024 * 1024;
        if (d(activityManager)) {
            f6 = 0.33f;
        } else {
            f6 = 0.4f;
        }
        return Math.round(memoryClass * f6);
    }

    @TargetApi(19)
    private static boolean d(ActivityManager activityManager) {
        return activityManager.isLowRamDevice();
    }

    private String e(int i6) {
        return Formatter.formatFileSize(this.f27337c, i6);
    }

    public int a() {
        return this.f27335a;
    }

    public int c() {
        return this.f27336b;
    }

    i(Context context, ActivityManager activityManager, b bVar) {
        this.f27337c = context;
        int b6 = b(activityManager);
        int b7 = bVar.b() * bVar.a() * 4;
        int i6 = b7 * 4;
        int i7 = b7 * 2;
        int i8 = i7 + i6;
        if (i8 <= b6) {
            this.f27336b = i7;
            this.f27335a = i6;
        } else {
            int round = Math.round(b6 / 6.0f);
            this.f27336b = round * 2;
            this.f27335a = round * 4;
        }
        if (Log.isLoggable("MemorySizeCalculator", 3)) {
            StringBuilder sb = new StringBuilder();
            sb.append("Calculated memory cache size: ");
            sb.append(e(this.f27336b));
            sb.append(" pool size: ");
            sb.append(e(this.f27335a));
            sb.append(" memory class limited? ");
            sb.append(i8 > b6);
            sb.append(" max size: ");
            sb.append(e(b6));
            sb.append(" memoryClass: ");
            sb.append(activityManager.getMemoryClass());
            sb.append(" isLowMemoryDevice: ");
            sb.append(d(activityManager));
            Log.d("MemorySizeCalculator", sb.toString());
        }
    }
}