summaryrefslogtreecommitdiffstats
path: root/services/core/java/com/android/server/fingerprint
diff options
context:
space:
mode:
authorJim Miller <jaggies@google.com>2015-04-25 00:25:53 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-04-25 00:25:54 +0000
commitb423e300f77de90aea34321ef7f67882d4e526ed (patch)
treee00128ba95cdf3ce3a689d62a61a147239dbcbe1 /services/core/java/com/android/server/fingerprint
parent965bbb8f2eb8bbe38f050b2f3a49185da383f7f0 (diff)
parentb21e1b2eaa5697c9abaebd13c6c774991fef438c (diff)
downloadframeworks_base-b423e300f77de90aea34321ef7f67882d4e526ed.zip
frameworks_base-b423e300f77de90aea34321ef7f67882d4e526ed.tar.gz
frameworks_base-b423e300f77de90aea34321ef7f67882d4e526ed.tar.bz2
Merge "Don't use a WeakReference for fingerprint notification object."
Diffstat (limited to 'services/core/java/com/android/server/fingerprint')
-rw-r--r--services/core/java/com/android/server/fingerprint/FingerprintService.java31
1 files changed, 13 insertions, 18 deletions
diff --git a/services/core/java/com/android/server/fingerprint/FingerprintService.java b/services/core/java/com/android/server/fingerprint/FingerprintService.java
index 28597c1..6b5908d 100644
--- a/services/core/java/com/android/server/fingerprint/FingerprintService.java
+++ b/services/core/java/com/android/server/fingerprint/FingerprintService.java
@@ -37,7 +37,6 @@ import android.hardware.fingerprint.IFingerprintServiceReceiver;
import static android.Manifest.permission.MANAGE_FINGERPRINT;
import static android.Manifest.permission.USE_FINGERPRINT;
-import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -364,12 +363,12 @@ public class FingerprintService extends SystemService {
private class ClientMonitor implements IBinder.DeathRecipient {
IBinder token;
- WeakReference<IFingerprintServiceReceiver> receiver;
+ IFingerprintServiceReceiver receiver;
int userId;
public ClientMonitor(IBinder token, IFingerprintServiceReceiver receiver, int userId) {
this.token = token;
- this.receiver = new WeakReference<IFingerprintServiceReceiver>(receiver);
+ this.receiver = receiver;
this.userId = userId;
try {
token.linkToDeath(this, 0);
@@ -389,6 +388,7 @@ public class FingerprintService extends SystemService {
public void binderDied() {
token = null;
removeClient(this);
+ receiver = null;
}
protected void finalize() throws Throwable {
@@ -406,10 +406,9 @@ public class FingerprintService extends SystemService {
* @return true if we're done.
*/
private boolean sendRemoved(int fingerId, int groupId) {
- IFingerprintServiceReceiver rx = receiver.get();
- if (rx == null) return true; // client not listening
+ if (receiver == null) return true; // client not listening
try {
- rx.onRemoved(mHalDeviceId, fingerId, groupId);
+ receiver.onRemoved(mHalDeviceId, fingerId, groupId);
return fingerId == 0;
} catch (RemoteException e) {
Slog.w(TAG, "Failed to notify Removed:", e);
@@ -421,11 +420,10 @@ public class FingerprintService extends SystemService {
* @return true if we're done.
*/
private boolean sendEnrollResult(int fpId, int groupId, int remaining) {
- IFingerprintServiceReceiver rx = receiver.get();
- if (rx == null) return true; // client not listening
+ if (receiver == null) return true; // client not listening
FingerprintUtils.vibrateFingerprintSuccess(getContext());
try {
- rx.onEnrollResult(mHalDeviceId, fpId, groupId, remaining);
+ receiver.onEnrollResult(mHalDeviceId, fpId, groupId, remaining);
return remaining == 0;
} catch (RemoteException e) {
Slog.w(TAG, "Failed to notify EnrollResult:", e);
@@ -437,11 +435,10 @@ public class FingerprintService extends SystemService {
* @return true if we're done.
*/
private boolean sendAuthenticated(int fpId, int groupId) {
- IFingerprintServiceReceiver rx = receiver.get();
boolean result = false;
- if (rx != null) {
+ if (receiver != null) {
try {
- rx.onAuthenticated(mHalDeviceId, fpId, groupId);
+ receiver.onAuthenticated(mHalDeviceId, fpId, groupId);
} catch (RemoteException e) {
Slog.w(TAG, "Failed to notify Authenticated:", e);
result = true; // client failed
@@ -464,10 +461,9 @@ public class FingerprintService extends SystemService {
* @return true if we're done.
*/
private boolean sendAcquired(int acquiredInfo) {
- IFingerprintServiceReceiver rx = receiver.get();
- if (rx == null) return true; // client not listening
+ if (receiver == null) return true; // client not listening
try {
- rx.onAcquired(mHalDeviceId, acquiredInfo);
+ receiver.onAcquired(mHalDeviceId, acquiredInfo);
return false; // acquisition continues...
} catch (RemoteException e) {
Slog.w(TAG, "Failed to invoke sendAcquired:", e);
@@ -479,10 +475,9 @@ public class FingerprintService extends SystemService {
* @return true if we're done.
*/
private boolean sendError(int error) {
- IFingerprintServiceReceiver rx = receiver.get();
- if (rx != null) {
+ if (receiver != null) {
try {
- rx.onError(mHalDeviceId, error);
+ receiver.onError(mHalDeviceId, error);
} catch (RemoteException e) {
Slog.w(TAG, "Failed to invoke sendError:", e);
}