From 596532d9dbea3460dbc989b0316c721ca69f4915 Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Fri, 18 Jan 2013 11:04:09 -0800 Subject: [PATCH] Properly initialize recognition service if the recognizer component changed. The getServiceInfo() call directly to IPackageManager does not throw an exception. The return value needed to be checked for null. Bug: 8031032 Change-Id: I701b9e8cf3b2406a3b35a486183330489b3d46f5 --- .../java/com/android/server/RecognitionManagerService.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/services/java/com/android/server/RecognitionManagerService.java b/services/java/com/android/server/RecognitionManagerService.java index 1e0755d6c35f..c2e749d3382a 100644 --- a/services/java/com/android/server/RecognitionManagerService.java +++ b/services/java/com/android/server/RecognitionManagerService.java @@ -89,17 +89,15 @@ public class RecognitionManagerService extends Binder { private void initForUser(int userHandle) { if (DEBUG) Slog.i(TAG, "initForUser user=" + userHandle); ComponentName comp = getCurRecognizer(userHandle); + ServiceInfo info = null; if (comp != null) { - // See if the current recognizer is no longer available. + // See if the current recognizer is still available. try { - mIPm.getServiceInfo(comp, 0, userHandle); + info = mIPm.getServiceInfo(comp, 0, userHandle); } catch (RemoteException e) { - comp = findAvailRecognizer(null, userHandle); - if (comp != null) { - setCurRecognizer(comp, userHandle); - } } - } else { + } + if (info == null) { comp = findAvailRecognizer(null, userHandle); if (comp != null) { setCurRecognizer(comp, userHandle); -- 2.11.0