Add missing nullability annotations to lifecycle
Enable lint check to ensure public API is fully annotated.
Test: ./gradlew :lifecycle:lifecycle-extensions:lintDebug :lifecycle:lifecycle-livedata-core:lintDebug :lifecycle:lifecycle-livedata:lintDebug :lifecycle:lifecycle-process:lintDebug :lifecycle:lifecycle-reactivestreams:lintDebug :lifecycle:lifecycle-runtime:lintDebug :lifecycle:lifecycle-service:lintDebug :lifecycle:lifecycle-viewmodel:lintDebug :lifecycle:lifecycle-viewmodel-fragment:lintDebug
Change-Id: Ib6be3820c447ff0d8a3e4fd3fa19c0fb86abb9ff
diff --git a/lifecycle/extensions/build.gradle b/lifecycle/extensions/build.gradle
index e5cf39c..85427bd 100644
--- a/lifecycle/extensions/build.gradle
+++ b/lifecycle/extensions/build.gradle
@@ -23,6 +23,12 @@
id("SupportAndroidLibraryPlugin")
}
+android {
+ lintOptions {
+ fatal("UnknownNullness")
+ }
+}
+
dependencies {
api(project(":lifecycle:lifecycle-runtime"))
api(project(":arch:core-common"))
diff --git a/lifecycle/livedata/build.gradle b/lifecycle/livedata/build.gradle
index d797335..8f4de4f 100644
--- a/lifecycle/livedata/build.gradle
+++ b/lifecycle/livedata/build.gradle
@@ -23,6 +23,12 @@
id("SupportAndroidLibraryPlugin")
}
+android {
+ lintOptions {
+ fatal("UnknownNullness")
+ }
+}
+
dependencies {
implementation(project(":arch:core-common"))
api(project(":arch:core-runtime"))
@@ -42,4 +48,4 @@
inceptionYear = "2017"
description = "Android Lifecycle LiveData"
url = SupportLibraryExtension.ARCHITECTURE_URL
-}
\ No newline at end of file
+}
diff --git a/lifecycle/livedata/src/main/java/androidx/lifecycle/ComputableLiveData.java b/lifecycle/livedata/src/main/java/androidx/lifecycle/ComputableLiveData.java
index 2aedb5b..7ce7a0a 100644
--- a/lifecycle/livedata/src/main/java/androidx/lifecycle/ComputableLiveData.java
+++ b/lifecycle/livedata/src/main/java/androidx/lifecycle/ComputableLiveData.java
@@ -143,7 +143,8 @@
ArchTaskExecutor.getInstance().executeOnMainThread(mInvalidationRunnable);
}
- @SuppressWarnings("WeakerAccess")
+ // TODO https://issuetracker.google.com/issues/112197238
+ @SuppressWarnings({"WeakerAccess", "UnknownNullness"})
@WorkerThread
protected abstract T compute();
}
diff --git a/lifecycle/process/build.gradle b/lifecycle/process/build.gradle
index 26895c0..4366401 100644
--- a/lifecycle/process/build.gradle
+++ b/lifecycle/process/build.gradle
@@ -23,6 +23,12 @@
id("SupportAndroidLibraryPlugin")
}
+android {
+ lintOptions {
+ fatal("UnknownNullness")
+ }
+}
+
dependencies {
api(project(":lifecycle:lifecycle-runtime"))
diff --git a/lifecycle/process/src/main/java/androidx/lifecycle/ProcessLifecycleOwner.java b/lifecycle/process/src/main/java/androidx/lifecycle/ProcessLifecycleOwner.java
index 0e853ae..d3789c6 100644
--- a/lifecycle/process/src/main/java/androidx/lifecycle/ProcessLifecycleOwner.java
+++ b/lifecycle/process/src/main/java/androidx/lifecycle/ProcessLifecycleOwner.java
@@ -94,6 +94,7 @@
*
* @return {@link LifecycleOwner} for the whole application.
*/
+ @NonNull
public static LifecycleOwner get() {
return sInstance;
}
diff --git a/lifecycle/process/src/main/java/androidx/lifecycle/ProcessLifecycleOwnerInitializer.java b/lifecycle/process/src/main/java/androidx/lifecycle/ProcessLifecycleOwnerInitializer.java
index e20eca0..ba3dfe9 100644
--- a/lifecycle/process/src/main/java/androidx/lifecycle/ProcessLifecycleOwnerInitializer.java
+++ b/lifecycle/process/src/main/java/androidx/lifecycle/ProcessLifecycleOwnerInitializer.java
@@ -29,6 +29,7 @@
* Internal class to initialize Lifecycles.
* @hide
*/
+@SuppressWarnings("UnknownNullness") // TODO https://issuetracker.google.com/issues/112197238
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
public class ProcessLifecycleOwnerInitializer extends ContentProvider {
@Override
diff --git a/lifecycle/reactivestreams/build.gradle b/lifecycle/reactivestreams/build.gradle
index 649c526..5350dcb 100644
--- a/lifecycle/reactivestreams/build.gradle
+++ b/lifecycle/reactivestreams/build.gradle
@@ -23,6 +23,12 @@
id("SupportAndroidLibraryPlugin")
}
+android {
+ lintOptions {
+ fatal("UnknownNullness")
+ }
+}
+
dependencies {
api(project(":arch:core-common"))
api(project(":lifecycle:lifecycle-common"))
diff --git a/lifecycle/runtime/build.gradle b/lifecycle/runtime/build.gradle
index 40b250c..4dca4c3 100644
--- a/lifecycle/runtime/build.gradle
+++ b/lifecycle/runtime/build.gradle
@@ -11,6 +11,10 @@
buildTypes.all {
consumerProguardFiles 'proguard-rules.pro'
}
+
+ lintOptions {
+ fatal("UnknownNullness")
+ }
}
dependencies {
@@ -35,4 +39,4 @@
description "Android Lifecycle Runtime"
url SupportLibraryExtension.ARCHITECTURE_URL
failOnDeprecationWarnings = false
-}
\ No newline at end of file
+}
diff --git a/lifecycle/runtime/src/main/java/androidx/lifecycle/ReportFragment.java b/lifecycle/runtime/src/main/java/androidx/lifecycle/ReportFragment.java
index 33c7771..ca1f3a9 100644
--- a/lifecycle/runtime/src/main/java/androidx/lifecycle/ReportFragment.java
+++ b/lifecycle/runtime/src/main/java/androidx/lifecycle/ReportFragment.java
@@ -27,6 +27,7 @@
*
* @hide
*/
+@SuppressWarnings("UnknownNullness") // TODO https://issuetracker.google.com/issues/112197238
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
public class ReportFragment extends Fragment {
private static final String REPORT_FRAGMENT_TAG = "androidx.lifecycle"
diff --git a/lifecycle/service/build.gradle b/lifecycle/service/build.gradle
index ada5351..f199fd2 100644
--- a/lifecycle/service/build.gradle
+++ b/lifecycle/service/build.gradle
@@ -23,6 +23,12 @@
id("SupportAndroidLibraryPlugin")
}
+android {
+ lintOptions {
+ fatal("UnknownNullness")
+ }
+}
+
dependencies {
api(project(":lifecycle:lifecycle-runtime"))
diff --git a/lifecycle/service/src/main/java/androidx/lifecycle/LifecycleService.java b/lifecycle/service/src/main/java/androidx/lifecycle/LifecycleService.java
index 8275573..e318682 100644
--- a/lifecycle/service/src/main/java/androidx/lifecycle/LifecycleService.java
+++ b/lifecycle/service/src/main/java/androidx/lifecycle/LifecycleService.java
@@ -21,6 +21,7 @@
import android.os.IBinder;
import androidx.annotation.CallSuper;
+import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
/**
@@ -40,7 +41,7 @@
@CallSuper
@Nullable
@Override
- public IBinder onBind(Intent intent) {
+ public IBinder onBind(@NonNull Intent intent) {
mDispatcher.onServicePreSuperOnBind();
return null;
}
@@ -48,7 +49,7 @@
@SuppressWarnings("deprecation")
@CallSuper
@Override
- public void onStart(Intent intent, int startId) {
+ public void onStart(@NonNull Intent intent, int startId) {
mDispatcher.onServicePreSuperOnStart();
super.onStart(intent, startId);
}
@@ -59,7 +60,7 @@
// super.onStartCommand calls onStart().
@CallSuper
@Override
- public int onStartCommand(Intent intent, int flags, int startId) {
+ public int onStartCommand(@NonNull Intent intent, int flags, int startId) {
return super.onStartCommand(intent, flags, startId);
}
@@ -71,6 +72,7 @@
}
@Override
+ @NonNull
public Lifecycle getLifecycle() {
return mDispatcher.getLifecycle();
}
diff --git a/lifecycle/service/src/main/java/androidx/lifecycle/ServiceLifecycleDispatcher.java b/lifecycle/service/src/main/java/androidx/lifecycle/ServiceLifecycleDispatcher.java
index 23d296e..26c4468b 100644
--- a/lifecycle/service/src/main/java/androidx/lifecycle/ServiceLifecycleDispatcher.java
+++ b/lifecycle/service/src/main/java/androidx/lifecycle/ServiceLifecycleDispatcher.java
@@ -84,6 +84,7 @@
/**
* @return {@link Lifecycle} for the given {@link LifecycleOwner}
*/
+ @NonNull
public Lifecycle getLifecycle() {
return mRegistry;
}
diff --git a/lifecycle/viewmodel-fragment/build.gradle b/lifecycle/viewmodel-fragment/build.gradle
index 3531008..22a1fa6 100644
--- a/lifecycle/viewmodel-fragment/build.gradle
+++ b/lifecycle/viewmodel-fragment/build.gradle
@@ -23,6 +23,12 @@
id("SupportAndroidLibraryPlugin")
}
+android {
+ lintOptions {
+ fatal("UnknownNullness")
+ }
+}
+
dependencies {
api(SUPPORT_ANNOTATIONS)
api(project(":lifecycle:lifecycle-savedstate-fragment"))
diff --git a/lifecycle/viewmodel-fragment/src/main/java/androidx/lifecycle/ViewModelsWithStateFactories.java b/lifecycle/viewmodel-fragment/src/main/java/androidx/lifecycle/ViewModelsWithStateFactories.java
index 34aeadb..d7a1815 100644
--- a/lifecycle/viewmodel-fragment/src/main/java/androidx/lifecycle/ViewModelsWithStateFactories.java
+++ b/lifecycle/viewmodel-fragment/src/main/java/androidx/lifecycle/ViewModelsWithStateFactories.java
@@ -66,6 +66,7 @@
* @param activity an activity to use for state saving.
* @param factory a factory responsible for {@code ViewModel} creation.
*/
+ @NonNull
public static KeyedFactory of(@NonNull FragmentActivity activity,
@Nullable ViewModelWithStateFactory factory) {
Application app = checkApplication(activity);
diff --git a/lifecycle/viewmodel/build.gradle b/lifecycle/viewmodel/build.gradle
index cc71b39..0564abe 100644
--- a/lifecycle/viewmodel/build.gradle
+++ b/lifecycle/viewmodel/build.gradle
@@ -27,6 +27,10 @@
buildTypes.all {
consumerProguardFiles 'proguard-rules.pro'
}
+
+ lintOptions {
+ fatal("UnknownNullness")
+ }
}
dependencies {
@@ -45,4 +49,4 @@
description = "Android Lifecycle ViewModel"
url = SupportLibraryExtension.ARCHITECTURE_URL
failOnUncheckedWarnings = false
-}
\ No newline at end of file
+}
diff --git a/lifecycle/viewmodel/src/main/java/androidx/lifecycle/ViewModelProvider.java b/lifecycle/viewmodel/src/main/java/androidx/lifecycle/ViewModelProvider.java
index 008af6e..bc0cdcb 100644
--- a/lifecycle/viewmodel/src/main/java/androidx/lifecycle/ViewModelProvider.java
+++ b/lifecycle/viewmodel/src/main/java/androidx/lifecycle/ViewModelProvider.java
@@ -69,7 +69,7 @@
* @return a newly created ViewModel
*/
@NonNull
- <T extends ViewModel> T create(String key, @NonNull Class<T> modelClass);
+ <T extends ViewModel> T create(@NonNull String key, @NonNull Class<T> modelClass);
}
private final KeyedFactory mFactory;