Bläddra i källkod

[설정][New] 탈퇴 신청 화면

hyodong.min 6 år sedan
förälder
incheckning
2283813fb9

+ 17 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/model/LifeplusPreferences.java

@@ -42,6 +42,7 @@ public class LifeplusPreferences {
   private final static String GUEST_SHOW_COUNT = "guest_show_count";
   private final static String GUEST_SHOW_COUNT_3 = "guest_show_count_3";
   private final static String FIRST_PERMISSION = "first_permission";
+  private final static String ACCOUNT_TYPE = "account_type";
 
 
   /**
@@ -333,7 +334,9 @@ public class LifeplusPreferences {
     preferences.put(PIN_FAIL_COUNT, count);
   }
 
-  public int getPinFailCount() {return preferences.get(PIN_FAIL_COUNT, 0);}
+  public int getPinFailCount() {
+    return preferences.get(PIN_FAIL_COUNT, 0);
+  }
 
   /**
    * 비회원 컨텐츠 조회 수
@@ -370,6 +373,19 @@ public class LifeplusPreferences {
     return preferences.get(FIRST_PERMISSION, false);
   }
 
+  /**
+   * 계정 타입 ( 구글, 페이스북, 카카오 등 )
+   *
+   * @param type
+   */
+  public void setAccountType(int type) {
+    preferences.put(ACCOUNT_TYPE, type);
+  }
+
+  public int getAccountType() {
+    return preferences.get(ACCOUNT_TYPE, 0);
+  }
+
   /**
    * 설정 초기화
    * -> 초기화가 필요한 값은 여기에 추가

+ 8 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/model/Model.java

@@ -213,6 +213,14 @@ public abstract class Model extends ViewModel implements ILifeCycle, IHelperProv
     return SuperModel.getInstance().getUserEmail();
   }
 
+  /**
+   * 계정 타입 (페이스북, 구글, 카카오 등)
+   * @return
+   */
+  public int getAccountType() {
+    return getPreferences().getAccountType();
+  }
+
   /**
    * 네트워크 상태를 체크할 리스너 등록
    *

+ 59 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/setting/AccountType.java

@@ -0,0 +1,59 @@
+/*
+ * COPYRIGHT (c) 2018 All rights reserved by HANWHA LIFE.
+ */
+package kr.co.zumo.app.lifeplus.view.screen.setting;
+
+import android.support.annotation.IntDef;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+import kr.co.zumo.app.R;
+
+/**
+ * AccountType
+ * <pre>
+ * </pre>
+ *
+ * @author 민효동
+ * @version 1.0
+ * @history 민효동   [2019. 3. 19.]   [최초 작성]
+ * @since 2019. 3. 19.
+ */
+public class AccountType {
+
+  public static final int TYPE_EMAIL = 0;
+  public static final int TYPE_FACEBOOK = 1;
+  public static final int TYPE_GOOGLE = 2;
+  public static final int TYPE_KAKAO = 3;
+  public static final int TYPE_NAVER = 4;
+
+  @Retention(RetentionPolicy.SOURCE)
+  @IntDef({
+    TYPE_EMAIL, TYPE_FACEBOOK, TYPE_GOOGLE, TYPE_KAKAO, TYPE_NAVER
+  })
+  public @interface Type {}
+
+  /**
+   * 타입으로 아이콘 찾기
+   *
+   * @param type
+   * @return
+   */
+  public static int getAccountIconByType(@Type int type) {
+    switch (type) {
+      case TYPE_FACEBOOK:
+        return R.drawable.ic_icon_account_facebook_wh;
+      case TYPE_GOOGLE:
+        return R.drawable.ic_icon_account_google_wh;
+      case TYPE_KAKAO:
+        return R.drawable.ic_icon_account_kakaotalk_wh;
+      case TYPE_NAVER:
+        return R.drawable.ic_icon_account_naver_wh;
+      case TYPE_EMAIL:
+        /* falls through */
+      default:
+        return R.drawable.ic_icon_account_email_wh;
+    }
+  }
+}

+ 5 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/setting/member/ISettingMemberQuitRequestView.java

@@ -4,6 +4,7 @@
 package kr.co.zumo.app.lifeplus.view.screen.setting.member;
 
 import kr.co.zumo.app.lifeplus.view.IView;
+import kr.co.zumo.app.lifeplus.view.screen.setting.AccountType;
 
 /**
  * ISettingMemberQuitRequestView
@@ -18,4 +19,8 @@ import kr.co.zumo.app.lifeplus.view.IView;
 public interface ISettingMemberQuitRequestView extends IView {
 
   void setName(String str);
+
+  void setEmail(String email);
+
+  void setAccountIcon(@AccountType.Type int type);
 }

+ 24 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/setting/member/SettingMemberQuitRequestFragment.java

@@ -6,14 +6,17 @@ package kr.co.zumo.app.lifeplus.view.screen.setting.member;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
+import android.support.v4.content.ContextCompat;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.ImageView;
 import android.widget.TextView;
 
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.helper.ActionBarHelper;
 import kr.co.zumo.app.lifeplus.view.screen.FragmentBase;
+import kr.co.zumo.app.lifeplus.view.screen.setting.AccountType;
 
 /**
  * SettingMemberQuitRequestFragment
@@ -28,6 +31,8 @@ import kr.co.zumo.app.lifeplus.view.screen.FragmentBase;
 public class SettingMemberQuitRequestFragment extends FragmentBase<SettingMemberQuitRequestPresenter> implements ISettingMemberQuitRequestView {
 
   private TextView textName;
+  private TextView textEmail;
+  private ImageView imageAccountType;
 
   @Override
   protected View onAfterCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
@@ -37,6 +42,10 @@ public class SettingMemberQuitRequestFragment extends FragmentBase<SettingMember
   @Override
   protected void onAfterActivityCreated(Bundle savedInstanceState) {
     textName = findViewById(R.id.text_name);
+    textEmail = findViewById(R.id.text_email);
+    imageAccountType = findViewById(R.id.image_account_type);
+
+
     View viewCancel = findViewById(R.id.button_cancel);
     View viewRequest = findViewById(R.id.button_request);
 
@@ -76,4 +85,19 @@ public class SettingMemberQuitRequestFragment extends FragmentBase<SettingMember
   public void setName(String str) {
     textName.setText(str);
   }
+
+  @Override
+  public void setEmail(String email) {
+    textEmail.setText(email);
+  }
+
+  @Override
+  public void setAccountIcon(@AccountType.Type int type) {
+    int id = getAccountIconRes(type);
+    imageAccountType.setImageDrawable(ContextCompat.getDrawable(getContext(), id));
+  }
+
+  private int getAccountIconRes(@AccountType.Type int type) {
+    return AccountType.getAccountIconByType(type);
+  }
 }

+ 11 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/setting/member/SettingMemberQuitRequestPresenter.java

@@ -19,6 +19,8 @@ import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
  */
 public class SettingMemberQuitRequestPresenter extends Presenter<SettingMemberQuitRequestModel, ISettingMemberQuitRequestView> {
 
+  private boolean isRequesting = false;
+
   public SettingMemberQuitRequestPresenter(SettingMemberQuitRequestModel model, ISettingMemberQuitRequestView view) {
     super(model, view);
   }
@@ -46,6 +48,7 @@ public class SettingMemberQuitRequestPresenter extends Presenter<SettingMemberQu
 
   @Override
   protected void stopInternal() {
+    isRequesting = false;
     model.stopMemberQuit();
   }
 
@@ -77,6 +80,7 @@ public class SettingMemberQuitRequestPresenter extends Presenter<SettingMemberQu
       case Event.ERROR:
         if (event.getInteger() == Event.MEMBER_DELETE) {
           showErrorDialog(event.getString());
+          isRequesting = false;
         }
         break;
       default:
@@ -90,13 +94,18 @@ public class SettingMemberQuitRequestPresenter extends Presenter<SettingMemberQu
   }
 
   public void onViewClickRequest() {
-    // 신청
-    model.quitMember();
+    if (false == isRequesting) {
+      isRequesting = true;
+      // 신청
+      model.quitMember();
+    }
   }
 
   @Override
   public void onScreenReady() {
     view.setName(model.getUserName());
+    view.setEmail(model.getUserEmail());
+    view.setAccountIcon(model.getAccountType());
   }
 
 }

+ 16 - 0
app/src/main/res/drawable/ic_icon_leave_lifeplus.xml

@@ -0,0 +1,16 @@
+<vector android:height="57dp" android:viewportHeight="228"
+    android:viewportWidth="228" android:width="57dp"
+    xmlns:aapt="http://schemas.android.com/aapt" xmlns:android="http://schemas.android.com/apk/res/android">
+    <path android:fillType="evenOdd" android:pathData="M52,65m-45,0a45,45 0,1 1,90 0a45,45 0,1 1,-90 0">
+        <aapt:attr name="android:fillColor">
+            <gradient android:endX="-10.5365" android:endY="12.0422"
+                android:startX="103.849" android:startY="110" android:type="linear">
+                <item android:color="#FFE25163" android:offset="0"/>
+                <item android:color="#FFEB652B" android:offset="1"/>
+            </gradient>
+        </aapt:attr>
+    </path>
+    <path android:fillColor="#000" android:fillType="nonZero" android:pathData="M184,118.973V56a6,6 0,0 0,-6 -6H51a6,6 0,0 0,-6 6v148a6,6 0,0 0,6 6h127a6,6 0,0 0,6 -6v-23.802h-6V204H51V56h127v62.973h6z"/>
+    <path android:fillColor="#000" android:fillType="nonZero" android:pathData="M79,83h42v6H79zM79,107h30v6H79zM168.757,131.858l4.243,-4.243 16.263,16.264a3,3 0,0 1,0 4.242L173,164.385l-4.243,-4.243L182.9,146l-14.142,-14.142z"/>
+    <path android:fillColor="#000" android:fillType="nonZero" android:pathData="M138,144h50v6h-50z"/>
+</vector>

+ 62 - 100
app/src/main/res/layout/setting_user_quit_request.xml

@@ -1,16 +1,17 @@
 <?xml version="1.0" encoding="utf-8"?>
 <android.support.v4.widget.NestedScrollView
-  android:id="@+id/scroll_view"
   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:id="@+id/scroll_view"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
-  android:fillViewport="true">
+  android:fillViewport="true"
+  android:orientation="vertical">
 
   <LinearLayout
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
+    android:layout_height="wrap_content"
     android:orientation="vertical">
 
     <LinearLayout
@@ -22,7 +23,7 @@
       <ImageView
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        app:srcCompat="@drawable/icon_leave_lifeplus"
+        app:srcCompat="@drawable/ic_icon_leave_lifeplus"
         />
 
     </LinearLayout>
@@ -40,8 +41,8 @@
         android:layout_gravity="center"
         android:gravity="center_horizontal"
         android:lineSpacingExtra="7sp"
-        android:text="@string/user_quit_title"
-        android:textColor="@color/C000000"
+        android:text="@string/user_quit_information_title"
+        android:textColor="#000000"
         android:textSize="17.5sp"
         />
 
@@ -52,7 +53,9 @@
         android:layout_marginTop="11dp"
         android:gravity="center_horizontal"
         android:lineSpacingExtra="5.5sp"
-        android:text="@string/user_quit_question"
+        android:paddingStart="25dp"
+        android:paddingEnd="25dp"
+        android:text="@string/user_quit_information_detail"
         android:textColor="@color/C999999"
         android:textSize="14sp"
         />
@@ -60,117 +63,81 @@
 
     <LinearLayout
       android:layout_width="match_parent"
-      android:layout_height="65dp"
+      android:layout_height="wrap_content"
       android:layout_marginLeft="24dp"
       android:layout_marginRight="24dp"
       android:background="@color/CF8F8F8"
       android:gravity="center"
-      android:orientation="horizontal"
-      android:paddingLeft="45dp"
+      android:orientation="vertical"
+      android:paddingStart="15dp"
       android:paddingTop="17dp"
-      android:paddingRight="45dp"
+      android:paddingEnd="15dp"
       android:paddingBottom="17dp">
 
-
-      <TextView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:gravity="center_horizontal"
-        android:padding="2dp"
-        android:text="@string/phone_identify_name"
-        android:textColor="@color/C999999"
-        android:textSize="14sp"
-        />
-
-      <TextView
-        android:id="@+id/text_name"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:gravity="center_horizontal"
-        android:padding="2dp"
-        android:textColor="@color/C000000"
-        android:textSize="14sp"
-        tools:text="@string/sign_up_completed_name"
-        />
-    </LinearLayout>
-
-    <LinearLayout
-      android:layout_width="match_parent"
-      android:layout_height="wrap_content"
-      android:layout_marginLeft="25dp"
-      android:layout_marginTop="17dp"
-      android:layout_marginRight="25dp"
-      android:orientation="vertical">
-
-      <RelativeLayout
+      <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:orientation="horizontal"
-        >
-
-        <ImageView
-          android:layout_width="2dp"
-          android:layout_height="2dp"
-          android:layout_alignParentStart="true"
-          android:layout_alignParentTop="true"
-          android:layout_marginStart="0dp"
-          android:layout_marginTop="9dp"
-          android:layout_marginRight="5dp"
-          android:src="@drawable/rectangle_c999999"/>
+        android:gravity="center"
+        android:orientation="horizontal">
 
         <TextView
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
-          android:layout_alignParentStart="true"
-          android:layout_alignParentTop="true"
-          android:layout_marginStart="6dp"
-          android:layout_marginTop="0dp"
-          android:lineSpacingExtra="3sp"
-          android:text="@string/user_quit_information1"
-          android:textColor="#999999"
-          android:textSize="12sp"
+          android:gravity="center_horizontal"
+          android:padding="2dp"
+          android:text="@string/phone_identify_name"
+          android:textColor="@color/C999999"
+          android:textSize="14sp"
           />
-      </RelativeLayout>
 
-    </LinearLayout>
+        <TextView
+          android:id="@+id/text_name"
+          android:layout_width="wrap_content"
+          android:layout_height="wrap_content"
+          android:gravity="center_horizontal"
+          android:padding="2dp"
+          android:textColor="@color/C000000"
+          android:textSize="14sp"
+          tools:text="@string/sign_up_completed_name"
+          />
 
-    <LinearLayout
-      android:layout_width="match_parent"
-      android:layout_height="wrap_content"
-      android:layout_marginLeft="25dp"
-      android:layout_marginTop="17dp"
-      android:layout_marginRight="25dp"
-      android:orientation="vertical">
+      </LinearLayout>
 
-      <RelativeLayout
+      <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:orientation="horizontal"
-        >
+        android:layout_marginTop="12dp"
+        android:gravity="center"
+        android:orientation="horizontal">
 
-        <ImageView
-          android:layout_width="2dp"
-          android:layout_height="2dp"
-          android:layout_alignParentStart="true"
-          android:layout_alignParentTop="true"
-          android:layout_marginStart="0dp"
-          android:layout_marginTop="9dp"
-          android:layout_marginRight="5dp"
-          android:src="@drawable/rectangle_c999999"/>
+        <TextView
+          android:layout_width="wrap_content"
+          android:layout_height="wrap_content"
+          android:gravity="center_horizontal"
+          android:padding="2dp"
+          android:text="@string/setting_email"
+          android:textColor="@color/C999999"
+          android:textSize="14sp"
+          />
 
         <TextView
+          android:id="@+id/text_email"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
-          android:layout_alignParentStart="true"
-          android:layout_alignParentTop="true"
-          android:layout_marginStart="6dp"
-          android:layout_marginTop="0dp"
-          android:lineSpacingExtra="3sp"
-          android:text="@string/user_quit_information2"
-          android:textColor="#999999"
-          android:textSize="12sp"
+          android:gravity="center_horizontal"
+          android:padding="2dp"
+          android:textColor="@color/C000000"
+          android:textSize="14sp"
+          tools:text="abcd@gmail.com"
           />
-      </RelativeLayout>
+
+        <ImageView
+          android:id="@+id/image_account_type"
+          android:layout_width="wrap_content"
+          android:layout_height="wrap_content"
+          tools:srcCompat="@drawable/ic_icon_account_email_wh"/>
+
+      </LinearLayout>
     </LinearLayout>
 
     <LinearLayout
@@ -206,16 +173,11 @@
       </LinearLayout>
     </LinearLayout>
 
-    <Space
-      android:layout_width="match_parent"
-      android:layout_height="0dp"
-      android:layout_weight="1"/>
-
     <LinearLayout
       android:layout_width="match_parent"
-      android:layout_height="wrap_content"
+      android:layout_height="match_parent"
       android:layout_marginStart="25dp"
-      android:layout_marginTop="25dp"
+      android:layout_marginTop="35dp"
       android:layout_marginEnd="25dp"
       android:layout_marginBottom="25dp"
       android:orientation="horizontal"

+ 4 - 5
app/src/main/res/values/strings.xml

@@ -317,6 +317,7 @@
   <string name="emailTo">E-mail</string>
   <string name="setting_phone_reset_message">본인인증 후 재설정이 가능합니다.</string>
   <string name="setting_register_email">이메일을 등록해주세요.</string>
+  <string name="setting_email">이메일</string>
 
   <string name="pin">간편암호</string>
   <string name="setting_pin_message">주기적으로 비밀번호를 변경해주세요.</string>
@@ -345,15 +346,13 @@
   <string name="user_quit_question">ZUMO app 회원탈퇴 신청을 하시겠습니까?</string>
   <string name="user_quit_information1">회원탈퇴를 하시면 해당 계정은 즉시 탈퇴 처리되며, 해당 계정에 대한 회원정보 및 서비스 정보는 모두 삭제됩니다.</string>
   <string name="user_quit_information2">ZUMO app 서비스에 탈퇴하시더라도 한화호텔&amp;리조트,\n갤러리아 제휴사 서비스는 정상 이용가능합니다.</string>
-  <string name="user_quit_information3">탈퇴 후 30일 이후에 ZUMO app 서비스 가입이 가능합니다.</string>
+  <string name="user_quit_information3">탈퇴 후 바로 서비스 재가입이 가능합니다.</string>
 
   <string name="user_quit_complete_title">ZUMO app 회원탈퇴 처리가\n완료되었습니다.</string>
   <string name="user_quit_complete_detail">그동안 ZUMO app 서비스를 이용해주셔서 감사합니다.\n
더욱더 나은 서비스로 다시 찾아뵙기를 희망합니다.</string>
 
-  <string name="user_quit_information_title">사용중인 서비스를 확인하셨나요?</string>
-  <string name="user_quit_information_detail">ZUMO app 회원탈퇴 전 유의사항을 확인해주세요.</string>
-  <string name="user_quit_information_current_coin_detail">3,390</string>
-  <string name="user_quit_information_current_coin_information">탈퇴하시면 현재 보유하고 계신 코인은 즉시 자동 소멸됩니다.</string>
+  <string name="user_quit_information_title">ZUMO 회원 탈퇴 전 확인하세요.</string>
+  <string name="user_quit_information_detail">회원탈퇴를 하시면 해당 계정은 즉시 탈퇴 처리되며, 해당 계정에 대한 회원정보 및 서비스 정보는 모두 삭제됩니다.</string>
   <string name="user_quit_information_detail2">ZUMO app 회원탈퇴를 하시면 ZUMO app 회원 약관 및 개인정보 제공, 활용에 관한 약관 동의가 모두 철회되며 ZUMO app 회원 서비스 및 웹사이트로부터 탈퇴됩니다.</string>
   <string name="user_quit_advice_title">회원탈퇴 유의사항</string>
   <string name="user_quit_advice_detail1">ZUMO app 회원탈퇴 시 ZUMO app 웹서비스로부터 탈퇴되며 30일 이내 재가입이 불가능합니다.</string>