Updated AndroidX

This commit is contained in:
M66B 2019-10-23 20:59:13 +02:00
parent 21488514ed
commit 2e8f6ebbd0
3 changed files with 41 additions and 8 deletions

View File

@ -175,22 +175,22 @@ dependencies {
def core_version = "1.2.0-beta01"
def appcompat_version = "1.1.0"
def fragment_version = "1.2.0-beta02"
def recyclerview_version = "1.1.0-beta05"
def coordinatorlayout_version = "1.1.0-beta01"
def fragment_version = "1.2.0-rc01"
def recyclerview_version = "1.1.0-rc01"
def coordinatorlayout_version = "1.1.0-rc01"
def constraintlayout_version = "2.0.0-beta2"
def material_version = "1.1.0-beta01"
def browser_version = "1.2.0-alpha08"
def browser_version = "1.2.0-alpha09"
def lbm_version = "1.0.0"
def swiperefresh_version = "1.0.0"
def documentfile_version = "1.0.1"
def lifecycle_version = "2.2.0-beta01"
def room_version = "2.2.0"
def lifecycle_version = "2.2.0-rc01"
def room_version = "2.2.1"
def paging_version = "2.1.0"
def preference_version = "1.1.0"
def work_version = "2.2.0"
def exif_version = "1.1.0-rc01"
def biometric_version = "1.0.0-rc01"
def biometric_version = "1.0.0-rc02"
def billingclient_version = "2.0.3"
def javamail_version = "1.6.5-SNAPSHOT"
def jsoup_version = "1.12.1"

View File

@ -37,7 +37,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
* @param <T> The type of the live data
* @hide internal
*/
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
public abstract class ComputableLiveData<T> {
@SuppressWarnings("WeakerAccess") /* synthetic access */
final Executor mExecutor;

View File

@ -65,6 +65,7 @@ public class Transformations {
* {@code mapFunction} to each value set.
*/
@MainThread
@NonNull
public static <X, Y> LiveData<Y> map(
@NonNull LiveData<X> source,
@NonNull final Function<X, Y> mapFunction) {
@ -129,6 +130,7 @@ public class Transformations {
* value set
*/
@MainThread
@NonNull
public static <X, Y> LiveData<Y> switchMap(
@NonNull LiveData<X> source,
@NonNull final Function<X, LiveData<Y>> switchMapFunction) {
@ -158,4 +160,35 @@ public class Transformations {
});
return result;
}
/**
* Creates a new {@link LiveData} object that does not emit a value until the source LiveData
* value has been changed. The value is considered changed if {@code equals()} yields
* {@code false}.
*
* @param source the input {@link LiveData}
* @param <X> the generic type parameter of {@code source}
* @return a new {@link LiveData} of type {@code X}
*/
@MainThread
@NonNull
public static <X> LiveData<X> distinctUntilChanged(@NonNull LiveData<X> source) {
final MediatorLiveData<X> outputLiveData = new MediatorLiveData<>();
outputLiveData.addSource(source, new Observer<X>() {
boolean mFirstTime = true;
@Override
public void onChanged(X currentValue) {
final X previousValue = outputLiveData.getValue();
if (mFirstTime
|| (previousValue == null && currentValue != null)
|| (previousValue != null && !previousValue.equals(currentValue))) {
mFirstTime = false;
outputLiveData.setValue(currentValue);
}
}
});
return outputLiveData;
}
}