package org.gscript.process; import org.gscript.EmulatorActivity; import android.content.Context; import android.content.Intent; import android.os.Parcel; import android.os.Parcelable; public class ProcessDescriptor implements Parcelable { int mPid; Intent mIntent; long mTime; public ProcessDescriptor(int pid, Intent i) { this.mPid = pid; this.mIntent = i; this.mTime = System.currentTimeMillis(); } public ProcessDescriptor(int pid, Intent i, long time) { this.mPid = pid; this.mIntent = i; this.mTime = time; } public ProcessDescriptor(ProcessDescriptor pd) { this.mPid = pd.mPid; this.mIntent = pd.mIntent; this.mTime = pd.mTime; } /* the pid the process was assigned */ public int getPid() { return this.mPid; } /* the intent the process was created from */ public Intent getIntent() { return this.mIntent; } public long getTime() { return this.mTime; } @Override public boolean equals(Object o) { boolean result = false; if (o instanceof ProcessDescriptor) { ProcessDescriptor opd = (ProcessDescriptor) o; result = ((mPid == opd.mPid) && (mTime == opd.mTime)); //&& (mIntent.toUri(0).equals(opd.mIntent.toUri(0))) } return result; } @Override public int hashCode() { int result = 17; result = 31 * result + mPid; result = 31 * result + ((mIntent == null) ? 0 : mIntent.hashCode()); result = 31 * result + (int) (mTime ^ (mTime >>> 32)); return result; } @Override public String toString() { return getClass().getName() + "[" + "pid=" + mPid + ", " + "intent=" + mIntent + ", " + "time=" + mTime + "]"; } public Intent getActivityIntent(Context c) { Intent activityIntent = new Intent(c, EmulatorActivity.class); activityIntent.putExtra(EmulatorActivity.EXTRA_DESCRIPTOR, this); activityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); return activityIntent; } public static final Parcelable.Creator<ProcessDescriptor> CREATOR = new Parcelable.Creator<ProcessDescriptor>() { public ProcessDescriptor createFromParcel(Parcel in) { return new ProcessDescriptor(in); } public ProcessDescriptor[] newArray(int size) { return new ProcessDescriptor[size]; } }; public ProcessDescriptor(Parcel source) { readFromParcel(source); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(mPid); dest.writeLong(mTime); dest.writeParcelable(mIntent, flags); } public void readFromParcel(Parcel source) { mPid = source.readInt(); mTime = source.readLong(); mIntent = source.readParcelable(Intent.class.getClassLoader()); } }