Rename FastPairClient API and add cancel api for ban logic

Test: m
Bug: 226432882
Ignore-AOSP-First: nearby_not_in_aosp_yet
Change-Id: I5782eba0b9aaa34ee848f465e958bb8143730cd4
diff --git a/nearby/framework/java/android/nearby/aidl/IFastPairClient.aidl b/nearby/framework/java/android/nearby/aidl/IFastPairUiService.aidl
similarity index 79%
rename from nearby/framework/java/android/nearby/aidl/IFastPairClient.aidl
rename to nearby/framework/java/android/nearby/aidl/IFastPairUiService.aidl
index 4f666bc..9200a9d 100644
--- a/nearby/framework/java/android/nearby/aidl/IFastPairClient.aidl
+++ b/nearby/framework/java/android/nearby/aidl/IFastPairUiService.aidl
@@ -25,11 +25,13 @@
  *
  * {@hide}
  */
-interface IFastPairClient {
+interface IFastPairUiService {
 
-    void registerHalfSheet(in IFastPairStatusCallback fastPairStatusCallback);
+    void registerCallback(in IFastPairStatusCallback fastPairStatusCallback);
 
-    void unregisterHalfSheet(in IFastPairStatusCallback fastPairStatusCallback);
+    void unregisterCallback(in IFastPairStatusCallback fastPairStatusCallback);
 
     void connect(in FastPairDevice fastPairDevice);
+
+    void cancel(in FastPairDevice fastPairDevice);
 }
\ No newline at end of file
diff --git a/nearby/framework/java/android/nearby/FastPairClient.java b/nearby/halfsheet/src/com/android/nearby/halfsheet/FastPairUiServiceClient.java
similarity index 67%
rename from nearby/framework/java/android/nearby/FastPairClient.java
rename to nearby/halfsheet/src/com/android/nearby/halfsheet/FastPairUiServiceClient.java
index dc70d71..bec0c0a 100644
--- a/nearby/framework/java/android/nearby/FastPairClient.java
+++ b/nearby/halfsheet/src/com/android/nearby/halfsheet/FastPairUiServiceClient.java
@@ -14,53 +14,60 @@
  * limitations under the License.
  */
 
-package android.nearby;
+package com.android.nearby.halfsheet;
 
-import android.annotation.BinderThread;
 import android.content.Context;
-import android.nearby.aidl.IFastPairClient;
+import android.nearby.FastPairDevice;
+import android.nearby.FastPairStatusCallback;
+import android.nearby.PairStatusMetadata;
 import android.nearby.aidl.IFastPairStatusCallback;
+import android.nearby.aidl.IFastPairUiService;
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.RemoteException;
 import android.util.Log;
 
+import androidx.annotation.BinderThread;
+import androidx.annotation.UiThread;
+
 import java.lang.ref.WeakReference;
 
 /**
- * 0p API for controlling Fast Pair. It communicates between main thread and service.
+ *  A utility class for connecting to the {@link IFastPairUiService} and receive callbacks.
  *
  * @hide
  */
-public class FastPairClient {
+@UiThread
+public class FastPairUiServiceClient {
 
-    private static final String TAG = "FastPairClient";
+    private static final String TAG = "FastPairHalfSheet";
+
     private final IBinder mBinder;
     private final WeakReference<Context> mWeakContext;
-    IFastPairClient mFastPairClient;
+    IFastPairUiService mFastPairUiService;
     PairStatusCallbackIBinder mPairStatusCallbackIBinder;
 
     /**
      * The Ibinder instance should be from
-     * {@link com.android.server.nearby.fastpair.halfsheet.FastPairService} so that the client can
+     * {@link com.android.server.nearby.fastpair.halfsheet.FastPairUiServiceImpl} so that the client can
      * talk with the service.
      */
-    public FastPairClient(Context context, IBinder binder) {
+    public FastPairUiServiceClient(Context context, IBinder binder) {
         mBinder = binder;
-        mFastPairClient = IFastPairClient.Stub.asInterface(mBinder);
+        mFastPairUiService = IFastPairUiService.Stub.asInterface(mBinder);
         mWeakContext = new WeakReference<>(context);
     }
 
     /**
      * Registers a callback at service to get UI updates.
      */
-    public void registerHalfSheet(FastPairStatusCallback fastPairStatusCallback) {
+    public void registerHalfSheetStateCallBack(FastPairStatusCallback fastPairStatusCallback) {
         if (mPairStatusCallbackIBinder != null) {
             return;
         }
         mPairStatusCallbackIBinder = new PairStatusCallbackIBinder(fastPairStatusCallback);
         try {
-            mFastPairClient.registerHalfSheet(mPairStatusCallbackIBinder);
+            mFastPairUiService.registerCallback(mPairStatusCallbackIBinder);
         } catch (RemoteException e) {
             Log.w(TAG, "Failed to register fastPairStatusCallback", e);
         }
@@ -71,7 +78,18 @@
      */
     public void connect(FastPairDevice fastPairDevice) {
         try {
-            mFastPairClient.connect(fastPairDevice);
+            mFastPairUiService.connect(fastPairDevice);
+        } catch (RemoteException e) {
+            Log.w(TAG, "Failed to connect Fast Pair device" + fastPairDevice, e);
+        }
+    }
+
+    /**
+     * Cancels Fast Pair connection and dismisses half sheet.
+     */
+    public void cancel(FastPairDevice fastPairDevice) {
+        try {
+            mFastPairUiService.cancel(fastPairDevice);
         } catch (RemoteException e) {
             Log.w(TAG, "Failed to connect Fast Pair device" + fastPairDevice, e);
         }
diff --git a/nearby/halfsheet/src/com/android/nearby/halfsheet/HalfSheetActivity.java b/nearby/halfsheet/src/com/android/nearby/halfsheet/HalfSheetActivity.java
index 9507b9b..2a38b8a 100644
--- a/nearby/halfsheet/src/com/android/nearby/halfsheet/HalfSheetActivity.java
+++ b/nearby/halfsheet/src/com/android/nearby/halfsheet/HalfSheetActivity.java
@@ -48,7 +48,7 @@
  */
 public class HalfSheetActivity extends FragmentActivity {
 
-    public static final String TAG = "HalfSheetActivity";
+    public static final String TAG = "FastPairHalfSheet";
 
     public static final String EXTRA_HALF_SHEET_CONTENT =
             "com.android.nearby.halfsheet.HALF_SHEET_CONTENT";
diff --git a/nearby/halfsheet/src/com/android/nearby/halfsheet/fragment/DevicePairingFragment.java b/nearby/halfsheet/src/com/android/nearby/halfsheet/fragment/DevicePairingFragment.java
index a62c8cc..320965b 100644
--- a/nearby/halfsheet/src/com/android/nearby/halfsheet/fragment/DevicePairingFragment.java
+++ b/nearby/halfsheet/src/com/android/nearby/halfsheet/fragment/DevicePairingFragment.java
@@ -38,7 +38,6 @@
 import android.content.Intent;
 import android.content.res.Configuration;
 import android.graphics.Bitmap;
-import android.nearby.FastPairClient;
 import android.nearby.FastPairDevice;
 import android.nearby.FastPairStatusCallback;
 import android.nearby.NearbyDevice;
@@ -58,6 +57,7 @@
 
 import androidx.annotation.Nullable;
 
+import com.android.nearby.halfsheet.FastPairUiServiceClient;
 import com.android.nearby.halfsheet.HalfSheetActivity;
 import com.android.nearby.halfsheet.R;
 import com.android.nearby.halfsheet.utils.FastPairUtils;
@@ -92,7 +92,7 @@
     private Bundle mBundle;
 
     private ScanFastPairStoreItem mScanFastPairStoreItem;
-    private FastPairClient mFastPairClient;
+    private FastPairUiServiceClient mFastPairUiServiceClient;
 
     private @PairStatusMetadata.Status int mPairStatus = PairStatusMetadata.Status.UNKNOWN;
     // True when there is a companion app to open.
@@ -179,8 +179,9 @@
         byte[] storeFastPairItemBytesArray = args.getByteArray(EXTRA_HALF_SHEET_INFO);
         mBundle = args.getBundle(EXTRA_BUNDLE);
         if (mBundle != null) {
-            mFastPairClient = new FastPairClient(getContext(), mBundle.getBinder(EXTRA_BINDER));
-            mFastPairClient.registerHalfSheet(this);
+            mFastPairUiServiceClient =
+                    new FastPairUiServiceClient(getContext(), mBundle.getBinder(EXTRA_BINDER));
+            mFastPairUiServiceClient.registerHalfSheetStateCallBack(this);
         }
         if (args.containsKey(ARG_FRAGMENT_STATE)) {
             mFragmentState = (HalfSheetFragmentState) args.getSerializable(ARG_FRAGMENT_STATE);
@@ -293,7 +294,7 @@
         }
         mIsConnecting = true;
         invalidateState();
-        mFastPairClient.connect(
+        mFastPairUiServiceClient.connect(
                 new FastPairDevice.Builder()
                         .addMedium(NearbyDevice.Medium.BLE)
                         .setBluetoothAddress(mScanFastPairStoreItem.getAddress())
diff --git a/nearby/service/java/com/android/server/nearby/fastpair/halfsheet/FastPairHalfSheetManager.java b/nearby/service/java/com/android/server/nearby/fastpair/halfsheet/FastPairHalfSheetManager.java
index 6f79e6e..553d5ce 100644
--- a/nearby/service/java/com/android/server/nearby/fastpair/halfsheet/FastPairHalfSheetManager.java
+++ b/nearby/service/java/com/android/server/nearby/fastpair/halfsheet/FastPairHalfSheetManager.java
@@ -59,7 +59,7 @@
     private String mHalfSheetApkPkgName;
     private final LocatorContextWrapper mLocatorContextWrapper;
 
-    FastPairService mFastPairService;
+    FastPairUiServiceImpl mFastPairUiService;
 
     public FastPairHalfSheetManager(Context context) {
         this(new LocatorContextWrapper(context));
@@ -68,7 +68,7 @@
     @VisibleForTesting
     FastPairHalfSheetManager(LocatorContextWrapper locatorContextWrapper) {
         mLocatorContextWrapper = locatorContextWrapper;
-        mFastPairService = new FastPairService();
+        mFastPairUiService = new FastPairUiServiceImpl();
     }
 
     /**
@@ -83,10 +83,10 @@
                     Log.e(TAG, "package name is null");
                     return;
                 }
-                mFastPairService.setFastPairController(
+                mFastPairUiService.setFastPairController(
                         mLocatorContextWrapper.getLocator().get(FastPairController.class));
                 Bundle bundle = new Bundle();
-                bundle.putBinder(EXTRA_BINDER, mFastPairService);
+                bundle.putBinder(EXTRA_BINDER, mFastPairUiService);
                 mLocatorContextWrapper
                         .startActivityAsUser(new Intent(ACTIVITY_INTENT_ACTION)
                                         .putExtra(EXTRA_HALF_SHEET_INFO,
@@ -107,7 +107,7 @@
      * Shows pairing fail half sheet.
      */
     public void showPairingFailed() {
-        FastPairStatusCallback pairStatusCallback = mFastPairService.getPairStatusCallback();
+        FastPairStatusCallback pairStatusCallback = mFastPairUiService.getPairStatusCallback();
         if (pairStatusCallback != null) {
             Log.v(TAG, "showPairingFailed: pairStatusCallback not NULL");
             pairStatusCallback.onPairUpdate(new FastPairDevice.Builder().build(),
@@ -142,7 +142,7 @@
      * Shows pairing success info.
      */
     public void showPairingSuccessHalfSheet(String address) {
-        FastPairStatusCallback pairStatusCallback = mFastPairService.getPairStatusCallback();
+        FastPairStatusCallback pairStatusCallback = mFastPairUiService.getPairStatusCallback();
         if (pairStatusCallback != null) {
             pairStatusCallback.onPairUpdate(
                     new FastPairDevice.Builder().setBluetoothAddress(address).build(),
diff --git a/nearby/service/java/com/android/server/nearby/fastpair/halfsheet/FastPairService.java b/nearby/service/java/com/android/server/nearby/fastpair/halfsheet/FastPairUiServiceImpl.java
similarity index 86%
rename from nearby/service/java/com/android/server/nearby/fastpair/halfsheet/FastPairService.java
rename to nearby/service/java/com/android/server/nearby/fastpair/halfsheet/FastPairUiServiceImpl.java
index 76eabbf..3bd273e 100644
--- a/nearby/service/java/com/android/server/nearby/fastpair/halfsheet/FastPairService.java
+++ b/nearby/service/java/com/android/server/nearby/fastpair/halfsheet/FastPairUiServiceImpl.java
@@ -21,8 +21,8 @@
 import android.nearby.FastPairDevice;
 import android.nearby.FastPairStatusCallback;
 import android.nearby.PairStatusMetadata;
-import android.nearby.aidl.IFastPairClient;
 import android.nearby.aidl.IFastPairStatusCallback;
+import android.nearby.aidl.IFastPairUiService;
 import android.os.IBinder;
 import android.os.RemoteException;
 import android.util.Log;
@@ -34,7 +34,7 @@
  *
  * @hide
  */
-public class FastPairService extends IFastPairClient.Stub {
+public class FastPairUiServiceImpl extends IFastPairUiService.Stub {
 
     private IBinder mStatusCallbackProxy;
     private FastPairController mFastPairController;
@@ -45,7 +45,7 @@
      * in the server.
      */
     @Override
-    public void registerHalfSheet(IFastPairStatusCallback iFastPairStatusCallback) {
+    public void registerCallback(IFastPairStatusCallback iFastPairStatusCallback) {
         mStatusCallbackProxy = iFastPairStatusCallback.asBinder();
         mFastPairStatusCallback = new FastPairStatusCallback() {
             @Override
@@ -64,7 +64,7 @@
      * Unregisters the Binder call back in the server.
      */
     @Override
-    public void unregisterHalfSheet(IFastPairStatusCallback iFastPairStatusCallback) {
+    public void unregisterCallback(IFastPairStatusCallback iFastPairStatusCallback) {
         mStatusCallbackProxy = null;
         mFastPairStatusCallback = null;
     }
@@ -81,6 +81,13 @@
         }
     }
 
+    /**
+     * Cancels Fast Pair connection and dismisses half sheet.
+     */
+    @Override
+    public void cancel(FastPairDevice fastPairDevice) {
+    }
+
     public FastPairStatusCallback getPairStatusCallback() {
         return mFastPairStatusCallback;
     }