summaryrefslogtreecommitdiffstats
path: root/sample_updater/src/com/example/android/systemupdatersample/UpdateConfig.java
diff options
context:
space:
mode:
authorTao Bao <tbao@google.com>2018-04-26 00:19:47 +0200
committerTao Bao <tbao@google.com>2018-04-26 00:34:37 +0200
commit32118f6690a5677b509b08730b896304150d4d63 (patch)
tree1dc6010dec08f2af591b6f174d22507fd5792740 /sample_updater/src/com/example/android/systemupdatersample/UpdateConfig.java
parentMerge "sample_updater: add non-streaming demo" (diff)
downloadandroid_bootable_recovery-32118f6690a5677b509b08730b896304150d4d63.tar
android_bootable_recovery-32118f6690a5677b509b08730b896304150d4d63.tar.gz
android_bootable_recovery-32118f6690a5677b509b08730b896304150d4d63.tar.bz2
android_bootable_recovery-32118f6690a5677b509b08730b896304150d4d63.tar.lz
android_bootable_recovery-32118f6690a5677b509b08730b896304150d4d63.tar.xz
android_bootable_recovery-32118f6690a5677b509b08730b896304150d4d63.tar.zst
android_bootable_recovery-32118f6690a5677b509b08730b896304150d4d63.zip
Diffstat (limited to 'sample_updater/src/com/example/android/systemupdatersample/UpdateConfig.java')
-rw-r--r--sample_updater/src/com/example/android/systemupdatersample/UpdateConfig.java183
1 files changed, 0 insertions, 183 deletions
diff --git a/sample_updater/src/com/example/android/systemupdatersample/UpdateConfig.java b/sample_updater/src/com/example/android/systemupdatersample/UpdateConfig.java
deleted file mode 100644
index cbee18fcb..000000000
--- a/sample_updater/src/com/example/android/systemupdatersample/UpdateConfig.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.example.android.systemupdatersample;
-
-import android.os.Parcel;
-import android.os.Parcelable;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.io.File;
-import java.io.Serializable;
-
-/**
- * UpdateConfig describes an update. It will be parsed from JSON, which is intended to
- * be sent from server to the update app, but in this sample app it will be stored on the device.
- */
-public class UpdateConfig implements Parcelable {
-
- public static final int TYPE_NON_STREAMING = 0;
- public static final int TYPE_STREAMING = 1;
-
- public static final Parcelable.Creator<UpdateConfig> CREATOR =
- new Parcelable.Creator<UpdateConfig>() {
- @Override
- public UpdateConfig createFromParcel(Parcel source) {
- return new UpdateConfig(source);
- }
-
- @Override
- public UpdateConfig[] newArray(int size) {
- return new UpdateConfig[size];
- }
- };
-
- /** parse update config from json */
- public static UpdateConfig fromJson(String json) throws JSONException {
- UpdateConfig c = new UpdateConfig();
-
- JSONObject o = new JSONObject(json);
- c.mName = o.getString("name");
- c.mUrl = o.getString("url");
- if (TYPE_NON_STREAMING_JSON.equals(o.getString("type"))) {
- c.mInstallType = TYPE_NON_STREAMING;
- } else if (TYPE_STREAMING_JSON.equals(o.getString("type"))) {
- c.mInstallType = TYPE_STREAMING;
- } else {
- throw new JSONException("Invalid type, expected either "
- + "NON_STREAMING or STREAMING, got " + o.getString("type"));
- }
- if (o.has("metadata")) {
- c.mMetadata = new Metadata(
- o.getJSONObject("metadata").getInt("offset"),
- o.getJSONObject("metadata").getInt("size"));
- }
- c.mRawJson = json;
- return c;
- }
-
- /**
- * these strings are represent types in JSON config files
- */
- private static final String TYPE_NON_STREAMING_JSON = "NON_STREAMING";
- private static final String TYPE_STREAMING_JSON = "STREAMING";
-
- /** name will be visible on UI */
- private String mName;
-
- /** update zip file URI, can be https:// or file:// */
- private String mUrl;
-
- /** non-streaming (first saves locally) OR streaming (on the fly) */
- private int mInstallType;
-
- /** metadata is required only for streaming update */
- private Metadata mMetadata;
-
- private String mRawJson;
-
- protected UpdateConfig() {
- }
-
- protected UpdateConfig(Parcel in) {
- this.mName = in.readString();
- this.mUrl = in.readString();
- this.mInstallType = in.readInt();
- this.mMetadata = (Metadata) in.readSerializable();
- this.mRawJson = in.readString();
- }
-
- public UpdateConfig(String name, String url, int installType) {
- this.mName = name;
- this.mUrl = url;
- this.mInstallType = installType;
- }
-
- public String getName() {
- return mName;
- }
-
- public String getUrl() {
- return mUrl;
- }
-
- public String getRawJson() {
- return mRawJson;
- }
-
- public int getInstallType() {
- return mInstallType;
- }
-
- /**
- * "url" must be the file located on the device.
- *
- * @return File object for given url
- */
- public File getUpdatePackageFile() {
- if (mInstallType != TYPE_NON_STREAMING) {
- throw new RuntimeException("Expected non-streaming install type");
- }
- if (!mUrl.startsWith("file://")) {
- throw new RuntimeException("url is expected to start with file://");
- }
- return new File(mUrl.substring(7, mUrl.length()));
- }
-
- @Override
- public int describeContents() {
- return 0;
- }
-
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- dest.writeString(mName);
- dest.writeString(mUrl);
- dest.writeInt(mInstallType);
- dest.writeSerializable(mMetadata);
- dest.writeString(mRawJson);
- }
-
- /**
- * Metadata for STREAMING update
- */
- public static class Metadata implements Serializable {
-
- private static final long serialVersionUID = 31042L;
-
- /** defines beginning of update data in archive */
- private long mOffset;
-
- /** size of the update data in archive */
- private long mSize;
-
- public Metadata(long offset, long size) {
- this.mOffset = offset;
- this.mSize = size;
- }
-
- public long getOffset() {
- return mOffset;
- }
-
- public long getSize() {
- return mSize;
- }
- }
-
-}