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;
}