package jadx.core.xmlgen;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.util.List;
import jadx.api.JadxDecompiler;
import jadx.api.ResourceFile;
import jadx.api.ResourceType;
import jadx.core.codegen.CodeWriter;
public class ResourcesSaver implements Runnable {
private final ResourceFile resourceFile;
private File outDir;
private static final Logger LOG = LoggerFactory.getLogger(JadxDecompiler.class);
public ResourcesSaver(File outDir, ResourceFile resourceFile) {
this.resourceFile = resourceFile;
this.outDir = outDir;
}
@Override
public void run() {
if (!ResourceType.isSupportedForUnpack(resourceFile.getType())) {
return;
}
ResContainer rc = resourceFile.getContent();
if (rc != null) {
saveResources(rc);
}
}
private void saveResources(ResContainer rc) {
if (rc == null) {
return;
}
List<ResContainer> subFiles = rc.getSubFiles();
if (subFiles.isEmpty()) {
CodeWriter cw = rc.getContent();
if (cw != null) {
LOG.info("Processing "+rc.getFileName());
cw.save(new File(outDir, rc.getFileName()));
}
} else {
for (ResContainer subFile : subFiles) {
saveResources(subFile);
}
}
}
}