From af7371b8671e30bd449c311ea3e101c57575f1f9 Mon Sep 17 00:00:00 2001 From: Michael Gangolf Date: Fri, 25 Mar 2022 11:34:41 +0100 Subject: [PATCH] feat(android): parity for optionbar index (#13324) * feat(android): parity for optionbar index * update docs and example --- .../ti/modules/titanium/ui/widget/TiUIOptionBar.java | 4 +++- apidoc/Titanium/UI/OptionBar.yml | 11 ++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIOptionBar.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIOptionBar.java index 7f81d36896b..132e2e5b8b6 100644 --- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIOptionBar.java +++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIOptionBar.java @@ -115,6 +115,9 @@ private void checkOption(int index) ((Checkable) view).setChecked(true); this.isIgnoringCheckEvent = oldValue; } + } else if (index == -1) { + // unselect all + getButtonGroup().clearChecked(); } } } @@ -231,7 +234,6 @@ private void onButtonChecked(ViewGroup viewGroup, int viewId, boolean isChecked) if (((Checkable) childView).isChecked()) { // Update the proxy's "index" property. this.proxy.setProperty(TiC.PROPERTY_INDEX, index); - // Fire a "click" event for selected option. if (!this.isIgnoringCheckEvent) { KrollDict data = new KrollDict(); diff --git a/apidoc/Titanium/UI/OptionBar.yml b/apidoc/Titanium/UI/OptionBar.yml index 5d55fb9f4df..64377666087 100644 --- a/apidoc/Titanium/UI/OptionBar.yml +++ b/apidoc/Titanium/UI/OptionBar.yml @@ -31,6 +31,8 @@ events: properties: - name: index summary: Index of the currently selected option. + description: | + Index of the currently selected option. Setting this to `-1` will deselect all options. type: Number - name: labels @@ -64,10 +66,17 @@ examples: const optionBar = Ti.UI.createOptionBar({ labels: [ 'Option 1', 'Option 2', 'Option 3' ] }); + const btn = Ti.UI.createButton({ + title:"reset", bottom: 10 + }) optionBar.addEventListener('click', (e) => { Ti.API.info(`Option ${e.index} was selected.`); }); - win.add(optionBar); + btn.addEventListener('click', (e) => { + optionBar.index = -1; + }); + win.add([optionBar,btn]); + win.open(); ```