Remove requestEmptyQueryResultUpdate

Bug: 269128582
Test: atest CtsSearchUiManagerService

Change-Id: I8c624db090ce575a52bd4bc31ea274f7f0ebcb3a
diff --git a/core/api/system-current.txt b/core/api/system-current.txt
index b804149..84bf716 100644
--- a/core/api/system-current.txt
+++ b/core/api/system-current.txt
@@ -2262,7 +2262,6 @@
     method public void notifyEvent(@NonNull android.app.search.Query, @NonNull android.app.search.SearchTargetEvent);
     method @Nullable public void query(@NonNull android.app.search.Query, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.util.List<android.app.search.SearchTarget>>);
     method public void registerEmptyQueryResultUpdateCallback(@NonNull java.util.concurrent.Executor, @NonNull android.app.search.SearchSession.Callback);
-    method public void requestEmptyQueryResultUpdate();
     method public void unregisterEmptyQueryResultUpdateCallback(@NonNull android.app.search.SearchSession.Callback);
   }
 
@@ -12671,7 +12670,6 @@
     method @MainThread public abstract void onDestroy(@NonNull android.app.search.SearchSessionId);
     method @MainThread public abstract void onNotifyEvent(@NonNull android.app.search.SearchSessionId, @NonNull android.app.search.Query, @NonNull android.app.search.SearchTargetEvent);
     method @MainThread public abstract void onQuery(@NonNull android.app.search.SearchSessionId, @NonNull android.app.search.Query, @NonNull java.util.function.Consumer<java.util.List<android.app.search.SearchTarget>>);
-    method @MainThread public void onRequestEmptyQueryResultUpdate(@NonNull android.app.search.SearchSessionId);
     method public void onSearchSessionCreated(@NonNull android.app.search.SearchContext, @NonNull android.app.search.SearchSessionId);
     method @MainThread public void onStartUpdateEmptyQueryResult();
     method @MainThread public void onStopUpdateEmptyQueryResult();
diff --git a/core/java/android/app/search/ISearchUiManager.aidl b/core/java/android/app/search/ISearchUiManager.aidl
index fefbd5a..4cf0b81 100644
--- a/core/java/android/app/search/ISearchUiManager.aidl
+++ b/core/java/android/app/search/ISearchUiManager.aidl
@@ -38,8 +38,6 @@
 
     void registerEmptyQueryResultUpdateCallback(in SearchSessionId sessionId, in ISearchCallback callback);
 
-    void requestEmptyQueryResultUpdate(in SearchSessionId sessionId);
-
     void unregisterEmptyQueryResultUpdateCallback(in SearchSessionId sessionId, in ISearchCallback callback);
 
     void destroySearchSession(in SearchSessionId sessionId);
diff --git a/core/java/android/app/search/SearchSession.java b/core/java/android/app/search/SearchSession.java
index 9e0a1d0..0dbd81e 100644
--- a/core/java/android/app/search/SearchSession.java
+++ b/core/java/android/app/search/SearchSession.java
@@ -225,32 +225,6 @@
     }
 
     /**
-     * Requests the search ui service to dispatch a new set of search targets to the pre-registered
-     * callback for zero state. Zero state means when user entered search ui but not issued any
-     * query yet. This method can be used for client to sync up with server data if they think data
-     * might be out of sync, for example, after restart.
-     * Pre-register a callback with
-     * {@link SearchSession#registerEmptyQueryResultUpdateCallback(Executor, Callback)}
-     * is required before calling this method. Otherwise this is no-op.
-     *
-     * @see {@link SearchSession#registerEmptyQueryResultUpdateCallback(Executor, Callback)}
-     * @see {@link SearchSession.Callback#onTargetsAvailable(List)}.
-     */
-    public void requestEmptyQueryResultUpdate() {
-        if (mIsClosed.get()) {
-            throw new IllegalStateException("This client has already been destroyed.");
-        }
-
-        try {
-            mInterface.requestEmptyQueryResultUpdate(mSessionId);
-        } catch (RemoteException e) {
-            Log.e(TAG, "Failed to request empty query result update", e);
-            e.rethrowAsRuntimeException();
-        }
-    }
-
-
-    /**
      * Destroys the client and unregisters the callback. Any method on this class after this call
      * will throw {@link IllegalStateException}.
      *
diff --git a/core/java/android/service/search/ISearchUiService.aidl b/core/java/android/service/search/ISearchUiService.aidl
index bc6d421..f59347f 100644
--- a/core/java/android/service/search/ISearchUiService.aidl
+++ b/core/java/android/service/search/ISearchUiService.aidl
@@ -39,8 +39,6 @@
 
     void onRegisterEmptyQueryResultUpdateCallback (in SearchSessionId sessionId, in ISearchCallback callback);
 
-    void onRequestEmptyQueryResultUpdate(in SearchSessionId sessionId);
-
     void onUnregisterEmptyQueryResultUpdateCallback(in SearchSessionId sessionId, in ISearchCallback callback);
 
     void onDestroy(in SearchSessionId sessionId);
diff --git a/core/java/android/service/search/SearchUiService.java b/core/java/android/service/search/SearchUiService.java
index 55a96fa..8d05b80 100644
--- a/core/java/android/service/search/SearchUiService.java
+++ b/core/java/android/service/search/SearchUiService.java
@@ -112,12 +112,6 @@
         }
 
         @Override
-        public void onRequestEmptyQueryResultUpdate(SearchSessionId sessionId) {
-            mHandler.sendMessage(obtainMessage(SearchUiService::doRequestEmptyQueryResultUpdate,
-                    SearchUiService.this, sessionId));
-        }
-
-        @Override
         public void onUnregisterEmptyQueryResultUpdateCallback(SearchSessionId sessionId,
                 ISearchCallback callback) {
             mHandler.sendMessage(
@@ -220,24 +214,6 @@
     @MainThread
     public void onStartUpdateEmptyQueryResult() {}
 
-    private void doRequestEmptyQueryResultUpdate(@NonNull SearchSessionId sessionId) {
-        // Just an optimization, if there are no callbacks, then don't bother notifying the service
-        final ArrayList<CallbackWrapper> callbacks = mSessionEmptyQueryResultCallbacks.get(
-                sessionId);
-        if (callbacks != null && !callbacks.isEmpty()) {
-            onRequestEmptyQueryResultUpdate(sessionId);
-        }
-    }
-
-    /**
-     * Called by a client to request empty query search target result for zero state. This method
-     * is only called if there are one or more empty query result update callbacks registered.
-     *
-     * @see #updateEmptyQueryResult(SearchSessionId, List)
-     */
-    @MainThread
-    public void onRequestEmptyQueryResultUpdate(@NonNull SearchSessionId sessionId) {}
-
     private void doUnregisterEmptyQueryResultUpdateCallback(@NonNull SearchSessionId sessionId,
             @NonNull ISearchCallback callback) {
         final ArrayList<CallbackWrapper> callbacks = mSessionEmptyQueryResultCallbacks.get(
diff --git a/services/searchui/java/com/android/server/searchui/SearchUiManagerService.java b/services/searchui/java/com/android/server/searchui/SearchUiManagerService.java
index 29ad537..c259701 100644
--- a/services/searchui/java/com/android/server/searchui/SearchUiManagerService.java
+++ b/services/searchui/java/com/android/server/searchui/SearchUiManagerService.java
@@ -140,12 +140,6 @@
         }
 
         @Override
-        public void requestEmptyQueryResultUpdate(@NonNull SearchSessionId sessionId) {
-            runForUserLocked("requestEmptyQueryResultUpdate", sessionId,
-                    (service) -> service.requestEmptyQueryResultUpdateLocked(sessionId));
-        }
-
-        @Override
         public void destroySearchSession(@NonNull SearchSessionId sessionId) {
             runForUserLocked("destroySearchSession", sessionId,
                     (service) -> service.onDestroyLocked(sessionId));
diff --git a/services/searchui/java/com/android/server/searchui/SearchUiPerUserService.java b/services/searchui/java/com/android/server/searchui/SearchUiPerUserService.java
index 0d70fff..dc150cf 100644
--- a/services/searchui/java/com/android/server/searchui/SearchUiPerUserService.java
+++ b/services/searchui/java/com/android/server/searchui/SearchUiPerUserService.java
@@ -181,16 +181,6 @@
     }
 
     /**
-     * Requests a new set of search targets for empty query result used for zero state.
-     */
-    @GuardedBy("mLock")
-    public void requestEmptyQueryResultUpdateLocked(@NonNull SearchSessionId sessionId) {
-        final SearchSessionInfo sessionInfo = mSessionInfos.get(sessionId);
-        if (sessionInfo == null) return;
-        resolveService(sessionId, s->s.onRequestEmptyQueryResultUpdate(sessionId));
-    }
-
-    /**
      * Notifies the service of the end of an existing search session.
      */
     @GuardedBy("mLock")