瀏覽代碼

#2017-10-16 19:35
- 검색 기간지정 수정

1180371 8 年之前
父節點
當前提交
e29089dbe6

+ 19 - 0
ZUMO/src/main/java/kr/co/zumo/app/adapter/CalendarAdapter.java

@@ -12,6 +12,7 @@ import android.view.ViewGroup;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
 
 import kr.co.zumo.app.R;
@@ -316,4 +317,22 @@ public class CalendarAdapter extends PagerAdapter implements CalendarPagerContra
             });
         }
     }
+
+    @Override
+    public ArrayList<CustomDate> getSelectedItem() {
+        ArrayList<CustomDate> selectedCustomDate = new ArrayList<>();
+        Iterator<Integer> iterator = mRootCustomDates.keySet().iterator();
+        while(iterator.hasNext()) {
+            int key = iterator.next();
+            RootCustomDate rootCustomDate = mRootCustomDates.get(key);
+            List<CustomDate> customDates = rootCustomDate.getCustomDateList();
+            for (CustomDate customDate : customDates) {
+                if(customDate.isSelected()) {
+                    selectedCustomDate.add(customDate);
+                }
+            }
+        }
+
+        return selectedCustomDate;
+    }
 }

+ 3 - 4
ZUMO/src/main/java/kr/co/zumo/app/adapter/contract/CalendarPagerContract.java

@@ -3,16 +3,14 @@ package kr.co.zumo.app.adapter.contract;
 
 import android.support.annotation.NonNull;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import kr.co.zumo.app.data.CustomDate;
 import kr.co.zumo.app.data.jackson.WeekendData;
 
 /**
- * LoginContract
- *
- * @author yeongyun
- * @since 2017-09-04
+ * CalendarPagerContract
  */
 
 public interface CalendarPagerContract {
@@ -24,6 +22,7 @@ public interface CalendarPagerContract {
     interface Model {
         void setDate(@NonNull CustomDate customDate);
         CustomDate getPagerDates(int position);
+        ArrayList<CustomDate> getSelectedItem();
     }
 
 }

+ 1 - 1
ZUMO/src/main/java/kr/co/zumo/app/common/ActivityUtils.java

@@ -191,6 +191,6 @@ public class ActivityUtils {
 
     public static void startCalendarActivity(@NonNull Activity activity) {
         Intent intent = new Intent(activity, CalendarActivity.class);
-        activity.startActivity(intent);
+        activity.startActivityForResult(intent, Constants.RESULT_AFTER_SELECT_TIME);
     }
 }

+ 2 - 0
ZUMO/src/main/java/kr/co/zumo/app/common/Constants.java

@@ -45,11 +45,13 @@ public class Constants {
     public static final String INTENT_CATEGORY_TITLE = "intent_category_title";
     public static final String INTENT_AREA_NO = "intent_area_no";
     public static final String INTENT_AREA_TITLE = "intent_area_title";
+    public static final String INTENT_TIME_SET = "intent_time_set";
 
     public static final int RESULT_AFTER_GOOGLE_AUTH        = 3001;
     public static final int RESULT_AFTER_SIGN_IN            = 3002;
     public static final int RESULT_AFTER_SIGN_UP            = 3003;
     public static final int RESULT_AFTER_SELECT_LOCATION    = 3004;
+    public static final int RESULT_AFTER_SELECT_TIME        = 3005;
 
     public static final String DISCOVER_TYPE_MOVIE         = "0201";
     public static final String DISCOVER_TYPE_PERFORMANCE   = "0202";

+ 35 - 1
ZUMO/src/main/java/kr/co/zumo/app/data/CustomDate.java

@@ -1,12 +1,14 @@
 package kr.co.zumo.app.data;
 
+import android.os.Parcel;
+import android.os.Parcelable;
 import android.support.annotation.NonNull;
 
 /**
  * Created by Yeongyun on 2017. 10. 16..
  */
 
-public class CustomDate {
+public class CustomDate implements Parcelable {
     private int year;
     private int month;
     private int day;
@@ -22,6 +24,38 @@ public class CustomDate {
         this.day = day;
     }
 
+    protected CustomDate(Parcel in) {
+        year = in.readInt();
+        month = in.readInt();
+        day = in.readInt();
+        selected = in.readByte() != 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeInt(year);
+        dest.writeInt(month);
+        dest.writeInt(day);
+        dest.writeByte((byte) (selected ? 1 : 0));
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    public static final Creator<CustomDate> CREATOR = new Creator<CustomDate>() {
+        @Override
+        public CustomDate createFromParcel(Parcel in) {
+            return new CustomDate(in);
+        }
+
+        @Override
+        public CustomDate[] newArray(int size) {
+            return new CustomDate[size];
+        }
+    };
+
     public int getYear() {
         return year;
     }

+ 9 - 0
ZUMO/src/main/java/kr/co/zumo/app/screen/common/CalendarActivity.java

@@ -62,6 +62,9 @@ public class CalendarActivity extends BaseActivity implements CalendarContract.V
         mImageButtonRight.setEnabled(true);
         mImageButtonLeft.setEnabled(false);
 
+        findViewById(R.id.close_imageButton).setOnClickListener(this);
+        findViewById(R.id.confirm_imageButton).setOnClickListener(this);
+
         mPresenter = new CalendarPresenter(this, calendarAdapter, calendarAdapter);
         mPresenter.getCurrentDate();
     }
@@ -75,6 +78,12 @@ public class CalendarActivity extends BaseActivity implements CalendarContract.V
             case R.id.right_imageButton:
                 mViewPager.setCurrentItem(mViewPager.getCurrentItem() + 1, true);
                 break;
+            case R.id.close_imageButton:
+                finish();
+                break;
+            case R.id.confirm_imageButton:
+                mPresenter.getSelectedItem();
+                break;
         }
     }
 

+ 4 - 5
ZUMO/src/main/java/kr/co/zumo/app/screen/common/CalendarContract.java

@@ -3,16 +3,14 @@ package kr.co.zumo.app.screen.common;
 
 import android.support.annotation.NonNull;
 
+import java.util.List;
+
 import kr.co.zumo.app.BasePresenter;
 import kr.co.zumo.app.BaseView;
 import kr.co.zumo.app.data.CustomDate;
 
 /**
- * MainContract
- * 메인 액티비티 컨트랙터
- *
- * @author yeongyun
- * @since 2017-05-15
+ * CalendarContract
  */
 
 public interface CalendarContract {
@@ -24,6 +22,7 @@ public interface CalendarContract {
     interface Presenter extends BasePresenter {
         void getCurrentDate();
         void getTitle(@NonNull int position);
+        void getSelectedItem();
     }
 
 }

+ 11 - 0
ZUMO/src/main/java/kr/co/zumo/app/screen/common/CalendarPresenter.java

@@ -2,6 +2,7 @@ package kr.co.zumo.app.screen.common;
 
 import android.app.Activity;
 import android.content.Context;
+import android.content.Intent;
 import android.support.annotation.NonNull;
 
 import java.util.ArrayList;
@@ -9,6 +10,7 @@ import java.util.Calendar;
 import java.util.List;
 
 import kr.co.zumo.app.adapter.contract.CalendarPagerContract;
+import kr.co.zumo.app.common.Constants;
 import kr.co.zumo.app.data.CustomDate;
 
 /**
@@ -50,6 +52,15 @@ public class CalendarPresenter implements CalendarContract.Presenter {
         mView.setCurrentDate(customDate);
     }
 
+    @Override
+    public void getSelectedItem() {
+        ArrayList<CustomDate> customDates = mAdapterModel.getSelectedItem();
+        Intent intent = new Intent();
+        intent.putParcelableArrayListExtra(Constants.INTENT_TIME_SET, customDates);
+        getActivity().setResult(Activity.RESULT_OK, intent);
+        getActivity().finish();
+    }
+
     @Override
     public Activity getActivity() {
         return (Activity) mView;

+ 2 - 0
ZUMO/src/main/java/kr/co/zumo/app/screen/search/SearchActivity.java

@@ -261,6 +261,8 @@ public class SearchActivity extends BaseActivity implements SearchContract.View,
         super.onActivityResult(requestCode, resultCode, data);
         if (requestCode == Constants.RESULT_AFTER_SELECT_LOCATION && resultCode == RESULT_OK) {
             mPresenter.getResultFromSelectLocation(data);
+        } else if(requestCode == Constants.RESULT_AFTER_SELECT_TIME && resultCode == RESULT_OK) {
+            mPresenter.getResultFromSelectTime(data);
         }
     }
 

+ 1 - 0
ZUMO/src/main/java/kr/co/zumo/app/screen/search/SearchContract.java

@@ -34,6 +34,7 @@ public interface SearchContract {
         void getTermsAndAreaTag();
         void updateTag(@NonNull boolean add, @NonNull InterestInfoData interestInfoData);
         void getResultFromSelectLocation(@NonNull Intent intent);
+        void getResultFromSelectTime(@NonNull Intent intent);
         void selectLocation();
         void selectDate();
         TextWatcher getTextWatcher();

+ 8 - 0
ZUMO/src/main/java/kr/co/zumo/app/screen/search/SearchPresenter.java

@@ -6,6 +6,7 @@ import android.content.Intent;
 import android.support.annotation.NonNull;
 import android.text.Editable;
 import android.text.TextWatcher;
+import android.util.Log;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -14,6 +15,7 @@ import kr.co.zumo.app.adapter.contract.SearchTagAdapterContract;
 import kr.co.zumo.app.common.ActivityUtils;
 import kr.co.zumo.app.common.Constants;
 import kr.co.zumo.app.common.StringUtils;
+import kr.co.zumo.app.data.CustomDate;
 import kr.co.zumo.app.data.jackson.InterestInfoData;
 import kr.co.zumo.app.data.source.tag.TagDataRepository;
 import kr.co.zumo.app.network.NetworkCallback;
@@ -186,6 +188,12 @@ public class SearchPresenter implements SearchContract.Presenter {
         mView.selectArea(interestInfoData);
     }
 
+    @Override
+    public void getResultFromSelectTime(@NonNull Intent intent) {
+        ArrayList<CustomDate> customDates = intent.getParcelableArrayListExtra(Constants.INTENT_TIME_SET);
+        //TODO: setData
+    }
+
     @Override
     public void selectLocation() {
         ActivityUtils.startLocationSelectActivity(getActivity(), mAreaNo);

+ 2 - 2
ZUMO/src/main/res/layout/activity_calendar.xml

@@ -77,7 +77,7 @@
                 android:orientation="horizontal">
 
                 <ImageButton
-                    android:id="@+id/close_ib2"
+                    android:id="@+id/close_imageButton"
                     android:layout_width="0dp"
                     android:layout_height="54dp"
                     android:layout_weight="1"
@@ -85,7 +85,7 @@
                     android:src="@mipmap/btn_search_popup_cancle" />
 
                 <ImageButton
-                    android:id="@+id/confirm_ib"
+                    android:id="@+id/confirm_imageButton"
                     android:layout_width="0dp"
                     android:layout_height="54dp"
                     android:layout_weight="1"