From 23ee5c271691124a2e9c6f02dd1f3ca67f025a73 Mon Sep 17 00:00:00 2001 From: Evan Chen Date: Mon, 8 Nov 2021 20:05:40 +0000 Subject: [PATCH] Fix NPE for CompanionDeviceActivity.setResultAndFinish() Fix: 205274846 Test: atest CompanionDeviceManagerTest Change-Id: Icecd76d6ff5a81afdcdb7d584ae3ecff51ac5dc3 Merged-In: Icecd76d6ff5a81afdcdb7d584ae3ecff51ac5dc3 --- .../companiondevicemanager/CompanionDeviceActivity.java | 4 ++-- .../CompanionDeviceDiscoveryService.java | 9 +++------ 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceActivity.java b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceActivity.java index edbfd2a8f03eb..a5168ccd977ce 100644 --- a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceActivity.java +++ b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceActivity.java @@ -78,6 +78,7 @@ public class CompanionDeviceActivity extends Activity { getWindow().addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS); sInstance = this; + getService().mActivity = this; String deviceProfile = getRequest().getDeviceProfile(); String profilePrivacyDisclaimer = emptyIfNull(getRequest() @@ -141,8 +142,6 @@ public class CompanionDeviceActivity extends Activity { profileSummary.setVisibility(View.GONE); } - getService().mActivity = this; - mCancelButton = findViewById(R.id.button_cancel); mCancelButton.setOnClickListener(v -> cancel()); } @@ -194,6 +193,7 @@ public class CompanionDeviceActivity extends Activity { @Override protected void onDestroy() { super.onDestroy(); + getService().mActivity = null; if (sInstance == this) { sInstance = null; } diff --git a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceDiscoveryService.java b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceDiscoveryService.java index 5df8e3c83a7af..2a72c501d7d0c 100644 --- a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceDiscoveryService.java +++ b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceDiscoveryService.java @@ -258,12 +258,8 @@ public class CompanionDeviceDiscoveryService extends Service { if (!mIsScanning) return; mIsScanning = false; - CompanionDeviceActivity activity = mActivity; - if (activity != null) { - if (activity.mDeviceListView != null) { - activity.mDeviceListView.removeFooterView(activity.mLoadingIndicator); - } - mActivity = null; + if (mActivity != null && mActivity.mDeviceListView != null) { + mActivity.mDeviceListView.removeFooterView(mActivity.mLoadingIndicator); } mBluetoothAdapter.cancelDiscovery(); @@ -337,6 +333,7 @@ public class CompanionDeviceDiscoveryService extends Service { void onCancel() { if (DEBUG) Log.i(LOG_TAG, "onCancel()"); + mActivity = null; mServiceCallback.cancel(true); }