APK反编译源代码展示 - 南明离火平台提供

应用版本信息
应用名称:FreeTelec
版本号:1.13.0
包名称:fr.r0ro.android.FreeTelec

MD5 校验值:1c0b849068c6d731df1325f993a128f9

反编译源代码说明

a.java 文件包含反编译后的源代码,请注意,该内容仅供学习和参考使用,不得用于非法用途。


package c4;

import android.content.Context;
import android.util.Log;
import android.util.SparseArray;
import android.util.SparseIntArray;
import com.google.android.gms.ads.RequestConfiguration;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.StringWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Date;
import java.util.Vector;
import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONTokener;

public final class a {

    private static volatile a f961c;

    private static volatile Vector<fr.r0ro.android.FreeTelec.b> f962d = new Vector<>();

    private static volatile SparseIntArray f963e = new SparseIntArray();

    private static SparseArray<Date> f964f = new SparseArray<>();

    public static String f965g = RequestConfiguration.MAX_AD_CONTENT_RATING_UNSPECIFIED;

    private boolean f966a = false;

    private boolean f967b = false;

    private a() {
    }

    public static a b() {
        if (f961c == null) {
            synchronized (a.class) {
                if (f961c == null) {
                    f961c = new a();
                }
            }
        }
        return f961c;
    }

    private static void h(String str) {
    }

    public fr.r0ro.android.FreeTelec.b a(int i6) {
        if (this.f966a && i6 < f962d.size()) {
            return f962d.elementAt(i6);
        }
        return null;
    }

    public boolean c() {
        return this.f966a;
    }

    public void d(Context context) {
        synchronized (this) {
            if (!this.f966a && !this.f967b) {
                this.f967b = true;
                h("start loading");
                if (!f965g.isEmpty()) {
                    h("using already loaded channel list");
                    g(context);
                    return;
                }
                h("need to download remote channel list");
                try {
                    try {
                        HttpURLConnection httpURLConnection = (HttpURLConnection) new URL("https://static.android.r0ro.fr/freeTelec/backup.txt").openConnection();
                        InputStream inputStream = httpURLConnection.getInputStream();
                        StringWriter stringWriter = new StringWriter();
                        char[] cArr = new char[4096];
                        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
                        while (true) {
                            int read = bufferedReader.read(cArr);
                            if (read != -1) {
                                stringWriter.write(cArr, 0, read);
                            } else {
                                f965g = stringWriter.toString();
                                h("Got channel list " + f965g);
                                stringWriter.close();
                                bufferedReader.close();
                                inputStream.close();
                                httpURLConnection.disconnect();
                                g(context);
                                synchronized (this) {
                                    this.f967b = false;
                                }
                                return;
                            }
                        }
                    } catch (Exception e6) {
                        Log.e("ChannelList", "error loading channels : " + e6);
                        synchronized (this) {
                            this.f967b = false;
                        }
                    }
                } catch (Throwable th) {
                    synchronized (this) {
                        this.f967b = false;
                        throw th;
                    }
                }
            }
        }
    }

    public int e(int i6) {
        if (this.f966a) {
            return f963e.get(i6);
        }
        return 0;
    }

    public int f() {
        if (this.f966a) {
            return f962d.size();
        }
        return 0;
    }

    public void g(Context context) {
        try {
            JSONArray jSONArray = (JSONArray) new JSONTokener(f965g).nextValue();
            if (jSONArray != null) {
                int length = jSONArray.length();
                for (int i6 = 0; i6 < length; i6++) {
                    JSONObject jSONObject = (JSONObject) jSONArray.get(i6);
                    f962d.add(new fr.r0ro.android.FreeTelec.b(jSONObject.getInt("id"), jSONObject.getString("name"), context));
                    f963e.put(jSONObject.getInt("id"), i6);
                    f964f.put(jSONObject.getInt("id"), new Date(0L));
                }
            }
            this.f966a = true;
        } catch (Exception e6) {
            e6.printStackTrace();
        }
    }
}