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.