Browse Source

[세팅][New] 각 UI 별 이벤트 등록

hyodong.min 7 years ago
parent
commit
9763c3b35f

+ 14 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/setting/AgreeInformationViewHolder.java

@@ -7,6 +7,7 @@ import android.widget.RelativeLayout;
 import android.widget.TextView;
 
 import kr.co.zumo.app.R;
+import kr.co.zumo.app.lifeplus.view.Event;
 
 /**
  * agreeInformationViewHolder
@@ -23,12 +24,25 @@ public class AgreeInformationViewHolder extends SettingViewHolder {
   private TextView textViewMenuText;
   private RelativeLayout customLayout;
   private ImageView imageViewAccordion;
+  private TextView textViewPolicy;
+  private TextView textViewUsage;
 
   public AgreeInformationViewHolder(View itemView, Context context) {
     super(itemView, context);
     textViewMenuText = itemView.findViewById(R.id.text_view_setting_menu_text);
     customLayout = itemView.findViewById(R.id.layout_agree_information);
     imageViewAccordion = itemView.findViewById(R.id.image_view_setting_menu_accordion);
+
+    textViewPolicy = itemView.findViewById(R.id.text_info_policy);
+    textViewUsage = itemView.findViewById(R.id.text_info_usage);
+
+    textViewPolicy.setOnClickListener(v -> {
+      dispatchEvent(new Event.Builder(Event.CLICK).integer(3).string(SettingViewHolder.INFO_POLICY).build());
+    });
+
+    textViewUsage.setOnClickListener(v -> {
+      dispatchEvent(new Event.Builder(Event.CLICK).integer(3).string(SettingViewHolder.INFO_USAGE).build());
+    });
   }
 
   @Override

+ 21 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/setting/CodeManageViewHolder.java

@@ -7,6 +7,7 @@ import android.widget.RelativeLayout;
 import android.widget.TextView;
 
 import kr.co.zumo.app.R;
+import kr.co.zumo.app.lifeplus.view.Event;
 
 /**
  * codeManageViewHolder
@@ -23,12 +24,32 @@ public class CodeManageViewHolder extends SettingViewHolder {
   private TextView textViewMenuText;
   private RelativeLayout customLayout;
   private ImageView imageViewAccordion;
+  private TextView textViewShare;
+  private TextView textViewRecommend;
+  private TextView textViewRegistering;
 
   public CodeManageViewHolder(View itemView, Context context) {
     super(itemView, context);
     customLayout = itemView.findViewById(R.id.layout_code_manage);
     imageViewAccordion = itemView.findViewById(R.id.image_view_setting_menu_accordion);
     textViewMenuText = itemView.findViewById(R.id.text_view_setting_menu_text);
+
+    textViewShare = itemView.findViewById(R.id.text_view_share);
+    textViewRecommend = itemView.findViewById(R.id.text_view_recommend);
+    textViewRegistering = itemView.findViewById(R.id.text_view_register_code);
+
+    textViewShare.setOnClickListener(v -> {
+      dispatchEvent(new Event.Builder(Event.CLICK).integer(1).string(SettingViewHolder.CODE_SHARE).build());
+    });
+
+    textViewRecommend.setOnClickListener(v -> {
+      dispatchEvent(new Event.Builder(Event.CLICK).integer(1).string(SettingViewHolder.CODE_RECOMMENDED).build());
+    });
+
+    textViewRegistering.setOnClickListener(v -> {
+      dispatchEvent(new Event.Builder(Event.CLICK).integer(1).string(SettingViewHolder.CODE_SPACIAL).build());
+    });
+
   }
 
   @Override

+ 9 - 4
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/setting/DefaultSettingViewHolder.java

@@ -8,6 +8,7 @@ import android.widget.Switch;
 import android.widget.TextView;
 
 import kr.co.zumo.app.R;
+import kr.co.zumo.app.lifeplus.view.Event;
 
 /**
  * defaultSettingViewHolder
@@ -19,7 +20,7 @@ import kr.co.zumo.app.R;
  * @history 하세미   [2018-10-12]   [최초 작성]
  * @since 2018-10-12
  */
-public class DefaultSettingViewHolder extends SettingViewHolder {
+public class CommonSettingViewHolder extends SettingViewHolder {
 
   private TextView textViewMenuText;
   private TextView textViewUserConfirm;
@@ -27,16 +28,20 @@ public class DefaultSettingViewHolder extends SettingViewHolder {
   private ImageView imageViewAccordion;
   private Switch switchPinOnOff;
 
-  public DefaultSettingViewHolder(View itemView, Context context) {
+  public CommonSettingViewHolder(View itemView, Context context) {
     super(itemView, context);
     textViewMenuText = itemView.findViewById(R.id.text_view_setting_menu_text);
-    textViewUserConfirm = itemView.findViewById(R.id.text_view_user_confirm);
     customLayout = itemView.findViewById(R.id.layout_default_setting);
     imageViewAccordion = itemView.findViewById(R.id.image_view_setting_menu_accordion);
 
+    textViewUserConfirm = itemView.findViewById(R.id.text_view_user_confirm);
+    textViewUserConfirm.setOnClickListener(v -> {
+      dispatchEvent(new Event.Builder(Event.CLICK).integer(0).string(SettingViewHolder.MEMBER_CONFIRM).build());
+    });
+
     switchPinOnOff = itemView.findViewById(R.id.switch_pin_on_off);
     switchPinOnOff.setOnCheckedChangeListener((buttonView, isChecked) -> {
-
+      dispatchEvent(new Event.Builder(Event.SWITCH).integer(0).string(SettingViewHolder.SWITCH_PIN).bool(isChecked).build());
     });
   }
 

+ 4 - 3
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/setting/PushAndLocationSettingViewHolder.java

@@ -8,6 +8,7 @@ import android.widget.Switch;
 import android.widget.TextView;
 
 import kr.co.zumo.app.R;
+import kr.co.zumo.app.lifeplus.view.Event;
 
 /**
  * pushAndLocationSettingViewHolder
@@ -39,15 +40,15 @@ public class PushAndLocationSettingViewHolder extends SettingViewHolder {
     switchLocationOnOff = itemView.findViewById(R.id.switch_location_on_off);
 
     switchPushOnOff.setOnCheckedChangeListener((buttonView, isChecked) -> {
-
+      dispatchEvent(new Event.Builder(Event.SWITCH).integer(2).string(SettingViewHolder.SWITCH_PUSH).bool(isChecked).build());
     });
 
     switchMarketingOnOff.setOnCheckedChangeListener((buttonView, isChecked) -> {
-
+      dispatchEvent(new Event.Builder(Event.SWITCH).integer(2).string(SettingViewHolder.SWITCH_MARKETING).bool(isChecked).build());
     });
 
     switchLocationOnOff.setOnCheckedChangeListener((buttonView, isChecked) -> {
-
+      dispatchEvent(new Event.Builder(Event.SWITCH).integer(2).string(SettingViewHolder.SWITCH_LOCATION).bool(isChecked).build());
     });
   }
 

+ 1 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/setting/SettingExpandableListViewAdapter.java

@@ -40,11 +40,10 @@ public class SettingExpandableListViewAdapter extends RecyclerView.Adapter<Setti
         view = LayoutInflater
           .from(parent.getContext())
           .inflate(R.layout.setting_custom_menu1, parent, false);
-        return new DefaultSettingViewHolder(view, context);
+        return new CommonSettingViewHolder(view, context);
       case 1:
         view = LayoutInflater
           .from(parent.getContext())
-
           .inflate(R.layout.setting_custom_menu2, parent, false);
         return new CodeManageViewHolder(view, context);
       case 2:

+ 21 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/setting/SettingViewHolder.java

@@ -7,6 +7,7 @@ import android.content.Context;
 import android.support.v7.widget.RecyclerView;
 import android.view.View;
 
+import kr.co.zumo.app.lifeplus.view.Event;
 import kr.co.zumo.app.lifeplus.view.IEventListener;
 
 /**
@@ -21,6 +22,20 @@ import kr.co.zumo.app.lifeplus.view.IEventListener;
  */
 public abstract class SettingViewHolder extends RecyclerView.ViewHolder {
 
+  public static final String SWITCH_PIN = "switch_pin";
+  public static final String SWITCH_PUSH = "switch_push";
+  public static final String SWITCH_MARKETING = "switch_marketing";
+  public static final String SWITCH_LOCATION = "switch_location";
+
+  public static final String MEMBER_CONFIRM = "member_confirm";
+
+  public static final String CODE_SHARE = "code_share";
+  public static final String CODE_RECOMMENDED = "code_recommended";
+  public static final String CODE_SPACIAL = "code_spacial";
+
+  public static final String INFO_POLICY = "info_policy";
+  public static final String INFO_USAGE = "info_usage";
+
   private Context context;
   protected IEventListener listener;
 
@@ -34,5 +49,11 @@ public abstract class SettingViewHolder extends RecyclerView.ViewHolder {
     bindInternal();
   }
 
+  protected void dispatchEvent(Event event) {
+    if (null != listener) {
+      listener.onEvent(event);
+    }
+  }
+
   protected abstract void bindInternal();
 }

+ 8 - 12
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/setting/SwitchTrackTextDrawable.java

@@ -6,6 +6,7 @@ import android.graphics.ColorFilter;
 import android.graphics.Paint;
 import android.graphics.PixelFormat;
 import android.graphics.Rect;
+import android.graphics.Typeface;
 import android.graphics.drawable.Drawable;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
@@ -32,23 +33,19 @@ public class SwitchTrackTextDrawable extends Drawable {
   private Paint textPaint;
   private boolean isChecked;
 
-  public SwitchTrackTextDrawable(@NonNull Context context,
-                                 @StringRes int leftTextId,
-                                 @StringRes int rightTextId,
-                                 boolean isChecked
-  ) {
+  public SwitchTrackTextDrawable(@NonNull Context context, @StringRes int leftTextId, @StringRes int rightTextId, boolean isChecked) {
     this.context = context;
     this.isChecked = isChecked;
+    textPaint = doTextPaint();
+    textPaint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.BOLD));
 
     if (isChecked) {
       //switch on
-      textPaint = doTextPaint();
       leftText = context.getString(leftTextId);
       rightText = context.getString(R.string.empty_string);
     }
     else {
       //switch off
-      textPaint = doTextPaint();
       leftText = context.getString(R.string.empty_string);
       rightText = context.getString(rightTextId);
     }
@@ -69,7 +66,7 @@ public class SwitchTrackTextDrawable extends Drawable {
   public void draw(@NonNull Canvas canvas) {
     final Rect textBounds = new Rect();
     int heightBaseline;
-    int widthQuarter = canvas.getClipBounds().width() / 4;;
+    int widthQuarter = canvas.getClipBounds().width() / 4;
 
     if (isChecked) {
       //on 텍스트 흰색 변경
@@ -77,8 +74,7 @@ public class SwitchTrackTextDrawable extends Drawable {
       heightBaseline = canvas.getClipBounds().height() / 2 + textBounds.height() / 2;
       textPaint.setColor(context.getResources().getColor(android.R.color.white));
       canvas.drawText(leftText, 0, leftText.length(),
-        widthQuarter + 15, heightBaseline,
-        textPaint);
+        widthQuarter + 15, heightBaseline, textPaint);
     }
     else {
       //off  텍스트 검정 변경
@@ -87,8 +83,8 @@ public class SwitchTrackTextDrawable extends Drawable {
       heightBaseline = canvas.getClipBounds().height() / 2 + textBounds.height() / 2;
       textPaint.setColor(context.getResources().getColor(android.R.color.darker_gray));
       canvas.drawText(rightText, 0, rightText.length(),
-        widthQuarter * 3 - 20, heightBaseline,
-        textPaint);;
+        widthQuarter * 3 - 20, heightBaseline, textPaint);
+      ;
     }
 
 

+ 62 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/presenter/setting/SettingPresenter.java

@@ -1,10 +1,13 @@
 package kr.co.zumo.app.lifeplus.view.presenter.setting;
 
+import android.util.Log;
+
 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.fragment.setting.SettingViewHolder;
 import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
 
 /**
@@ -57,7 +60,65 @@ public class SettingPresenter extends Presenter<BlankModel, IView> {
 
   @Override
   protected void onEventInternal(Event event) {
-
+    Log.i("APP# SettingPresenter | onEventInternal", "|" + event.toString());
+    int index = event.getInteger();
+    int id = event.getEventId();
+    String str = event.getString();
+    boolean bool = event.getBool();
+    switch (event.getEventId()) {
+      case Event.SWITCH:
+        if (index == 0) {
+          // 기본 설정
+          if (str.equals(SettingViewHolder.SWITCH_PIN)) {
+            // 핀 설정
+
+          }
+        }
+        else if (event.getInteger() == 1) {
+          // 코드 관리
+          if (str.equals(SettingViewHolder.CODE_SHARE)) {
+            // 내 추천인 코드 공유
+
+          }
+          else if (str.equals(SettingViewHolder.CODE_RECOMMENDED)) {
+            // 추천인 코드 D4KDFJ1F
+
+          }
+          else if (str.equals(SettingViewHolder.CODE_SPACIAL)) {
+            // 코드 등록
+
+          }
+        }
+        else if (event.getInteger() == 2) {
+          // push / 위치 설정
+          if (str.equals(SettingViewHolder.SWITCH_PUSH)) {
+            // 푸쉬
+
+          }
+          else if (str.equals(SettingViewHolder.SWITCH_MARKETING)) {
+            // 마케팅
+
+          }
+          else if (str.equals(SettingViewHolder.SWITCH_LOCATION)) {
+            // 위치
+
+          }
+        }
+        else if (event.getInteger() == 3) {
+          // 약관/이용 안내
+          if (str.equals(SettingViewHolder.INFO_POLICY)) {
+            // 이용 약관
+
+          }
+          else if (str.equals(SettingViewHolder.INFO_USAGE)) {
+            // 이용 안내
+
+          }
+        }
+        break;
+      default:
+        break;
+    }
   }
 
   @Override

+ 3 - 1
app/src/main/res/layout/setting_custom_menu2.xml

@@ -76,6 +76,7 @@
       >
 
       <TextView
+        android:id="@+id/text_view_share"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentStart="true"
@@ -90,7 +91,7 @@
         android:textSize="12sp"/>
 
       <TextView
-        android:id="@+id/text_view_user_confirm"
+        android:id="@+id/text_view_recommend"
         android:layout_width="70dp"
         android:layout_height="wrap_content"
         android:layout_alignParentTop="true"
@@ -103,6 +104,7 @@
         android:textSize="12sp"/>
 
       <TextView
+        android:id="@+id/text_view_register_code"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentStart="true"

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

@@ -76,6 +76,7 @@
       >
 
       <TextView
+        android:id="@+id/text_info_policy"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentStart="true"
@@ -91,6 +92,7 @@
 
 
       <TextView
+        android:id="@+id/text_info_usage"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentStart="true"