Add decompiled APK source code (JADX)

- 28,932 files
- Full Java source code
- Smali files
- Resources

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-02-18 14:52:23 -08:00
parent cc210a65ea
commit f9d20bb3fc
26991 changed files with 2541449 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
package com.mbridge.msdk.foundation.download.resource;
import com.mbridge.msdk.foundation.download.database.IDatabaseHelper;
/* loaded from: classes4.dex */
interface IResourceStrategy {
String getResourceStrategyName();
void processResource(MBResourceManager mBResourceManager, IDatabaseHelper iDatabaseHelper, ResourceConfig resourceConfig);
}

View File

@@ -0,0 +1,132 @@
package com.mbridge.msdk.foundation.download.resource;
import android.text.TextUtils;
import com.mbridge.msdk.foundation.download.core.ExecutorManager;
import com.mbridge.msdk.foundation.download.core.GlobalComponent;
import com.mbridge.msdk.foundation.download.resource.stream.DownloadFileOutputStream;
import com.mbridge.msdk.foundation.download.resource.stream.FileDownloadRandomAccessDownloadFile;
import com.mbridge.msdk.foundation.download.utils.Objects;
import com.mbridge.msdk.foundation.download.utils.UnzipUtility;
import com.mbridge.msdk.foundation.tools.SameMD5;
import com.mbridge.msdk.foundation.tools.ad;
import java.io.File;
import java.io.IOException;
import java.math.BigInteger;
import java.net.URL;
import java.security.MessageDigest;
import java.util.Queue;
/* loaded from: classes4.dex */
public class MBResourceManager {
private static volatile MBResourceManager MBResourceManager;
private MBResourceManager() {
}
public void deleteFile(File file) {
if (file == null || !file.exists()) {
return;
}
if (file.isFile()) {
file.delete();
return;
}
File[] listFiles = file.listFiles();
if (listFiles != null) {
for (File file2 : listFiles) {
deleteFile(new File(file2.getAbsolutePath()));
}
}
file.delete();
}
public void deleteFile(String str) {
deleteFile(new File(str));
}
public void executeResourceStrategy(final ResourceConfig resourceConfig) {
final Queue<ResourceStrategy> resourceStrategyQueue;
if (resourceConfig == null || resourceConfig.getResourceStrategyQueue() == null || resourceConfig.getResourceStrategyQueue().isEmpty() || (resourceStrategyQueue = resourceConfig.getResourceStrategyQueue()) == null || resourceStrategyQueue.isEmpty()) {
return;
}
GlobalComponent.getInstance().getLogger().log("ResourceStrategy", "配置的资源管理策略数量: " + resourceStrategyQueue.size());
ExecutorManager.getInstance().getExecutorSupplier().getLruCacheThreadTasks().execute(new Runnable() { // from class: com.mbridge.msdk.foundation.download.resource.MBResourceManager.1
@Override // java.lang.Runnable
public void run() {
while (true) {
ResourceStrategy resourceStrategy = (ResourceStrategy) resourceStrategyQueue.poll();
if (resourceStrategy == null) {
return;
}
ResourceStrategyExecutor resourceStrategyExecutor = new ResourceStrategyExecutor(resourceStrategy);
GlobalComponent.getInstance().getLogger().log("ResourceStrategy", "执行策略: " + resourceStrategyExecutor.getResourceStrategyName());
MBResourceManager unused = MBResourceManager.MBResourceManager;
resourceStrategyExecutor.processResource(MBResourceManager.getInstance(), GlobalComponent.getInstance().getDatabaseHelper(), resourceConfig);
}
}
});
}
public static MBResourceManager getInstance() {
if (MBResourceManager == null) {
synchronized (MBResourceManager.class) {
try {
if (MBResourceManager == null) {
MBResourceManager = new MBResourceManager();
}
} finally {
}
}
}
return MBResourceManager;
}
public DownloadFileOutputStream getDownloadFileOutputStream(File file) throws IOException {
if (file == null) {
throw new IOException("file is null");
}
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
file.createNewFile();
return new FileDownloadRandomAccessDownloadFile(file);
}
public String getDownloadId(String str) {
try {
URL url = new URL(str);
String str2 = url.getProtocol() + "://" + url.getHost() + url.getPath();
MessageDigest messageDigest = MessageDigest.getInstance(SameMD5.TAG);
messageDigest.update(str2.getBytes("UTF-8"));
return new BigInteger(1, messageDigest.digest()).toString(16);
} catch (Exception unused) {
return str;
}
}
public long getFileSize(File file, String str, String str2) {
if (Objects.exists(file, str, str2)) {
try {
return file.length();
} catch (Exception unused) {
}
}
return 0L;
}
public void unZip(String str, String str2) throws IOException {
if (TextUtils.isEmpty(str) || TextUtils.isEmpty(str2)) {
throw new IOException("zipFilePath or destDirectory is null");
}
try {
try {
if (new UnzipUtility().unzip(str, str2) != 0) {
ad.b(str, str2);
}
} catch (Exception unused) {
}
} catch (Exception unused2) {
ad.b(str, str2);
}
}
}

View File

@@ -0,0 +1,106 @@
package com.mbridge.msdk.foundation.download.resource;
import com.mbridge.msdk.foundation.download.DownloadResourceType;
import java.util.ArrayDeque;
import java.util.HashMap;
import java.util.Map;
import java.util.Queue;
/* loaded from: classes4.dex */
public class ResourceConfig {
private long maxStorageSpace;
private Map<String, Long> maxStorageSpacePerResourceType;
private long maxStorageTime;
private Map<String, Long> maxStorageTimePerResourceType;
private Queue<ResourceStrategy> resourceStrategyQueue;
public long getMaxStorageSpace() {
return this.maxStorageSpace;
}
public Map<String, Long> getMaxStorageSpacePerResourceType() {
return this.maxStorageSpacePerResourceType;
}
public long getMaxStorageTime() {
return this.maxStorageTime;
}
public Map<String, Long> getMaxStorageTimePerResourceType() {
return this.maxStorageTimePerResourceType;
}
public Queue<ResourceStrategy> getResourceStrategyQueue() {
return this.resourceStrategyQueue;
}
private ResourceConfig(Builder builder) {
this.maxStorageSpace = builder.maxStorageSpace;
this.maxStorageTime = builder.maxStorageTime;
this.maxStorageSpacePerResourceType = builder.maxStorageSpacePerResourceType;
this.maxStorageTimePerResourceType = builder.maxStorageTimePerResourceType;
this.resourceStrategyQueue = builder.resourceStrategyQueue;
}
public long getMaxStorageSpace(DownloadResourceType downloadResourceType) {
Map<String, Long> map = this.maxStorageSpacePerResourceType;
if (map == null || !map.containsKey(downloadResourceType.name())) {
return 0L;
}
return this.maxStorageSpacePerResourceType.get(downloadResourceType.name()).longValue();
}
public long getMaxStorageTime(DownloadResourceType downloadResourceType) {
Map<String, Long> map = this.maxStorageTimePerResourceType;
if (map == null || !map.containsKey(downloadResourceType.name())) {
return 0L;
}
return this.maxStorageTimePerResourceType.get(downloadResourceType.name()).longValue();
}
public static class Builder {
private long maxStorageSpace;
private Map<String, Long> maxStorageSpacePerResourceType;
private long maxStorageTime;
private Map<String, Long> maxStorageTimePerResourceType;
private Queue<ResourceStrategy> resourceStrategyQueue;
public Builder setMaxStorageSpace(long j) {
this.maxStorageSpace = j;
return this;
}
public Builder setMaxStorageTime(long j) {
this.maxStorageTime = j;
return this;
}
public Builder addMaxStorageSpace(DownloadResourceType downloadResourceType, long j) {
if (this.maxStorageSpacePerResourceType == null) {
this.maxStorageSpacePerResourceType = new HashMap();
}
this.maxStorageSpacePerResourceType.put(downloadResourceType.name(), Long.valueOf(j));
return this;
}
public Builder addMaxStorageTime(DownloadResourceType downloadResourceType, long j) {
if (this.maxStorageTimePerResourceType == null) {
this.maxStorageTimePerResourceType = new HashMap();
}
this.maxStorageTimePerResourceType.put(downloadResourceType.name(), Long.valueOf(j));
return this;
}
public Builder addResourceStrategy(ResourceStrategy resourceStrategy) {
if (this.resourceStrategyQueue == null) {
this.resourceStrategyQueue = new ArrayDeque();
}
this.resourceStrategyQueue.add(resourceStrategy);
return this;
}
public ResourceConfig build() {
return new ResourceConfig(this);
}
}
}

View File

@@ -0,0 +1,6 @@
package com.mbridge.msdk.foundation.download.resource;
/* loaded from: classes4.dex */
public abstract class ResourceStrategy implements IResourceStrategy {
protected static final String TAG = "ResourceStrategy";
}

View File

@@ -0,0 +1,29 @@
package com.mbridge.msdk.foundation.download.resource;
import com.mbridge.msdk.foundation.download.database.IDatabaseHelper;
/* loaded from: classes4.dex */
class ResourceStrategyExecutor implements IResourceStrategy {
private ResourceStrategy resourceStrategy;
public ResourceStrategyExecutor(ResourceStrategy resourceStrategy) {
this.resourceStrategy = resourceStrategy;
}
@Override // com.mbridge.msdk.foundation.download.resource.IResourceStrategy
public String getResourceStrategyName() {
return this.resourceStrategy.getResourceStrategyName();
}
@Override // com.mbridge.msdk.foundation.download.resource.IResourceStrategy
public void processResource(MBResourceManager mBResourceManager, IDatabaseHelper iDatabaseHelper, ResourceConfig resourceConfig) {
ResourceStrategy resourceStrategy = this.resourceStrategy;
if (resourceStrategy != null) {
try {
resourceStrategy.processResource(mBResourceManager, iDatabaseHelper, resourceConfig);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}

View File

@@ -0,0 +1,16 @@
package com.mbridge.msdk.foundation.download.resource.stream;
import java.io.IOException;
/* loaded from: classes4.dex */
public interface DownloadFileOutputStream {
void close() throws IOException;
void flushAndSync() throws IOException;
void seek(long j) throws IOException, IllegalAccessException;
void setLength(long j) throws IOException, IllegalAccessException;
void write(byte[] bArr, int i, int i2) throws IOException;
}

View File

@@ -0,0 +1,53 @@
package com.mbridge.msdk.foundation.download.resource.stream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileDescriptor;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;
/* loaded from: classes4.dex */
public class FileDownloadRandomAccessDownloadFile implements DownloadFileOutputStream {
private final BufferedOutputStream bufferedOutputStream;
private final FileDescriptor fileDescriptor;
private final RandomAccessFile randomAccess;
public FileDownloadRandomAccessDownloadFile(File file) throws IOException {
RandomAccessFile randomAccessFile = new RandomAccessFile(file, "rw");
this.randomAccess = randomAccessFile;
this.fileDescriptor = randomAccessFile.getFD();
this.bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(randomAccessFile.getFD()));
}
public static DownloadFileOutputStream create(File file) throws IOException {
return new FileDownloadRandomAccessDownloadFile(file);
}
@Override // com.mbridge.msdk.foundation.download.resource.stream.DownloadFileOutputStream
public void close() throws IOException {
this.bufferedOutputStream.close();
this.randomAccess.close();
}
@Override // com.mbridge.msdk.foundation.download.resource.stream.DownloadFileOutputStream
public void flushAndSync() throws IOException {
this.bufferedOutputStream.flush();
this.fileDescriptor.sync();
}
@Override // com.mbridge.msdk.foundation.download.resource.stream.DownloadFileOutputStream
public void seek(long j) throws IOException {
this.randomAccess.seek(j);
}
@Override // com.mbridge.msdk.foundation.download.resource.stream.DownloadFileOutputStream
public void setLength(long j) throws IOException {
this.randomAccess.setLength(j);
}
@Override // com.mbridge.msdk.foundation.download.resource.stream.DownloadFileOutputStream
public void write(byte[] bArr, int i, int i2) throws IOException {
this.bufferedOutputStream.write(bArr, i, i2);
}
}