package epson.print.rpcopy.Component.ecopycomponent; import android.os.Parcel; import android.os.Parcelable; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.Iterator; import epson.print.rpcopy.Component.eremoteoperation.ERemoteCopy; import epson.print.rpcopy.Component.eremoteoperation.ERemoteOperation; public class ECopyOptionContext implements Parcelable { public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { public ECopyOptionContext createFromParcel(Parcel parcel) { return new ECopyOptionContext(parcel); } public ECopyOptionContext[] newArray(int i) { return new ECopyOptionContext[i]; } }; ERemoteCopy.ERemoteCopyOptionsResult copyOptionsResult; ECopyComponent.ECopyType copyType; ArrayList optionItems; public int describeContents() { return 0; } public void writeToParcel(Parcel parcel, int i) { parcel.writeString(copyType.name()); parcel.writeInt(optionItems.size()); Iterator it = optionItems.iterator(); while (it.hasNext()) { parcel.writeParcelable(it.next(), 0); } parcel.writeString(copyOptionsResult.toString()); } ECopyOptionContext(Parcel parcel) { optionItems = new ArrayList<>(); copyType = ECopyComponent.ECopyType.valueOf(parcel.readString()); int readInt = parcel.readInt(); for (int i = 0; i < readInt; i++) { optionItems.add((ECopyOptionItem) parcel.readParcelable(ECopyOptionItem.class.getClassLoader())); } try { JSONObject jSONObject = new JSONObject(parcel.readString()); ERemoteCopy eRemoteCopy = new ERemoteCopy(); eRemoteCopy.getClass(); copyOptionsResult = new ERemoteCopy.ERemoteCopyOptionsResult(jSONObject); } catch (JSONException e) { e.printStackTrace(); } } private boolean isNull() { return copyType == null; } ECopyOptionContext() { optionItems = new ArrayList<>(); copyType = null; } ECopyOptionContext(ECopyComponent.ECopyType eCopyType) { optionItems = new ArrayList<>(); copyType = eCopyType; } ECopyOptionContext(ECopyOptionContext eCopyOptionContext) { optionItems = new ArrayList<>(); copyType = null; if (eCopyOptionContext != null) { copyType = eCopyOptionContext.copyType; Iterator it = eCopyOptionContext.optionItems.iterator(); while (it.hasNext()) { optionItems.add(new ECopyOptionItem(it.next())); } copyOptionsResult = eCopyOptionContext.copyOptionsResult; } } private ECopyComponent.ECopyType getCopyType() { return copyType; } private ArrayList getCopyOptionItems() { return optionItems; } private ECopyOptionItem getCopyOptionItemOf(ECopyOptionItem.ECopyOptionItemKey eCopyOptionItemKey) { Iterator it = optionItems.iterator(); while (it.hasNext()) { ECopyOptionItem next = it.next(); if (next.key == eCopyOptionItemKey) { return next; } } return null; } private void add(ECopyOptionItem eCopyOptionItem) { optionItems.add(eCopyOptionItem); } public ECopyOptionItem replace(ECopyOptionItem eCopyOptionItem) { Iterator it = optionItems.iterator(); int i = 0; while (it.hasNext()) { if (it.next().key == eCopyOptionItem.key) { return optionItems.set(i, eCopyOptionItem); } i++; } return null; } public boolean hasCopyOptionItemOf(ECopyOptionItem.ECopyOptionItemKey eCopyOptionItemKey) { ECopyOptionItem copyOptionItemOf = getCopyOptionItemOf(eCopyOptionItemKey); if (copyOptionItemOf == null) { return false; } ERemoteOperation.ERemoteParam eRemoteParam = copyOptionItemOf.getSelectedChoice().param; if (!ERemoteOperation.ERemoteParam.x_null.equals(eRemoteParam) && !ERemoteOperation.ERemoteParam.dash.equals(eRemoteParam)) { return true; } return false; } private boolean isChanged(ECopyOptionItem eCopyOptionItem) { Iterator it = optionItems.iterator(); while (true) { if (!it.hasNext()) { break; } ECopyOptionItem next = it.next(); if (next.key == eCopyOptionItem.key) { if (!next.equals(eCopyOptionItem)) { return true; } } } return false; } private void setCopyOptionsResult(ERemoteCopy.ERemoteCopyOptionsResult eRemoteCopyOptionsResult) { copyOptionsResult = eRemoteCopyOptionsResult; } private ERemoteCopy.ERemoteCopyOptionsResult getCopyOptionsResult() { return copyOptionsResult; } }