package com.tinfoil.sms.dataStructures; import java.util.EnumMap; import java.util.Map; import com.tinfoil.sms.utility.Walkthrough.Step; public class WalkthroughStep { private Map<Step, Boolean> steps; public WalkthroughStep() { steps = new EnumMap<Step, Boolean>(Step.class); steps.put(Step.INTRO, false); steps.put(Step.START_IMPORT, false); steps.put(Step.IMPORT, false); steps.put(Step.START_EXCHANGE, false); steps.put(Step.SET_SECRET, false); steps.put(Step.KEY_SENT, false); steps.put(Step.PENDING, false); steps.put(Step.ACCEPT, false); steps.put(Step.SUCCESS, false); steps.put(Step.CLOSE, false); } public WalkthroughStep(Boolean setOne) { steps = new EnumMap<Step, Boolean>(Step.class); steps.put(Step.INTRO, setOne); steps.put(Step.START_IMPORT, setOne); steps.put(Step.IMPORT, setOne); steps.put(Step.START_EXCHANGE, setOne); steps.put(Step.SET_SECRET, setOne); steps.put(Step.KEY_SENT, setOne); steps.put(Step.PENDING, setOne); steps.put(Step.ACCEPT, setOne); steps.put(Step.SUCCESS, setOne); steps.put(Step.CLOSE, setOne); } /** * Gets whether the specified walkthrough step has been viewed * @param step The walkthrough step * @return True if already viewed */ public Boolean get(Step step) { return steps.get(step); } /** * Sets the specified walkthrough step as viewed or not viewed * @param step The walkthrough steps * @param vale The value, true for viewed, false if not viewed */ public void set(Step step, boolean value) { steps.put(step, value); } /** * Sets the specified walkthrough step as viewed or not viewed * @param step The walkthrough steps * @param vale The value, true for viewed, false if not viewed */ public void set(Step step, int value) { if (value == 0) { steps.put(step, false); } else { steps.put(step, true); } } /** * Sets all steps in the walkthrough to the specified value. * @param value The value, true for viewed, false if not viewed */ public void setAll(boolean value) { for (Step step : steps.keySet()) { steps.put(step, value); } } }