Skip to content

Commit 0b25786

Browse files
authored
Merge pull request #17 from bmc08gt/master
ToggleButtonLayout: Add self reference to OnToggledListener callback
2 parents f476a04 + 2181964 commit 0b25786

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

app/src/main/java/com/savvyapps/togglebuttonlayout/sample/ToggleButtonLayoutActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ class ToggleButtonLayoutActivity : AppCompatActivity() {
1515

1616
toolbar.setTitle(R.string.app_name)
1717

18-
toggleButtonLayout.onToggledListener = { toggle, selected ->
19-
Snackbar.make(root, "Toggle " + toggle.id + " selected state " + selected, Snackbar.LENGTH_LONG)
18+
toggleButtonLayout.onToggledListener = { _, toggle, selected ->
19+
Snackbar.make(root, "Toggle ${toggle.id} selected state $selected", Snackbar.LENGTH_LONG)
2020
.show()
2121
}
2222

togglebuttonlayout/src/main/java/com/savvyapps/togglebuttonlayout/Toggle.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@ class Toggle(
2727
*/
2828
var isSelected: Boolean = false
2929

30+
internal var parentRef: ToggleButtonLayout? = null
31+
32+
fun getToggleButtonLayout(): ToggleButtonLayout? {
33+
return parentRef
34+
}
35+
3036
init {
3137
if (id == 0) {
3238
throw IllegalArgumentException("Toggle must have a non-zero id")

togglebuttonlayout/src/main/java/com/savvyapps/togglebuttonlayout/ToggleButtonLayout.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,14 +109,14 @@ class ToggleButtonLayout : CardView {
109109
//do nothing
110110
} else {
111111
setToggled(toggle.id, !toggle.isSelected)
112-
onToggledListener?.invoke(toggle, toggle.isSelected)
112+
onToggledListener?.invoke(this@ToggleButtonLayout, toggle, toggle.isSelected)
113113
}
114114
}
115115

116116
/**
117117
* Listen for when toggles get selected and deselected
118118
*/
119-
var onToggledListener: ((toggle: Toggle, selected: Boolean) -> Unit)? = null
119+
var onToggledListener: ((v: View?, toggle: Toggle, selected: Boolean) -> Unit)? = null
120120

121121
constructor(context: Context) : super(context) {
122122
init(context, null)
@@ -173,7 +173,9 @@ class ToggleButtonLayout : CardView {
173173
MenuInflater(context).inflate(menuId, menu)
174174
for (i in 0 until menu.size()) {
175175
val item = menu.getItem(i)
176-
val toggle = Toggle(item.itemId, item.icon, item.title)
176+
val toggle = Toggle(item.itemId, item.icon, item.title).apply {
177+
this.parentRef = this@ToggleButtonLayout
178+
}
177179
addToggle(toggle)
178180
}
179181
}

0 commit comments

Comments
 (0)