package com.o3dr.services.android.lib.gcs.follow; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; import com.o3dr.services.android.lib.drone.property.DroneAttribute; /** * Created by fhuya on 11/5/14. */ public class FollowState implements DroneAttribute { public static final int STATE_INVALID = 0; public static final int STATE_DRONE_NOT_ARMED = 1; public static final int STATE_DRONE_DISCONNECTED = 2; public static final int STATE_START = 3; public static final int STATE_RUNNING = 4; public static final int STATE_END = 5; private int state; private Bundle modeParams; private FollowType mode; public FollowState(){} public FollowState(int state, FollowType mode, Bundle modeParams) { this.state = state; this.modeParams = modeParams; this.mode = mode; } public void setState(int state) { this.state = state; } public void setMode(FollowType mode) { this.mode = mode; } public Bundle getParams(){ return modeParams; } public int getState() { return state; } public FollowType getMode() { return mode; } public boolean isEnabled(){ return state == STATE_RUNNING || state == STATE_START; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(this.state); dest.writeBundle(modeParams); dest.writeInt(this.mode == null ? -1 : this.mode.ordinal()); } private FollowState(Parcel in) { this.state = in.readInt(); modeParams = in.readBundle(); int tmpMode = in.readInt(); this.mode = tmpMode == -1 ? null : FollowType.values()[tmpMode]; } public static final Parcelable.Creator<FollowState> CREATOR = new Parcelable.Creator<FollowState>() { public FollowState createFromParcel(Parcel source) { return new FollowState(source); } public FollowState[] newArray(int size) { return new FollowState[size]; } }; }