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(); } } }