Wallkin v1.86859532693版本的 MD5 值为:c3099a56aae2c3706b2239994117cc3a
以下内容为反编译后的 Kid.java 源代码,内容仅作参考
package net.dinglisch.android.taskerm;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.res.AssetFileDescriptor;
import android.content.res.AssetManager;
import android.net.Uri;
import android.os.Bundle;
import android.text.Spanned;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import net.danlew.android.joda.R;
import net.dinglisch.android.taskerm.bh;
public class Kid extends Activity {
private static boolean f11223a = false;
private static int[] f11224b = {446, 428, 427, 444, 445, 447, 426};
private static String[] f11225c = {"com.mobitobi.android.gentlealarm", "org.kaloersoftware.kaloerclock", "com.smartmadsoft.openwatch", "net.artifix.pomodroido", "com.ventel.android.radardroid2", "com.gray101.redditnotify", "com.teslacoilsw.widgetlocker"};
private static int[] f11226d = {R.string.en_gentlealarm, R.string.en_kaloer_clock, R.string.en_openwatch, R.string.en_pomodroido, R.string.en_radardroid, R.string.en_redditnotify, R.string.en_widgetlocker};
private static int[] f11227e = {450, 112, 558, 371, 555, 568, 599, 911, 456, 395, 556, 643, 442, 553, 444, 458};
private static String[] f11228f = {com.google.a.a.a.class.getPackage().getName(), "com.googlecode.android_scripting", "org.damazio.notifier", "com.timsu.astrid", "mobi.beyondpod", "com.dailyroads.v", "com.lakeridge.DueToday", "com.mobitobi.android.gentlealarm", "com.latedroid.juicedefender", "com.latedroid.juicedefender", "com.grazerss", "ocs.android.pro", "com.lslk.sleepbot", "com.zegoggles.smssync", "com.teslacoilsw.flashlight", "com.teslacoilsw.widgetlocker"};
private static int[] g = {R.string.apndroid_label, R.string.sl4a_label, R.string.an_android_notifier, R.string.an_astrid, R.string.an_beyondpod, R.string.an_dailyroads, R.string.an_duetoday, R.string.an_gentlealarm, R.string.jd_label, R.string.jd_label, R.string.an_newsrob, R.string.an_officetalk, R.string.an_sleepbot, R.string.an_smsbackup, R.string.an_teslaled, R.string.an_widgetlocker};
private static String[] h = {"https://play.google.com/store/apps/details?id=com.codecarpet.apndroid.pro", "https://code.google.com/p/android-scripting/downloads/list", null, null, null, null, null, null, null, null, null, null, null, null, null, null};
private static Boolean i = null;
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
ba.a(this, "Kid.onCreate");
cy.a(this, "Kid");
fy e2 = fy.e(this);
if (e2 == null) {
finish();
return;
}
e2.l();
bi C = e2.z(0).C();
if (a(e2, C) && a(e2) && c(e2)) {
MonitorService.d((Context) this, true);
gs.c((Context) this, true);
b();
int l = C.l();
if (e2.i(l)) {
ft j = e2.j(l);
Bundle bundle2 = null;
Intent intent = getIntent();
if (intent != null) {
bundle2 = new Bundle();
Uri data = intent.getData();
if (data != null) {
bundle2.putString("%launch_data", data.toString());
}
}
ExecuteService.a(this, j, 1, -1, -1, -1, (String) null, (List<String>) null, "launch", bundle2);
} else {
bo.c("Kid", "unknown launch task ID " + l);
}
finish();
}
}
public static boolean a() {
if (i == null) {
return false;
}
return i.booleanValue();
}
public static boolean a(Context context) {
if (i == null) {
i = Boolean.valueOf(!context.getPackageName().startsWith("net.dinglisch.android.tasker"));
}
return i.booleanValue();
}
public static void b(Context context) {
boolean b2;
if (f11223a) {
return;
}
if (a(context)) {
SharedPreferences h2 = gs.h(context);
boolean z = !h2.contains("dscl");
if (z) {
SharedPreferences.Editor edit = h2.edit();
edit.putLong(bh.o.f12241a, System.currentTimeMillis());
edit.putLong(bh.o.f12242b, System.currentTimeMillis());
edit.putBoolean("dscl", true);
edit.commit();
}
SharedPreferences g2 = gs.g(context);
SharedPreferences.Editor edit2 = g2.edit();
if (z) {
edit2.putBoolean("mFn", false);
b2 = false;
} else {
b2 = Settings.b(context, g2);
}
if (Settings.d(g2) != b2) {
edit2.putBoolean("mSi", b2);
}
fy e2 = fy.e(context);
if (e2 != null) {
boolean i2 = e2.z(0).C().i();
if (i2 != g2.getBoolean("lEnable", !i2)) {
edit2.putBoolean("leEnle", i2);
edit2.putBoolean("dsd", i2);
edit2.putBoolean("lEnable", i2);
edit2.putBoolean("tEnable", i2);
edit2.putBoolean("lpa", i2);
}
edit2.commit();
}
c(context);
}
f11223a = true;
}
private void a(Dialog dialog) {
dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialogInterface) {
Kid.this.finish();
}
});
dialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialogInterface) {
Kid.this.finish();
}
});
}
private boolean a(fy fyVar) {
boolean z;
PackageManager packageManager = getPackageManager();
int i2 = 0;
while (true) {
if (i2 >= f11228f.length) {
z = true;
break;
}
if (fyVar.e(f11227e[i2])) {
boolean g2 = cr.g(packageManager, f11228f[i2]);
bo.b("Kid", "checkApp: code: " + f11227e[i2] + " pkg: " + f11228f[i2] + " have: " + g2);
if (!g2) {
a(ct.a(this, g[i2], new Object[0]), h[i2]);
z = false;
break;
}
}
i2++;
}
if (z && ((fyVar.F() || fyVar.g(3071)) && !cr.g(packageManager, "net.dinglisch.android.zoom"))) {
a(ct.a(this, (int) R.string.cn_zoom, new Object[0]), cr.b(packageManager) ? "market://details?id=net.dinglisch.android.zoom" : "http://zoom.dinglisch.net/Zoom.apk");
z = false;
}
if (z) {
int i3 = 0;
while (true) {
if (i3 < f11225c.length) {
if (fyVar.g(f11224b[i3]) && !cr.g(packageManager, f11225c[i3])) {
a(ct.a(this, f11226d[i3], new Object[0]), (String) null);
z = false;
break;
}
i3++;
} else {
break;
}
}
}
if (fyVar.g(425) && !cr.b(packageManager, bh.c.f12220a)) {
a(ct.a(this, (int) R.string.en_email_received, new Object[0]), (String) null);
z = false;
}
if (!fyVar.g(424) || cr.b(packageManager, bh.c.f12220a)) {
return z;
}
a(ct.a(this, (int) R.string.en_screebl, new Object[0]), (String) null);
return false;
}
private void a(String str, final String str2) {
Spanned b2;
AlertDialog.Builder builder = new AlertDialog.Builder(this);
boolean z = str2 != null;
if (z) {
b2 = ct.b(this, (int) R.string.dc_kid_missing_component_can_download, ct.a(this, (int) R.string.word_application, new Object[0]).toLowerCase(), str);
} else {
b2 = ct.b(this, (int) R.string.dc_kid_missing_component, ct.a(this, (int) R.string.word_application, new Object[0]).toLowerCase(), str);
}
builder.setMessage(b2);
if (z) {
builder.setNegativeButton(R.string.button_label_no, (DialogInterface.OnClickListener) null);
}
builder.setPositiveButton(R.string.button_label_ok, z ? new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i2) {
gs.a((Context) Kid.this, new Intent("android.intent.action.VIEW", Uri.parse(str2)));
Kid.this.finish();
}
} : null);
AlertDialog create = builder.create();
a(create);
create.show();
}
private HashMap<String, String> b(fy fyVar) {
HashMap<String, String> hashMap = new HashMap<>();
if (fyVar.e(559) || fyVar.e(699)) {
Iterator<ft> it = fyVar.r(0).iterator();
while (it.hasNext()) {
for (c cVar : it.next().A()) {
int i2 = cVar.i();
if ((i2 == 559) || i2 == 699) {
String c2 = cVar.j(1).c();
int indexOf = c2.indexOf(58);
if (indexOf != -1) {
c2 = c2.substring(0, indexOf);
}
if (!c2.equals("default") && !gx.h(c2)) {
hashMap.put(c2, c2);
}
}
}
}
}
return hashMap;
}
private boolean a(fy fyVar, bi biVar) {
HashMap<String, String> a2 = fyVar.a(getPackageManager(), false);
HashMap<String, String> hashMap = new HashMap<>();
for (Map.Entry<String, String> entry : a2.entrySet()) {
if (!biVar.a(entry.getKey())) {
hashMap.put(entry.getKey(), entry.getValue());
}
}
return a(hashMap, ct.a(this, (int) R.string.cn_plugin, new Object[0]).toLowerCase());
}
private boolean c(fy fyVar) {
return a(b(fyVar), ct.a(this, (int) R.string.ttsengineselect_title, new Object[0]).toLowerCase());
}
private boolean a(HashMap<String, String> hashMap, String str) {
PackageManager packageManager = getPackageManager();
for (Map.Entry<String, String> entry : hashMap.entrySet()) {
final String key = entry.getKey();
if (!cr.g(packageManager, key)) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
final boolean b2 = cr.b(packageManager);
builder.setMessage(ct.b(this, b2 ? R.string.dc_kid_missing_component_can_download : R.string.dc_kid_missing_component, str, entry.getValue()));
builder.setNegativeButton(R.string.button_label_no, (DialogInterface.OnClickListener) null).setPositiveButton(R.string.button_label_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i2) {
if (b2) {
Intent intent = new Intent();
intent.setData(Uri.parse("market://details?id=" + key));
Kid.this.startActivity(intent);
}
Kid.this.finish();
}
});
AlertDialog create = builder.create();
a(create);
create.show();
return false;
}
}
return true;
}
public static boolean c(Context context) {
File h2 = gs.h();
if (h2 == null) {
bo.b("Kid", "not unpacking scripts, no external storage");
return false;
}
AssetManager assets = context.getAssets();
if (assets == null) {
bo.b("Kid", "init: no assets");
return false;
}
try {
String[] list = assets.list("kid/sl4a");
if (gs.a((Object[]) list)) {
return false;
}
File file = new File(h2, "sl4a/scripts");
if (gs.e(file)) {
int length = ".mp3".length();
boolean z = true;
for (String str : list) {
String str2 = "kid/sl4a" + File.separator + str;
File file2 = new File(file, str.substring(0, str.length() - length));
long length2 = file2.exists() ? file2.length() : -66L;
bo.b("Kid", str2 + " -> " + file2);
AssetFileDescriptor openFd = assets.openFd(str2);
long length3 = openFd.getLength();
openFd.close();
if (length2 != length3) {
try {
if (gs.a(assets.open(str2), (OutputStream) new FileOutputStream(file2))) {
z = false;
}
} catch (FileNotFoundException e2) {
bo.d("Kid", "unpackScripts: " + e2.getMessage());
}
}
}
return z;
}
return false;
} catch (IOException e3) {
bo.a("Kid", "unpackScripts: ", (Exception) e3);
return false;
}
}
private void b() {
boolean a2 = MonitorService.a((Context) this);
boolean d2 = gs.d(this, MonitorService.class.getName());
bo.b("Kid", "enabled: " + a2 + " running: " + d2);
if (!a2 || d2) {
return;
}
Intent intent = new Intent(this, MonitorService.class);
intent.putExtra("eventType", 9995);
MonitorService.b(this, intent);
}
public static String a(String str) {
return gs.h(str.replace(File.separatorChar, '.'));
}
public static String b(String str) {
return gs.h(str.replace(File.separatorChar, '.'));
}
public static boolean d(Context context) {
return go.b() && go.b(cr.a(context));
}
}