Merge "lazy load enrollment application UID in VIMS" into rvc-dev am: fa47464c2b
Change-Id: I974c083792c2f998f5416d136a72a138e393eaee
This commit is contained in:
@@ -28,7 +28,6 @@ import android.content.res.XmlResourceParser;
|
|||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.ArraySet;
|
import android.util.ArraySet;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.util.Log;
|
|
||||||
import android.util.Slog;
|
import android.util.Slog;
|
||||||
import android.util.Xml;
|
import android.util.Xml;
|
||||||
|
|
||||||
@@ -231,15 +230,7 @@ public class KeyphraseEnrollmentInfo {
|
|||||||
com.android.internal.R.styleable.VoiceEnrollmentApplication);
|
com.android.internal.R.styleable.VoiceEnrollmentApplication);
|
||||||
keyphraseMetadata = getKeyphraseFromTypedArray(array, packageName, parseErrors);
|
keyphraseMetadata = getKeyphraseFromTypedArray(array, packageName, parseErrors);
|
||||||
array.recycle();
|
array.recycle();
|
||||||
} catch (XmlPullParserException e) {
|
} catch (XmlPullParserException | PackageManager.NameNotFoundException | IOException e) {
|
||||||
String error = "Error parsing keyphrase enrollment meta-data for " + packageName;
|
|
||||||
parseErrors.add(error + ": " + e);
|
|
||||||
Slog.w(TAG, error, e);
|
|
||||||
} catch (IOException e) {
|
|
||||||
String error = "Error parsing keyphrase enrollment meta-data for " + packageName;
|
|
||||||
parseErrors.add(error + ": " + e);
|
|
||||||
Slog.w(TAG, error, e);
|
|
||||||
} catch (PackageManager.NameNotFoundException e) {
|
|
||||||
String error = "Error parsing keyphrase enrollment meta-data for " + packageName;
|
String error = "Error parsing keyphrase enrollment meta-data for " + packageName;
|
||||||
parseErrors.add(error + ": " + e);
|
parseErrors.add(error + ": " + e);
|
||||||
Slog.w(TAG, error, e);
|
Slog.w(TAG, error, e);
|
||||||
@@ -390,7 +381,6 @@ public class KeyphraseEnrollmentInfo {
|
|||||||
* False if not.
|
* False if not.
|
||||||
*/
|
*/
|
||||||
public boolean isUidSupportedEnrollmentApplication(int uid) {
|
public boolean isUidSupportedEnrollmentApplication(int uid) {
|
||||||
Log.d(TAG, "isUidSupportedEnrollmentApplication: " + toString());
|
|
||||||
return mEnrollmentApplicationUids.contains(uid);
|
return mEnrollmentApplicationUids.contains(uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ import android.content.pm.UserInfo;
|
|||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.database.ContentObserver;
|
import android.database.ContentObserver;
|
||||||
import android.hardware.soundtrigger.IRecognitionStatusCallback;
|
import android.hardware.soundtrigger.IRecognitionStatusCallback;
|
||||||
|
import android.hardware.soundtrigger.KeyphraseEnrollmentInfo;
|
||||||
import android.hardware.soundtrigger.KeyphraseMetadata;
|
import android.hardware.soundtrigger.KeyphraseMetadata;
|
||||||
import android.hardware.soundtrigger.ModelParams;
|
import android.hardware.soundtrigger.ModelParams;
|
||||||
import android.hardware.soundtrigger.SoundTrigger;
|
import android.hardware.soundtrigger.SoundTrigger;
|
||||||
@@ -223,6 +224,7 @@ public class VoiceInteractionManagerService extends SystemService {
|
|||||||
class VoiceInteractionManagerServiceStub extends IVoiceInteractionManagerService.Stub {
|
class VoiceInteractionManagerServiceStub extends IVoiceInteractionManagerService.Stub {
|
||||||
|
|
||||||
VoiceInteractionManagerServiceImpl mImpl;
|
VoiceInteractionManagerServiceImpl mImpl;
|
||||||
|
KeyphraseEnrollmentInfo mEnrollmentApplicationInfo;
|
||||||
|
|
||||||
private boolean mSafeMode;
|
private boolean mSafeMode;
|
||||||
private int mCurUser;
|
private int mCurUser;
|
||||||
@@ -447,6 +449,15 @@ public class VoiceInteractionManagerService extends SystemService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void getOrCreateEnrollmentApplicationInfo() {
|
||||||
|
synchronized (this) {
|
||||||
|
if (mEnrollmentApplicationInfo == null) {
|
||||||
|
mEnrollmentApplicationInfo = new KeyphraseEnrollmentInfo(
|
||||||
|
mContext.getPackageManager());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void setCurrentUserLocked(@UserIdInt int userHandle) {
|
private void setCurrentUserLocked(@UserIdInt int userHandle) {
|
||||||
mCurUser = userHandle;
|
mCurUser = userHandle;
|
||||||
final UserInfo userInfo = mUserManagerInternal.getUserInfo(mCurUser);
|
final UserInfo userInfo = mUserManagerInternal.getUserInfo(mCurUser);
|
||||||
@@ -1380,12 +1391,17 @@ public class VoiceInteractionManagerService extends SystemService {
|
|||||||
pw.println(" mCurUserUnlocked: " + mCurUserUnlocked);
|
pw.println(" mCurUserUnlocked: " + mCurUserUnlocked);
|
||||||
pw.println(" mCurUserSupported: " + mCurUserSupported);
|
pw.println(" mCurUserSupported: " + mCurUserSupported);
|
||||||
dumpSupportedUsers(pw, " ");
|
dumpSupportedUsers(pw, " ");
|
||||||
|
if (mEnrollmentApplicationInfo == null) {
|
||||||
|
pw.println(" (No enrollment application info)");
|
||||||
|
} else {
|
||||||
|
pw.println(" " + mEnrollmentApplicationInfo.toString());
|
||||||
|
}
|
||||||
mDbHelper.dump(pw);
|
mDbHelper.dump(pw);
|
||||||
if (mImpl == null) {
|
if (mImpl == null) {
|
||||||
pw.println(" (No active implementation)");
|
pw.println(" (No active implementation)");
|
||||||
return;
|
} else {
|
||||||
|
mImpl.dumpLocked(fd, pw, args);
|
||||||
}
|
}
|
||||||
mImpl.dumpLocked(fd, pw, args);
|
|
||||||
}
|
}
|
||||||
mSoundTriggerInternal.dump(fd, pw, args);
|
mSoundTriggerInternal.dump(fd, pw, args);
|
||||||
}
|
}
|
||||||
@@ -1438,8 +1454,9 @@ public class VoiceInteractionManagerService extends SystemService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean isCallerTrustedEnrollmentApplication() {
|
private boolean isCallerTrustedEnrollmentApplication() {
|
||||||
return mImpl.mEnrollmentApplicationInfo.isUidSupportedEnrollmentApplication(
|
getOrCreateEnrollmentApplicationInfo();
|
||||||
Binder.getCallingUid());
|
return mEnrollmentApplicationInfo.isUidSupportedEnrollmentApplication(
|
||||||
|
Binder.getCallingUid());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setImplLocked(VoiceInteractionManagerServiceImpl impl) {
|
private void setImplLocked(VoiceInteractionManagerServiceImpl impl) {
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ import android.content.Intent;
|
|||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import android.content.ServiceConnection;
|
import android.content.ServiceConnection;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.hardware.soundtrigger.KeyphraseEnrollmentInfo;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
@@ -79,7 +78,6 @@ class VoiceInteractionManagerServiceImpl implements VoiceInteractionSessionConne
|
|||||||
final IActivityManager mAm;
|
final IActivityManager mAm;
|
||||||
final IActivityTaskManager mAtm;
|
final IActivityTaskManager mAtm;
|
||||||
final VoiceInteractionServiceInfo mInfo;
|
final VoiceInteractionServiceInfo mInfo;
|
||||||
final KeyphraseEnrollmentInfo mEnrollmentApplicationInfo;
|
|
||||||
final ComponentName mSessionComponentName;
|
final ComponentName mSessionComponentName;
|
||||||
final IWindowManager mIWindowManager;
|
final IWindowManager mIWindowManager;
|
||||||
boolean mBound = false;
|
boolean mBound = false;
|
||||||
@@ -135,7 +133,6 @@ class VoiceInteractionManagerServiceImpl implements VoiceInteractionSessionConne
|
|||||||
mComponent = service;
|
mComponent = service;
|
||||||
mAm = ActivityManager.getService();
|
mAm = ActivityManager.getService();
|
||||||
mAtm = ActivityTaskManager.getService();
|
mAtm = ActivityTaskManager.getService();
|
||||||
mEnrollmentApplicationInfo = new KeyphraseEnrollmentInfo(context.getPackageManager());
|
|
||||||
VoiceInteractionServiceInfo info;
|
VoiceInteractionServiceInfo info;
|
||||||
try {
|
try {
|
||||||
info = new VoiceInteractionServiceInfo(context.getPackageManager(), service, mUser);
|
info = new VoiceInteractionServiceInfo(context.getPackageManager(), service, mUser);
|
||||||
@@ -406,7 +403,6 @@ class VoiceInteractionManagerServiceImpl implements VoiceInteractionSessionConne
|
|||||||
pw.println(" Active session:");
|
pw.println(" Active session:");
|
||||||
mActiveSession.dump(" ", pw);
|
mActiveSession.dump(" ", pw);
|
||||||
}
|
}
|
||||||
pw.println(" " + mEnrollmentApplicationInfo.toString());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void startLocked() {
|
void startLocked() {
|
||||||
|
|||||||
Reference in New Issue
Block a user