summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Dianne Hackborn <hackbod@google.com> 2015-11-16 18:07:35 -0800
committer Dianne Hackborn <hackbod@google.com> 2015-11-17 18:17:57 -0800
commitc83189b5d6ab2fe5f1c38cbe22254f4995379c88 (patch)
tree0b0832088055142c70c6cd1448f3bc239224d49f
parent8958c1effb5432a0cbf01acb8c578b616d76401b (diff)
Fix issue #25673462: Shamu update from MMB29J -> 29K does not complete
The direct path to the package manager returns null on failure, oops! Change-Id: Id33ea299b605a59b0703dab200bafb754dd66e78
-rw-r--r--core/java/android/service/voice/VoiceInteractionServiceInfo.java18
-rw-r--r--services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java1
-rw-r--r--services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java2
3 files changed, 16 insertions, 5 deletions
diff --git a/core/java/android/service/voice/VoiceInteractionServiceInfo.java b/core/java/android/service/voice/VoiceInteractionServiceInfo.java
index 463eb5be46f6..ebe3f47f0b02 100644
--- a/core/java/android/service/voice/VoiceInteractionServiceInfo.java
+++ b/core/java/android/service/voice/VoiceInteractionServiceInfo.java
@@ -52,9 +52,21 @@ public class VoiceInteractionServiceInfo {
}
public VoiceInteractionServiceInfo(PackageManager pm, ComponentName comp, int userHandle)
- throws PackageManager.NameNotFoundException, RemoteException {
- this(pm, AppGlobals.getPackageManager().getServiceInfo(comp,
- PackageManager.GET_META_DATA, userHandle));
+ throws PackageManager.NameNotFoundException {
+ this(pm, getServiceInfoOrThrow(comp, userHandle));
+ }
+
+ static ServiceInfo getServiceInfoOrThrow(ComponentName comp, int userHandle)
+ throws PackageManager.NameNotFoundException {
+ try {
+ ServiceInfo si = AppGlobals.getPackageManager().getServiceInfo(comp,
+ PackageManager.GET_META_DATA, userHandle);
+ if (si != null) {
+ return si;
+ }
+ } catch (RemoteException e) {
+ }
+ throw new PackageManager.NameNotFoundException(comp.toString());
}
public VoiceInteractionServiceInfo(PackageManager pm, ServiceInfo si) {
diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
index f396c2dbc5f0..8fee91fdca7e 100644
--- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
+++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
@@ -362,7 +362,6 @@ public class VoiceInteractionManagerService extends SystemService {
}
} catch (PackageManager.NameNotFoundException e) {
Slog.w(TAG, "Failure looking up interaction service " + comp);
- } catch (RemoteException e) {
}
}
}
diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
index 30296e15e638..109d214e1167 100644
--- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
+++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
@@ -116,7 +116,7 @@ class VoiceInteractionManagerServiceImpl implements VoiceInteractionSessionConne
VoiceInteractionServiceInfo info;
try {
info = new VoiceInteractionServiceInfo(context.getPackageManager(), service, mUser);
- } catch (RemoteException|PackageManager.NameNotFoundException e) {
+ } catch (PackageManager.NameNotFoundException e) {
Slog.w(TAG, "Voice interaction service not found: " + service, e);
mInfo = null;
mSessionComponentName = null;