Skip to content
This repository was archived by the owner on Aug 10, 2022. It is now read-only.

Commit a9338a9

Browse files
Tweaking code and made closeAfterClick (ButtonListener) default 'true'
1 parent 261446f commit a9338a9

File tree

7 files changed

+56
-72
lines changed

7 files changed

+56
-72
lines changed

library/src/main/java/org/hitogo/button/action/ActionButtonBuilder.java

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -5,38 +5,25 @@
55

66
import org.hitogo.button.core.ButtonBuilder;
77
import org.hitogo.button.core.ButtonImpl;
8-
import org.hitogo.button.core.ButtonListener;
98
import org.hitogo.button.core.ButtonParams;
109
import org.hitogo.button.core.ButtonParamsHolder;
1110
import org.hitogo.button.core.ButtonType;
1211
import org.hitogo.core.HitogoContainer;
1312

1413
@SuppressWarnings({"WeakerAccess", "unused"})
15-
public class ActionButtonBuilder extends ButtonBuilder<ActionButton> {
14+
public class ActionButtonBuilder extends ButtonBuilder<ActionButtonBuilder, ActionButton> {
1615

1716
private static final ButtonType type = ButtonType.ACTION;
1817

19-
private String text;
20-
2118
private int[] viewIds;
22-
2319
private boolean hasButtonView;
24-
private boolean closeAfterClick;
25-
26-
private ButtonListener listener;
2720

2821
public ActionButtonBuilder(@NonNull Class<? extends ButtonImpl> targetClass,
2922
@NonNull Class<? extends ButtonParams> paramClass,
3023
@NonNull HitogoContainer container) {
3124
super(targetClass, paramClass, container, type);
3225
}
3326

34-
@NonNull
35-
public ActionButtonBuilder setText(String text) {
36-
this.text = text;
37-
return this;
38-
}
39-
4027
@NonNull
4128
public ActionButtonBuilder forViewAction() {
4229
return forViewAction(getController().provideDefaultCloseIconId(),
@@ -64,26 +51,9 @@ public ActionButtonBuilder forClickOnlyAction() {
6451
return this;
6552
}
6653

67-
@NonNull
68-
public ActionButtonBuilder setButtonListener(@Nullable ButtonListener listener) {
69-
this.listener = listener;
70-
this.closeAfterClick = true;
71-
return this;
72-
}
73-
74-
@NonNull
75-
public ActionButtonBuilder setButtonListener(@Nullable ButtonListener listener, boolean closeAfterClick) {
76-
this.listener = listener;
77-
this.closeAfterClick = closeAfterClick;
78-
return this;
79-
}
80-
8154
@Override
8255
protected void onProvideData(ButtonParamsHolder holder) {
83-
holder.provideString(ActionButtonParamsKeys.TEXT_KEY, text);
8456
holder.provideIntArray(ActionButtonParamsKeys.VIEW_IDS_KEY, viewIds);
8557
holder.provideBoolean(ActionButtonParamsKeys.HAS_BUTTON_VIEW_KEY, hasButtonView);
86-
holder.provideBoolean(ActionButtonParamsKeys.CLOSE_AFTER_CLICK_KEY, closeAfterClick);
87-
holder.provideButtonListener(listener);
8858
}
8959
}

library/src/main/java/org/hitogo/button/action/ActionButtonImpl.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public class ActionButtonImpl extends ButtonImpl<ActionButtonParams> implements
1313

1414
@Override
1515
protected void onCheck(@NonNull ActionButtonParams params) {
16-
if (params.getText() == null || HitogoUtils.isEmpty(params.getText())) {
16+
if (HitogoUtils.isEmpty(params.getText())) {
1717
Log.w(ActionButtonBuilder.class.getName(), "Button has no text. If you want to " +
1818
"display a button with only one icon, you can ignore this warning.");
1919
}
@@ -22,14 +22,6 @@ protected void onCheck(@NonNull ActionButtonParams params) {
2222
throw new InvalidParameterException("Have you forgot to add at least one view id for " +
2323
"this button?");
2424
}
25-
26-
if (params.hasButtonView()) {
27-
for (int id : params.getViewIds()) {
28-
if (id == -1) {
29-
throw new InvalidParameterException("Button view id cannot be -1.");
30-
}
31-
}
32-
}
3325
}
3426

3527
@Override

library/src/main/java/org/hitogo/button/action/ActionButtonParams.java

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,13 @@
66
@SuppressWarnings({"WeakerAccess", "unused"})
77
public class ActionButtonParams extends ButtonParams {
88

9-
private String text;
109
private int[] viewIds;
1110
private boolean hasButtonView;
12-
private boolean closeAfterClick;
1311

1412
@Override
1513
protected void onCreateParams(ButtonParamsHolder holder, ButtonParams buttonParams) {
16-
text = holder.getString(ActionButtonParamsKeys.TEXT_KEY);
1714
viewIds = holder.getIntList(ActionButtonParamsKeys.VIEW_IDS_KEY);
1815
hasButtonView = holder.getBoolean(ActionButtonParamsKeys.HAS_BUTTON_VIEW_KEY);
19-
closeAfterClick = holder.getBoolean(ActionButtonParamsKeys.CLOSE_AFTER_CLICK_KEY);
20-
}
21-
22-
@Override
23-
public String getText() {
24-
return text;
2516
}
2617

2718
@Override
@@ -33,9 +24,4 @@ public int[] getViewIds() {
3324
public boolean hasButtonView() {
3425
return hasButtonView;
3526
}
36-
37-
@Override
38-
public boolean isClosingAfterClick() {
39-
return closeAfterClick;
40-
}
4127
}

library/src/main/java/org/hitogo/button/action/ActionButtonParamsKeys.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44

55
@SuppressWarnings("WeakerAccess")
66
public abstract class ActionButtonParamsKeys extends ButtonParamsKeys {
7-
public static final String TEXT_KEY = "text";
87
public static final String VIEW_IDS_KEY = "viewIds";
98
public static final String HAS_BUTTON_VIEW_KEY = "hasButtonView";
10-
public static final String CLOSE_AFTER_CLICK_KEY = "closeAfterClick";
119
}

library/src/main/java/org/hitogo/button/core/ButtonBuilder.java

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,16 @@
22

33
import android.os.Bundle;
44
import android.support.annotation.NonNull;
5+
import android.support.annotation.Nullable;
56
import android.util.Log;
67

78
import org.hitogo.core.HitogoContainer;
89
import org.hitogo.core.HitogoController;
910

1011
import java.lang.ref.WeakReference;
1112

12-
@SuppressWarnings({"WeakerAccess", "unused"})
13-
public abstract class ButtonBuilder<B extends Button> {
13+
@SuppressWarnings({"WeakerAccess", "unused", "unchecked"})
14+
public abstract class ButtonBuilder<C extends ButtonBuilder, B extends Button> {
1415

1516
private Class<? extends ButtonImpl> targetClass;
1617
private Class<? extends ButtonParams> paramClass;
@@ -21,6 +22,10 @@ public abstract class ButtonBuilder<B extends Button> {
2122
private Bundle privateBundle = new Bundle();
2223
private ButtonType builderType;
2324

25+
private String text;
26+
private boolean closeAfterClick = true;
27+
private ButtonListener listener;
28+
2429
public ButtonBuilder(@NonNull Class<? extends ButtonImpl> targetClass,
2530
@NonNull Class<? extends ButtonParams> paramClass,
2631
@NonNull HitogoContainer container, ButtonType builderType) {
@@ -30,6 +35,26 @@ public ButtonBuilder(@NonNull Class<? extends ButtonImpl> targetClass,
3035
this.builderType = builderType;
3136
}
3237

38+
@NonNull
39+
public C setText(String text) {
40+
this.text = text;
41+
return (C) this;
42+
}
43+
44+
@NonNull
45+
public C setButtonListener(@Nullable ButtonListener listener) {
46+
this.listener = listener;
47+
this.closeAfterClick = true;
48+
return (C) this;
49+
}
50+
51+
@NonNull
52+
public C setButtonListener(@Nullable ButtonListener listener, boolean closeAfterClick) {
53+
this.listener = listener;
54+
this.closeAfterClick = closeAfterClick;
55+
return (C) this;
56+
}
57+
3358
@NonNull
3459
@SuppressWarnings("unchecked")
3560
public final B build() {
@@ -49,6 +74,10 @@ public final B build() {
4974

5075
private void onProvidePrivateData(ButtonParamsHolder holder) {
5176
privateBundle.putSerializable(ButtonParamsKeys.TYPE_KEY, builderType);
77+
privateBundle.putString(ButtonParamsKeys.TEXT_KEY, text);
78+
privateBundle.putBoolean(ButtonParamsKeys.CLOSE_AFTER_CLICK_KEY, closeAfterClick);
79+
80+
holder.provideButtonListener(listener);
5281
}
5382

5483
protected abstract void onProvideData(ButtonParamsHolder holder);
Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,50 @@
11
package org.hitogo.button.core;
22

33
import android.os.Bundle;
4+
import android.support.annotation.NonNull;
45

56
import org.hitogo.button.action.DefaultActionButtonListener;
67
import org.hitogo.core.HitogoParams;
78

89
@SuppressWarnings({"WeakerAccess", "unused"})
910
public abstract class ButtonParams extends HitogoParams<ButtonParamsHolder, ButtonParams> {
1011

11-
private ButtonListener listener;
12+
private String text;
13+
private boolean closeAfterClick;
1214
private ButtonType type;
1315

16+
private ButtonListener listener;
17+
1418
protected void provideData(ButtonParamsHolder holder, Bundle privateBundle) {
19+
this.text = privateBundle.getString(ButtonParamsKeys.TEXT_KEY);
20+
this.closeAfterClick = privateBundle.getBoolean(ButtonParamsKeys.CLOSE_AFTER_CLICK_KEY);
1521
this.type = (ButtonType) privateBundle.getSerializable(ButtonParamsKeys.TYPE_KEY);
16-
this.listener = holder.getListener();
1722

18-
if(this.listener == null) {
19-
this.listener = new DefaultActionButtonListener();
20-
}
23+
this.listener = holder.getListener();
2124

2225
onCreateParams(holder, this);
2326
}
2427

2528
protected abstract void onCreateParams(ButtonParamsHolder holder, ButtonParams buttonParams);
2629

27-
public final ButtonListener getListener() {
28-
return listener;
29-
}
30+
public abstract int[] getViewIds();
31+
32+
public abstract boolean hasButtonView();
3033

3134
public final ButtonType getType() {
3235
return type;
3336
}
3437

35-
public abstract String getText();
36-
37-
public abstract int[] getViewIds();
38+
public final String getText() {
39+
return text;
40+
}
3841

39-
public abstract boolean hasButtonView();
42+
@NonNull
43+
public final ButtonListener getListener() {
44+
return listener != null ? listener : new DefaultActionButtonListener();
45+
}
4046

41-
public abstract boolean isClosingAfterClick();
47+
public final boolean isClosingAfterClick() {
48+
return closeAfterClick;
49+
}
4250
}

library/src/main/java/org/hitogo/button/core/ButtonParamsKeys.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@
44

55
@SuppressWarnings("WeakerAccess")
66
public abstract class ButtonParamsKeys extends HitogoParamsKeys {
7-
7+
public static final String TEXT_KEY = "text";
8+
public static final String CLOSE_AFTER_CLICK_KEY = "closeAfterClick";
89
}

0 commit comments

Comments
 (0)