浏览代码

[공통][New] 액션바 이벤트 버그 수정, 전체 메뉴에 적용

hyodong.min 7 年之前
父节点
当前提交
f5f2159723

+ 67 - 24
app/src/main/java/kr/co/zumo/app/lifeplus/manager/ActionBarManager.java

@@ -58,22 +58,10 @@ public class ActionBarManager {
   private ImageView buttonAlarm;
   private ImageView buttonSetting;
   private ImageView buttonClose;
+  private TextView textButton;
 
   private Builder builder;
 
-//  private IActionBarListener.Click backListener;
-//  private IActionBarListener.Click bookmarkListener;
-//  private IActionBarListener.Click likeListener;
-//  private IActionBarListener.Click menuListener;
-//  private IActionBarListener.Click searchListener;
-//  private IActionBarListener.Click shareListener;
-//  private IActionBarListener.Click titleListener;
-//
-//  private IActionBarListener.Click homeListener = null;
-//  private IActionBarListener.Click alarmListener = null;
-//  private IActionBarListener.Click settingListener = null;
-//  private IActionBarListener.Click closeListener = null;
-
   private HashMap<View, IActionBarListener.Click> clickListenerMap;
 
   private IActionBarListener.Scroll scrollListener;
@@ -115,10 +103,11 @@ public class ActionBarManager {
     buttonMenu = view.findViewById(R.id.button_menu);
     buttonBack = view.findViewById(R.id.button_back);
 
-    buttonHome = view.findViewById(R.id.button_back);
-    buttonAlarm = view.findViewById(R.id.button_back);
-    buttonSetting = view.findViewById(R.id.button_back);
-    buttonClose = view.findViewById(R.id.button_back);
+    buttonHome = view.findViewById(R.id.button_home);
+    buttonAlarm = view.findViewById(R.id.button_alarm);
+    buttonSetting = view.findViewById(R.id.button_setting);
+    buttonClose = view.findViewById(R.id.button_close);
+    textButton = view.findViewById(R.id.text_sub);
 
     setClickListener(buttonBack);
     setClickListener(buttonSearch);
@@ -128,6 +117,7 @@ public class ActionBarManager {
     setClickListener(buttonAlarm);
     setClickListener(buttonSetting);
     setClickListener(buttonClose);
+    setClickListener(textButton);
 
     setCustomView(view);
 
@@ -290,6 +280,7 @@ public class ActionBarManager {
    * @param stringId
    */
   private void setTitle(@StringRes int stringId) {
+    actionBarTitle.setText(stringId);
   }
 
   /**
@@ -345,6 +336,10 @@ public class ActionBarManager {
     setViewVisible(buttonClose, isVisible);
   }
 
+  private void setTextButtonVisible(boolean isVisible) {
+    setViewVisible(textButton, isVisible);
+  }
+
   /**
    * 메뉴 버튼 보이기
    *
@@ -390,6 +385,10 @@ public class ActionBarManager {
       setProgressVisible(false);
       setScrollable(false);
       setBackgroundTransparent(false);
+      setHomeVisible(false);
+      setSettingVisible(false);
+      setAlarmVisible(false);
+      setCloseVisible(false);
     }
 
     if (builder.isScrollable != newBuilder.isScrollable) {
@@ -414,7 +413,9 @@ public class ActionBarManager {
       setBackVisible(newBuilder.isVisibleBack);
       mapClickListener(buttonBack, newBuilder.backListener);
     }
-    if (builder.isVisibleTitle != newBuilder.isVisibleTitle || builder.titleListener != newBuilder.titleListener) {
+    if (builder.isVisibleTitle != newBuilder.isVisibleTitle
+      || builder.titleListener != newBuilder.titleListener
+      || builder.title != newBuilder.title) {
       setTitleVisible(newBuilder.isVisibleTitle);
       setTitle(newBuilder.title);
       mapClickListener(actionBarTitle, newBuilder.titleListener);
@@ -430,16 +431,23 @@ public class ActionBarManager {
       mapClickListener(buttonHome, newBuilder.homeListener);
     }
     if (builder.isVisibleAlarm != newBuilder.isVisibleAlarm || builder.alarmListener != newBuilder.alarmListener) {
-      setHomeVisible(newBuilder.isVisibleAlarm);
+      setAlarmVisible(newBuilder.isVisibleAlarm);
       mapClickListener(buttonAlarm, newBuilder.alarmListener);
     }
     if (builder.isVisibleSetting != newBuilder.isVisibleSetting || builder.settingListener != newBuilder.settingListener) {
-      setHomeVisible(newBuilder.isVisibleSetting);
+      setSettingVisible(newBuilder.isVisibleSetting);
       mapClickListener(buttonSetting, newBuilder.settingListener);
     }
     if (builder.isVisibleClose != newBuilder.isVisibleClose || builder.closeListener != newBuilder.closeListener) {
-      setHomeVisible(newBuilder.isVisibleClose);
-      mapClickListener(buttonHome, newBuilder.closeListener);
+      setCloseVisible(newBuilder.isVisibleClose);
+      mapClickListener(buttonClose, newBuilder.closeListener);
+    }
+    if (builder.isVisibleTextButton != newBuilder.isVisibleTextButton
+      || builder.textButtonListener != newBuilder.textButtonListener
+      || builder.text != newBuilder.text) {
+      setTextButtonVisible(newBuilder.isVisibleTextButton);
+      textButton.setText(newBuilder.text);
+      mapClickListener(textButton, newBuilder.textButtonListener);
     }
 
     builder = newBuilder;
@@ -521,6 +529,8 @@ public class ActionBarManager {
     private boolean isVisibleAlarm = false;
     private boolean isVisibleSetting = false;
     private boolean isVisibleClose = false;
+    private boolean isVisibleTextButton = false;
+    private int text = R.string.empty_string;
 
     private IActionBarListener.Click backListener = null;
     private IActionBarListener.Click bookmarkListener = null;
@@ -534,6 +544,7 @@ public class ActionBarManager {
     private IActionBarListener.Click alarmListener = null;
     private IActionBarListener.Click settingListener = null;
     private IActionBarListener.Click closeListener = null;
+    private IActionBarListener.Click textButtonListener = null;
 
     public Builder() {
     }
@@ -628,30 +639,62 @@ public class ActionBarManager {
       return this;
     }
 
+    /**
+     * 홈
+     *
+     * @return Builder
+     */
     public Builder home(IActionBarListener.Click homeListener) {
       isVisibleHome = true;
       this.homeListener = homeListener;
       return this;
     }
 
+    /**
+     * 알람
+     *
+     * @return Builder
+     */
     public Builder alarm(IActionBarListener.Click alarmListener) {
       isVisibleAlarm = true;
       this.alarmListener = alarmListener;
       return this;
     }
 
+    /**
+     * 세팅
+     *
+     * @return Builder
+     */
     public Builder setting(IActionBarListener.Click settingListener) {
-      isVisibleAlarm = true;
+      isVisibleSetting = true;
       this.settingListener = settingListener;
       return this;
     }
 
+    /**
+     * 닫기
+     *
+     * @return Builder
+     */
     public Builder close(IActionBarListener.Click closeListener) {
-      isVisibleAlarm = true;
+      isVisibleClose = true;
       this.closeListener = closeListener;
       return this;
     }
 
+    /**
+     * 텍스트 버튼 (닫기 버튼 옆)
+     *
+     * @return Builder
+     */
+    public Builder textButton(@StringRes int stringId, IActionBarListener.Click textButtonListener) {
+      text = stringId;
+      isVisibleTextButton = true;
+      this.textButtonListener = textButtonListener;
+      return this;
+    }
+
     /**
      * UI 흰색 사용
      *

+ 7 - 13
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/menu/AllMenuFragment.java

@@ -37,25 +37,19 @@ public class AllMenuFragment extends FragmentBase<AllMenuPresenter> {
   @Override
   protected void onAfterActivityCreated(Bundle savedInstanceState) {
 
-    findViewById(R.id.text_my).setOnClickListener(new View.OnClickListener() {
-      @Override
-      public void onClick(View v) {
-        presenter.onEvent(new Event.Builder(Event.MY).build());
-      }
-    });
+    findViewById(R.id.text_my).setOnClickListener(v -> presenter.onEvent(new Event.Builder(Event.MY).build()));
 
-    findViewById(R.id.text_view_faq).setOnClickListener(new View.OnClickListener() {
-      @Override
-      public void onClick(View view) {
-        presenter.onEvent(new Event.Builder(Event.FAQ).build());
-      }
-    });
+    findViewById(R.id.text_view_faq).setOnClickListener(view -> presenter.onEvent(new Event.Builder(Event.FAQ).build()));
   }
 
   @Override
   protected void defineActionBar() {
     ActionBarManager.getInstance().begin()
-      .back(actionBar -> presenter.onClickBack(actionBar))
+      .home(actionBar -> presenter.onClickHome(actionBar))
+      .alarm(actionBar -> presenter.onClickAlarm(actionBar))
+      .setting(actionBar -> presenter.onClickSetting(actionBar))
+      .textButton(R.string.member_confirm, actionBar -> presenter.onClickTextButton(actionBar))
+      .close(actionBar -> presenter.onClickClose(actionBar))
       .show();
   }
 

+ 45 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/presenter/Presenter.java

@@ -215,4 +215,49 @@ public abstract class Presenter<M extends Model, V extends IView> implements ILi
   public void onClickShare(ActionBar actionBar) {
 
   }
+
+  /**
+   * 홈 클릭
+   *
+   * @param actionBar
+   */
+  public void onClickHome(ActionBar actionBar) {
+    onCommand(new FragmentChangeCommand(ScreenID.MAIN, ScreenID.DIRECTION_BACK));
+  }
+
+  /**
+   * 알람 클릭
+   *
+   * @param actionBar
+   */
+  public void onClickAlarm(ActionBar actionBar) {
+
+  }
+
+  /**
+   * 세팅 클릭
+   *
+   * @param actionBar
+   */
+  public void onClickSetting(ActionBar actionBar) {
+
+  }
+
+  /**
+   * 닫기 클릭
+   *
+   * @param actionBar
+   */
+  public void onClickClose(ActionBar actionBar) {
+
+  }
+
+  /**
+   * 텍스트 버튼 클릭 (닫기 옆)
+   *
+   * @param actionBar
+   */
+  public void onClickTextButton(ActionBar actionBar) {
+
+  }
 }

+ 23 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/presenter/menu/AllMenuPresenter.java

@@ -1,5 +1,8 @@
 package kr.co.zumo.app.lifeplus.view.presenter.menu;
 
+import android.support.v7.app.ActionBar;
+import android.util.Log;
+
 import kr.co.zumo.app.lifeplus.model.AllMenuModel;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
 import kr.co.zumo.app.lifeplus.view.Event;
@@ -72,4 +75,24 @@ public class AllMenuPresenter extends Presenter<AllMenuModel, IView> {
   public void onResult(Event event) {
 
   }
+
+  @Override
+  public void onClickAlarm(ActionBar actionBar) {
+    Log.i("APP# AllMenuPresenter | onClickAlarm", "|" + "==========================");
+  }
+
+  @Override
+  public void onClickSetting(ActionBar actionBar) {
+    onCommand(new FragmentChangeCommand(ScreenID.SETTING, ScreenID.DIRECTION_NEXT));
+  }
+
+  @Override
+  public void onClickClose(ActionBar actionBar) {
+    onBackPressed();
+  }
+
+  @Override
+  public void onClickTextButton(ActionBar actionBar) {
+    Log.i("APP# AllMenuPresenter | onClickTextButton", "|" + "==========================");
+  }
 }

+ 96 - 20
app/src/main/res/layout/action_bar.xml

@@ -19,21 +19,60 @@
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:orientation="vertical"
-      app:layout_constraintGuide_begin="6dp"/>
+      app:layout_constraintGuide_begin="7dp"/>
 
     <ImageView
       android:id="@+id/button_back"
-      android:layout_width="38dp"
-      android:layout_height="38dp"
-      android:paddingStart="10dp"
-      android:paddingTop="10dp"
-      android:paddingEnd="10dp"
-      android:paddingBottom="10dp"
+      android:layout_width="36dp"
+      android:layout_height="36dp"
+      android:paddingStart="9dp"
+      android:paddingTop="9dp"
+      android:paddingEnd="9dp"
+      android:paddingBottom="9dp"
       app:layout_constraintBottom_toBottomOf="parent"
       app:layout_constraintStart_toStartOf="@id/guide_start"
       app:layout_constraintTop_toTopOf="parent"
       app:srcCompat="@drawable/icon_header_back"/>
 
+    <ImageView
+      android:id="@+id/button_home"
+      android:layout_width="36dp"
+      android:layout_height="36dp"
+      android:paddingStart="9dp"
+      android:paddingTop="9dp"
+      android:paddingEnd="9dp"
+      android:paddingBottom="9dp"
+      app:layout_constraintBottom_toBottomOf="parent"
+      app:layout_constraintStart_toStartOf="@id/guide_start"
+      app:layout_constraintTop_toTopOf="parent"
+      app:srcCompat="@drawable/ic_icon_header_home"/>
+
+    <ImageView
+      android:id="@+id/button_alarm"
+      android:layout_width="36dp"
+      android:layout_height="36dp"
+      android:paddingStart="9dp"
+      android:paddingTop="9dp"
+      android:paddingEnd="9dp"
+      android:paddingBottom="9dp"
+      app:layout_constraintBottom_toBottomOf="parent"
+      app:layout_constraintStart_toEndOf="@+id/button_home"
+      app:layout_constraintTop_toTopOf="parent"
+      app:srcCompat="@drawable/ic_icon_header_notice"/>
+
+    <ImageView
+      android:id="@+id/button_setting"
+      android:layout_width="36dp"
+      android:layout_height="36dp"
+      android:paddingStart="9dp"
+      android:paddingTop="9dp"
+      android:paddingEnd="9dp"
+      android:paddingBottom="9dp"
+      app:layout_constraintBottom_toBottomOf="parent"
+      app:layout_constraintStart_toEndOf="@+id/button_alarm"
+      app:layout_constraintTop_toTopOf="parent"
+      app:srcCompat="@drawable/ic_icon_header_setting"/>
+
     <android.support.constraint.Guideline
       android:id="@+id/guide_start2"
       android:layout_width="wrap_content"
@@ -66,36 +105,73 @@
 
     <ImageView
       android:id="@+id/button_search"
-      android:layout_width="38dp"
-      android:layout_height="38dp"
-      android:paddingStart="10dp"
-      android:paddingTop="10dp"
-      android:paddingEnd="10dp"
-      android:paddingBottom="10dp"
+      android:layout_width="36dp"
+      android:layout_height="36dp"
+      android:paddingStart="9dp"
+      android:paddingTop="9dp"
+      android:paddingEnd="9dp"
+      android:paddingBottom="9dp"
       app:layout_constraintBottom_toBottomOf="parent"
       app:layout_constraintEnd_toStartOf="@+id/button_menu"
       app:layout_constraintTop_toTopOf="parent"
       app:srcCompat="@drawable/ic_icon_header_search"/>
 
+    <TextView
+      android:id="@+id/text_sub"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:paddingStart="9dp"
+      android:paddingTop="9dp"
+      android:paddingEnd="9dp"
+      android:paddingBottom="9dp"
+      android:gravity="end"
+      android:textColor="#666666"
+      android:textSize="12sp"
+      app:layout_constraintBottom_toBottomOf="parent"
+      app:layout_constraintEnd_toStartOf="@+id/guide_end2"
+      app:layout_constraintTop_toTopOf="parent"
+      tools:text="회원확인"
+      />
+
+    <android.support.constraint.Guideline
+      android:id="@+id/guide_end2"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:orientation="vertical"
+      app:layout_constraintGuide_end="36.5dp"/>
+
     <ImageView
       android:id="@+id/button_menu"
-      android:layout_width="38dp"
-      android:layout_height="38dp"
-      android:paddingStart="10dp"
-      android:paddingTop="10dp"
-      android:paddingEnd="10dp"
-      android:paddingBottom="10dp"
+      android:layout_width="36dp"
+      android:layout_height="36dp"
+      android:paddingStart="9dp"
+      android:paddingTop="9dp"
+      android:paddingEnd="9dp"
+      android:paddingBottom="9dp"
       app:layout_constraintBottom_toBottomOf="parent"
       app:layout_constraintEnd_toEndOf="@+id/guide_end"
       app:layout_constraintTop_toTopOf="parent"
       app:srcCompat="@drawable/ic_icon_header_menu"/>
 
+    <ImageView
+      android:id="@+id/button_close"
+      android:layout_width="36dp"
+      android:layout_height="36dp"
+      android:paddingStart="9dp"
+      android:paddingTop="9dp"
+      android:paddingEnd="9dp"
+      android:paddingBottom="9dp"
+      app:layout_constraintBottom_toBottomOf="parent"
+      app:layout_constraintEnd_toEndOf="@+id/guide_end"
+      app:layout_constraintTop_toTopOf="parent"
+      app:srcCompat="@drawable/ic_icon_header_close"/>
+
     <android.support.constraint.Guideline
       android:id="@+id/guide_end"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:orientation="vertical"
-      app:layout_constraintGuide_end="6dp"/>
+      app:layout_constraintGuide_end="7dp"/>
   </android.support.constraint.ConstraintLayout>
 
 </RelativeLayout>

+ 2 - 1
app/src/main/res/layout/fragment_my_bucket_list_related_tag.xml

@@ -36,5 +36,6 @@
     android:id="@+id/recycler_view_related_tag_list"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:layout_marginTop="25dp"/>
+    android:layout_marginTop="25dp"
+    />
 </LinearLayout>

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

@@ -5,7 +5,7 @@
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_marginStart="25dp"
-  android:layout_marginTop="13dp"
+  android:layout_marginTop="5dp"
   android:orientation="vertical"
   >
   <LinearLayout

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

@@ -13,6 +13,7 @@
   <string name="confirm">확인</string>
   <string name="cancel">취소</string>
   <string name="faq">자주 찾는 질문</string>
+  <string name="member_confirm">"<u>회원확인</u>"</string>
 
   <string name="lifeplus_email">&lifeplus_email;</string>