summaryrefslogtreecommitdiffstats
path: root/updater_sample/src/com/example/android/systemupdatersample/util/UpdateConfigs.java
diff options
context:
space:
mode:
Diffstat (limited to 'updater_sample/src/com/example/android/systemupdatersample/util/UpdateConfigs.java')
-rw-r--r--updater_sample/src/com/example/android/systemupdatersample/util/UpdateConfigs.java26
1 files changed, 21 insertions, 5 deletions
diff --git a/updater_sample/src/com/example/android/systemupdatersample/util/UpdateConfigs.java b/updater_sample/src/com/example/android/systemupdatersample/util/UpdateConfigs.java
index 71d4df8ab..5080cb6d8 100644
--- a/updater_sample/src/com/example/android/systemupdatersample/util/UpdateConfigs.java
+++ b/updater_sample/src/com/example/android/systemupdatersample/util/UpdateConfigs.java
@@ -26,14 +26,16 @@ import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
+import java.util.Optional;
/**
* Utility class for working with json update configurations.
*/
public final class UpdateConfigs {
- private static final String UPDATE_CONFIGS_ROOT = "configs/";
+ public static final String UPDATE_CONFIGS_ROOT = "configs/";
/**
* @param configs update configs
@@ -48,13 +50,12 @@ public final class UpdateConfigs {
* @return configs root directory
*/
public static String getConfigsRoot(Context context) {
- return Paths.get(context.getFilesDir().toString(),
- UPDATE_CONFIGS_ROOT).toString();
+ return Paths
+ .get(context.getFilesDir().toString(), UPDATE_CONFIGS_ROOT)
+ .toString();
}
/**
- * It parses only {@code .json} files.
- *
* @param context application context
* @return list of configs from directory {@link UpdateConfigs#getConfigsRoot}
*/
@@ -80,5 +81,20 @@ public final class UpdateConfigs {
return configs;
}
+ /**
+ * @param filename searches by given filename
+ * @param config searches in {@link UpdateConfig#getStreamingMetadata()}
+ * @return offset and size of {@code filename} in the package zip file
+ * stored as {@link UpdateConfig.PackageFile}.
+ */
+ public static Optional<UpdateConfig.PackageFile> getPropertyFile(
+ final String filename,
+ UpdateConfig config) {
+ return Arrays
+ .stream(config.getStreamingMetadata().getPropertyFiles())
+ .filter(file -> filename.equals(file.getFilename()))
+ .findFirst();
+ }
+
private UpdateConfigs() {}
}