Skip to content

Commit 194a803

Browse files
authored
Merge pull request #21 from ozgurg/dev
release: v3.3.0
2 parents 2188546 + b520488 commit 194a803

File tree

4 files changed

+28
-8
lines changed

4 files changed

+28
-8
lines changed

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ ToggleIconView is a collection library of animated two-stage toggle icons for An
66

77
![](https://raw.githubusercontent.com/ozgurg/ToggleIconView/master/.github/sample.gif)
88

9+
## Requirements
10+
- Android 5.0 (API 21) or higher
11+
912
## Installation
1013

1114
### JitPack repository
@@ -39,7 +42,7 @@ dependencyResolutionManagement {
3942
```gradle
4043
// App level build.gradle
4144
dependencies {
42-
implementation "com.github.ozgurg:ToggleIconView:3.2.0"
45+
implementation "com.github.ozgurg:ToggleIconView:3.3.0"
4346
}
4447
```
4548

lib/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ plugins {
55
}
66

77
android {
8-
compileSdk 33
8+
compileSdk 34
99
defaultConfig {
1010
minSdk 21
11-
targetSdk 33
11+
targetSdk 34
1212
consumerProguardFiles "consumer-rules.pro"
1313
}
1414
buildTypes {
@@ -40,7 +40,7 @@ afterEvaluate {
4040

4141
groupId = "com.github.ozgurg"
4242
artifactId = "toggle-icon-view"
43-
version = "3.2.0"
43+
version = "3.3.0"
4444
}
4545
}
4646
}

lib/src/main/java/og/android/lib/toggleiconview/ToggleIconView.kt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package og.android.lib.toggleiconview
22

33
import android.content.Context
4+
import android.os.Build
45
import android.util.AttributeSet
56
import androidx.annotation.DrawableRes
67
import androidx.appcompat.widget.AppCompatImageView
@@ -22,7 +23,7 @@ abstract class ToggleIconView @JvmOverloads constructor(
2223

2324
private var mIsChecked: Boolean = false
2425

25-
private var mOnCheckedChangeListener: ((view: ToggleIconView, isChecked: Boolean) -> Unit)? = null
26+
private var mOnCheckedChangeListener: OnCheckedChangeListener? = null
2627

2728
init {
2829
createAndSetCheckedDrawable(checkedDrawableResId)
@@ -70,6 +71,10 @@ abstract class ToggleIconView @JvmOverloads constructor(
7071
}
7172

7273
private fun setTooltipTextByCheckState(isChecked: Boolean) {
74+
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
75+
return
76+
}
77+
7378
tooltipText = if (isChecked) {
7479
mCheckedTooltipText
7580
} else {
@@ -118,7 +123,7 @@ abstract class ToggleIconView @JvmOverloads constructor(
118123
}
119124

120125
private fun invokeOnCheckedChangeListener(isChecked: Boolean) {
121-
mOnCheckedChangeListener?.invoke(this, isChecked)
126+
mOnCheckedChangeListener?.onCheckedChanged(this, isChecked)
122127
}
123128

124129
private fun isStateSame(previousState: Boolean, currentState: Boolean): Boolean {
@@ -166,7 +171,11 @@ abstract class ToggleIconView @JvmOverloads constructor(
166171
invokeOnCheckedChangeListener(isChecked)
167172
}
168173

169-
open fun setOnCheckedChangeListener(listener: (view: ToggleIconView, isChecked: Boolean) -> Unit) {
174+
open fun setOnCheckedChangeListener(listener: OnCheckedChangeListener) {
170175
mOnCheckedChangeListener = listener
171176
}
177+
178+
fun interface OnCheckedChangeListener {
179+
fun onCheckedChanged(view: ToggleIconView, isChecked: Boolean)
180+
}
172181
}

sample/src/main/java/og/android/sample/toggleiconview/MainActivity.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package og.android.sample.toggleiconview
22

3+
import android.os.Build
34
import android.os.Bundle
45
import android.util.Log
56
import android.widget.LinearLayout
@@ -54,10 +55,17 @@ class MainActivity : AppCompatActivity() {
5455
}
5556

5657
toggleIconView.setOnCheckedChangeListener { view: ToggleIconView, _: Boolean ->
57-
val value = "[${view::class.qualifiedName.toString()}:onCheckedChanged]\n" +
58+
val value = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
59+
"[${view::class.qualifiedName.toString()}:onCheckedChanged]\n" +
5860
"isChecked: ${toggleIconView.isChecked}\n" +
5961
"tooltipText: ${toggleIconView.tooltipText}\n" +
6062
"contentDescription: ${toggleIconView.contentDescription}"
63+
} else {
64+
"[${view::class.qualifiedName.toString()}:onCheckedChanged]\n" +
65+
"isChecked: ${toggleIconView.isChecked}\n" +
66+
"tooltipText: not-supported\n" +
67+
"contentDescription: ${toggleIconView.contentDescription}"
68+
}
6169
Log.d("TOGGLEICONVIEW_SAMPLE", value)
6270
}
6371
}

0 commit comments

Comments
 (0)