正在查看: 哔哩哔哩 v1.6.6 应用的 ModResourceProvider.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: 哔哩哔哩 v1.6.6 应用的 ModResourceProvider.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.bilibili.lib.mod;
import android.annotation.SuppressLint;
import android.content.ContentProvider;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import bl.att;
import bl.kv;
import bl.lm;
import bl.rc;
import bl.rn;
import bl.rp;
import bl.rr;
import bl.rt;
import bl.sb;
import bl.sd;
import bl.sm;
import bl.sn;
import bl.so;
import bl.sr;
import bl.ss;
import java.io.File;
import java.util.concurrent.atomic.AtomicBoolean;
public class ModResourceProvider extends ContentProvider {
private static ModConfig a;
@SuppressLint({"StaticFieldLeak"})
private static sb b;
private static AtomicBoolean c = new AtomicBoolean(false);
@Override
public int delete(@NonNull Uri uri, @Nullable String str, @Nullable String[] strArr) {
return 0;
}
@Override
@Nullable
public String getType(@NonNull Uri uri) {
return null;
}
@Override
@Nullable
public Uri insert(@NonNull Uri uri, @Nullable ContentValues contentValues) {
return null;
}
@Override
@Nullable
public Cursor query(@NonNull Uri uri, @Nullable String[] strArr, @Nullable String str, @Nullable String[] strArr2, @Nullable String str2) {
return null;
}
@Override
public int update(@NonNull Uri uri, @Nullable ContentValues contentValues, @Nullable String str, @Nullable String[] strArr) {
return 0;
}
public static ModConfig a() {
kv.a(a, "Initialize ModResourceProvider at first!", new Object[0]);
return a;
}
private static sb b() {
kv.a(a, "Initialize ModResourceProvider at first!", new Object[0]);
return b;
}
@NonNull
static Uri a(@NonNull Context context) {
return Uri.parse("content://" + context.getPackageName() + ".provider.modresource");
}
public static void a(Context context, @NonNull sm smVar) {
try {
context.getContentResolver().notifyChange(smVar.c(), null);
} catch (Exception e) {
att.a(e);
boolean z = false;
if (e()) {
try {
rt.a().onChange(false, smVar.c());
z = true;
} catch (Exception unused) {
}
}
rp.c("ModResourceProvider", "notify change failed: " + smVar.toString());
rr.a("notifyChanged", e.getMessage(), z);
}
}
@Override
public boolean onCreate() {
if (getContext() == null) {
throw new NullPointerException("Cannot create provider on null context");
}
return true;
}
@Override
@Nullable
public Bundle call(@NonNull String str, @Nullable String str2, @Nullable Bundle bundle) {
char c2;
switch (str.hashCode()) {
case -1949226984:
if (str.equals("updateAll")) {
c2 = 4;
break;
}
c2 = 65535;
break;
case -838846263:
if (str.equals("update")) {
c2 = 3;
break;
}
c2 = 65535;
break;
case 3237136:
if (str.equals("init")) {
c2 = 0;
break;
}
c2 = 65535;
break;
case 107944136:
if (str.equals("query")) {
c2 = 2;
break;
}
c2 = 65535;
break;
case 917865689:
if (str.equals("init_is_finish")) {
c2 = 1;
break;
}
c2 = 65535;
break;
default:
c2 = 65535;
break;
}
switch (c2) {
case 0:
a(getContext(), bundle);
return null;
case 1:
return c();
case 2:
return a(bundle);
case 3:
b(bundle);
return null;
case 4:
d();
return null;
default:
return null;
}
}
private static synchronized void a(Context context, Bundle bundle) {
synchronized (ModResourceProvider.class) {
if (bundle != null) {
if (!c.get()) {
bundle.setClassLoader(ModConfig.class.getClassLoader());
ModConfig modConfig = (ModConfig) bundle.getParcelable("bundle_config");
if (modConfig != null) {
ss.a(modConfig.a());
a = modConfig;
}
if (ss.a()) {
b = rc.a().c(context);
c.set(true);
} else {
rp.b("ModResourceProvider", "online params not allow to use mod manager");
}
}
}
}
}
private static Bundle c() {
if (!c.get()) {
rp.c("ModResourceProvider", "isInitFinish: mod manager is disabled");
return null;
}
boolean a2 = b.a();
Bundle bundle = new Bundle();
bundle.putBoolean("bundle_boolean", a2);
return bundle;
}
private static Bundle a(Bundle bundle) {
ModResource a2;
if (bundle == null || !c.get()) {
rp.c("ModResourceProvider", "query: mod manager is disabled or params is null");
return null;
}
Uri uri = (Uri) bundle.getParcelable("bundle_uri");
if (uri == null || (a2 = b().a((sn) sr.a(uri, sn.class))) == null) {
return null;
}
Bundle bundle2 = new Bundle();
bundle2.putParcelable("bundle_result_parcel", a2);
return bundle2;
}
private static void b(Bundle bundle) {
if (bundle == null || !c.get()) {
rp.c("ModResourceProvider", "update: mod manager is disabled or params is null");
return;
}
Uri uri = (Uri) bundle.getParcelable("bundle_uri");
if (uri != null) {
b().a((so) sr.a(uri, so.class));
}
}
private static void d() {
if (!c.get()) {
rp.c("ModResourceProvider", "updateAll: mod manager is disabled");
} else {
b().b();
}
}
private static ModResource b(Context context, sn snVar) {
try {
rn rnVar = new rn(context);
String a2 = snVar.a();
String b2 = snVar.b();
sd b3 = rnVar.b(a2, b2);
if (b3 == null || !b3.d()) {
return null;
}
File b4 = rnVar.b(a2, b2, b3.a());
if (b4.isDirectory()) {
return new ModResource(b4, a2, b2);
}
return null;
} catch (Exception unused) {
rp.c("ModResourceProvider", "queryStandby failed");
return null;
}
}
private static boolean e() {
return lm.b();
}
@NonNull
public static ModResource a(Context context, sn snVar) {
ModResource b2;
long currentTimeMillis = System.currentTimeMillis();
Bundle bundle = new Bundle();
bundle.putParcelable("bundle_uri", snVar.c());
try {
b2 = null;
Bundle call = context.getContentResolver().call(a(context), "query", (String) null, bundle);
if (call != null) {
call.setClassLoader(ModResource.class.getClassLoader());
b2 = (ModResource) call.getParcelable("bundle_result_parcel");
}
} catch (Exception e) {
att.a(e);
rp.c("ModResourceProvider", "query failed");
b2 = b(context, snVar);
rr.a("query", e.getMessage(), b2 != null && b2.e());
}
if (b2 == null) {
b2 = new ModResource(snVar);
}
rr.a(context, b2, currentTimeMillis);
StringBuilder sb = new StringBuilder();
sb.append("query: ");
sb.append(b2.b());
sb.append(" is ");
sb.append(b2.e() ? "hit" : "not hit");
rp.a("ModResourceProvider", sb.toString());
return b2;
}
@Override
public void onLowMemory() {
super.onLowMemory();
}
}