package com.tns; import java.io.File; import android.content.Context; import android.util.Log; public class AssetExtractor { private native void extractAssets(String apkPath, String input, String outputDir, boolean checkForNewerFiles); private final Logger logger; public AssetExtractor(File libPath, Logger logger) { this.logger = logger; } public void extractAssets(Context context, String inputPath, String outputPath, ExtractPolicy extractPolicy) { FileExtractor extractor = extractPolicy.extractor(); if (extractor != null) { boolean success = extractor.extract(context); if (logger.isEnabled()) { logger.write("extract returned " + success); } } else if (extractPolicy.shouldExtract(context)) { String apkPath = context.getPackageCodePath(); boolean forceOverwrite = extractPolicy.forceOverwrite(); extractAssets(apkPath, inputPath, outputPath, forceOverwrite); } else { if (logger.isEnabled()) { logger.write("Skipped extraction of assets in " + inputPath); } } } }