翰林优商.apk(点击下载) / b.java


package com.efs.sdk.base.core.c;

import android.content.Context;
import android.content.SharedPreferences;
import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;
import com.efs.sdk.base.core.config.b;
import com.efs.sdk.base.core.controller.ControllerCenter;
import com.efs.sdk.base.core.f.f;
import com.efs.sdk.base.core.util.Log;
import com.efs.sdk.base.newsharedpreferences.SharedPreferencesUtils;
import com.kuaishou.weapon.p0.c;
import com.mbridge.msdk.playercommon.exoplayer2.upstream.cache.CacheDataSource;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;

public class b extends Handler {
    private static final Map<String, Long> a = new HashMap<String, Long>() {
        /* class com.efs.sdk.base.core.c.b.AnonymousClass1 */

        {
            put("flow_5min", 300000L);
            put("flow_hour", Long.valueOf((long) c.a));
            put("flow_day", 86400000L);
        }
    };
    private static final Map<String, Long> b = new HashMap<String, Long>() {
        /* class com.efs.sdk.base.core.c.b.AnonymousClass2 */

        {
            put("flow_5min", 1048576L);
            put("flow_hour", 1048576L);
            put("flow_day", Long.valueOf((long) CacheDataSource.DEFAULT_MAX_CACHE_FILE_SIZE));
        }
    };
    private Map<String, AtomicInteger> c;
    private volatile SharedPreferences d;
    private volatile SharedPreferences.Editor e;
    private Context f;
    private String g;

    /* access modifiers changed from: package-private */
    public static class a {
        private static final b a = new b((byte) 0);
    }

    /* synthetic */ b(byte b2) {
        this();
    }

    private b() {
        super(com.efs.sdk.base.core.util.a.a.a.getLooper());
        this.c = new ConcurrentHashMap(5);
        this.f = ControllerCenter.getGlobalEnvStruct().mAppContext;
        this.g = ControllerCenter.getGlobalEnvStruct().getAppid();
        b();
        File c2 = com.efs.sdk.base.core.util.a.c(ControllerCenter.getGlobalEnvStruct().mAppContext, ControllerCenter.getGlobalEnvStruct().getAppid());
        if (c2.exists()) {
            com.efs.sdk.base.core.util.b.b(c2);
        }
    }

    public static b a() {
        return a.a;
    }

    public void handleMessage(Message message) {
        super.handleMessage(message);
        int i = message.what;
        if (i == 0) {
            b();
            if (this.d == null) {
                Log.w("efs.flow", "sharedpreferences is null, cann't get last flow stat");
            } else if (this.e == null) {
                Log.w("efs.flow", "sharedpreferences editor is null, cann't refresh flow stat");
            } else {
                String valueOf = String.valueOf(message.obj);
                long j = (long) message.arg1;
                String a2 = b.a.a().a();
                for (String str : a.keySet()) {
                    String concat = "curr_time_".concat(String.valueOf(str));
                    if (!this.d.contains(concat)) {
                        this.e.putLong(concat, System.currentTimeMillis());
                    }
                    for (String str2 : a(str, valueOf, a2)) {
                        this.e.putLong(str2, this.d.getLong(str2, 0) + j);
                    }
                }
                this.e.apply();
            }
        } else if (i != 1) {
            Log.w("efs.flow", "flow stat listener not support action '" + message.what + "'");
        } else {
            String valueOf2 = String.valueOf(message.obj);
            long j2 = (long) message.arg1;
            b();
            if (this.d == null) {
                Log.w("efs.flow", "sharedpreferences is null, cann't get last refresh timestamp");
            } else if (this.e == null) {
                Log.w("efs.flow", "sharedpreferences editor is null, cann't refresh timestamp");
            } else {
                String concat2 = "curr_time_".concat(String.valueOf(valueOf2));
                if (Math.abs(System.currentTimeMillis() - this.d.getLong(concat2, System.currentTimeMillis())) >= j2) {
                    for (String str3 : this.d.getAll().keySet()) {
                        if (str3.startsWith(valueOf2)) {
                            this.e.putLong(str3, 0);
                        }
                    }
                    this.e.putLong(concat2, System.currentTimeMillis());
                    this.e.apply();
                    this.c.clear();
                }
            }
        }
    }

    private void b() {
        try {
            c();
        } catch (Throwable th) {
            Log.e("efs.flow", "init sharedpreferences error", th);
        }
    }

    private void c() {
        if (this.d == null) {
            synchronized (b.class) {
                if (this.d == null) {
                    this.d = SharedPreferencesUtils.getSharedPreferences(this.f, this.g.toLowerCase() + "_flow");
                }
            }
        }
        if (this.e == null) {
            synchronized (b.class) {
                if (this.e == null) {
                    this.e = this.d.edit();
                }
            }
        }
    }

    private boolean a(String str, long j, String str2, String str3, long j2) {
        b();
        if (this.d == null) {
            Log.w("efs.flow", "sharedpreferences is null, cann't get last flow stat");
            return false;
        }
        List<String> a2 = a(str, str2, str3);
        Map<String, String> c2 = com.efs.sdk.base.core.config.a.c.a().c();
        for (String str4 : a2) {
            if (Math.abs(System.currentTimeMillis() - this.d.getLong("curr_time_".concat(String.valueOf(str)), System.currentTimeMillis())) > j) {
                Message obtain = Message.obtain();
                obtain.what = 1;
                obtain.obj = str;
                obtain.arg1 = Long.valueOf(j).intValue();
                sendMessage(obtain);
            }
            long a3 = a(c2, str, str4);
            long j3 = this.d.getLong(str4, 0);
            if (j3 + j2 > a3) {
                Log.i("efs.flow", "flow limit, key: " + str4 + ", max: " + a3 + ", now: " + j3 + ", size: " + j2);
                a(str4);
                return false;
            }
        }
        return true;
    }

    private void a(String str) {
        if (!this.c.containsKey(str) || this.c.get(str) == null || this.c.get(str).get() <= 10) {
            f.a.a.a(com.efs.sdk.base.core.config.a.c.a().d.a, str);
            if (str.equals("flow_day")) {
                f.a.a.a(com.efs.sdk.base.core.config.a.c.a().d.a);
            }
            if (!this.c.containsKey(str)) {
                this.c.put(str, new AtomicInteger());
            }
            this.c.get(str).incrementAndGet();
        }
    }

    private static long a(Map<String, String> map, String str, String str2) {
        long longValue = b.get(str).longValue();
        if (map == null || !map.containsKey(str2) || TextUtils.isEmpty(map.get(str2))) {
            return longValue;
        }
        try {
            return Long.parseLong(map.get(str2));
        } catch (Throwable th) {
            Log.w("efs.flow", "get max flow error", th);
            return longValue;
        }
    }

    private static List<String> a(String str, String str2, String str3) {
        ArrayList arrayList = new ArrayList();
        arrayList.add(str);
        if (!TextUtils.isEmpty(str2)) {
            arrayList.add(str + "_" + str2);
        }
        if (!TextUtils.isEmpty(str3) && !"unknown".equalsIgnoreCase(str3)) {
            arrayList.add(str + "_" + str3);
        }
        if (!TextUtils.isEmpty(str2) && !TextUtils.isEmpty(str3)) {
            arrayList.add(str + "_" + str2 + "_" + str3);
        }
        return arrayList;
    }

    public final boolean a(String str, long j) {
        String a2 = b.a.a().a();
        boolean z = true;
        for (Map.Entry<String, Long> entry : a.entrySet()) {
            z = a(entry.getKey(), entry.getValue().longValue(), str, a2, j);
            if (!z) {
                break;
            }
        }
        return z;
    }
}