소스 검색

[FAQ][Common] 나의 문의내역 보기 페이지 구현

Hasemi 7 년 전
부모
커밋
260ad0c53a

+ 2 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/supervisor/ScreenID.java

@@ -67,6 +67,7 @@ public class ScreenID {
   public static final int MY_MAIN_GUEST  = 47;
   public static final int COUPON_MALL = 48;
   public static final int ALL_MENU_GUEST = 49;
+  public static final int MY_FAQ = 50;
 
   @Retention(RetentionPolicy.SOURCE)
   @IntDef({
@@ -75,7 +76,7 @@ public class ScreenID {
     SIGN_UP_COMPLETED, SIGN_UP_UNDER_14_YEARS, REST_MEMBER_START, REST_MEMBER_ACTIVE_COMPLETED, MEMBER_BLOCK, SIGN_UP_FROM_ON_BOARDING,
     BUCKET, MY_COIN_DETAIL, ALL_MENU, MY_BUCKET, ADD_MY_BUCKET, FAQ_WRITE, BUCKET_DETAIL, FIRST_CATEGORY, SECOND_CATEGORY, THIRD_CATEGORY,
     FOURTH_CATEGORY, FIFTH_CATEGORY, NOTIFICATION, SETTING_CODE, MY_MAIN, BOOK_MARK_DEFAULT, BOOK_MARK_LIST, MY_COIN_MAIN, MY_COIN_EXTINCT, MY_PURCHASE_HISTORY,
-    GUIDE, LIFE_PLUS_X, SETTING_MEMBER_INFO,MY_MAIN_GUEST, COUPON_MALL, ALL_MENU_GUEST,
+    GUIDE, LIFE_PLUS_X, SETTING_MEMBER_INFO,MY_MAIN_GUEST, COUPON_MALL, ALL_MENU_GUEST, MY_FAQ
 
   })
   public @interface FragmentID {}

+ 3 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/Event.java

@@ -91,6 +91,7 @@ public class Event {
   public static final int MY_MAIN_GUEST = 63;
   public static final int COUPON_MALL = 64;
   public static final int CATEGORY_CLICK = 65;
+  public static final int MY_FAQ = 66;
 
   @Retention(RetentionPolicy.SOURCE)
   @IntDef({
@@ -100,7 +101,8 @@ public class Event {
     COMPLETED, TUTORIAL_END, EXIT, START, SETTING, BUCKET, MY_COIN_DETAIL, MY, TOGGLE, MY_BUCKET,
     ACTION_BAR_HOME, ACTION_BAR_NOTIFICATION, ACTION_BAR_SETTING, ACTION_BAR_CLOSE, ACTION_BAR_BACK,
     ACTION_BAR_SEARCH, ACTION_BAR_MENU, ACTION_BAR_TITLE, FIRST_CATEGORY, SECOND_CATEGORY, THIRD_CATEGORY, FOURTH_CATEGORY, FIFTH_CATEGORY,
-    SWITCH, BOOK_MARK_DEFAULT, BOOK_MARK_LIST, ADD, MY_COIN_MAIN, MY_PURCHASE_HISTORY, GUIDE, ADD_BUCKET, MY_MAIN_GUEST, COUPON_MALL, CATEGORY_CLICK
+    SWITCH, BOOK_MARK_DEFAULT, BOOK_MARK_LIST, ADD, MY_COIN_MAIN, MY_PURCHASE_HISTORY, GUIDE, ADD_BUCKET, MY_MAIN_GUEST, COUPON_MALL, CATEGORY_CLICK,
+    MY_FAQ,
   })
   public @interface ID {}
 

+ 4 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/factory/BasicFragmentFactory.java

@@ -10,6 +10,7 @@ import kr.co.zumo.app.lifeplus.view.screen.couponmall.CouponMallFragment;
 import kr.co.zumo.app.lifeplus.view.screen.error.NetworkErrorFragment;
 import kr.co.zumo.app.lifeplus.view.screen.faq.FAQFragment;
 import kr.co.zumo.app.lifeplus.view.screen.faq.FAQWriteFragment;
+import kr.co.zumo.app.lifeplus.view.screen.faq.MyFAQFragment;
 import kr.co.zumo.app.lifeplus.view.screen.guide.GuideFragment;
 import kr.co.zumo.app.lifeplus.view.screen.guide.LifeplusBrandFragment;
 import kr.co.zumo.app.lifeplus.view.screen.info.PermissionInfoFragment;
@@ -210,6 +211,9 @@ public class BasicFragmentFactory extends FragmentFactory {
       case ScreenID.COUPON_MALL:
         fragment = new CouponMallFragment();
         break;
+      case ScreenID.MY_FAQ:
+        fragment = new MyFAQFragment();
+        break;
       default:
         break;
     }

+ 4 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/faq/FAQWriteFragment.java

@@ -11,6 +11,7 @@ import android.widget.Switch;
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.manager.ActionBarManager;
 import kr.co.zumo.app.lifeplus.model.BlankModel;
+import kr.co.zumo.app.lifeplus.view.Event;
 import kr.co.zumo.app.lifeplus.view.IView;
 import kr.co.zumo.app.lifeplus.view.screen.FragmentBase;
 
@@ -41,6 +42,9 @@ public class FAQWriteFragment extends FragmentBase<FAQWritePresenter> implements
     switchPushOnOff.setOnCheckedChangeListener((buttonView, isChecked) -> {
 
     });
+    findViewById(R.id.button_registration).setOnClickListener(view -> {
+      presenter.onEvent(new Event.Builder(Event.MY_FAQ).build());
+    });
 
   }
 

+ 7 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/faq/FAQWritePresenter.java

@@ -57,7 +57,13 @@ public class FAQWritePresenter extends Presenter<BlankModel, IView> {
 
   @Override
   protected void onEventInternal(Event event) {
-
+    switch (event.getEventId()) {
+      case Event.MY_FAQ:
+        onCommand(new FragmentBackStackChangeCommand(ScreenID.MY_FAQ, ScreenID.DIRECTION_NEXT));
+        break;
+      default:
+        break;
+    }
   }
 
   @Override

+ 41 - 9
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/faq/MyFAQFragment.java

@@ -1,6 +1,6 @@
 package kr.co.zumo.app.lifeplus.view.screen.faq;
 
-import android.app.Fragment;
+import android.graphics.Rect;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
@@ -15,6 +15,12 @@ import java.util.List;
 
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.bean.api.FAQBean;
+import kr.co.zumo.app.lifeplus.manager.ActionBarManager;
+import kr.co.zumo.app.lifeplus.manager.ActionButtonManager;
+import kr.co.zumo.app.lifeplus.model.BlankModel;
+import kr.co.zumo.app.lifeplus.util.ResourceUtil;
+import kr.co.zumo.app.lifeplus.view.Event;
+import kr.co.zumo.app.lifeplus.view.screen.FragmentBase;
 
 /**
  * MyFAQFragment
@@ -26,27 +32,53 @@ import kr.co.zumo.app.lifeplus.bean.api.FAQBean;
  * @history 하세미   [2018-10-15]   [최초 작성]
  * @since 2018-10-15
  */
-public class MyFAQFragment extends Fragment {
+public class MyFAQFragment extends FragmentBase<MyFAQPresenter> {
 
   private RecyclerView myFAQList;
   private List<FAQBean> data;
 
   @Override
-  public void onCreate(@Nullable Bundle savedInstanceState) {
-    super.onCreate(savedInstanceState);
+  protected View onAfterCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
 
+    View view = inflater.inflate(R.layout.fragment_my_faq, container, false);
+    return view;
   }
 
-  @Nullable
   @Override
-  public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-    View view = inflater.inflate(R.layout.fragment_my_faq, container, false);
+  protected void onAfterActivityCreated(Bundle savedInstanceState) {
     setMyFAQList();
-    myFAQList = view.findViewById(R.id.expandable_list_view_my_faq);
+    myFAQList = findViewById(R.id.expandable_list_view_my_faq);
     myFAQList.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
     MyFAQExpandableListViewAdapter adapter = new MyFAQExpandableListViewAdapter(data);
+    myFAQList.addItemDecoration(new RecyclerView.ItemDecoration() {
+      @Override
+      public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
+        super.getItemOffsets(outRect, view, parent, state);
+        outRect.bottom = ResourceUtil.dpToPx(12);
+      }
+    });
     myFAQList.setAdapter(adapter);
-    return view;
+  }
+
+  @Override
+  protected void defineActionButton() {
+    ActionButtonManager.getInstance().begin().pencil(floatingActionButton -> {
+      presenter.onEvent(new Event.Builder(Event.FAQ).build());
+    }).show();
+  }
+
+  @Override
+  protected void defineActionBar() {
+    ActionBarManager.getInstance().begin().title(R.string.my_faq)
+      .menu(actionBar -> presenter.onClickMenu(actionBar))
+      .search(actionBar -> presenter.onClickSearch(actionBar))
+      .back(actionBar -> presenter.onClickBack(actionBar))
+      .show();
+  }
+
+  @Override
+  protected MyFAQPresenter definePresenter() {
+    return new MyFAQPresenter(getModel(BlankModel.class), this);
   }
 
   public void setMyFAQList(){

+ 67 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/faq/MyFAQPresenter.java

@@ -0,0 +1,67 @@
+package kr.co.zumo.app.lifeplus.view.screen.faq;
+
+import kr.co.zumo.app.lifeplus.model.BlankModel;
+import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
+import kr.co.zumo.app.lifeplus.view.Event;
+import kr.co.zumo.app.lifeplus.view.IView;
+import kr.co.zumo.app.lifeplus.view.command.FragmentBackStackChangeCommand;
+import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
+
+/**
+ * MyFAQPresenter
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-10-31]   [최초 작성]
+ * @since 2018-10-31
+ */
+public class MyFAQPresenter extends Presenter<BlankModel, IView> {
+
+
+  public MyFAQPresenter(BlankModel model, IView view) {
+    super(model, view);
+  }
+
+  @Override
+  protected void destroyInternal() {
+
+  }
+
+  @Override
+  protected void startInternal() {
+
+  }
+
+  @Override
+  protected void stopInternal() {
+
+  }
+
+  @Override
+  protected void resumeInternal() {
+
+  }
+
+  @Override
+  protected void pauseInternal() {
+
+  }
+
+  @Override
+  public boolean onBackPressed() {
+    onCommand(new FragmentBackStackChangeCommand(ScreenID.FAQ_WRITE, ScreenID.DIRECTION_BACK));
+    return true;
+  }
+
+  @Override
+  protected void onEventInternal(Event event) {
+
+  }
+
+  @Override
+  public void onResult(Event event) {
+
+  }
+}

+ 4 - 6
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/main/category/SecondCategoryMainViewHolder.java

@@ -4,8 +4,6 @@ import android.support.v7.widget.RecyclerView;
 import android.view.View;
 import android.widget.ImageView;
 
-import kr.co.zumo.app.R;
-
 /**
  * SecondCategoryMainViewHolder
  * <pre>
@@ -34,9 +32,9 @@ public class SecondCategoryMainViewHolder extends RecyclerView.ViewHolder {
     super(itemView);
 //    imageViewMainSecondCategory = itemView.findViewById(R.id.image_view_main_second_category);
 //    textViewMainSecondCategory = itemView.findViewById(R.id.text_view_main_second_title);
-    imageView1 = itemView.findViewById(R.id.first_image_view);
+  /*  imageView1 = itemView.findViewById(R.id.first_image_view);
     imageView2 = itemView.findViewById(R.id.second_image_view);
-    imageView3 = itemView.findViewById(R.id.third_image_view);
+    imageView3 = itemView.findViewById(R.id.third_image_view);*/
 //    imageView4 = itemView.findViewById(R.id.fourth_image_view);
 //    imageView5 = itemView.findViewById(R.id.fifth_image_view);
 //    imageView6 = itemView.findViewById(R.id.sixth_image_view);
@@ -48,9 +46,9 @@ public class SecondCategoryMainViewHolder extends RecyclerView.ViewHolder {
   public void doDataSetting() {
 //    imageViewMainSecondCategory.setImageDrawable(itemView.getResources().getDrawable(R.drawable.img_bestbucket_3));
 //    textViewMainSecondCategory.setText(R.string.main_second_category_title);
-    imageView1.setImageDrawable(itemView.getResources().getDrawable(R.drawable.img_bestbucket_3));
+  /*  imageView1.setImageDrawable(itemView.getResources().getDrawable(R.drawable.img_bestbucket_3));
     imageView2.setImageDrawable(itemView.getResources().getDrawable(R.drawable.img_bestbucket_3));
-    imageView3.setImageDrawable(itemView.getResources().getDrawable(R.drawable.img_bestbucket_3));
+    imageView3.setImageDrawable(itemView.getResources().getDrawable(R.drawable.img_bestbucket_3));*/
 //    imageView4.setImageDrawable(itemView.getResources().getDrawable(R.drawable.img_bestbucket_3));
 //    imageView5.setImageDrawable(itemView.getResources().getDrawable(R.drawable.img_bestbucket_3));
 //    imageView6.setImageDrawable(itemView.getResources().getDrawable(R.drawable.img_bestbucket_3));

+ 28 - 5
app/src/main/res/layout/fragment_my_faq.xml

@@ -1,22 +1,45 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout
- android:orientation="vertical"
+<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_height="match_parent">
 
 
   <android.support.v7.widget.RecyclerView
+    app:layout_constraintTop_toTopOf="parent"
     android:id="@+id/expandable_list_view_my_faq"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:layout_marginBottom="10dp"
     android:layout_marginLeft="25dp"
-    android:layout_marginRight="25dp"
     android:layout_marginTop="23dp"
+    android:layout_marginRight="25dp"
+    android:layout_marginBottom="10dp"
     android:divider="@color/CFFFFFF"
     android:dividerHeight="50dp">
 
   </android.support.v7.widget.RecyclerView>
 
-</LinearLayout>
+  <ImageView
+    android:layout_width="3dp"
+    android:layout_height="3dp"
+    android:layout_marginEnd="4dp"
+    android:src="@drawable/rectangle_c999999"
+    app:layout_constraintBottom_toBottomOf="@+id/text_view_my_faq_notice"
+    app:layout_constraintEnd_toStartOf="@+id/text_view_my_faq_notice"
+    app:layout_constraintTop_toTopOf="@+id/text_view_my_faq_notice"
+    app:layout_constraintVertical_bias="0.281"/>
+  <TextView
+    android:layout_marginStart="32dp"
+    android:id="@+id/text_view_my_faq_notice"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_marginBottom="41dp"
+    android:lineSpacingExtra="4sp"
+    android:text="@string/faq_notice"
+    android:textColor="@color/C999999"
+    android:textSize="12sp"
+    app:layout_constraintBottom_toBottomOf="parent"
+    app:layout_constraintStart_toStartOf="parent"
+    />
+</android.support.constraint.ConstraintLayout>

+ 2 - 0
app/src/main/res/layout/fragment_my_faq_write.xml

@@ -236,6 +236,7 @@
       android:weightSum="4">
 
       <Button
+        android:id="@+id/button_cancel"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_gravity="bottom"
@@ -246,6 +247,7 @@
         />
 
       <Button
+        android:id="@+id/button_registration"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_gravity="bottom"

+ 19 - 26
app/src/main/res/layout/main_second_category_image_view.xml

@@ -4,32 +4,25 @@
   xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
-  android:layout_height="wrap_content"
-  >
+  android:layout_height="wrap_content">
+  <GridLayout
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:columnCount="2"
+    >
 
-<ImageView
-  android:id="@+id/first_image_view"
-  android:layout_width="205dp"
-  android:layout_height="205dp"
-  android:scaleType="fitXY"
-  android:src="@drawable/img_bestbucket_banner_5"
-  />
-
-  <ImageView
-    android:id="@+id/second_image_view"
-    android:layout_width="99dp"
-    android:layout_height="99dp"
-    android:scaleType="fitXY"
-    android:src="@drawable/img_bestbucket_banner_4"
-    app:layout_constraintTop_toBottomOf="@+id/first_image_view"
-    />
-  <ImageView
-    android:id="@+id/third_image_view"
-    android:layout_width="99dp"
-    android:layout_height="99dp"
-    android:scaleType="fitXY"
-    android:src="@drawable/img_bestbucket_banner_3"
-    app:layout_constraintTop_toBottomOf="@+id/second_image_view"
-    />
+    <ImageView
+      android:id="@+id/first_image"
+      android:src="@drawable/mymain_bucket_banner_1"
+      />
+    <ImageView
+      android:id="@+id/second_image"
+      android:src="@drawable/mymain_bucket_banner_2"
+      />
+    <ImageView
+      android:id="@+id/third_image"
+      android:src="@drawable/mymain_bucket_banner_1"
+      />
+  </GridLayout>
 
 </android.support.constraint.ConstraintLayout>

+ 2 - 0
app/src/main/res/values/strings.xml

@@ -14,7 +14,9 @@
   <string name="cancel">취소</string>
   <string name="complete">완료</string>
   <string name="faq">자주 찾는 질문</string>
+  <string name="my_faq">문의내역</string>
   <string name="member_confirm">"<u>회원확인</u>"</string>
+  <string name="faq_notice">답변알림이 오지 않을 경우 <u>여기</u>를 눌러 알림수신을\n허용해주세요.</string>
 
   <string name="lifeplus_email">&lifeplus_email;</string>