Browse Source

Merge branch 'develop' of https://github.com/swict/LifePlusAndroid into develop

hyodong.min 7 years ago
parent
commit
176cd484e8

+ 87 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/main/category/FirstCategoryMainAdapter.java

@@ -0,0 +1,87 @@
+package kr.co.zumo.app.lifeplus.view.fragment.main.category;
+
+import android.content.Context;
+import android.support.annotation.NonNull;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import kr.co.zumo.app.R;
+
+/**
+ * FirstCategoryMainAdapter
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-10-23]   [최초 작성]
+ * @since 2018-10-23
+ */
+public class FirstCategoryMainAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
+
+  private Context context;
+  private LayoutInflater inflater;
+  public static final int GRID_VIEW_TYPE = 0;
+  public static final int LINEAR_VIEW_TYPE = 1;
+
+  public FirstCategoryMainAdapter(Context context) {
+    this.context = context;
+    this.inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+
+
+  }
+
+  @NonNull
+  @Override
+  public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+    View view;
+    switch (viewType) {
+      case GRID_VIEW_TYPE:
+        view = inflater.inflate(R.layout.main_first_category_grid_view, parent, false);
+        return new FirstCategoryMainGridViewHolder(view);
+      case LINEAR_VIEW_TYPE:
+        view = inflater.inflate(R.layout.main_first_category_linear_view, parent, false);
+        return new FirstCategoryMainLinearViewHolder(view);
+      default:
+        break;
+    }
+    return null;
+
+
+  }
+
+  @Override
+  public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
+    switch (getItemViewType(position)) {
+      case GRID_VIEW_TYPE:
+        ((FirstCategoryMainGridViewHolder) holder).doDataSetting();
+        break;
+      case LINEAR_VIEW_TYPE:
+        ((FirstCategoryMainLinearViewHolder) holder).doDataSetting();
+        break;
+      default:
+        break;
+    }
+
+
+  }
+
+  @Override
+  public int getItemCount() {
+    return 8;
+  }
+
+  @Override
+  public int getItemViewType(int position) {
+    if (position == 4) {
+      return LINEAR_VIEW_TYPE;
+    }
+    else {
+      return GRID_VIEW_TYPE;
+    }
+  }
+
+
+}

+ 27 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/main/category/FirstCategoryMainFragment.java

@@ -3,6 +3,8 @@ package kr.co.zumo.app.lifeplus.view.fragment.main.category;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
+import android.support.v7.widget.GridLayoutManager;
+import android.support.v7.widget.RecyclerView;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -35,6 +37,7 @@ public class FirstCategoryMainFragment extends FragmentBase<FirstCategoryMainPre
 
   private List<TextImageBean> textImageBeanList;
   private MainSeriesView mainSeriesView;
+  private RecyclerView recyclerViewFirstCategoryMain;
 
   @Nullable
   @Override
@@ -45,7 +48,7 @@ public class FirstCategoryMainFragment extends FragmentBase<FirstCategoryMainPre
   @Override
   protected void onAfterActivityCreated(Bundle savedInstanceState) {
     mainSeriesView = findViewById(R.id.series_image_text_view);
-
+    recyclerViewFirstCategoryMain = findViewById(R.id.recycler_view_first_category_main);
     doDataSetting();
 
     mainSeriesView.init(getActivity(), textImageBeanList, 10);
@@ -55,8 +58,31 @@ public class FirstCategoryMainFragment extends FragmentBase<FirstCategoryMainPre
         Log.i("APP# FirstCategoryMainFragment | onClickItem", "|" + "position: " + position);
       }
     });
+
+    FirstCategoryMainAdapter firstCategoryMainAdapter = new FirstCategoryMainAdapter(getActivity());
+    GridLayoutManager gridLayoutManager = new GridLayoutManager(getActivity(), 2);
+    gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
+      @Override
+      public int getSpanSize(int position) {
+        switch (firstCategoryMainAdapter.getItemViewType(position)) {
+          case FirstCategoryMainAdapter.GRID_VIEW_TYPE:
+            //리싸이컬르뷰 영역 한개 원래대로씀
+            return 1;
+          case FirstCategoryMainAdapter.LINEAR_VIEW_TYPE:
+            //리싸이클러뷰 영역 2개를 합침
+            return 2;
+          default:
+            break;
+        }
+        return 0;
+      }
+    });
+    recyclerViewFirstCategoryMain.addItemDecoration(new GridItemDecoration());
+    recyclerViewFirstCategoryMain.setLayoutManager(gridLayoutManager);
+    recyclerViewFirstCategoryMain.setAdapter(firstCategoryMainAdapter);
   }
 
+
   @Override
   protected void defineActionBar() {
     ActionBarManager.getInstance().begin().title(R.string.contents_category1_action_bar_title)

+ 37 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/main/category/FirstCategoryMainGridViewHolder.java

@@ -0,0 +1,37 @@
+package kr.co.zumo.app.lifeplus.view.fragment.main.category;
+
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import kr.co.zumo.app.R;
+
+/**
+ * FirstCategoryMainViewHolder
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-10-23]   [최초 작성]
+ * @since 2018-10-23
+ */
+public class FirstCategoryMainGridViewHolder extends RecyclerView.ViewHolder {
+
+  private ImageView imageViewMainFirstCategory;
+  private TextView textViewMainFirstCategory;
+
+  public FirstCategoryMainGridViewHolder(View itemView) {
+    super(itemView);
+    imageViewMainFirstCategory  = itemView.findViewById(R.id.image_view_main_first_category);
+    textViewMainFirstCategory  = itemView.findViewById(R.id.text_view_main_first_category);
+  }
+
+  public void doDataSetting(){
+
+    imageViewMainFirstCategory.setImageDrawable(itemView.getResources().getDrawable(R.drawable.img_bestbucket_1));
+    textViewMainFirstCategory.setText(R.string.bucket_list);
+
+  }
+}

+ 32 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/main/category/FirstCategoryMainLinearViewHolder.java

@@ -0,0 +1,32 @@
+package kr.co.zumo.app.lifeplus.view.fragment.main.category;
+
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.ImageView;
+
+import kr.co.zumo.app.R;
+
+/**
+ * FirstCategoryMainLinearViewHolder
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-10-23]   [최초 작성]
+ * @since 2018-10-23
+ */
+public class FirstCategoryMainLinearViewHolder extends RecyclerView.ViewHolder {
+
+  private ImageView imageViewMainFirstCategory;
+
+  public FirstCategoryMainLinearViewHolder(View itemView) {
+    super(itemView);
+    imageViewMainFirstCategory = itemView.findViewById(R.id.image_view_main_first_category);
+  }
+
+  public void doDataSetting() {
+    imageViewMainFirstCategory.setImageDrawable(itemView.getResources().getDrawable(R.drawable.img_bestbucket_banner_5));
+
+  }
+}

+ 56 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/main/category/GridItemDecoration.java

@@ -0,0 +1,56 @@
+package kr.co.zumo.app.lifeplus.view.fragment.main.category;
+
+import android.graphics.Rect;
+import android.support.v7.widget.GridLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+
+import kr.co.zumo.app.lifeplus.util.ResourceUtil;
+
+/**
+ * GridItemDecoration
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-10-23]   [최초 작성]
+ * @since 2018-10-23
+ */
+public class GridItemDecoration extends RecyclerView.ItemDecoration {
+  private int mHorizontalSpacing = ResourceUtil.dpToPx(9);
+  private int mVerticalSpacing = ResourceUtil.dpToPx(9);
+
+  @Override
+  public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state)
+  {
+    super.getItemOffsets(outRect, view, parent, state);
+    // Only handle the vertical situation
+    int position = parent.getChildPosition(view);
+    if (parent.getLayoutManager() instanceof GridLayoutManager)
+    {
+      GridLayoutManager layoutManager = (GridLayoutManager) parent.getLayoutManager();
+      int spanCount, column;
+      // Check the last item and is alone. Then set the parent's width
+      if (position == parent.getAdapter().getItemCount() - 1 && position % 2 == 0)
+      {
+        spanCount = 1;
+        outRect.left = mHorizontalSpacing;
+        outRect.right = parent.getWidth() - mHorizontalSpacing;
+      }
+      else
+      {
+        spanCount = layoutManager.getSpanCount();
+        column = position % spanCount;
+        outRect.left = mHorizontalSpacing * (spanCount - column) / spanCount;
+        outRect.right = mHorizontalSpacing * (column + 1) / spanCount;
+      }
+
+      if (position < spanCount)
+      {
+        outRect.top = mVerticalSpacing;
+      }
+      outRect.bottom = mVerticalSpacing;
+    }
+  }
+}

+ 26 - 0
app/src/main/res/drawable/filter_drop_down.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0"
+  encoding="utf-8"?>
+<selector
+  xmlns:app="http://schemas.android.com/apk/res-auto"
+  xmlns:android="http://schemas.android.com/apk/res/android">
+  <item>
+    <layer-list>
+      <item>
+        <shape>
+          <gradient android:angle="90"
+                    android:endColor="#ffffff"
+                    android:startColor="#ffffff"
+                    android:type="linear" />
+
+          <corners android:radius="5dp" />
+
+          <padding android:bottom="3dp"
+                   android:left="0dp"
+                   android:right="3dp"
+                   android:top="3dp" />
+        </shape>
+      </item>
+      <item android:gravity="center|right" android:drawable="@drawable/ic_filter_down"/>
+    </layer-list>
+  </item>
+</selector>

+ 21 - 0
app/src/main/res/drawable/ic_filter_de.xml

@@ -0,0 +1,21 @@
+<vector android:height="21dp" android:viewportHeight="82"
+    android:viewportWidth="82" android:width="21dp" xmlns:android="http://schemas.android.com/apk/res/android">
+    <path android:fillColor="#00000000" android:fillType="evenOdd"
+        android:pathData="M6.833,63.778h44.18m12.198,0h11.955"
+        android:strokeColor="#999" android:strokeWidth="4"/>
+    <path android:fillColor="#00000000" android:fillType="evenOdd"
+        android:pathData="M56.944,63.778m-5.972,0a5.972,5.972 0,1 1,11.944 0a5.972,5.972 0,1 1,-11.944 0"
+        android:strokeColor="#999" android:strokeWidth="4"/>
+    <path android:fillColor="#00000000" android:fillType="evenOdd"
+        android:pathData="M6.833,18.222h44.18m12.198,0h11.955"
+        android:strokeColor="#999" android:strokeWidth="4"/>
+    <path android:fillColor="#00000000" android:fillType="evenOdd"
+        android:pathData="M56.944,18.222m-5.972,0a5.972,5.972 0,1 1,11.944 0a5.972,5.972 0,1 1,-11.944 0"
+        android:strokeColor="#999" android:strokeWidth="4"/>
+    <path android:fillColor="#00000000" android:fillType="evenOdd"
+        android:pathData="M75.166,41L30.987,41m-12.198,0L6.833,41"
+        android:strokeColor="#999" android:strokeWidth="4"/>
+    <path android:fillColor="#00000000" android:fillType="evenOdd"
+        android:pathData="M25.055,41m-5.972,0a5.972,5.972 0,1 1,11.944 0a5.972,5.972 0,1 1,-11.944 0"
+        android:strokeColor="#999" android:strokeWidth="4"/>
+</vector>

+ 4 - 0
app/src/main/res/drawable/ic_filter_down.xml

@@ -0,0 +1,4 @@
+<vector android:height="11dp" android:viewportHeight="42"
+    android:viewportWidth="42" android:width="11dp" xmlns:android="http://schemas.android.com/apk/res/android">
+    <path android:fillColor="#666" android:fillType="nonZero" android:pathData="M9.705,15.099h23.488L21.45,27.949z"/>
+</vector>

+ 49 - 5
app/src/main/res/layout/fragment_first_category_main.xml

@@ -1,12 +1,56 @@
 <?xml version="1.0" encoding="utf-8"?>
-<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-                                             android:layout_width="match_parent"
-                                             android:layout_height="match_parent">
+<android.support.constraint.ConstraintLayout
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  xmlns:app="http://schemas.android.com/apk/res-auto"
+  xmlns:tools="http://schemas.android.com/tools"
+  android:layout_width="match_parent"
+  android:layout_height="match_parent">
+
   <kr.co.zumo.app.lifeplus.view.custom.main.series.MainSeriesView
     android:id="@+id/series_image_text_view"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content">
-
+    android:layout_height="wrap_content"
+    android:layout_marginTop="23dp"
+    android:clipToPadding="false">
   </kr.co.zumo.app.lifeplus.view.custom.main.series.MainSeriesView>
 
+  <RelativeLayout
+    android:id="@+id/relativeLayout"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    app:layout_constraintTop_toBottomOf="@id/series_image_text_view">
+
+    <Spinner
+      android:id="@+id/spinner_mobile_company"
+      android:layout_width="wrap_content"
+      android:layout_height="45dp"
+      android:layout_marginStart="25dp"
+      android:background="@drawable/filter_drop_down"
+      android:entries="@array/main_filter"
+      android:focusable="true"
+      android:textColor="@color/C000000"
+      android:textSize="14sp"/>
+
+    <ImageView
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_alignParentEnd="true"
+      android:layout_marginEnd="10dp"
+      android:padding="14dp"
+      app:srcCompat="@drawable/ic_filter_de"
+      />
+  </RelativeLayout>
+
+  <android.support.v7.widget.RecyclerView
+    android:id="@+id/recycler_view_first_category_main"
+    android:layout_width="match_parent"
+    android:layout_height="0dp"
+    android:clipToPadding="false"
+    android:layout_marginStart="16dp"
+    android:layout_marginEnd="16dp"
+    app:layout_constraintBottom_toBottomOf="parent"
+    app:layout_constraintTop_toBottomOf="@id/relativeLayout"
+    app:layout_constraintLeft_toLeftOf="parent"
+    app:layout_constraintRight_toRightOf="parent"
+    />
 </android.support.constraint.ConstraintLayout>

+ 6 - 3
app/src/main/res/layout/fragment_my_bucket_list.xml

@@ -82,20 +82,23 @@
       />
   </RelativeLayout>
 
-  <RelativeLayout
+  <LinearLayout
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
+    android:layout_gravity="center"
     android:layout_marginStart="25dp"
     android:layout_marginTop="28dp"
     android:layout_marginEnd="25dp"
-    android:layout_marginBottom="22dp">
+    android:layout_marginBottom="22dp"
+    android:orientation="vertical">
 
     <android.support.v7.widget.RecyclerView
       android:id="@+id/recycler_view_my_bucket_list"
+      android:layout_gravity="center_horizontal"
       android:layout_width="match_parent"
       android:layout_height="wrap_content">
     </android.support.v7.widget.RecyclerView>
 
-  </RelativeLayout>
+  </LinearLayout>
 
 </LinearLayout>

+ 13 - 9
app/src/main/res/layout/image_and_text_contents.xml

@@ -1,28 +1,32 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout
-  android:gravity="center"
-  android:orientation="vertical"
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   android:layout_width="wrap_content"
-  android:layout_height="wrap_content">
+  android:layout_height="wrap_content"
+  android:gravity="center"
+  android:orientation="vertical"
+  android:paddingLeft="27dp">
+
   <ImageView
     android:id="@+id/image_view_main_contents"
+    android:layout_width="61dp"
+    android:layout_height="61dp"
+    android:scaleType="fitXY"
     app:srcCompat="@drawable/img_select_bg_1"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
     />
+
   <TextView
     android:id="@+id/text_view_main_contents"
-    android:layout_marginTop="13dp"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
-    android:textSize="11sp"
-    android:textColor="@color/C000000"
-    android:lineSpacingExtra="4sp"
+    android:layout_marginTop="13dp"
     android:gravity="center_horizontal"
+    android:lineSpacingExtra="4sp"
     android:text="카페 거리
 걷기"
+    android:textColor="@color/C000000"
+    android:textSize="11sp"
     />
 
 

+ 29 - 0
app/src/main/res/layout/main_first_category_grid_view.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  xmlns:app="http://schemas.android.com/apk/res-auto"
+  xmlns:tools="http://schemas.android.com/tools"
+  android:layout_width="match_parent"
+  android:layout_height="202dp">
+
+  <ImageView
+    android:id="@+id/image_view_main_first_category"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:scaleType="fitXY"
+    app:srcCompat="@drawable/img_bestbucket_1"/>
+
+  <TextView
+    android:id="@+id/text_view_main_first_category"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_marginStart="12dp"
+    android:layout_marginBottom="12dp"
+    android:lineSpacingExtra="5.5sp"
+    android:textColor="@color/CFFFFFF"
+    android:textSize="14sp"
+    app:layout_constraintStart_toStartOf="parent"
+    app:layout_constraintBottom_toBottomOf="parent"
+    tools:text="뜻밖의 오후 반차
+어디가지? 코스 6"/>
+</android.support.constraint.ConstraintLayout>

+ 18 - 0
app/src/main/res/layout/main_first_category_linear_view.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  xmlns:app="http://schemas.android.com/apk/res-auto"
+  android:layout_width="match_parent"
+  android:layout_marginTop="26dp"
+  android:layout_marginBottom="26dp"
+  android:layout_height="wrap_content">
+
+  <ImageView
+    android:id="@+id/image_view_main_first_category"
+    android:layout_width="match_parent"
+    android:layout_height="122dp"
+    android:scaleType="fitXY"
+    app:layout_constraintStart_toStartOf="parent"
+    app:layout_constraintEnd_toEndOf="parent"
+    app:srcCompat="@drawable/img_bestbucket_banner_5"/>
+</android.support.constraint.ConstraintLayout>

+ 7 - 0
app/src/main/res/values/arrays.xml

@@ -24,6 +24,13 @@
     <item>hanmail.net</item>
     <item>gmail.com</item>
   </string-array>
+  
+  <string-array name="main_filter">
+    <item>최신순</item>
+    <item>좋아요 순</item>
+    <item>북마크 순</item>
+
+  </string-array>
 
 
 </resources>