com.fanfou.app.opensource.update.AppVersionInfo.java Source code

Java tutorial

Introduction

Here is the source code for com.fanfou.app.opensource.update.AppVersionInfo.java

Source

/*******************************************************************************
 * Copyright 2011, 2012, 2013 fanfou.com, Xiaoke, Zhang
 *
 * 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.fanfou.app.opensource.update;

import org.json.JSONException;
import org.json.JSONObject;

import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;

import com.fanfou.app.opensource.AppContext;

/**
 * @author mcxiaoke
 * @version 1.0 2011.09.04
 * @version 2.0 2011.10.31
 * 
 */
public final class AppVersionInfo implements Parcelable {

    public static final String TYPE_BUGFIX = "bugfix";
    public static final String TYPE_MINOR = "minor";
    public static final String TYPE_MAJOR = "major";

    public int versionCode;// ?
    public String versionName;// 
    public String releaseDate;// ?
    public String changelog;// ?
    public String downloadUrl;// ?
    public String versionType;// ?BUG??
    public String packageName;// ??
    public static final Parcelable.Creator<AppVersionInfo> CREATOR = new Parcelable.Creator<AppVersionInfo>() {

        @Override
        public AppVersionInfo createFromParcel(final Parcel source) {
            final Bundle bundle = source.readBundle();
            return AppVersionInfo.parseBundle(bundle);
        }

        @Override
        public AppVersionInfo[] newArray(final int size) {
            return new AppVersionInfo[size];
        }

    };

    public static AppVersionInfo parse(final String response) {
        try {
            final JSONObject o = new JSONObject(response);
            final AppVersionInfo info = new AppVersionInfo();
            info.versionCode = o.getInt("versionCode");
            info.versionName = o.getString("versionName");
            info.releaseDate = o.getString("releaseDate");
            info.changelog = o.getString("changelog");
            info.downloadUrl = o.getString("downloadUrl");
            info.versionType = o.getString("versionType");
            info.packageName = o.getString("packageName");
            info.forceUpdate = o.getBoolean("forceUpdate");
            return info;
        } catch (final JSONException e) {
            if (AppContext.DEBUG) {
                e.printStackTrace();
            }
            return null;
        }
    }

    public static AppVersionInfo parseBundle(final Bundle bundle) {
        final AppVersionInfo info = new AppVersionInfo();
        info.versionCode = bundle.getInt("versionCode");
        info.versionName = bundle.getString("versionName");
        info.releaseDate = bundle.getString("releaseDate");
        info.changelog = bundle.getString("changelog");
        info.downloadUrl = bundle.getString("downloadUrl");
        info.versionType = bundle.getString("versionType");
        info.packageName = bundle.getString("packageName");
        info.forceUpdate = bundle.getBoolean("forceUpdate");
        if (info.versionCode > 0) {
            return info;
        } else {
            return null;
        }
    }

    public boolean forceUpdate;// ??

    public AppVersionInfo() {
    }

    public AppVersionInfo(final Parcel in) {
        this();
        final Bundle bundle = in.readBundle();
        readFromBundle(bundle);
    }

    @Override
    public int describeContents() {
        return 0;
    }

    public void readFromBundle(final Bundle bundle) {
        this.versionCode = bundle.getInt("versionCode");
        this.versionName = bundle.getString("versionName");
        this.releaseDate = bundle.getString("releaseDate");
        this.changelog = bundle.getString("changelog");
        this.downloadUrl = bundle.getString("downloadUrl");
        this.versionType = bundle.getString("versionType");
        this.packageName = bundle.getString("packageName");
        this.forceUpdate = bundle.getBoolean("forceUpdate");
    }

    @Override
    public String toString() {
        final StringBuffer sb = new StringBuffer();
        sb.append("[VersionInfo] versionCode=" + this.versionCode);
        sb.append("[VersionInfo] versionName=" + this.versionName);
        sb.append("[VersionInfo] releaseDate=" + this.releaseDate);
        sb.append("[VersionInfo] changelog=(" + this.changelog).append(")");
        sb.append("[VersionInfo] downloadUrl=" + this.downloadUrl);
        sb.append("[VersionInfo] versionType=" + this.versionType);
        sb.append("[VersionInfo] packageName=" + this.packageName);
        sb.append("[VersionInfo] forceUpdate=" + this.forceUpdate);
        return sb.toString();
    }

    @Override
    public void writeToParcel(final Parcel dest, final int flags) {
        final Bundle bundle = new Bundle();
        bundle.putInt("versionCode", this.versionCode);
        bundle.putString("versionName", this.versionName);
        bundle.putString("releaseDate", this.releaseDate);
        bundle.putString("changelog", this.changelog);
        bundle.putString("downloadUrl", this.downloadUrl);
        bundle.putString("versionType", this.versionType);
        bundle.putString("packageName", this.packageName);
        bundle.putBoolean("forceUpdate", this.forceUpdate);
        dest.writeBundle(bundle);
    }

}