Use GenericLifecycleObserver inside of LiveData
It is a bit more effective:
1. we don't generate unneeded class and methods
2. no reflection at all involved (previously we call constructor via it)
Test: refactoring.
Change-Id: I1edb45bd97d660e8a974d9721e989221044e4985
diff --git a/lifecycle/extensions/build.gradle b/lifecycle/extensions/build.gradle
index 9d33e55..79be36c 100644
--- a/lifecycle/extensions/build.gradle
+++ b/lifecycle/extensions/build.gradle
@@ -45,8 +45,6 @@
compile libs.support.fragments, libs.support_exclude_config
compile project(":lifecycle:common")
- annotationProcessor project(":lifecycle:compiler")
-
testCompile project(":arch:core-testing")
testCompile libs.junit
testCompile libs.mockito_core
diff --git a/lifecycle/extensions/src/main/java/android/arch/lifecycle/LiveData.java b/lifecycle/extensions/src/main/java/android/arch/lifecycle/LiveData.java
index da5600c..4c0b7a4 100644
--- a/lifecycle/extensions/src/main/java/android/arch/lifecycle/LiveData.java
+++ b/lifecycle/extensions/src/main/java/android/arch/lifecycle/LiveData.java
@@ -354,7 +354,7 @@
return mActiveCount > 0;
}
- class LifecycleBoundObserver implements LifecycleObserver {
+ class LifecycleBoundObserver implements GenericLifecycleObserver {
public final LifecycleOwner owner;
public final Observer<T> observer;
public boolean active;
@@ -365,9 +365,8 @@
this.observer = observer;
}
- @SuppressWarnings("unused")
- @OnLifecycleEvent(Lifecycle.Event.ON_ANY)
- void onStateChange() {
+ @Override
+ public void onStateChanged(LifecycleOwner source, Lifecycle.Event event) {
if (owner.getLifecycle().getCurrentState() == DESTROYED) {
removeObserver(observer);
return;