diff --git a/entry/src/main/java/org/dync/livegiftlayout/Gift1Ability.java b/entry/src/main/java/org/dync/livegiftlayout/Gift1Ability.java index 39215b431414431d12478f34441a6455bb5f9733..1857ddfd5fa0e4830d34a5dcfe6c65da33162475 100644 --- a/entry/src/main/java/org/dync/livegiftlayout/Gift1Ability.java +++ b/entry/src/main/java/org/dync/livegiftlayout/Gift1Ability.java @@ -119,6 +119,8 @@ public class Gift1Ability extends Ability { HmCheckbox hcbCurrentStart = (HmCheckbox) findComponentById(ResourceTable.Id_hcb_currentStart); hcbCurrentStart.setChecked(currentStart = !hcbCurrentStart.isChecked()); }); + ((HmCheckbox) findComponentById(ResourceTable.Id_hcb_currentStart)).setHmCheckedStateChangedListener((absButton, b) -> currentStart = b); + ((DirectionalLayout) findComponentById(ResourceTable.Id_dl_displayMode)).setClickedListener(component -> { HmCheckbox hcbCurrentStart = (HmCheckbox) findComponentById(ResourceTable.Id_hcb_displayMode); hcbCurrentStart.setChecked(!hcbCurrentStart.isChecked()); @@ -131,6 +133,15 @@ public class Gift1Ability extends Ability { } } }); + ((HmCheckbox) findComponentById(ResourceTable.Id_hcb_displayMode)).setHmCheckedStateChangedListener((absButton, b) -> { + if (giftControl != null) { + if (b) { + giftControl.setDisplayMode(GiftControl.FROM_BOTTOM_TO_TOP); + } else { + giftControl.setDisplayMode(GiftControl.FROM_TOP_TO_BOTTOM); + } + } + }); ((DirectionalLayout) findComponentById(ResourceTable.Id_dl_hideMode)).setClickedListener(component -> { HmCheckbox hcbCurrentStart = (HmCheckbox) findComponentById(ResourceTable.Id_hcb_hideMode); hcbCurrentStart.setChecked(!hcbCurrentStart.isChecked()); @@ -139,6 +150,11 @@ public class Gift1Ability extends Ability { giftControl.setHideMode(hcbCurrentStart.isChecked()); } }); + ((HmCheckbox) findComponentById(ResourceTable.Id_hcb_hideMode)).setHmCheckedStateChangedListener((absButton, b) -> { + if (giftControl != null) { + giftControl.setHideMode(b); + } + }); findComponentById(ResourceTable.Id_btn_clear_gift).setClickedListener(v -> { if (giftControl != null) { diff --git a/entry/src/main/java/org/dync/livegiftlayout/HmCheckbox.java b/entry/src/main/java/org/dync/livegiftlayout/HmCheckbox.java index 4c2ece2d0a0df87edb83bbf1c274c963c0a48be4..5a7acfc350a74ff26ccb6fa85d96522c287fa8a9 100644 --- a/entry/src/main/java/org/dync/livegiftlayout/HmCheckbox.java +++ b/entry/src/main/java/org/dync/livegiftlayout/HmCheckbox.java @@ -39,6 +39,7 @@ public class HmCheckbox extends Checkbox implements Component.DrawTask, Checkbox private static final int HARF_VALUE = 2; private int width; private int height; + private AbsButton.CheckedStateChangedListener listener; /** * 构造函数 @@ -116,5 +117,10 @@ public class HmCheckbox extends Checkbox implements Component.DrawTask, Checkbox public void onCheckedChanged(AbsButton absButton, boolean b) { this.setChecked(b); invalidate(); + if (listener != null) listener.onCheckedChanged(absButton, b); + } + + public void setHmCheckedStateChangedListener(AbsButton.CheckedStateChangedListener listener) { + this.listener = listener; } }