This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import android.annotation.TargetApi; | |
import android.content.Context; | |
import android.graphics.Matrix; | |
import android.graphics.drawable.Drawable; | |
import android.os.Build; | |
import android.util.AttributeSet; | |
import android.widget.ImageView; | |
/** | |
* Created by chris on 7/27/16. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Unless specified otherwise, all of the below tinting applies to both Lollipop and pre-Lollipop using AppCompat v21. | |
To use the support version of these attributes, remove the android namespace. | |
For instance, "android:colorControlNormal" becomes "colorControlNormal". | |
These attributes will be propagated to their corresponding attributes within the android namespace | |
for devices running Lollipop. Any exceptions to this will be noted by including the "android:" prefix. | |
All Clickable Views: | |
----------- |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package example | |
import android.support.v7.recyclerview.extensions.AsyncDifferConfig | |
import android.support.v7.recyclerview.extensions.AsyncListDiffer | |
import android.support.v7.util.DiffUtil | |
import android.support.v7.util.ListUpdateCallback | |
import android.support.v7.widget.RecyclerView | |
/** | |
* {@link RecyclerView.Adapter RecyclerView.Adapter} base class based on |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Coroutine-based solution for delayed and periodic work. May fire once (if [interval] omitted) | |
* or periodically ([startDelay] defaults to [interval] in this case), replacing both | |
* `Observable.timer()` & `Observable.interval()` from RxJava. | |
* | |
* In contrast to RxJava, intervals are calculated since previous run completion; this is more | |
* convenient for potentially long work (prevents overlapping) and does not suffer from queueing | |
* multiple invocations in Doze mode on Android. | |
* | |
* Dispatcher is inherited from scope, may be overridden via [context] parameter. |