summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorEino-Ville Talvala <etalvala@google.com>2016-04-04 12:26:40 -0700
committerEino-Ville Talvala <etalvala@google.com>2016-04-04 12:30:44 -0700
commitee46b5831c49e7249e53dc00a17b168a8bc46123 (patch)
tree746f619d2eff1baf713184861d2018a6ef0e778c /core/java/android
parentc7c569d5e42c1d7c17881fd89dcbbbab42dafea1 (diff)
Camera2: Unlink camera device death listener on disconnect
Not removing the listener causes warning logging, which is especially heavy when a lot of camera connect/disconnects are happening. Bug: 27217534 Fixes: 28000512 Change-Id: I4911f27cc0f69301975b110a9b456977050ce5bc
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/hardware/camera2/impl/CameraDeviceImpl.java1
-rw-r--r--core/java/android/hardware/camera2/impl/ICameraDeviceUserWrapper.java5
2 files changed, 6 insertions, 0 deletions
diff --git a/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java b/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
index d84a6fcbd16f..d2e820e17776 100644
--- a/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
+++ b/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
@@ -974,6 +974,7 @@ public class CameraDeviceImpl extends CameraDevice
if (mRemoteDevice != null) {
mRemoteDevice.disconnect();
+ mRemoteDevice.unlinkToDeath(this, /*flags*/0);
}
// Only want to fire the onClosed callback once;
diff --git a/core/java/android/hardware/camera2/impl/ICameraDeviceUserWrapper.java b/core/java/android/hardware/camera2/impl/ICameraDeviceUserWrapper.java
index ddc3fd12b70d..b2f6c1d4c289 100644
--- a/core/java/android/hardware/camera2/impl/ICameraDeviceUserWrapper.java
+++ b/core/java/android/hardware/camera2/impl/ICameraDeviceUserWrapper.java
@@ -31,6 +31,7 @@ import android.hardware.camera2.ICameraDeviceUser;
import android.hardware.camera2.impl.CameraMetadataNative;
import android.hardware.camera2.params.OutputConfiguration;
import android.hardware.camera2.utils.SubmitInfo;
+import android.os.IBinder;
import android.os.RemoteException;
import android.view.Surface;
@@ -53,6 +54,10 @@ public class ICameraDeviceUserWrapper {
mRemoteDevice = remoteDevice;
}
+ public void unlinkToDeath(IBinder.DeathRecipient recipient, int flags) {
+ mRemoteDevice.asBinder().unlinkToDeath(recipient, flags);
+ }
+
public void disconnect() {
try {
mRemoteDevice.disconnect();