Skip to content
This repository was archived by the owner on Jun 17, 2024. It is now read-only.

Commit 81940d5

Browse files
pocmocsadilek
authored andcommitted
[components] ktx: Add extension methods: View.isGone() / isVisible() / isInvisible().
1 parent fd511fb commit 81940d5

File tree

2 files changed

+45
-0
lines changed
  • android-components/components/support/ktx/src
    • main/java/mozilla/components/support/ktx/android/view
    • test/java/mozilla/components/support/ktx/android/view

2 files changed

+45
-0
lines changed

android-components/components/support/ktx/src/main/java/mozilla/components/support/ktx/android/view/View.kt

+21
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,27 @@ val View.isLTR: Boolean
4242
fun View.dp(pixels: Int) = TypedValue.applyDimension(
4343
TypedValue.COMPLEX_UNIT_DIP, pixels.toFloat(), resources.displayMetrics).toInt()
4444

45+
/**
46+
* Returns true if this view's visibility is set to View.VISIBLE.
47+
*/
48+
fun View.isVisible(): Boolean {
49+
return visibility == View.VISIBLE
50+
}
51+
52+
/**
53+
* Returns true if this view's visibility is set to View.GONE.
54+
*/
55+
fun View.isGone(): Boolean {
56+
return visibility == View.GONE
57+
}
58+
59+
/**
60+
* Returns true if this view's visibility is set to View.INVISIBLE.
61+
*/
62+
fun View.isInvisible(): Boolean {
63+
return visibility == View.INVISIBLE
64+
}
65+
4566
/**
4667
* Tries to focus this view and show the soft input window for it.
4768
*/

android-components/components/support/ktx/src/test/java/mozilla/components/support/ktx/android/view/ViewTest.kt

+24
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import org.robolectric.RobolectricTestRunner
1414
import org.robolectric.RuntimeEnvironment
1515
import org.robolectric.shadows.ShadowLooper
1616
import android.util.DisplayMetrics
17+
import android.view.View
1718
import org.junit.Assert.assertEquals
1819
import org.junit.Assert.assertNotEquals
1920

@@ -43,4 +44,27 @@ class ViewTest {
4344
assertNotEquals(0, view.dp(i))
4445
}
4546
}
47+
48+
@Test
49+
fun `visibility helper methods`() {
50+
val view = TextView(RuntimeEnvironment.application)
51+
52+
view.visibility = View.GONE
53+
54+
assertTrue(view.isGone())
55+
assertFalse(view.isVisible())
56+
assertFalse(view.isInvisible())
57+
58+
view.visibility = View.VISIBLE
59+
60+
assertFalse(view.isGone())
61+
assertTrue(view.isVisible())
62+
assertFalse(view.isInvisible())
63+
64+
view.visibility = View.INVISIBLE
65+
66+
assertFalse(view.isGone())
67+
assertFalse(view.isVisible())
68+
assertTrue(view.isInvisible())
69+
}
4670
}

0 commit comments

Comments
 (0)