diff options
| author | Nicholas Ambur <nambur@google.com> | 2020-02-27 18:01:24 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-02-27 18:01:24 +0000 |
| commit | a163d079d87ed8e3c857f0b3703d9ba2e4e07669 (patch) | |
| tree | 594a1361802844e50bedde12f4c0180dd0b60921 /core/java/android | |
| parent | 92a82e2d81eeab8ca766acab814c5a9d6692e845 (diff) | |
| parent | 679e7d5bebfaab4e51ceff108d9d102cab60d0a6 (diff) | |
Merge "add enrollment application UID tracking" into rvc-dev
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/hardware/soundtrigger/KeyphraseEnrollmentInfo.java | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/core/java/android/hardware/soundtrigger/KeyphraseEnrollmentInfo.java b/core/java/android/hardware/soundtrigger/KeyphraseEnrollmentInfo.java index ef76c620f3f3..bf641d72eab1 100644 --- a/core/java/android/hardware/soundtrigger/KeyphraseEnrollmentInfo.java +++ b/core/java/android/hardware/soundtrigger/KeyphraseEnrollmentInfo.java @@ -28,6 +28,7 @@ import android.content.res.XmlResourceParser; import android.text.TextUtils; import android.util.ArraySet; import android.util.AttributeSet; +import android.util.Log; import android.util.Slog; import android.util.Xml; @@ -43,6 +44,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Set; /** * Enrollment information about the different available keyphrases. @@ -116,7 +118,12 @@ public class KeyphraseEnrollmentInfo { /** * List of available keyphrases. */ - final private KeyphraseMetadata[] mKeyphrases; + private final KeyphraseMetadata[] mKeyphrases; + + /** + * Set of UIDs associated with the detected enrollment applications. + */ + private final Set<Integer> mEnrollmentApplicationUids; /** * Map between KeyphraseMetadata and the package name of the enrollment app that provides it. @@ -136,11 +143,13 @@ public class KeyphraseEnrollmentInfo { mParseError = "No enrollment applications found"; mKeyphrasePackageMap = Collections.<KeyphraseMetadata, String>emptyMap(); mKeyphrases = null; + mEnrollmentApplicationUids = Collections.emptySet(); return; } List<String> parseErrors = new LinkedList<String>(); mKeyphrasePackageMap = new HashMap<KeyphraseMetadata, String>(); + mEnrollmentApplicationUids = new ArraySet<>(); for (ResolveInfo ri : ris) { try { ApplicationInfo ai = pm.getApplicationInfo( @@ -162,6 +171,7 @@ public class KeyphraseEnrollmentInfo { getKeyphraseMetadataFromApplicationInfo(pm, ai, parseErrors); if (metadata != null) { mKeyphrasePackageMap.put(metadata, ai.packageName); + mEnrollmentApplicationUids.add(ai.uid); } } catch (PackageManager.NameNotFoundException e) { String error = "error parsing voice enrollment meta-data for " @@ -372,9 +382,22 @@ public class KeyphraseEnrollmentInfo { return null; } + /** + * Tests if the input UID matches a supported enrollment application. + * + * @param uid UID of the caller to test against. + * @return Returns true if input uid matches the uid of a supported enrollment application. + * False if not. + */ + public boolean isUidSupportedEnrollmentApplication(int uid) { + Log.d(TAG, "isUidSupportedEnrollmentApplication: " + toString()); + return mEnrollmentApplicationUids.contains(uid); + } + @Override public String toString() { - return "KeyphraseEnrollmentInfo [Keyphrases=" + mKeyphrasePackageMap.toString() + return "KeyphraseEnrollmentInfo [KeyphrasePackageMap=" + mKeyphrasePackageMap.toString() + + ", enrollmentApplicationUids=" + mEnrollmentApplicationUids.toString() + ", ParseError=" + mParseError + "]"; } } |
