package com.atomjack.vcfp.model; import android.os.Parcel; import android.os.Parcelable; import com.atomjack.vcfp.R; import com.atomjack.vcfp.VoiceControlForPlexApplication; import org.simpleframework.xml.Attribute; import org.simpleframework.xml.Root; @Root(strict=false) public class Stream implements Parcelable { @Attribute(required=false) public String id; @Attribute(required=false) public int streamType; @Attribute(required=false) public String language; @Attribute(required=false) public int index; @Attribute(required=false) public String title; @Attribute(required=false, name="default") private int def; @Attribute(required=false) private int selected; public String partId; public boolean isActive() { return selected == 1; } public void setActive(boolean active) { selected = active ? 1 : 0; } public String getTitle() { if(title != null) return title; if(language != null) return language; return VoiceControlForPlexApplication.getInstance().getString(R.string.unknown); } public static final int UNKNOWN = 0; public static final int VIDEO = 1; public static final int AUDIO = 2; public static final int SUBTITLE = 3; @Override public String toString() { return getTitle(); } public Stream() { } public Stream(String t) { title = t; } public Stream(Parcel in) { id = in.readString(); streamType = in.readInt(); language = in.readString(); def = in.readInt(); title = in.readString(); selected = in.readInt(); } public static Stream getNoneSubtitleStream() { Stream s = new Stream(VoiceControlForPlexApplication.getInstance().getResources().getString(R.string.none)); s.id = "0"; s.streamType = Stream.SUBTITLE; return s; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel out, int flags) { out.writeString(id); out.writeInt(streamType); out.writeString(language); out.writeInt(def); out.writeString(title); out.writeInt(selected); } public static final Parcelable.Creator<Stream> CREATOR = new Parcelable.Creator<Stream>() { public Stream createFromParcel(Parcel in) { return new Stream(in); } public Stream[] newArray(int size) { return new Stream[size]; } }; }