浏览代码

AddTask 소스 정리 - Campaign 선택 분리

sanghoonkwon 7 年之前
父节点
当前提交
7f09b04ec4

+ 1 - 1
app/build.gradle

@@ -11,7 +11,7 @@ android {
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
         multiDexEnabled true
 
-        buildConfigField "String", "REVISION", "\"2018061501\""
+        buildConfigField "String", "REVISION", "\"2018061801\""
         buildConfigField "String", "RC", "\"rc6\""
 
         buildConfigField "String", "WEB_REAL_URL", "\"https://qtalk.dreamplus.center/newgw/b/v2\""

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

@@ -35,6 +35,7 @@ import kr.co.hanwha.hifive.screen.task.contract.AddTaskContract;
 import kr.co.hanwha.hifive.util.HFActivityUtil;
 import kr.co.hanwha.hifive.util.HFDateUtil;
 import kr.co.hanwha.hifive.util.HFSpanUtil;
+import kr.co.hanwha.hifive.view.HFCampaignContainerView;
 import kr.co.hanwha.hifive.view.HFReceiverContainerView;
 
 /**
@@ -55,6 +56,7 @@ public class AddTaskActivity extends BaseActivity implements AddTaskContract.Vie
     private EditText mEditText;
     private TextView mTextViewDueTo;
     private TextView mTextViewDueToToday;
+    private HFCampaignContainerView mCampaignContainerView;
     private HFReceiverContainerView mReceiverContainerView;
 
     private AddTaskContract.Presenter mPresenter;
@@ -93,14 +95,17 @@ public class AddTaskActivity extends BaseActivity implements AddTaskContract.Vie
         mEditText.addTextChangedListener(textWatcher);
         mTextViewDueTo = (TextView) findViewById(R.id.dueTo_textView);
         mTextViewDueToToday = (TextView) findViewById(R.id.dueToToday_textView);
+        mCampaignContainerView = (HFCampaignContainerView) findViewById(R.id.campaignContainerView);
         mReceiverContainerView = (HFReceiverContainerView) findViewById(R.id.receiverContainerView);
 
+        mCampaignContainerView.setOnCampaignContainerListener(onCampaignContainerListener);
         mReceiverContainerView.setOnReceiverContainerListener(onReceiverContainerListener);
 
         mLayoutHint.setOnClickListener(onClickListener);
         findViewById(R.id.receiver_linearLayout).setOnClickListener(onClickListener);
         findViewById(R.id.dueTo_linearLayout).setOnClickListener(onClickListener);
-        findViewById(R.id.campaign_linearLayout).setOnClickListener(onClickListener);
+//        findViewById(R.id.campaign_linearLayout).setOnClickListener(onClickListener);
+        mCampaignContainerView.setOnClickListener(onClickListener);
         mTextViewCancel.setOnClickListener(onClickListener);
         mTextViewRegister.setOnClickListener(onClickListener);
 
@@ -117,6 +122,8 @@ public class AddTaskActivity extends BaseActivity implements AddTaskContract.Vie
         int taskCode = getIntent().getIntExtra(HFActivityUtil.INTENT_ADD_TASK_TYPE, 0);
         mAddTaskType = AddTaskType.valueOf(taskCode);
 
+        mReceiverContainerView.setAddTaskType(mAddTaskType);
+
         if (mAddTaskType == AddTaskType.NEW) {
             mPresenter.initData();
         } else {
@@ -157,13 +164,14 @@ public class AddTaskActivity extends BaseActivity implements AddTaskContract.Vie
     }
 
     @Override
-    public void setReceiverList(@Nullable ArrayList<MemberInfoData> list, @NonNull boolean isEditable) {
+    public void setReceiverList(@Nullable ArrayList<MemberInfoData> list) {
         mReceiverContainerView.setMemberList(list);
-        mReceiverContainerView.setEdtiable(isEditable);
     }
 
     @Override
     public void setCampaignInfo(@Nullable CampaignData data) {
+        mCampaignContainerView.setCampaignInfo(data);
+        /*
         TextView textViewCampaign = (TextView) findViewById(R.id.campaign_textView);
         TextView textViewCampaignHint = (TextView) findViewById(R.id.campaignHint_textView);
         ImageButton imageButtonClearCampaign = (ImageButton) findViewById(R.id.clearCampaign_imageButton);
@@ -181,6 +189,7 @@ public class AddTaskActivity extends BaseActivity implements AddTaskContract.Vie
             imageButtonClearCampaign.setVisibility(View.INVISIBLE);
             imageButtonClearCampaign.setOnClickListener(null);
         }
+        */
     }
 
     private void showKeyboard() {
@@ -214,7 +223,7 @@ public class AddTaskActivity extends BaseActivity implements AddTaskContract.Vie
 
             mPresenter.setSelectedMemberId(TaskDataRepository.getSelectedMemberid());
 
-            setReceiverList(TaskDataRepository.getSelectedMemberList(), true);
+            setReceiverList(TaskDataRepository.getSelectedMemberList());
 
             setCampaignInfo(TaskDataRepository.getSelectedCampaignData());
 
@@ -241,6 +250,11 @@ public class AddTaskActivity extends BaseActivity implements AddTaskContract.Vie
                 case R.id.cancel_textView:
                     finish();
                     break;
+                case R.id.campaignContainerView: {
+                    setLastKeyboardStatus();
+                    mPresenter.selectCampaign();
+                    break;
+                }
                 case R.id.receiver_linearLayout: {
                     if (mAddTaskType == AddTaskType.NEW) {//수정모드일땐 사람 변경 X
                         setLastKeyboardStatus();
@@ -251,15 +265,6 @@ public class AddTaskActivity extends BaseActivity implements AddTaskContract.Vie
                 case R.id.dueTo_linearLayout:
                     mPresenter.showCalendarDialog();
                     break;
-                case R.id.campaign_linearLayout: {
-                    setLastKeyboardStatus();
-                    mPresenter.selectCampaign();
-                    break;
-                }
-                case R.id.clearCampaign_imageButton:
-                    TaskDataRepository.clearSelectedCampaignData();
-                    setCampaignInfo(null);
-                    break;
                 case R.id.hint_lienarLayout:
                     showKeyboard();
                     break;
@@ -283,6 +288,18 @@ public class AddTaskActivity extends BaseActivity implements AddTaskContract.Vie
         }
     };
 
+    /**************************************************
+     * HFCampaignContainerView.OnCampaignContainerListener
+     **************************************************/
+    HFCampaignContainerView.OnCampaignContainerListener onCampaignContainerListener = new HFCampaignContainerView.OnCampaignContainerListener() {
+
+        @Override
+        public void onClearCampaign() {
+            TaskDataRepository.clearSelectedCampaignData();
+            setCampaignInfo(null);
+        }
+    };
+
     /**************************************************
      * HFReceiverContainerView.OnReceiverContainerListener
      **************************************************/
@@ -318,4 +335,4 @@ public class AddTaskActivity extends BaseActivity implements AddTaskContract.Vie
             HFSpanUtil.getTagListSetColorSpan(AddTaskActivity.this, s);
         }
     };
-}
+}

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

@@ -108,7 +108,7 @@ public class AddTaskPresenter implements AddTaskContract.Presenter {
                             mTaskDetailData.getProject_name());
                     list.add(member);
 
-                    mView.setReceiverList(list, false);
+                    mView.setReceiverList(list);
 
                     if (response.getListCampaigns() != null && response.getListCampaigns().size() > 0) {
                         CampaignData campaign = response.getListCampaigns().get(0);

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

@@ -33,10 +33,9 @@ public interface AddTaskContract {
         /**
          * 받는 사람 목록 표시
          *
-         * @param list       멤버 목록
-         * @param isEditable 수정 가능
+         * @param list 멤버 목록
          */
-        void setReceiverList(@Nullable ArrayList<MemberInfoData> list, @NonNull boolean isEditable);
+        void setReceiverList(@Nullable ArrayList<MemberInfoData> list);
 
         /**
          * Campaign  표시

+ 98 - 0
app/src/main/java/kr/co/hanwha/hifive/view/HFCampaignContainerView.java

@@ -0,0 +1,98 @@
+package kr.co.hanwha.hifive.view;
+
+import android.content.Context;
+import android.support.annotation.Nullable;
+import android.text.TextUtils;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.ImageButton;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+
+import kr.co.hanwha.hifive.R;
+import kr.co.hanwha.hifive.data.model.CampaignData;
+import kr.co.hanwha.hifive.data.model.MemberInfoData;
+
+public class HFCampaignContainerView extends LinearLayout {
+    private TextView mTextViewCampaign;
+    private TextView mTextViewCampaignHint;
+    private ImageButton mImageButtonClearCampaign;
+
+    private OnCampaignContainerListener mOnCampaignContainerListener;
+
+    private ArrayList<MemberInfoData> mListOfMembers;
+
+    public void setOnCampaignContainerListener(OnCampaignContainerListener onCampaignContainerListener) {
+        this.mOnCampaignContainerListener = onCampaignContainerListener;
+    }
+
+    public HFCampaignContainerView(Context context) {
+        super(context);
+        initialize(context, null);
+    }
+
+    public HFCampaignContainerView(Context context, @Nullable AttributeSet attrs) {
+        super(context, attrs);
+        initialize(context, attrs);
+    }
+
+    public HFCampaignContainerView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        initialize(context, attrs);
+    }
+
+    private void initialize(Context context, @Nullable AttributeSet attrs) {
+        if (isInEditMode()) return;
+
+        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        inflater.inflate(R.layout.view_hf_campaign_container, this, true);
+
+        mTextViewCampaign = (TextView) findViewById(R.id.campaign_textView);
+        mTextViewCampaignHint = (TextView) findViewById(R.id.campaignHint_textView);
+        mImageButtonClearCampaign = (ImageButton) findViewById(R.id.clearCampaign_imageButton);
+
+        mImageButtonClearCampaign.setOnClickListener(onClickListener);
+    }
+
+    public void setCampaignInfo(@Nullable CampaignData data) {
+        if (data != null && TextUtils.isEmpty(data.getCampaign_desc()) == false) {
+            mTextViewCampaign.setText(data.getCampaign_desc());
+            mTextViewCampaign.setVisibility(View.VISIBLE);
+            mTextViewCampaignHint.setVisibility(View.GONE);
+            mImageButtonClearCampaign.setVisibility(View.VISIBLE);
+            mImageButtonClearCampaign.setOnClickListener(onClickListener);
+        } else {
+            mTextViewCampaign.setText("");
+            mTextViewCampaign.setVisibility(View.GONE);
+            mTextViewCampaignHint.setVisibility(View.VISIBLE);
+            mImageButtonClearCampaign.setVisibility(View.INVISIBLE);
+            mImageButtonClearCampaign.setOnClickListener(null);
+        }
+    }
+
+    /**************************************************
+     * OnClickListener
+     **************************************************/
+    OnClickListener onClickListener = new OnClickListener() {
+        @Override
+        public void onClick(View v) {
+            switch (v.getId()) {
+                case R.id.clearCampaign_imageButton:
+                    if (mOnCampaignContainerListener != null)
+                        mOnCampaignContainerListener.onClearCampaign();
+                    break;
+            }
+
+        }
+    };
+
+    /**************************************************
+     * OnReceiverContainerListener
+     **************************************************/
+    public interface OnCampaignContainerListener {
+        void onClearCampaign();
+    }
+}

+ 3 - 2
app/src/main/java/kr/co/hanwha/hifive/view/HFReceiverContainerView.java

@@ -15,6 +15,7 @@ import kr.co.hanwha.hifive.R;
 import kr.co.hanwha.hifive.data.model.MemberInfoData;
 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.util.HFCommonUtil;
 
 /**
@@ -115,8 +116,8 @@ public class HFReceiverContainerView extends LinearLayout {
         }
     }
 
-    public void setEdtiable(@Nullable boolean isEditable) {
-        if (!isEditable) {
+    public void setAddTaskType(@NonNull AddTaskType addTaskType) {
+        if (addTaskType != AddTaskType.NEW) {
             findViewById(R.id.selectMember_imageView).setVisibility(View.GONE);
             findViewById(R.id.selectMember_imageView).setOnClickListener(null);
         }

+ 5 - 60
app/src/main/res/layout/activity_add_task.xml

@@ -158,68 +158,13 @@
                 android:layout_marginLeft="16dp"
                 android:layout_weight="0"
                 android:background="@color/hf_grey11" />
-
-
+            
             <!-- 캠페인 설정 -->
-            <LinearLayout
-                android:id="@+id/campaign_linearLayout"
+            <kr.co.hanwha.hifive.view.HFCampaignContainerView
+                android:id="@+id/campaignContainerView"
                 android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_weight="0"
-                android:background="@drawable/list_bg_translucent_grey13"
-                android:gravity="center_vertical"
-                android:minHeight="60dp"
-                android:orientation="horizontal">
-
-                <LinearLayout
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:layout_marginLeft="16dp"
-                    android:layout_weight="1"
-                    android:gravity="center_vertical"
-                    android:orientation="horizontal">
-
-                    <ImageView
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:layout_marginRight="11.5dp"
-                        android:src="@mipmap/ic_tq" />
-
-                    <kr.co.hanwha.hifive.view.FontTextView
-                        android:id="@+id/campaign_textView"
-                        style="@style/font_notosans_r_16sp_grey02"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:layout_marginRight="0dp"
-                        android:text="" />
-
-                    <kr.co.hanwha.hifive.view.FontTextView
-                        android:id="@+id/campaignHint_textView"
-                        style="@style/font_notosans_r_16sp_grey04"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:text="@string/add_task_select_campaign_hint" />
-                </LinearLayout>
-
-                <ImageButton
-                    android:id="@+id/clearCampaign_imageButton"
-                    android:layout_width="44dp"
-                    android:layout_height="44dp"
-                    android:layout_alignParentRight="true"
-                    android:layout_centerVertical="true"
-                    android:layout_weight="0"
-                    android:background="@null"
-                    android:padding="6dp"
-                    android:src="@mipmap/ic_x1"
-                    android:visibility="invisible" />
-
-                <ImageView
-                    android:layout_width="wrap_content"
-                    android:layout_height="44dp"
-                    android:layout_marginRight="14dp"
-                    android:scaleType="centerInside"
-                    android:src="@mipmap/ic_ar_right" />
-            </LinearLayout>
+                android:layout_height="60dp"
+                android:layout_weight="0" />
 
             <View
                 android:layout_width="match_parent"

+ 63 - 0
app/src/main/res/layout/view_hf_campaign_container.xml

@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+
+    android:id="@+id/campaign_linearLayout"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_weight="0"
+    android:background="@drawable/list_bg_translucent_grey13"
+    android:gravity="center_vertical"
+    android:minHeight="60dp"
+    android:orientation="horizontal">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="16dp"
+        android:layout_weight="1"
+        android:gravity="center_vertical"
+        android:orientation="horizontal">
+
+        <ImageView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginRight="11.5dp"
+            android:src="@mipmap/ic_tq" />
+
+        <kr.co.hanwha.hifive.view.FontTextView
+            android:id="@+id/campaign_textView"
+            style="@style/font_notosans_r_16sp_grey02"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginRight="0dp"
+            android:text="" />
+
+        <kr.co.hanwha.hifive.view.FontTextView
+            android:id="@+id/campaignHint_textView"
+            style="@style/font_notosans_r_16sp_grey04"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/add_task_select_campaign_hint" />
+    </LinearLayout>
+
+    <ImageButton
+        android:id="@+id/clearCampaign_imageButton"
+        android:layout_width="44dp"
+        android:layout_height="44dp"
+        android:layout_alignParentRight="true"
+        android:layout_centerVertical="true"
+        android:layout_weight="0"
+        android:background="@null"
+        android:padding="6dp"
+        android:src="@mipmap/ic_x1"
+        android:visibility="invisible" />
+
+    <ImageView
+        android:layout_width="wrap_content"
+        android:layout_height="44dp"
+        android:layout_marginRight="14dp"
+        android:scaleType="centerInside"
+        android:src="@mipmap/ic_ar_right" />
+</LinearLayout>
+
+