Browse Source

AddTask 소스 정리

sanghoonkwon 7 years ago
parent
commit
ea1e3e6a53

+ 41 - 0
app/src/main/java/kr/co/hanwha/hifive/enums/AddTaskType.java

@@ -0,0 +1,41 @@
+package kr.co.hanwha.hifive.enums;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public enum AddTaskType {
+    /**
+     * 새로운 TASK 등록
+     */
+    NEW(0),
+    /**
+     * TASK 수정
+     */
+    EDIT(1),
+    /**
+     * TASK 수정 후 재요청
+     */
+    RE_REQUEST(2);
+
+    private int mCode = 0;
+
+    AddTaskType(int code) {
+        mCode = code;
+    }
+
+    public int getCode() {
+        return mCode;
+    }
+
+    private static Map map = new HashMap<>();
+
+    static {
+        for (AddTaskType type : AddTaskType.values()) {
+            map.put(type.mCode, type);
+        }
+    }
+
+    public static AddTaskType valueOf(int code) {
+        return (AddTaskType) map.get(code);
+    }
+}

+ 15 - 15
app/src/main/java/kr/co/hanwha/hifive/screen/task/AddTaskActivity.java

@@ -28,6 +28,7 @@ import kr.co.hanwha.hifive.data.model.MemberInfoData;
 import kr.co.hanwha.hifive.data.model.TaskData;
 import kr.co.hanwha.hifive.data.source.MemberDataRepository;
 import kr.co.hanwha.hifive.data.source.TaskDataRepository;
+import kr.co.hanwha.hifive.enums.AddTaskType;
 import kr.co.hanwha.hifive.enums.BaseAnimationType;
 import kr.co.hanwha.hifive.enums.BaseToolbarType;
 import kr.co.hanwha.hifive.screen.task.contract.AddTaskContract;
@@ -58,8 +59,8 @@ public class AddTaskActivity extends BaseActivity implements AddTaskContract.Vie
 
     private AddTaskContract.Presenter mPresenter;
 
-    private boolean isEdit = false;
-    private boolean isReRequest = false;
+    private AddTaskType mAddTaskType = AddTaskType.NEW;
+
     private boolean isKeyboardShow = false;
     private boolean isKeyboardStatus = false;
 
@@ -112,14 +113,16 @@ public class AddTaskActivity extends BaseActivity implements AddTaskContract.Vie
         startBlinkingAnimation();
 
         mPresenter = new AddTaskPresenter(this);
-        isEdit = getIntent().getBooleanExtra(HFActivityUtil.INTENT_IS_EDIT, false);
-        isReRequest = getIntent().getBooleanExtra(HFActivityUtil.INTENT_IS_REREQUEST, false);
-        if (isEdit) {
+
+        int taskCode = getIntent().getIntExtra(HFActivityUtil.INTENT_ADD_TASK_TYPE, 0);
+        mAddTaskType = AddTaskType.valueOf(taskCode);
+
+        if (mAddTaskType == AddTaskType.NEW) {
+            mPresenter.initData();
+        } else {
             int task_id = getIntent().getIntExtra(HFActivityUtil.INTENT_TASK_ID, 0);
             int project_id = getIntent().getIntExtra(HFActivityUtil.INTENT_PROJECT_ID, 0);
             mPresenter.initEditData(task_id, project_id);
-        } else {
-            mPresenter.initData();
         }
     }
 
@@ -233,19 +236,16 @@ public class AddTaskActivity extends BaseActivity implements AddTaskContract.Vie
         public void onClick(View v) {
             switch (v.getId()) {
                 case R.id.register_textView:
-                    if (isEdit) {
-                        mPresenter.updateTask(mEditText.getText().toString(), isReRequest);
-                    } else {
-                        mPresenter.requestSendTask(mEditText.getText().toString());
-                    }
+                    mPresenter.registerTask(mEditText.getText().toString(), mAddTaskType);
                     break;
                 case R.id.cancel_textView:
                     finish();
                     break;
                 case R.id.receiver_linearLayout: {
-                    if (isEdit) return;//수정모드일땐 사람 변경 X
-                    setLastKeyboardStatus();
-                    HFActivityUtil.startAddTaskSelectMemberActivity(AddTaskActivity.this);
+                    if (mAddTaskType == AddTaskType.NEW) {//수정모드일땐 사람 변경 X
+                        setLastKeyboardStatus();
+                        HFActivityUtil.startAddTaskSelectMemberActivity(AddTaskActivity.this);
+                    }
                     break;
                 }
                 case R.id.dueTo_linearLayout:

+ 15 - 4
app/src/main/java/kr/co/hanwha/hifive/screen/task/AddTaskPresenter.java

@@ -19,6 +19,7 @@ import kr.co.hanwha.hifive.data.source.TaskDataRepository;
 import kr.co.hanwha.hifive.dialog.HFCalendarDialog;
 import kr.co.hanwha.hifive.dialog.HFDefaultDialog;
 import kr.co.hanwha.hifive.dialog.HFSingleDialog;
+import kr.co.hanwha.hifive.enums.AddTaskType;
 import kr.co.hanwha.hifive.network.hanwha.HanwhaNetworkCallback;
 import kr.co.hanwha.hifive.network.hanwha.HanwhaNetworkError;
 import kr.co.hanwha.hifive.screen.task.contract.AddTaskContract;
@@ -164,6 +165,15 @@ public class AddTaskPresenter implements AddTaskContract.Presenter {
         return false;
     }
 
+    @Override
+    public void registerTask(@NonNull String task_name, @NonNull AddTaskType addTaskType) {
+        if (addTaskType == AddTaskType.NEW) {
+            requestSendTask(task_name);
+        } else {
+            updateTask(task_name, addTaskType);
+        }
+    }
+
     @Override
     public void requestSendTask(@NonNull final String task_name) {
         ArrayList<MemberInfoData> listSelectedMember = TaskDataRepository.getSelectedMemberList();
@@ -211,7 +221,7 @@ public class AddTaskPresenter implements AddTaskContract.Presenter {
     }
 
     @Override
-    public void updateTask(@NonNull final String task_name, @NonNull final boolean isReRequest) {
+    public void updateTask(@NonNull final String task_name, @NonNull final AddTaskType addTaskType) {
         if (TextUtils.isEmpty(task_name)) return;
 
         mTaskDetailData.setTask_name(task_name);
@@ -222,7 +232,7 @@ public class AddTaskPresenter implements AddTaskContract.Presenter {
                 new HanwhaNetworkCallback() {
                     @Override
                     public void onSuccess(Object response) {
-                        if (isReRequest) {
+                        if (addTaskType == AddTaskType.RE_REQUEST) {
                             doReRequest(mTaskDetailData);
                         } else {
                             mView.showToastConfirm(R.string.alert_completed);
@@ -241,7 +251,7 @@ public class AddTaskPresenter implements AddTaskContract.Presenter {
 
                             @Override
                             public void onPositive() {
-                                updateTask(task_name, isReRequest);
+                                updateTask(task_name, addTaskType);
                             }
                         });
                     }
@@ -253,7 +263,8 @@ public class AddTaskPresenter implements AddTaskContract.Presenter {
 
                     @Override
                     public void onPostExecute() {
-                        if (isReRequest == false) mView.showLoadingDialog(false);
+                        if (addTaskType == AddTaskType.EDIT)
+                            mView.showLoadingDialog(false);
                     }
                 });
     }

+ 13 - 3
app/src/main/java/kr/co/hanwha/hifive/screen/task/contract/AddTaskContract.java

@@ -11,6 +11,7 @@ import kr.co.hanwha.hifive.data.model.CampaignData;
 import kr.co.hanwha.hifive.data.model.MemberInfoData;
 import kr.co.hanwha.hifive.data.model.ProjectCampaignData;
 import kr.co.hanwha.hifive.data.model.TaskData;
+import kr.co.hanwha.hifive.enums.AddTaskType;
 import kr.co.hanwha.hifive.screen.task.AddTaskActivity;
 import kr.co.hanwha.hifive.screen.task.AddTaskPresenter;
 
@@ -81,16 +82,25 @@ public interface AddTaskContract {
         /**
          * TASK 등록
          *
+         * @param task_name   TASK 내용
+         * @param addTaskType TASK 종류(신규/수정/재요청)
+         */
+        void registerTask(@NonNull String task_name, @NonNull AddTaskType addTaskType);
+
+        /**
+         * TASK 신규 등록
+         *
          * @param task_name TASK 내용
          */
         void requestSendTask(@NonNull String task_name);
 
         /**
-         * TASK 수정(Update)
+         * TASK 수정(Update) / 재요청(ReRequest)
          *
-         * @param task_name TASK 내용
+         * @param task_name   TASK 내용
+         * @param addTaskType TASK 종류(신규/수정/재요청)
          */
-        void updateTask(@NonNull String task_name, @NonNull boolean isReRequest);
+        void updateTask(@NonNull String task_name, @NonNull AddTaskType addTaskType);
 
         /**
          * TASK 수정 & 재 요청

+ 33 - 33
app/src/main/java/kr/co/hanwha/hifive/util/HFActivityUtil.java

@@ -9,6 +9,7 @@ import android.support.annotation.Nullable;
 import android.text.TextUtils;
 
 import kr.co.hanwha.hifive.data.model.TaskData;
+import kr.co.hanwha.hifive.enums.AddTaskType;
 import kr.co.hanwha.hifive.network.HFNetworkUtil;
 import kr.co.hanwha.hifive.screen.RootActivity;
 import kr.co.hanwha.hifive.screen.alarm.AlarmActivity;
@@ -45,8 +46,7 @@ public class HFActivityUtil {
     public static final int REQUEST_SET_EASYLOGIN_REPEAT = 1050;
 
     public static final String INTENT_FINISH = "finish";
-    public static final String INTENT_IS_EDIT = "is_edit";
-    public static final String INTENT_IS_REREQUEST = "is_rerequest";
+    public static final String INTENT_ADD_TASK_TYPE = "add_task_type";
     public static final String INTENT_TASK_ID = "task_id";
     public static final String INTENT_PROJECT_ID = "project_id";
     public static final String INTENT_TRACK_ID = "track_id";
@@ -401,37 +401,10 @@ public class HFActivityUtil {
         LAST_TAG = AddTaskActivity.class.getSimpleName();
 
         Intent intent = new Intent(activity, AddTaskActivity.class);
+        intent.putExtra(INTENT_ADD_TASK_TYPE, AddTaskType.NEW.getCode());
         activity.startActivityForResult(intent, REQUEST_ADD_TASK);
     }
 
-    /**
-     * Task 등록 - Member 선택
-     *
-     * @param activity Activity
-     */
-    public static void startAddTaskSelectMemberActivity(@NonNull Activity activity) {
-        if (AddTaskSelectMemberActivity.class.getSimpleName().equals(LAST_TAG)) return;
-        LAST_TAG = AddTaskSelectMemberActivity.class.getSimpleName();
-
-        Intent intent = new Intent(activity, AddTaskSelectMemberActivity.class);
-        activity.startActivityForResult(intent, REQUEST_ADD_TASK_SELECT_MEMBER);
-    }
-
-    /**
-     * Task 등록 - Campaign 선택
-     *
-     * @param activity  Activity
-     * @param member_id 캠페인 조회할 멤버의 ID
-     */
-    public static void startAddTaskSelectCampaignActivity(@NonNull Activity activity, int member_id) {
-        if (AddTaskSelectCampaignActivity.class.getSimpleName().equals(LAST_TAG)) return;
-        LAST_TAG = AddTaskSelectCampaignActivity.class.getSimpleName();
-
-        Intent intent = new Intent(activity, AddTaskSelectCampaignActivity.class);
-        intent.putExtra(INTENT_MEMBER_ID, member_id);
-        activity.startActivityForResult(intent, REQUEST_ADD_TASK_SELECT_CAMPAIGN);
-    }
-
     /**
      * Task 수정
      *
@@ -442,7 +415,7 @@ public class HFActivityUtil {
         LAST_TAG = AddTaskActivity.class.getSimpleName();
 
         Intent intent = new Intent(activity, AddTaskActivity.class);
-        intent.putExtra(INTENT_IS_EDIT, true);
+        intent.putExtra(INTENT_ADD_TASK_TYPE, AddTaskType.EDIT.getCode());
         intent.putExtra(INTENT_TASK_ID, taskId);
         intent.putExtra(INTENT_PROJECT_ID, projectId);
         activity.startActivityForResult(intent, REQUEST_EDIT_TASK);
@@ -458,13 +431,40 @@ public class HFActivityUtil {
         LAST_TAG = AddTaskActivity.class.getSimpleName();
 
         Intent intent = new Intent(activity, AddTaskActivity.class);
-        intent.putExtra(INTENT_IS_EDIT, true);
-        intent.putExtra(INTENT_IS_REREQUEST, true);
+        intent.putExtra(INTENT_ADD_TASK_TYPE, AddTaskType.RE_REQUEST.getCode());
         intent.putExtra(INTENT_TASK_ID, taskId);
         intent.putExtra(INTENT_PROJECT_ID, projectId);
         activity.startActivityForResult(intent, REQUEST_EDIT_TASK_REREQUEST);
     }
 
+    /**
+     * Task 등록 - Member 선택
+     *
+     * @param activity Activity
+     */
+    public static void startAddTaskSelectMemberActivity(@NonNull Activity activity) {
+        if (AddTaskSelectMemberActivity.class.getSimpleName().equals(LAST_TAG)) return;
+        LAST_TAG = AddTaskSelectMemberActivity.class.getSimpleName();
+
+        Intent intent = new Intent(activity, AddTaskSelectMemberActivity.class);
+        activity.startActivityForResult(intent, REQUEST_ADD_TASK_SELECT_MEMBER);
+    }
+
+    /**
+     * Task 등록 - Campaign 선택
+     *
+     * @param activity  Activity
+     * @param member_id 캠페인 조회할 멤버의 ID
+     */
+    public static void startAddTaskSelectCampaignActivity(@NonNull Activity activity, int member_id) {
+        if (AddTaskSelectCampaignActivity.class.getSimpleName().equals(LAST_TAG)) return;
+        LAST_TAG = AddTaskSelectCampaignActivity.class.getSimpleName();
+
+        Intent intent = new Intent(activity, AddTaskSelectCampaignActivity.class);
+        intent.putExtra(INTENT_MEMBER_ID, member_id);
+        activity.startActivityForResult(intent, REQUEST_ADD_TASK_SELECT_CAMPAIGN);
+    }
+
     /**
      * Alarm 목록
      *