/*
 * COPYRIGHT (c) 2018 All rights reserved by HANWHA LIFE.
 */
package kr.co.zumo.app.lifeplus.activity.factory;

import kr.co.zumo.app.lifeplus.activity.ActivityBase;
import kr.co.zumo.app.lifeplus.activity.BlockMemberActivity;
import kr.co.zumo.app.lifeplus.activity.FAQActivity;
import kr.co.zumo.app.lifeplus.activity.MainActivity;
import kr.co.zumo.app.lifeplus.activity.NetworkErrorActivity;
import kr.co.zumo.app.lifeplus.activity.OnBoardingActivity;
import kr.co.zumo.app.lifeplus.activity.PinConfirmActivity;
import kr.co.zumo.app.lifeplus.activity.PinResetActivity;
import kr.co.zumo.app.lifeplus.activity.RestMemberActivity;
import kr.co.zumo.app.lifeplus.activity.SignUpActivity;
import kr.co.zumo.app.lifeplus.activity.SignUpOnBoardActivity;
import kr.co.zumo.app.lifeplus.activity.SignUpZumoActivity;
import kr.co.zumo.app.lifeplus.supervisor.ScreenID;

/**
 * ActivityFactory
 * <pre>
 * Activity Id 로 구분된 Activity.class 를 반환한다.
 * </pre>
 *
 * @author 민효동
 * @version 1.0
 * @history 민효동   [2018. 9. 5.]   [최초 작성]
 * @since 2018. 9. 5.
 */
public class ActivityFactory {

  /**
   * Activity Id 로 구분된 Activity.class 를 반환한다.
   *
   * @param id ScreenID.ACTIVITY_MAIN
   * @return MainActivity.class
   */
  public Class<? extends ActivityBase> getActivityClass(int id) {
    Class<? extends ActivityBase> activity;
    switch (id) {
      case ScreenID.ACTIVITY_MAIN:
        activity = MainActivity.class;
        break;
      case ScreenID.ACTIVITY_PIN:
        activity = PinConfirmActivity.class;
        break;
      case ScreenID.ACTIVITY_PIN_RESET:
        activity = PinResetActivity.class;
        break;
      case ScreenID.ACTIVITY_SIGN_UP:
        activity = SignUpActivity.class;
        break;
      case ScreenID.ACTIVITY_SIGN_UP_FROM_ZUMO:
        activity = SignUpZumoActivity.class;
        break;
      case ScreenID.ACTIVITY_SIGN_UP_FROM_ON_BOARDING:
        activity = SignUpOnBoardActivity.class;
        break;
      case ScreenID.ACTIVITY_ON_BOARDING:
        activity = OnBoardingActivity.class;
        break;
      case ScreenID.ACTIVITY_NETWORK_ERROR:
        activity = NetworkErrorActivity.class;
        break;
      case ScreenID.ACTIVITY_FAQ:
        activity = FAQActivity.class;
        break;
      case ScreenID.ACTIVITY_MEMBER_REST:
        activity = RestMemberActivity.class;
        break;
      case ScreenID.ACTIVITY_MEMBER_BLOCK:
        activity = BlockMemberActivity.class;
        break;
      case ScreenID.ACTIVITY_AUTHORIZATION:
        // fixme authorization activity
        activity = SignUpActivity.class;
        break;
      default:
        activity = null;
        break;
    }
    return activity;
  }
}
