浏览代码

[공통][Common] 회원 가입 직후 메인화면 진입시 추가 등록 팝업 구현

Hasemi 7 年之前
父节点
当前提交
fb5587f516

+ 6 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/supervisor/DialogManager.java

@@ -6,6 +6,7 @@ package kr.co.zumo.app.lifeplus.supervisor;
 import android.support.v4.app.FragmentManager;
 
 import kr.co.zumo.app.R;
+import kr.co.zumo.app.lifeplus.view.dialog.AddRegistrationDialog;
 import kr.co.zumo.app.lifeplus.view.dialog.DialogBase;
 import kr.co.zumo.app.lifeplus.view.dialog.DialogID;
 import kr.co.zumo.app.lifeplus.view.dialog.IDialogResultListener;
@@ -69,7 +70,11 @@ public class DialogManager {
         dialog.setResultListener(listener);
         dialog.show(manager, "WEB");
         break;
-
+      case DialogID.ADD_REGISTRATION:
+        AddRegistrationDialog dialog = new AddRegistrationDialog();
+        dialog.setResultListener(listener);
+        dialog.show(manager, "ADD REGISTRATION");
+        break;
       default:
         throw new Error("not support dialog.");
     }

+ 60 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/dialog/AddRegistrationDialog.java

@@ -1,8 +1,21 @@
 package kr.co.zumo.app.lifeplus.view.dialog;
 
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.WindowManager;
+import android.widget.Button;
+
+import kr.co.zumo.app.R;
+
 /**
  * AddRegistrationDialog
  * <pre>
+ *   회원 가입 직후 메인 진입시 추가 등록 토스트 팝업 구현
  * </pre>
  *
  * @author 하세미
@@ -10,5 +23,51 @@ package kr.co.zumo.app.lifeplus.view.dialog;
  * @history 하세미   [2018-09-20]   [최초 작성]
  * @since 2018-09-20
  */
-public class AddRegistrationDialog {
+public class AddRegistrationDialog extends DialogBase implements View.OnClickListener {
+
+  private Button buttonAddEmail;
+  private Button buttonAddSpecialCode;
+
+  public AddRegistrationDialog() {
+  }
+
+  @Override
+  public void onCreate(@Nullable Bundle savedInstanceState) {
+    super.onCreate(savedInstanceState);
+  }
+
+  @Nullable
+  @Override
+  public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+    getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
+    View view = inflater.inflate(R.layout.add_registration_dialog, container, false);
+    getDialog().getWindow().setGravity(Gravity.BOTTOM);
+
+    buttonAddEmail = (Button) view.findViewById(R.id.button_add_email);
+    buttonAddSpecialCode = (Button) view.findViewById(R.id.button_add_special_code);
+
+    buttonAddEmail.setOnClickListener(this::onClick);
+    buttonAddSpecialCode.setOnClickListener(this::onClick);
+
+    return view;
+  }
+
+  @Override
+  public void onClick(View view) {
+    switch (view.getId()) {
+      case R.id.button_add_email:
+        resultListener.onDialogResult(this, DialogResult.CODE_EMAIL_CLICK, "REGISTRATION");
+        break;
+      case R.id.button_add_special_code:
+        resultListener.onDialogResult(this, DialogResult.CODE_SPECIAL_CODE_CLICK, "REGISTRATION");
+        break;
+      default:
+        break;
+
+    }
+  }
 }
+
+
+
+

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

@@ -24,9 +24,10 @@ public class DialogID {
   public final static int MOBILE_AUTHORIZATION = 1;
   public final static int INPUT_PIN = 2;
   public final static int WEB = 3;
+  public final static int ADD_REGISTRATION = 4;
 
   @Retention(RetentionPolicy.SOURCE)
-  @IntDef({NONE, REGISTER_PIN, MOBILE_AUTHORIZATION, INPUT_PIN, WEB})
+  @IntDef({NONE, REGISTER_PIN, MOBILE_AUTHORIZATION, INPUT_PIN, WEB, ADD_REGISTRATION})
   public @interface ID {}
 
 }

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

@@ -22,8 +22,10 @@ public class DialogResult {
   public final static int CODE_SUCCESS = 0;
   public final static int CODE_FAIL = 1;
   public final static int CODE_CANCEL = 2;
+  public final static int CODE_EMAIL_CLICK = 3;
+  public final static int CODE_SPECIAL_CODE_CLICK = 4;
 
   @Retention(RetentionPolicy.SOURCE)
-  @IntDef({CODE_SUCCESS, CODE_FAIL, CODE_CANCEL})
+  @IntDef({CODE_SUCCESS, CODE_FAIL, CODE_CANCEL, CODE_EMAIL_CLICK, CODE_SPECIAL_CODE_CLICK})
   public @interface Code {}
 }

+ 29 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/MainFragment.java

@@ -4,6 +4,8 @@
 package kr.co.zumo.app.lifeplus.view.fragment;
 
 import android.os.Bundle;
+import android.support.v4.app.DialogFragment;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -11,8 +13,12 @@ import android.widget.Button;
 
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.manager.ActionBarManager;
+import kr.co.zumo.app.lifeplus.supervisor.DialogManager;
 import kr.co.zumo.app.lifeplus.supervisor.FragmentChanger;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenChangerHelper;
+import kr.co.zumo.app.lifeplus.view.dialog.DialogID;
+import kr.co.zumo.app.lifeplus.view.dialog.DialogResult;
+import kr.co.zumo.app.lifeplus.view.dialog.IDialogResultListener;
 import kr.co.zumo.app.lifeplus.view.fragment.factory.BasicFragmentFactory;
 import kr.co.zumo.app.lifeplus.view.presenter.Event;
 import kr.co.zumo.app.lifeplus.view.presenter.IMainView;
@@ -38,6 +44,7 @@ public class MainFragment extends FragmentBase<MainPresenter> implements IMainVi
   @Override
   public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
     // Inflate the layout for this fragment
+    showAddRegistrationDialog();
     return inflater.inflate(R.layout.fragment_main, container, false);
   }
 
@@ -78,4 +85,26 @@ public class MainFragment extends FragmentBase<MainPresenter> implements IMainVi
       presenter.onEvent(Event.SIGN_UP);
     });
   }
+
+  private void showAddRegistrationDialog() {
+    DialogManager dialog = new DialogManager();
+    dialog.show(getFragmentManager(), DialogID.ADD_REGISTRATION, new IDialogResultListener() {
+
+      @Override
+      public void onDialogResult(DialogFragment dialog, int resultCode, String resultString) {
+        switch (resultCode) {
+          case DialogResult.CODE_EMAIL_CLICK:
+            Log.e("APP#  MainFragment | onDialogResult", "|" + "add email button click");
+            break;
+          case DialogResult.CODE_SPECIAL_CODE_CLICK:
+            Log.e("APP#  MainFragment | onDialogResult", "|" + "special code button click");
+            break;
+          default:
+            break;
+        }
+
+
+      }
+    });
+  }
 }

+ 6 - 6
app/src/main/res/layout/add_registration_dialog.xml

@@ -8,13 +8,13 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:orientation="vertical"
-    android:background="@color/black"
+    android:background="@color/darkGrey"
     >
 
     <TextView
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
-      android:text="지금 등록하시면 코인을 드려요!"
+      android:text="@string/text_view_add_pop_up_message"
       android:textColor="@color/white"
       android:layout_marginTop="30dp"
       android:layout_marginLeft="40dp"
@@ -24,22 +24,22 @@
       />
 
     <Button
-      android:id="@+id/button"
+      android:id="@+id/button_add_email"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_marginLeft="30dp"
       android:layout_marginRight="30dp"
       android:layout_weight="1"
-      android:text="E-Mail 등록"/>
+      android:text="@string/button_add_email"/>
 
     <Button
-      android:id="@+id/button2"
+      android:id="@+id/button_add_special_code"
       android:layout_marginLeft="30dp"
       android:layout_marginRight="30dp"
       android:layout_marginBottom="30dp"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
-      android:text="스페셜/추천인 코드 등록"/>
+      android:text="@string/button_add_special_code"/>
 
 
   </LinearLayout>

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

@@ -86,6 +86,10 @@
   <string name="main">메인</string>
   <string name="previous_page">이전 페이지</string>
 
+  <string name="text_view_add_pop_up_message">지금 등록하시면 코인을 드려요!</string>
+  <string name="button_add_special_code">스페셜/추천인 코드 등록</string>
+  <string name="button_add_email">Email 등록</string>
+
   <string name="tutorial_title">내일상의 플러스</string>
   <string name="tutorial_start">삶을 더 잘 살기 위한 이야기, \n 시작해볼까요?</string>
   <string name="tutorial_button_message">회원가입하고 혜택 받기</string>