Switch Store to use Observable interface

PiperOrigin-RevId: 250760149
Change-Id: Icf88f91aa3b2ff660c66e93b35b49f6c45672f4b
diff --git a/src/main/java/com/google/android/libraries/feed/api/internal/store/BUILD b/src/main/java/com/google/android/libraries/feed/api/internal/store/BUILD
index b5dc021..857456b 100644
--- a/src/main/java/com/google/android/libraries/feed/api/internal/store/BUILD
+++ b/src/main/java/com/google/android/libraries/feed/api/internal/store/BUILD
@@ -9,6 +9,7 @@
         "//src/main/java/com/google/android/libraries/feed/api/host/storage",
         "//src/main/java/com/google/android/libraries/feed/api/internal/common",
         "//src/main/java/com/google/android/libraries/feed/common",
+        "//src/main/java/com/google/android/libraries/feed/common/feedobservable",
         "//src/main/java/com/google/android/libraries/feed/common/functional",
         "//src/main/proto/com/google/android/libraries/feed/api/internal/proto:client_feed_java_proto_lite",
         "//src/main/proto/search/now/wire/feed:feed_java_proto_lite",
diff --git a/src/main/java/com/google/android/libraries/feed/api/internal/store/Store.java b/src/main/java/com/google/android/libraries/feed/api/internal/store/Store.java
index 95161b1..414feb6 100644
--- a/src/main/java/com/google/android/libraries/feed/api/internal/store/Store.java
+++ b/src/main/java/com/google/android/libraries/feed/api/internal/store/Store.java
@@ -18,6 +18,7 @@
 import com.google.android.libraries.feed.api.internal.common.PayloadWithId;
 import com.google.android.libraries.feed.api.internal.common.SemanticPropertiesWithId;
 import com.google.android.libraries.feed.common.Result;
+import com.google.android.libraries.feed.common.feedobservable.Observable;
 import com.google.android.libraries.feed.common.functional.Supplier;
 import com.google.search.now.feed.client.StreamDataProto.StreamDataOperation;
 import com.google.search.now.feed.client.StreamDataProto.StreamLocalAction;
@@ -38,7 +39,7 @@
  *
  * <p>This object should not be used on the UI thread, as it may block on slow IO operations.
  */
-public interface Store {
+public interface Store extends Observable<StoreListener> {
   /** The session id representing $HEAD */
   String HEAD_SESSION_ID = "$HEAD";
 
@@ -130,10 +131,4 @@
 
   /** Whether the store is in ephemeral mode */
   boolean isEphemeralMode();
-
-  /** Register an {@link com.google.android.libraries.feed.api.internal.store.StoreListener}. */
-  void registerObserver(StoreListener observer);
-
-  /** Unregister an {@link com.google.android.libraries.feed.api.internal.store.StoreListener}. */
-  void unregisterObserver(StoreListener observer);
 }