package cn.jiguang.ak; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.ComponentInfo; import android.content.pm.PackageManager; import android.content.pm.ProviderInfo; import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; import android.os.Build; import android.text.TextUtils; import cn.jiguang.aj.c; import cn.jiguang.o.d; import cn.jpush.android.api.JPushInterface; import cn.jpush.android.service.DActivity; import cn.jpush.android.service.DaemonService; import cn.jpush.android.service.DownloadProvider; import java.util.List; public class a { private static Boolean a; private static Boolean b; private static final String c = "Xiaomi".toLowerCase(); static c a(Context context, PackageManager packageManager, String str, String str2) { StringBuilder sb; String str3; String str4; if (packageManager != null && !TextUtils.isEmpty(str)) { try { int checkPermission = packageManager.checkPermission(str + JPushInterface.PUSH_MESSAGE_PERMISSION_POSTFIX, str); ApplicationInfo applicationInfo = packageManager.getApplicationInfo(str, 128); if (!(applicationInfo == null || applicationInfo.metaData == null)) { String b2 = d.b(context); Intent intent = new Intent(); intent.setClassName(str, "cn.jpush.android.service.PushService"); boolean z = false; List<ResolveInfo> queryIntentServices = packageManager.queryIntentServices(intent, 0); if (!(queryIntentServices == null || queryIntentServices.size() == 0)) { z = true; } if (checkPermission == 0 && z && !TextUtils.isEmpty(b2) && b2.length() == 24) { c cVar = new c(str, str2, applicationInfo.targetSdkVersion); ComponentInfo a2 = d.a(context, str, (Class<?>) DownloadProvider.class); if (a2 instanceof ProviderInfo) { ProviderInfo providerInfo = (ProviderInfo) a2; if (providerInfo.exported && providerInfo.enabled && providerInfo.authority != null) { if (TextUtils.equals(str + ".DownloadProvider", providerInfo.authority)) { cVar.d = providerInfo.authority; } } } return cVar; } } } catch (PackageManager.NameNotFoundException e) { str3 = "JWakeComponentHelper"; sb = new StringBuilder(); sb.append("checkWhetherToStart exception:"); str4 = e.toString(); sb.append(str4); cn.jiguang.af.a.d(str3, sb.toString()); return null; } catch (Throwable th) { str3 = "JWakeComponentHelper"; sb = new StringBuilder(); sb.append("checkWhetherToStart throwable:"); str4 = th.getMessage(); sb.append(str4); cn.jiguang.af.a.d(str3, sb.toString()); return null; } } return null; } public static void a(Context context, boolean z) { a(context, z, "cn.jpush.android.intent.DaemonService", DaemonService.class); b(context, z, DownloadProvider.class); if (b(context)) { a(context, z, DActivity.class); } } private static void a(Context context, boolean z, Class cls) { if (context == null) { try { cn.jiguang.af.a.e("JWakeComponentHelper", "context is null, give up setComponentEnabled"); } catch (Throwable th) { cn.jiguang.af.a.d("JWakeComponentHelper", "setActivityEnabled throwable:" + th.getMessage()); } } else { PackageManager packageManager = context.getApplicationContext().getPackageManager(); if (packageManager == null) { cn.jiguang.af.a.e("JWakeComponentHelper", "PackageManager is null, give up setComponentEnabled"); return; } int i = z ? 1 : 2; ComponentName componentName = new ComponentName(context, cls); if (packageManager.getComponentEnabledSetting(componentName) == i) { cn.jiguang.af.a.a("JWakeComponentHelper", componentName.getClassName() + " enabled is :" + z + ", no need repeat set."); return; } cn.jiguang.af.a.a("JWakeComponentHelper", componentName + " setActivityEnabledSetting newState: " + i); packageManager.setComponentEnabledSetting(componentName, i, 1); } } private static void a(Context context, boolean z, String str, Class cls) { if (context == null) { try { cn.jiguang.af.a.e("JWakeComponentHelper", "context is null, give up setComponentEnabled"); } catch (Throwable th) { cn.jiguang.af.a.d("JWakeComponentHelper", "setServiceEnabled throwable:" + th.getMessage()); } } else { PackageManager packageManager = context.getApplicationContext().getPackageManager(); if (packageManager == null) { cn.jiguang.af.a.e("JWakeComponentHelper", "PackageManager is null, give up setComponentEnabled"); return; } String packageName = context.getPackageName(); int i = z ? 1 : 2; Intent intent = new Intent(); intent.setPackage(packageName); intent.setAction(str); List<ResolveInfo> queryIntentServices = packageManager.queryIntentServices(intent, 512); if (queryIntentServices == null || queryIntentServices.isEmpty()) { cn.jiguang.af.a.d("JWakeComponentHelper", "cant't find DaemonService"); return; } for (ResolveInfo resolveInfo : queryIntentServices) { if (resolveInfo != null) { ServiceInfo serviceInfo = resolveInfo.serviceInfo; if (serviceInfo != null) { String str2 = serviceInfo.name; if (TextUtils.isEmpty(str2)) { continue; } else { try { Class<?> cls2 = Class.forName(str2); if (cls2 != null) { if (cls.isAssignableFrom(cls2)) { ComponentName componentName = new ComponentName(serviceInfo.packageName, serviceInfo.name); cn.jiguang.af.a.a("JWakeComponentHelper", componentName + " setComponentEnabledSetting newState: " + i); if (packageManager.getComponentEnabledSetting(componentName) == i) { cn.jiguang.af.a.a("JWakeComponentHelper", "DaemonService enabled is :" + z + ", no need repeat set."); return; } packageManager.setComponentEnabledSetting(componentName, i, 1); } else { cn.jiguang.af.a.e("JWakeComponentHelper", "give up setting, as " + str2 + " is not extend from: " + cls.getName()); } } } catch (ClassNotFoundException unused) { cn.jiguang.af.a.d("JWakeComponentHelper", "cant't find service class:" + str2); } } } } } } } public static boolean a(Context context) { Boolean bool = b; if (bool != null) { return bool.booleanValue(); } b = Boolean.valueOf(c(context)); return b.booleanValue(); } private static boolean a(Context context, String str) { try { PackageManager packageManager = context.getPackageManager(); Intent intent = new Intent(str); intent.addCategory(context.getPackageName()); return !packageManager.queryIntentActivities(intent, 0).isEmpty(); } catch (Throwable th) { cn.jiguang.af.a.e("JWakeComponentHelper", "hasActivityIntentFilter error:" + th.getMessage()); return false; } } public static boolean a(Context context, String str, Intent intent, boolean z) { try { PackageManager packageManager = context.getPackageManager(); if (packageManager == null) { return false; } intent.setPackage(str); if (!z) { intent.setAction("cn.jpush.android.intent.DActivity"); intent.addCategory(str); } ResolveInfo resolveActivity = packageManager.resolveActivity(intent, 0); if (resolveActivity == null) { cn.jiguang.af.a.d("JWakeComponentHelper", "getDActivity resolveInfo was null from:" + str); return false; } cn.jiguang.af.a.a("JWakeComponentHelper", "target actvity name:" + resolveActivity.activityInfo.name + ", theme:" + resolveActivity.activityInfo.theme + ",exported:" + resolveActivity.activityInfo.exported); if (resolveActivity.activityInfo.exported) { if (resolveActivity.activityInfo.enabled) { if (!z && !"jpush.custom".equals(resolveActivity.activityInfo.taskAffinity)) { cn.jiguang.af.a.d("JWakeComponentHelper", "activity taskAffinity must be jpush.custom"); return false; } else if (resolveActivity.activityInfo.theme != 16973840) { cn.jiguang.af.a.d("JWakeComponentHelper", resolveActivity.activityInfo.name + "activity theme must config as @android:style/Theme.Translucent.NoTitleBar"); return false; } else { cn.jiguang.af.a.a("JWakeComponentHelper", "dIntent:" + intent); return true; } } } cn.jiguang.af.a.d("JWakeComponentHelper", "activity muse be exported and enabled"); return false; } catch (Throwable th) { cn.jiguang.af.a.d("JWakeComponentHelper", "get deeplink activity error#" + th); return false; } } private static void b(Context context, boolean z, Class cls) { if (context == null) { try { cn.jiguang.af.a.e("JWakeComponentHelper", "context is null, give up setComponentEnabled"); } catch (Throwable th) { cn.jiguang.af.a.d("JWakeComponentHelper", "setContentProviderEnabled throwable:" + th.getMessage()); } } else { PackageManager packageManager = context.getApplicationContext().getPackageManager(); if (packageManager == null) { cn.jiguang.af.a.e("JWakeComponentHelper", "PackageManager is null, give up setComponentEnabled"); return; } int i = z ? 1 : 2; ComponentName componentName = new ComponentName(context, cls); if (packageManager.getComponentEnabledSetting(componentName) == i) { cn.jiguang.af.a.a("JWakeComponentHelper", componentName.getClassName() + " enabled is :" + z + ", no need repeat set."); return; } cn.jiguang.af.a.a("JWakeComponentHelper", componentName + " setDownloadProviderEnabledSetting newState: " + i); packageManager.setComponentEnabledSetting(componentName, i, 1); } } public static boolean b(Context context) { Boolean bool = a; if (bool != null) { return bool.booleanValue(); } a = Boolean.valueOf(a(context, "cn.jpush.android.intent.DActivity")); return a.booleanValue(); } private static boolean c(Context context) { try { String str = Build.MANUFACTURER; return !TextUtils.isEmpty(str) && TextUtils.equals(c, str.toLowerCase()); } catch (Throwable th) { cn.jiguang.af.a.e("JWakeComponentHelper", "get MANUFACTURER failed - error:" + th); return false; } } }