Fix half sheet class name not match issue.

Test: half sheet shows up
Bug: 218232824
Change-Id: I392e0db51bd3725985af8b7b769c3f3b55e4a42c
diff --git a/nearby/halfsheet/AndroidManifest.xml b/nearby/halfsheet/AndroidManifest.xml
index 3df7970..22987fb 100644
--- a/nearby/halfsheet/AndroidManifest.xml
+++ b/nearby/halfsheet/AndroidManifest.xml
@@ -20,6 +20,7 @@
         <activity
             android:name="com.android.nearby.halfsheet.HalfSheetActivity"
             android:exported="true"
+            android:launchMode="singleInstance"
             android:theme="@style/HalfSheetStyle" >
             <intent-filter>
                 <action android:name="android.nearby.SHOW_HALFSHEET"/>
diff --git a/nearby/service/java/com/android/server/nearby/fastpair/FastPairAdvHandler.java b/nearby/service/java/com/android/server/nearby/fastpair/FastPairAdvHandler.java
index 672d785..db2d69f 100644
--- a/nearby/service/java/com/android/server/nearby/fastpair/FastPairAdvHandler.java
+++ b/nearby/service/java/com/android/server/nearby/fastpair/FastPairAdvHandler.java
@@ -70,9 +70,6 @@
      */
     public void handleBroadcast(NearbyDevice device) {
         FastPairDevice fastPairDevice = (FastPairDevice) device;
-        if (mBleAddress != null && mBleAddress.equals(fastPairDevice.getBluetoothAddress())) {
-            return;
-        }
         mBleAddress = fastPairDevice.getBluetoothAddress();
         if (FastPairDecoder.checkModelId(fastPairDevice.getData())) {
             byte[] model = FastPairDecoder.getModelId(fastPairDevice.getData());
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 9fdd01a..cfac904 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
@@ -48,6 +48,8 @@
  */
 public class FastPairHalfSheetManager {
     private static final String ACTIVITY_INTENT_ACTION = "android.nearby.SHOW_HALFSHEET";
+    private static final String HALF_SHEET_CLASS_NAME =
+            "com.android.nearby.halfsheet.HalfSheetActivity";
 
     private String mHalfSheetApkPkgName;
     private Context mContext;
@@ -65,22 +67,28 @@
      * app can't get the correct component name.
      */
     public void showHalfSheet(Cache.ScanFastPairStoreItem scanFastPairStoreItem) {
-        if (mContext != null) {
-            String packageName = getHalfSheetApkPkgName();
-            HalfSheetCallback callback = new HalfSheetCallback();
-            callback.setmFastPairController(Locator.get(mContext, FastPairController.class));
-            Bundle bundle = new Bundle();
-            bundle.putBinder(EXTRA_BINDER, callback);
-            mContext
-                    .startActivityAsUser(new Intent(ACTIVITY_INTENT_ACTION)
-                                    .putExtra(EXTRA_HALF_SHEET_INFO,
-                                            scanFastPairStoreItem.toByteArray())
-                                    .putExtra(EXTRA_HALF_SHEET_TYPE, DEVICE_PAIRING_FRAGMENT_TYPE)
-                                    .putExtra(EXTRA_BUNDLE, bundle)
-                                    .setComponent(new ComponentName(packageName,
-                                            packageName + ".HalfSheetActivity")),
-                            UserHandle.CURRENT);
+        try {
+            if (mContext != null) {
+                String packageName = getHalfSheetApkPkgName();
+                HalfSheetCallback callback = new HalfSheetCallback();
+                callback.setmFastPairController(Locator.get(mContext, FastPairController.class));
+                Bundle bundle = new Bundle();
+                bundle.putBinder(EXTRA_BINDER, callback);
+                mContext
+                        .startActivityAsUser(new Intent(ACTIVITY_INTENT_ACTION)
+                                        .putExtra(EXTRA_HALF_SHEET_INFO,
+                                                scanFastPairStoreItem.toByteArray())
+                                        .putExtra(EXTRA_HALF_SHEET_TYPE,
+                                                DEVICE_PAIRING_FRAGMENT_TYPE)
+                                        .putExtra(EXTRA_BUNDLE, bundle)
+                                        .setComponent(new ComponentName(packageName,
+                                                HALF_SHEET_CLASS_NAME)),
+                                UserHandle.CURRENT);
 
+            }
+        } catch (IllegalStateException e) {
+            Log.e("FastPairHalfSheetManager",
+                    "Can't resolve package that contains half sheet");
         }
     }
 
diff --git a/nearby/service/java/com/android/server/nearby/util/Environment.java b/nearby/service/java/com/android/server/nearby/util/Environment.java
index dc131e7..e7277cd 100644
--- a/nearby/service/java/com/android/server/nearby/util/Environment.java
+++ b/nearby/service/java/com/android/server/nearby/util/Environment.java
@@ -29,7 +29,7 @@
     /**
      * NEARBY apex name.
      */
-    private static final String NEARBY_APEX_NAME = "com.android.nearby";
+    private static final String NEARBY_APEX_NAME = "com.android.tethering";
 
     /**
      * The path where the Nearby apex is mounted.