Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(591)

Unified Diff: mojo/runner/android/apk/src/org/chromium/mojo/shell/FileHelper.java

Issue 1189703004: Reland: Build Mojo apps in sub-dirs, like application packages. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Cleanup, move getAssetsList to FileHelper; rename local to cached. Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: mojo/runner/android/apk/src/org/chromium/mojo/shell/FileHelper.java
diff --git a/mojo/runner/android/apk/src/org/chromium/mojo/shell/FileHelper.java b/mojo/runner/android/apk/src/org/chromium/mojo/shell/FileHelper.java
index c41f24f164cc568aa675e4b19175f1cae226bf11..a6d814ed834fec3a4680a7ebd528c9fda2d0e051 100644
--- a/mojo/runner/android/apk/src/org/chromium/mojo/shell/FileHelper.java
+++ b/mojo/runner/android/apk/src/org/chromium/mojo/shell/FileHelper.java
@@ -12,13 +12,18 @@ import org.chromium.base.Log;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
+import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.io.InputStreamReader;
import java.io.OutputStream;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
@@ -34,6 +39,10 @@ class FileHelper {
private static final String TEMP_FILE_PREFIX = "temp-";
// Prefix used when naming timestamp files.
private static final String TIMESTAMP_PREFIX = "asset_timestamp-";
+ // Name of the file listing assets to extract with one asset file per line.
+ private static final String ASSETS_LIST_NAME = "assets_list";
+ // Directory where applications cached with the shell will be extracted.
+ private static final String CACHED_APP_DIRECTORY = "cached_apps";
/**
* Used to indicate the type of destination file that should be created.
@@ -75,6 +84,37 @@ class FileHelper {
}
/**
+ * Returns the directory where cached applications will be extracted.
+ */
+ public static File getCachedAppsDir(Context context) {
+ return context.getDir(CACHED_APP_DIRECTORY, Context.MODE_PRIVATE);
+ }
+
+ /**
+ * Returns the names of the assets in ASSETS_LIST_NAME.
+ */
+ public static List<String> getAssetsList(Context context) throws IOException {
+ List<String> results = new ArrayList<String>();
+ BufferedReader reader = new BufferedReader(new InputStreamReader(
+ context.getAssets().open(ASSETS_LIST_NAME), Charset.forName("UTF-8")));
+
+ try {
+ String line;
+ while ((line = reader.readLine()) != null) {
+ line = line.trim();
+ // These two are read by the system and don't need to be extracted.
+ if (!line.isEmpty() && !line.equals("bootstrap_java.dex.jar")
+ && !line.equals("libbootstrap.so")) {
+ results.add(line);
+ }
+ }
+ } finally {
+ reader.close();
+ }
+ return results;
+ }
+
+ /**
* Invoke prior to extracting any assets into {@code directory}. If necessary deletes all the
* files in the specified directory. The return value must be supplied to {@link
*createTimestampIfNecessary}.

Powered by Google App Engine
This is Rietveld 408576698