Browse Source

[공통][Common] 다이얼로그 리팩토링
- Alert, Confirm, AppReview

hyodong.min 6 years ago
parent
commit
df5b02d315

+ 24 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/dialog/AlertDialog.java

@@ -9,6 +9,7 @@ import android.support.annotation.NonNull;
 import android.support.annotation.StringRes;
 import android.view.KeyEvent;
 import android.view.View;
+import android.widget.ImageView;
 import android.widget.TextView;
 
 import kr.co.zumo.app.R;
@@ -37,6 +38,8 @@ public class AlertDialog extends TextDialog<ICustomDialogListener<AlertDialog>>
 
   private TextView textViewPositiveButton;
 
+  private boolean isVisibleCloseButton;
+
   /**
    * 표시할 positiveButtonLabel 지정
    *
@@ -65,7 +68,20 @@ public class AlertDialog extends TextDialog<ICustomDialogListener<AlertDialog>>
     isCancelable = cancelable;
   }
 
-  public void isTransparent(boolean isTransparent) {
+  /**
+   * 닫기 버튼 표시
+   *
+   * @param isVisibleCloseButton
+   */
+  public void setVisibleCloseButton(boolean isVisibleCloseButton) {this.isVisibleCloseButton = isVisibleCloseButton;}
+
+
+  /**
+   * todo 배경 투명 설정?
+   *
+   * @param isTransparent
+   */
+  public void setTransparent(boolean isTransparent) {
     this.isTransparent = isTransparent;
   }
 
@@ -124,6 +140,9 @@ public class AlertDialog extends TextDialog<ICustomDialogListener<AlertDialog>>
     textViewPositiveButton = view.findViewById(R.id.text_view_write_app_review);
     TextView textViewTitle = view.findViewById(R.id.text_view_title);
     TextView textViewContents = view.findViewById(R.id.text_view_dialog_message);
+    ImageView imageViewClose = view.findViewById(R.id.image_view_close);
+
+    imageViewClose.setVisibility(isVisibleCloseButton ? View.VISIBLE : View.GONE);
     textViewTitle.setVisibility(titleStringId == R.string.empty_string ? View.GONE : View.VISIBLE);
     textViewPositiveButton.setText(positiveButtonLabel == R.string.empty_string ? R.string.confirm : positiveButtonLabel);
 
@@ -133,6 +152,10 @@ public class AlertDialog extends TextDialog<ICustomDialogListener<AlertDialog>>
 
     textViewContents.setText(text);
 
+    //닫기버튼 클릭
+    imageViewClose.setOnClickListener(view1 -> {
+      getCustomListener().onDialogCanceled(AlertDialog.this);
+    });
   }
 
   @Override

+ 0 - 71
app/src/main/java/kr/co/zumo/app/lifeplus/view/dialog/AppReviewDialog.java

@@ -1,71 +0,0 @@
-package kr.co.zumo.app.lifeplus.view.dialog;
-
-import android.app.Dialog;
-import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.util.Log;
-import android.view.View;
-
-import kr.co.zumo.app.R;
-import kr.co.zumo.app.lifeplus.view.Event;
-
-/**
- * AppReviewDialog
- * <pre>
- * </pre>
- *
- * @author 하세미
- * @version 1.0
- * @history 하세미   [2018-11-12]   [최초 작성]
- * @since 2018-11-12
- */
-public class AppReviewDialog extends DialogBase<ICustomDialogListener<AppReviewDialog>> {
-
-
-  @NonNull
-  @Override
-  public Dialog onCreateDialog(Bundle savedInstanceState) {
-    Log.e("APP#  AppReivewDialog | onCreateDialog", "|" + "----------------------------------------------------------------------");
-    android.support.v7.app.AlertDialog.Builder builder = new android.support.v7.app.AlertDialog.Builder(getActivity());
-    View view = getActivity().getLayoutInflater().inflate(R.layout.dialog_app_review, null);
-    setupView(view);
-
-    builder.setView(view);
-    Dialog dialog = builder.create();
-    dialog.setCancelable(false);
-    dialog.setCanceledOnTouchOutside(false);
-    this.setCancelable(false);
-
-    // alert 의 기본 흰 배경 제거
-    dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
-
-    return dialog;
-  }
-
-  private void setupView(View view) {
-    //다음기회에 클릭
-    view.findViewById(R.id.text_view_next_time).setOnClickListener(view1 -> {
-      if (null != getCustomListener()) {
-        getCustomListener().onDialogResult(AppReviewDialog.this, new Event.Builder(Event.FAQ).build());
-      }
-
-    });
-
-    //앱리뷰 쓰기
-    view.findViewById(R.id.text_view_write_app_review).setOnClickListener(view1 -> {
-      getCustomListener().onDialogResult(AppReviewDialog.this, new Event.Builder(Event.ADD).build());
-    });
-
-
-    //닫기버튼 클릭
-    view.findViewById(R.id.image_view_close).setOnClickListener(view1 -> {
-      getCustomListener().onDialogCanceled(AppReviewDialog.this);
-    });
-
-  }
-
-  @Override
-  protected void onActivityCreatedInternal() {
-
-  }
-}

+ 12 - 14
app/src/main/java/kr/co/zumo/app/lifeplus/view/dialog/ConfirmDialog.java

@@ -35,7 +35,7 @@ public class ConfirmDialog extends TextDialog<ICustomConfirmListener<ConfirmDial
   @StringRes
   protected int titleStringId = R.string.empty_string;
 
-  private boolean isAppReviewType;
+  private boolean isVisibleCloseButton;
 
   /**
    * back key 가능 여부 설정
@@ -74,7 +74,12 @@ public class ConfirmDialog extends TextDialog<ICustomConfirmListener<ConfirmDial
    */
   public void setTitleId(@StringRes int stringId) {this.titleStringId = stringId;}
 
-  public void isAppReviewType(boolean isAppReviewType) {this.isAppReviewType = isAppReviewType;}
+  /**
+   * 닫기 버튼 표시
+   *
+   * @param isVisibleCloseButton
+   */
+  public void setVisibleCloseButton(boolean isVisibleCloseButton) {this.isVisibleCloseButton = isVisibleCloseButton;}
 
   @NonNull
   @Override
@@ -82,7 +87,7 @@ public class ConfirmDialog extends TextDialog<ICustomConfirmListener<ConfirmDial
 
     // Use the Builder class for convenient dialog construction
     android.support.v7.app.AlertDialog.Builder builder = new android.support.v7.app.AlertDialog.Builder(getActivity(), R.style.DialogTheme);
-    View view = getActivity().getLayoutInflater().inflate(R.layout.dialog_app_review, null);
+    View view = getActivity().getLayoutInflater().inflate(R.layout.dialog_confirm, null);
     setupView(view);
 
     builder.setView(view);
@@ -91,16 +96,9 @@ public class ConfirmDialog extends TextDialog<ICustomConfirmListener<ConfirmDial
     dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
     dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
 
-    if (isAppReviewType) {
-      dialog.setCancelable(false);
-      dialog.setCanceledOnTouchOutside(false);
-      this.setCancelable(false);
-    }
-    else {
-      builder.setCancelable(isCancelable);
-      dialog.setCancelable(isCancelable);
-      dialog.setCanceledOnTouchOutside(isCancelable);
-    }
+    builder.setCancelable(isCancelable);
+    dialog.setCancelable(isCancelable);
+    dialog.setCanceledOnTouchOutside(isCancelable);
 
     return dialog;
 
@@ -113,7 +111,7 @@ public class ConfirmDialog extends TextDialog<ICustomConfirmListener<ConfirmDial
     TextView textViewPositiveButtonText = view.findViewById(R.id.text_view_write_app_review);
     ImageView imageViewClose = view.findViewById(R.id.image_view_close);
 
-    imageViewClose.setVisibility(isAppReviewType ? View.VISIBLE : View.GONE);
+    imageViewClose.setVisibility(isVisibleCloseButton ? View.VISIBLE : View.GONE);
     textViewTitle.setVisibility(titleStringId == R.string.empty_string ? View.GONE : View.VISIBLE);
 
     textViewPositiveButtonText.setText(positiveButtonLabel == R.string.empty_string ? R.string.confirm : positiveButtonLabel);

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

@@ -6,7 +6,6 @@ package kr.co.zumo.app.lifeplus.view.dialog.factory;
 import kr.co.zumo.app.lifeplus.CommonException;
 import kr.co.zumo.app.lifeplus.view.dialog.AddRegistrationDialog;
 import kr.co.zumo.app.lifeplus.view.dialog.AlertDialog;
-import kr.co.zumo.app.lifeplus.view.dialog.AppReviewDialog;
 import kr.co.zumo.app.lifeplus.view.dialog.CoinInformationDialog;
 import kr.co.zumo.app.lifeplus.view.dialog.CoinSavingDialog;
 import kr.co.zumo.app.lifeplus.view.dialog.ConfirmDialog;
@@ -73,9 +72,6 @@ public class BasicDialogFactory implements IDialogFactory {
       case DialogID.POLICY:
         dialog = new PolicyDialog();
         break;
-      case DialogID.APP_REVIEW:
-        dialog = new AppReviewDialog();
-        break;
       case DialogID.MORE_INFO:
         dialog = new MoreInfoDialog();
         break;

+ 16 - 4
app/src/main/res/layout/dialog_alert.xml

@@ -20,7 +20,6 @@
       android:id="@+id/text_view_title"
       android:layout_width="0dp"
       android:layout_height="wrap_content"
-      android:layout_marginStart="10dp"
       android:layout_marginTop="35dp"
       android:layout_marginEnd="10dp"
       android:lineSpacingExtra="7sp"
@@ -29,12 +28,25 @@
       android:textStyle="bold"
       app:layout_constrainedWidth="true"
       app:layout_constraintBottom_toTopOf="@+id/text_view_dialog_message"
-      app:layout_constraintEnd_toEndOf="parent"
       app:layout_constraintHorizontal_chainStyle="packed"
-      app:layout_constraintStart_toStartOf="parent"
+      app:layout_constraintStart_toStartOf="@+id/text_view_dialog_message"
       app:layout_constraintTop_toTopOf="parent"
       tools:text="title"
-      tools:visibility="gone"/>
+      tools:visibility="visible"/>
+
+    <ImageView
+      android:id="@+id/image_view_close"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_marginTop="22dp"
+      android:layout_marginEnd="22dp"
+      android:background="?android:attr/selectableItemBackground"
+      android:padding="10dp"
+      android:visibility="gone"
+      app:layout_constraintEnd_toEndOf="parent"
+      app:layout_constraintTop_toTopOf="parent"
+      app:srcCompat="@drawable/icon_h_close"
+      tools:visibility="visible"/>
 
 
     <TextView 

+ 1 - 1
app/src/main/res/layout/dialog_app_review.xml

@@ -44,7 +44,7 @@
       app:layout_constraintEnd_toEndOf="parent"
       app:layout_constraintTop_toTopOf="parent"
       app:srcCompat="@drawable/icon_h_close"
-      tools:visibility="gone"/>
+      tools:visibility="visible"/>
 
     <TextView
       android:id="@+id/text_view_dialog_message"