Skip to content

Instantly share code, notes, and snippets.

@DrewCarlson
Created March 30, 2016 23:13
Show Gist options
  • Save DrewCarlson/73e39840119fdbf12cd193d5f872d7df to your computer and use it in GitHub Desktop.
Save DrewCarlson/73e39840119fdbf12cd193d5f872d7df to your computer and use it in GitHub Desktop.
View extensions for ViewCompat helpers.
import android.content.res.ColorStateList
import android.graphics.PorterDuff
import android.graphics.Rect
import android.support.v4.view.ViewCompat
import android.support.v4.view.ViewPropertyAnimatorCompat
import android.support.v4.view.WindowInsetsCompat
import android.support.v4.view.accessibility.AccessibilityNodeProviderCompat
import android.view.View
fun View.animateCompat(): ViewPropertyAnimatorCompat {
return ViewCompat.animate(this)
}
fun View.canScrollHorizontallyCompat(direction: Int): Boolean {
return ViewCompat.canScrollHorizontally(this, direction)
}
fun View.canScrollVerticallyCompat(direction: Int): Boolean {
return ViewCompat.canScrollVertically(this, direction)
}
fun View.combineMeasuredStates(curState: Int, newState: Int): Int {
return ViewCompat.combineMeasuredStates(curState, newState)
}
fun View.dispatchApplyWindowInsetsCompat(insets: WindowInsetsCompat): WindowInsetsCompat {
return ViewCompat.dispatchApplyWindowInsets(this, insets)
}
fun View.dispatchFinishTemporaryDetach() {
ViewCompat.dispatchFinishTemporaryDetach(this)
}
fun View.dispatchNestedFlingCompat(velocityX: Float, velocityY: Float, consumed: Boolean): Boolean {
return ViewCompat.dispatchNestedFling(this, velocityX, velocityY, consumed)
}
fun View.dispatchNestedPreFlingCompat(velocityX: Float, velocityY: Float): Boolean {
return ViewCompat.dispatchNestedPreFling(this, velocityX, velocityY)
}
fun View.dispatchNestedPreScrollCompat(dx: Int, dy: Int, consumed: IntArray, offsetInWindow: IntArray): Boolean {
return ViewCompat.dispatchNestedPreScroll(this, dx, dy, consumed, offsetInWindow)
}
fun View.dispatchNestedScrollCompat(dxConsumed: Int, dyConsumed: Int, dxUnconsumed: Int, dyUnconsumed: Int, offsetInWindow: IntArray): Boolean {
return ViewCompat.dispatchNestedScroll(this, dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed, offsetInWindow)
}
fun View.dispatchStartTemporaryDetach() {
ViewCompat.dispatchStartTemporaryDetach(this)
}
var View.accessibilityLiveRegionCompat: Int
get() = ViewCompat.getAccessibilityLiveRegion(this)
set(value) = ViewCompat.setAccessibilityLiveRegion(this, value)
fun View.getAccessibilityNodeProviderCompat(): AccessibilityNodeProviderCompat {
return ViewCompat.getAccessibilityNodeProvider(this)
}
var View.alphaCompat: Float
get() = ViewCompat.getAlpha(this)
set(value) = ViewCompat.setAlpha(this, value)
var View.backgroundTintListCompat: ColorStateList
get() = ViewCompat.getBackgroundTintList(this)
set(value) = ViewCompat.setBackgroundTintList(this, value)
var View.backgroundTintModeCompat: PorterDuff.Mode
get() = ViewCompat.getBackgroundTintMode(this)
set(value) = ViewCompat.setBackgroundTintMode(this, value)
var View.clipBoundsCompat: Rect
get() = ViewCompat.getClipBounds(this)
set(value) = ViewCompat.setClipBounds(this, value)
var View.elevationCompat: Float
get() = ViewCompat.getElevation(this)
set(value) = ViewCompat.setElevation(this, value)
val View.fitsSystemWindowsCompat: Boolean
get() = ViewCompat.getFitsSystemWindows(this)
var View.importantForAccessibilityCompat: Int
get() = ViewCompat.getImportantForAccessibility(this)
set(value) = ViewCompat.setImportantForAccessibility(this, value)
var View.labelForCompat: Int
get() = ViewCompat.getLabelFor(this)
set(value) = ViewCompat.setLabelFor(this, value)
val View.layerTypeCompat: Int
get() = ViewCompat.getLayerType(this)
var View.layoutDirectionCompat: Int
get() = ViewCompat.getLayoutDirection(this)
set(value) = ViewCompat.setLayoutDirection(this, value)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment