From a2de8a2a055440c036b3e9ead03cb01404f1894d Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Thu, 30 Apr 2020 12:52:04 -0400 Subject: [PATCH] Ensure you can't set null values in DefaultValueLiveData. --- .../securesms/util/DefaultValueLiveData.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/DefaultValueLiveData.java b/app/src/main/java/org/thoughtcrime/securesms/util/DefaultValueLiveData.java index 2fe907f0ff..7c91e19223 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/DefaultValueLiveData.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/DefaultValueLiveData.java @@ -3,6 +3,8 @@ package org.thoughtcrime.securesms.util; import androidx.annotation.NonNull; import androidx.lifecycle.MutableLiveData; +import org.whispersystems.libsignal.util.guava.Preconditions; + /** * Helps prevent all the @Nullable warnings when working with LiveData. */ @@ -15,6 +17,18 @@ public class DefaultValueLiveData extends MutableLiveData { this.defaultValue = defaultValue; } + @Override + public void postValue(@NonNull T value) { + Preconditions.checkNotNull(value); + super.postValue(value); + } + + @Override + public void setValue(@NonNull T value) { + Preconditions.checkNotNull(value); + super.setValue(value); + } + @Override public @NonNull T getValue() { T value = super.getValue();