/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android; import android.content.Context; import android.content.Intent; import android.os.Parcel; import android.os.Parcelable; import com.galaxy.meetup.client.android.content.AccountSettingsData; import com.galaxy.meetup.client.android.content.EsAccount; import com.galaxy.meetup.client.android.content.EsAccountsData; import com.galaxy.meetup.server.client.domain.response.MobileOutOfBoxResponse; /** * * @author sihai * */ public class OobIntents implements Parcelable { public static final android.os.Parcelable.Creator CREATOR = new android.os.Parcelable.Creator() { public final Object createFromParcel(Parcel parcel) { return new OobIntents(parcel); } public final Object[] newArray(int i) { return new OobIntents[i]; } }; private final boolean mInitial; private final int mStep; private OobIntents(int i, boolean flag) { mStep = i; mInitial = flag; } public OobIntents(Parcel parcel) { mStep = parcel.readInt(); boolean flag; if(parcel.readInt() != 0) flag = true; else flag = false; mInitial = flag; } public static Intent getInitialIntent(Context context, EsAccount esaccount, MobileOutOfBoxResponse mobileoutofboxresponse, AccountSettingsData accountsettingsdata, String s) { Intent intent; if(mobileoutofboxresponse != null) { intent = Intents.getOutOfBoxActivityIntent(context, esaccount, new OobIntents(0, true), mobileoutofboxresponse, s); } else { int i = nextStep(context, esaccount, accountsettingsdata, 0); if(i == 5) intent = null; else intent = getStepIntent(context, esaccount, accountsettingsdata, new OobIntents(i, true)); } return intent; } private static Intent getStepIntent(Context context, EsAccount esaccount, AccountSettingsData accountsettingsdata, OobIntents oobintents) { Intent intent = null; if(1 == oobintents.mStep) { intent = Intents.getOobSelectPlusPageActivityIntent(context, esaccount, accountsettingsdata, oobintents); } else if(2 == oobintents.mStep) { intent = Intents.getOobSuggestedPeopleActivityIntent(context, esaccount, oobintents); } else if (3 == oobintents.mStep) { intent = Intents.getOobContactsSyncIntent(context, esaccount, oobintents); } else if(4 == oobintents.mStep) { intent = Intents.getOobInstantUploadIntent(context, esaccount, oobintents); } return intent; } private static int nextStep(Context context, EsAccount esaccount, AccountSettingsData accountsettingsdata, int i) { byte byte0 = 5; switch(i) { case 0: if(accountsettingsdata != null) { byte0 = 1; } break; case 1: if(!EsAccountsData.hasSeenWarmWelcome(context, esaccount) && !esaccount.isPlusPage()) { byte0 = 2; } break; case 2: if(EsAccountsData.needContactSyncOob(context, esaccount) && !esaccount.isPlusPage()) { byte0 = 3; } break; case 3: if(EsAccountsData.needInstantUploadOob(context, esaccount) && !esaccount.isPlusPage()) byte0 = 4; break; case 4: break; default: break; } return byte0; } public int describeContents() { return 0; } public final Intent getNextIntent(Context context, EsAccount esaccount, AccountSettingsData accountsettingsdata) { int i = nextStep(context, esaccount, accountsettingsdata, mStep); Intent intent; if(i == 5) { intent = null; } else { boolean flag; if(mStep == 0) flag = true; else flag = false; intent = getStepIntent(context, esaccount, accountsettingsdata, new OobIntents(i, flag)); } return intent; } public final boolean isInitialIntent() { return mInitial; } public final boolean isLastIntent(Context context, EsAccount esaccount, AccountSettingsData accountsettingsdata) { boolean flag; if(nextStep(context, esaccount, accountsettingsdata, mStep) == 5) flag = true; else flag = false; return flag; } public void writeToParcel(Parcel parcel, int i) { parcel.writeInt(mStep); int j; if(mInitial) j = 1; else j = 0; parcel.writeInt(j); } }