|
|
@@ -46,6 +46,8 @@ public class ActionBarManager implements IActionBarListener {
|
|
|
private View buttonMenu;
|
|
|
private ProgressBar progressBar;
|
|
|
|
|
|
+ private Builder builder;
|
|
|
+
|
|
|
private IActionBarListener listener;
|
|
|
private IActionBarListener.Scroll scrollListener;
|
|
|
|
|
|
@@ -82,8 +84,8 @@ public class ActionBarManager implements IActionBarListener {
|
|
|
imageBi = view.findViewById(R.id.image_bi);
|
|
|
buttonSearch = view.findViewById(R.id.button_search);
|
|
|
buttonMenu = view.findViewById(R.id.button_menu);
|
|
|
-
|
|
|
buttonBack = view.findViewById(R.id.button_back);
|
|
|
+
|
|
|
buttonBack.setOnClickListener(v -> {
|
|
|
onClickBack(actionBar);
|
|
|
});
|
|
|
@@ -168,7 +170,7 @@ public class ActionBarManager implements IActionBarListener {
|
|
|
* @return ActionBarManager
|
|
|
*/
|
|
|
public Builder begin() {
|
|
|
- return new Builder(this);
|
|
|
+ return new Builder();
|
|
|
}
|
|
|
|
|
|
/***********************************
|
|
|
@@ -189,7 +191,6 @@ public class ActionBarManager implements IActionBarListener {
|
|
|
appBarLayoutParams.setBehavior(new AppBarLayout.Behavior());
|
|
|
appBarLayout.setLayoutParams(appBarLayoutParams);
|
|
|
|
|
|
-// containerLayoutParams.setBehavior(new AppBarLayout.ScrollingViewBehavior());
|
|
|
containerLayoutParams.topMargin = 0;
|
|
|
containerLayoutParams.setBehavior(new CustomScrollingViewBehavior());
|
|
|
container.setLayoutParams(containerLayoutParams);
|
|
|
@@ -282,6 +283,45 @@ public class ActionBarManager implements IActionBarListener {
|
|
|
setViewVisible(progressBar, isVisible, View.GONE);
|
|
|
}
|
|
|
|
|
|
+ private void set(Builder newBuilder) {
|
|
|
+ if (null == builder) {
|
|
|
+ builder = new Builder();
|
|
|
+ setTitleVisible(false);
|
|
|
+ setBackVisible(false);
|
|
|
+ setBiVisible(false);
|
|
|
+ setSearchVisible(false);
|
|
|
+ setMenuVisible(false);
|
|
|
+ setProgressVisible(false);
|
|
|
+ setScrollable(false);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if (builder.isScrollable != newBuilder.isScrollable) {
|
|
|
+ setScrollable(newBuilder.isScrollable);
|
|
|
+ }
|
|
|
+ if (builder.isVisibleProgress != newBuilder.isVisibleProgress) {
|
|
|
+ setProgressVisible(newBuilder.isVisibleProgress);
|
|
|
+ }
|
|
|
+ if (builder.isVisibleMenu != newBuilder.isVisibleMenu) {
|
|
|
+ setMenuVisible(newBuilder.isVisibleMenu);
|
|
|
+ }
|
|
|
+ if (builder.isVisibleSearch != newBuilder.isVisibleSearch) {
|
|
|
+ setSearchVisible(newBuilder.isVisibleSearch);
|
|
|
+ }
|
|
|
+ if (builder.isVisibleBi != newBuilder.isVisibleBi) {
|
|
|
+ setBiVisible(newBuilder.isVisibleBi);
|
|
|
+ }
|
|
|
+ if (builder.isVisibleBack != newBuilder.isVisibleBack) {
|
|
|
+ setBackVisible(newBuilder.isVisibleBack);
|
|
|
+ }
|
|
|
+ if (builder.isVisibleTitle != newBuilder.isVisibleTitle) {
|
|
|
+ setTitleVisible(newBuilder.isVisibleTitle);
|
|
|
+ setTitle(newBuilder.title);
|
|
|
+ }
|
|
|
+
|
|
|
+ builder = newBuilder;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* Custom Layout 을 지정한다.
|
|
|
*
|
|
|
@@ -359,10 +399,10 @@ public class ActionBarManager implements IActionBarListener {
|
|
|
|
|
|
public void destroy() {
|
|
|
if (null != appBarLayout) {
|
|
|
- appBarLayout = null;
|
|
|
if (null != scrollListener) {
|
|
|
appBarLayout.removeOnOffsetChangedListener(onOffsetChangedListener);
|
|
|
}
|
|
|
+ appBarLayout = null;
|
|
|
}
|
|
|
|
|
|
scrollListener = null;
|
|
|
@@ -376,18 +416,16 @@ public class ActionBarManager implements IActionBarListener {
|
|
|
***********************************/
|
|
|
public static class Builder {
|
|
|
|
|
|
- private ActionBarManager manager;
|
|
|
+ private boolean isVisibleTitle = false;
|
|
|
+ private boolean isVisibleBack = false;
|
|
|
+ private boolean isVisibleBi = false;
|
|
|
+ private boolean isVisibleSearch = false;
|
|
|
+ private boolean isVisibleMenu = false;
|
|
|
+ private boolean isVisibleProgress = false;
|
|
|
+ private boolean isScrollable = false;
|
|
|
+ private int title = R.string.empty_string;
|
|
|
|
|
|
- public Builder(ActionBarManager manager) {
|
|
|
- this.manager = manager;
|
|
|
-
|
|
|
- manager.setTitleVisible(false);
|
|
|
- manager.setBackVisible(false);
|
|
|
- manager.setBiVisible(false);
|
|
|
- manager.setSearchVisible(false);
|
|
|
- manager.setMenuVisible(false);
|
|
|
- manager.setProgressVisible(false);
|
|
|
- manager.setScrollable(false);
|
|
|
+ public Builder() {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -397,8 +435,8 @@ public class ActionBarManager implements IActionBarListener {
|
|
|
* @return Builder
|
|
|
*/
|
|
|
public Builder title(@StringRes int stringId) {
|
|
|
- manager.setTitle(stringId);
|
|
|
- manager.setTitleVisible(true);
|
|
|
+ this.title = stringId;
|
|
|
+ isVisibleTitle = true;
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
@@ -408,7 +446,7 @@ public class ActionBarManager implements IActionBarListener {
|
|
|
* @return Builder
|
|
|
*/
|
|
|
public Builder back() {
|
|
|
- manager.setBackVisible(true);
|
|
|
+ isVisibleBack = true;
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
@@ -418,7 +456,7 @@ public class ActionBarManager implements IActionBarListener {
|
|
|
* @return Builder
|
|
|
*/
|
|
|
public Builder logo() {
|
|
|
- manager.setBiVisible(true);
|
|
|
+ isVisibleBi = true;
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
@@ -428,7 +466,7 @@ public class ActionBarManager implements IActionBarListener {
|
|
|
* @return Builder
|
|
|
*/
|
|
|
public Builder search() {
|
|
|
- manager.setSearchVisible(true);
|
|
|
+ isVisibleSearch = true;
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
@@ -438,7 +476,7 @@ public class ActionBarManager implements IActionBarListener {
|
|
|
* @return Builder
|
|
|
*/
|
|
|
public Builder menu() {
|
|
|
- manager.setMenuVisible(true);
|
|
|
+ isVisibleMenu = true;
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
@@ -448,7 +486,7 @@ public class ActionBarManager implements IActionBarListener {
|
|
|
* @return Builder
|
|
|
*/
|
|
|
public Builder progress() {
|
|
|
- manager.setProgressVisible(true);
|
|
|
+ isVisibleProgress = true;
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
@@ -458,22 +496,31 @@ public class ActionBarManager implements IActionBarListener {
|
|
|
* @return Builder
|
|
|
*/
|
|
|
public Builder scroll() {
|
|
|
- manager.setScrollable(true);
|
|
|
+ isScrollable = true;
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 설정 세팅
|
|
|
+ */
|
|
|
+ public void set() {
|
|
|
+ ourInstance.set(this);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* show
|
|
|
*/
|
|
|
public void show() {
|
|
|
- manager.show();
|
|
|
+ set();
|
|
|
+ ourInstance.show();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* hide
|
|
|
*/
|
|
|
public void hide() {
|
|
|
- manager.hide();
|
|
|
+ set();
|
|
|
+ ourInstance.hide();
|
|
|
}
|
|
|
}
|
|
|
|