浏览代码

[메인][Common] 전체보기 툴팁 다이얼로그로 구현 변경

Hasemi 7 年之前
父节点
当前提交
02188648e8

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

@@ -111,6 +111,7 @@ public class Event {
   public static final int COMPLETE_BUCKET = 83;
   public static final int LIKE = 84;
   public static final int FRAGMENT_STACK_EMPTY = 85;
+  public static final int OVER_VIEW = 86;
 
 
   @Retention(RetentionPolicy.SOURCE)
@@ -123,7 +124,7 @@ public class Event {
     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,
     MY_FAQ, UPDATE, FILTER, CLOSE, HELP, CONTENTS, MORE, BANNER, RECOMMEND, KAKAO_TALK, FACE_BOOK, CODE_COPY, EVENT, TAG, BOOKMARK, ORDER, DEFAULT, COMPLETE_BUCKET,
-    LIKE, FRAGMENT_STACK_EMPTY
+    LIKE, FRAGMENT_STACK_EMPTY, OVER_VIEW
   })
   public @interface ID {}
 

+ 2 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/dialog/DialogID.java

@@ -34,11 +34,12 @@ public class DialogID {
   public final static int POLICY = 12;
   public final static int APP_REVIEW = 13;
   public final static int LOADING = 14;
+  public final static int TOOL_TIP = 15;
 
 
   @Retention(RetentionPolicy.SOURCE)
   @IntDef({NONE, CONFIRM, PIN_CONFIRM, WEB, ADD_REGISTRATION, ALERT, PROMOTION, SHARE, COIN_INFORMATION, MAIN_FIRST_FILTER, PIN_UNLOCK
-    , MAIN_SECOND_FILTER, POLICY, APP_REVIEW, LOADING})
+    , MAIN_SECOND_FILTER, POLICY, APP_REVIEW, LOADING, TOOL_TIP})
   public @interface ID {}
 
 }

+ 45 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/dialog/TooltipDialog.java

@@ -0,0 +1,45 @@
+package kr.co.zumo.app.lifeplus.view.dialog;
+
+import android.graphics.drawable.ColorDrawable;
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import kr.co.zumo.app.R;
+import kr.co.zumo.app.lifeplus.view.Event;
+
+/**
+ * TooltipDialog
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-11-23]   [최초 작성]
+ * @since 2018-11-23
+ */
+public class TooltipDialog extends DialogBase {
+
+
+  @Nullable
+  @Override
+  public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+    return inflater.inflate(R.layout.dialog_tool_tip, container, false);
+  }
+
+  @Override
+  public void onActivityCreated(Bundle savedInstanceState) {
+    super.onActivityCreated(savedInstanceState);
+    getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
+    getView().findViewById(R.id.over_view_dialog).setOnClickListener(view -> {
+      if (null != getCustomListener()) {
+        getCustomListener().onDialogResult(TooltipDialog.this, new Event.Builder(Event.OVER_VIEW).build());
+      }
+    });
+  }
+
+
+}

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

@@ -18,6 +18,7 @@ import kr.co.zumo.app.lifeplus.view.dialog.PinConfirmDialog;
 import kr.co.zumo.app.lifeplus.view.dialog.PinUnlockDialog;
 import kr.co.zumo.app.lifeplus.view.dialog.PolicyDialog;
 import kr.co.zumo.app.lifeplus.view.dialog.PromotionDialog;
+import kr.co.zumo.app.lifeplus.view.dialog.TooltipDialog;
 import kr.co.zumo.app.lifeplus.view.dialog.WebDialog;
 
 /**
@@ -78,6 +79,9 @@ public class BasicDialogFactory implements IDialogFactory {
       case DialogID.APP_REVIEW:
         dialog = new AppReviewDialog();
         break;
+      case DialogID.TOOL_TIP:
+        dialog = new TooltipDialog();
+        break;
       default:
         throw new Error("Unsupported dialog.");
     }

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/ContentsFragment.java

@@ -40,7 +40,7 @@ public class ContentsFragment extends FragmentBase<ContentsPresenter> implements
 
   @Override
   protected View onAfterCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-    tooltip = inflater.inflate(R.layout.tool_tip_overview, container, false);
+    tooltip = inflater.inflate(R.layout.dialog_tool_tip, container, false);
     return inflater.inflate(R.layout.fragment_contents, container, false);
   }
 

+ 28 - 6
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/ContentsPresenter.java

@@ -34,6 +34,7 @@ import kr.co.zumo.app.lifeplus.view.dialog.DialogBuilder;
 import kr.co.zumo.app.lifeplus.view.dialog.DialogID;
 import kr.co.zumo.app.lifeplus.view.dialog.ICustomDialogListener;
 import kr.co.zumo.app.lifeplus.view.dialog.ShareDialog;
+import kr.co.zumo.app.lifeplus.view.dialog.TooltipDialog;
 import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
 
 /**
@@ -191,12 +192,7 @@ public class ContentsPresenter extends Presenter<ContentsModel, IContentsView> {
    * @param actionBar
    */
   public void onNavigationClickDotDotDot(NavigationBar actionBar) {
-
-    //view.setTooltip();
-    DeliveryHelper deliveryHelper = getHelper(DeliveryHelper.class);
-    deliveryHelper.setPackaging(new ContentsDeliveryBean.Builder(model.getContentsBean()).build());
-
-    go(ScreenID.OVER_VIEW);
+    showTooltipDialog();
   }
 
   /**
@@ -369,4 +365,30 @@ public class ContentsPresenter extends Presenter<ContentsModel, IContentsView> {
       .show();
   }
 
+  private void showTooltipDialog() {
+    new DialogBuilder<TooltipDialog, ICustomDialogListener>(getFragmentManager(), DialogID.TOOL_TIP)
+      .listener(new ICustomDialogListener<TooltipDialog>() {
+
+        @Override
+        public void onDialogResult(TooltipDialog dialog, Event event) {
+          if (event.getEventId() == Event.OVER_VIEW) {
+            dialog.dispose();
+
+            DeliveryHelper deliveryHelper = getHelper(DeliveryHelper.class);
+            deliveryHelper.setPackaging(new ContentsDeliveryBean.Builder(model.getContentsBean()).build());
+
+            go(ScreenID.OVER_VIEW);
+          }
+        }
+
+        @Override
+        public void onDialogCanceled(TooltipDialog dialog) {
+
+        }
+      })
+      .attribute(dialog -> {
+      })
+      .show();
+  }
+
 }

+ 1 - 44
app/src/main/res/layout/activity_main.xml

@@ -53,49 +53,6 @@
         />
     </RelativeLayout>
 
-    <!--전체보기 툴팁-->
-    <android.support.constraint.ConstraintLayout
-      android:id="@+id/tool_tip_overview"
-      android:layout_width="wrap_content"
-      android:layout_height="wrap_content"
-      app:layout_constraintBottom_toBottomOf="parent"
-      android:visibility="gone"
-      tools:visibility="visible"
-      android:layout_gravity="end">
-
-      <ImageView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:src="@drawable/icon_tooltip_bg"/>
-
-      <ImageView
-        android:id="@+id/header_series"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="13dp"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        app:srcCompat="@drawable/icon_header_series"
-        />
-
-      <TextView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="5dp"
-        android:layout_marginEnd="17dp"
-        android:gravity="center_horizontal"
-        android:lineSpacingExtra="2sp"
-        android:text="@string/overview"
-        android:textColor="@color/C000000"
-        android:textSize="12dp"
-        android:textStyle="bold"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toEndOf="@+id/header_series"
-        app:layout_constraintTop_toTopOf="parent"/>
-    </android.support.constraint.ConstraintLayout>
-
     <!--카테고리 메인 탭-->
     <android.support.constraint.ConstraintLayout
       android:id="@+id/layout_category_main_tab"
@@ -120,7 +77,7 @@
         android:paddingEnd="6dp"
         android:paddingBottom="26dp"
         app:layout_constraintBottom_toBottomOf="parent"
-        tools:visibility="gone">
+        tools:visibility="visible">
 
         <RadioButton
           android:id="@+id/tab_first_category"

+ 53 - 0
app/src/main/res/layout/dialog_tool_tip.xml

@@ -0,0 +1,53 @@
+<?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="match_parent"
+  >
+
+  <android.support.constraint.ConstraintLayout
+    android:id="@+id/over_view_dialog"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_marginEnd="4dp"
+    android:layout_marginTop="43dp"
+    app:layout_constraintEnd_toEndOf="parent"
+    app:layout_constraintTop_toTopOf="parent">
+
+    <ImageView
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:src="@drawable/icon_tooltip_bg"
+      />
+
+    <ImageView
+      android:id="@+id/header_series"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_marginStart="13dp"
+      app:layout_constraintBottom_toBottomOf="parent"
+      app:layout_constraintStart_toStartOf="parent"
+      app:layout_constraintTop_toTopOf="parent"
+      app:srcCompat="@drawable/icon_header_series"
+      />
+
+    <TextView
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_marginStart="5dp"
+      android:layout_marginEnd="17dp"
+      android:gravity="center_horizontal"
+      android:lineSpacingExtra="2sp"
+      android:text="@string/overview"
+      android:textColor="@color/C000000"
+      android:textSize="12dp"
+      android:textStyle="bold"
+      app:layout_constraintBottom_toBottomOf="parent"
+      app:layout_constraintEnd_toEndOf="parent"
+      app:layout_constraintStart_toEndOf="@+id/header_series"
+      app:layout_constraintTop_toTopOf="parent"/>
+
+  </android.support.constraint.ConstraintLayout>
+</android.support.constraint.ConstraintLayout>

+ 0 - 41
app/src/main/res/layout/tool_tip_overview.xml

@@ -1,41 +0,0 @@
-<?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="wrap_content"
-  android:layout_height="wrap_content">
-
-  <ImageView
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:src="@drawable/icon_tooltip_bg"
-    />
-
-  <ImageView
-    android:id="@+id/header_series"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:layout_marginStart="13dp"
-    app:layout_constraintBottom_toBottomOf="parent"
-    app:layout_constraintStart_toStartOf="parent"
-    app:layout_constraintTop_toTopOf="parent"
-    app:srcCompat="@drawable/icon_header_series"
-    />
-
-  <TextView
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:gravity="center_horizontal"
-    android:lineSpacingExtra="2sp"
-    android:text="@string/overview"
-    android:textColor="@color/C000000"
-    android:textSize="12dp"
-    android:textStyle="bold"
-    android:layout_marginStart="5dp"
-    android:layout_marginEnd="17dp"
-    app:layout_constraintEnd_toEndOf="parent"
-    app:layout_constraintTop_toTopOf="parent"
-    app:layout_constraintBottom_toBottomOf="parent"
-    app:layout_constraintStart_toEndOf="@+id/header_series"/>
-</android.support.constraint.ConstraintLayout>