Fix NPE for CompanionDeviceActivity.setResultAndFinish()
Fix: 205274846
Test: atest CompanionDeviceManagerTest
Change-Id: Icecd76d6ff5a81afdcdb7d584ae3ecff51ac5dc3
diff --git a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceActivity.java b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceActivity.java
index edbfd2a..a5168cc 100644
--- a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceActivity.java
+++ b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceActivity.java
@@ -78,6 +78,7 @@
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 @@
profileSummary.setVisibility(View.GONE);
}
- getService().mActivity = this;
-
mCancelButton = findViewById(R.id.button_cancel);
mCancelButton.setOnClickListener(v -> cancel());
}
@@ -194,6 +193,7 @@
@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 4ac217a..9f07317 100644
--- a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceDiscoveryService.java
+++ b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceDiscoveryService.java
@@ -257,12 +257,8 @@
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();
@@ -334,6 +330,7 @@
void onCancel() {
if (DEBUG) Log.i(LOG_TAG, "onCancel()");
+ mActivity = null;
mServiceCallback.cancel(true);
}