Add calling package name to TC requests.
- This is only set by the SystemTextClassifier.
- The system verifies that the package name is correct before
passing the request to the TCS. Note that the system is the
only direct client of the TCS.
- Sets package name to context.getOpPackageName(). See b/119921159
- Also adds an extra to a TextLink object.
Bug: 118690735
Bug: 119921159
Test: atest frameworks/base/core/tests/coretests/src/android/view/textclassifier
Change-Id: I1ac0fa421cd0f26e580a8e0768c3819a731bb471
diff --git a/core/java/android/view/textclassifier/SystemTextClassifier.java b/core/java/android/view/textclassifier/SystemTextClassifier.java
index f8fce62..c24489c 100644
--- a/core/java/android/view/textclassifier/SystemTextClassifier.java
+++ b/core/java/android/view/textclassifier/SystemTextClassifier.java
@@ -60,7 +60,7 @@
mSettings = Preconditions.checkNotNull(settings);
mFallback = context.getSystemService(TextClassificationManager.class)
.getTextClassifier(TextClassifier.LOCAL);
- mPackageName = Preconditions.checkNotNull(context.getPackageName());
+ mPackageName = Preconditions.checkNotNull(context.getOpPackageName());
}
/**
@@ -72,6 +72,7 @@
Preconditions.checkNotNull(request);
Utils.checkMainThread();
try {
+ request.setCallingPackageName(mPackageName);
final TextSelectionCallback callback = new TextSelectionCallback();
mManagerService.onSuggestSelection(mSessionId, request, callback);
final TextSelection selection = callback.mReceiver.get();
@@ -93,6 +94,7 @@
Preconditions.checkNotNull(request);
Utils.checkMainThread();
try {
+ request.setCallingPackageName(mPackageName);
final TextClassificationCallback callback = new TextClassificationCallback();
mManagerService.onClassifyText(mSessionId, request, callback);
final TextClassification classification = callback.mReceiver.get();
@@ -150,6 +152,7 @@
Utils.checkMainThread();
try {
+ request.setCallingPackageName(mPackageName);
final TextLanguageCallback callback = new TextLanguageCallback();
mManagerService.onDetectLanguage(mSessionId, request, callback);
final TextLanguage textLanguage = callback.mReceiver.get();
@@ -168,6 +171,7 @@
Utils.checkMainThread();
try {
+ request.setCallingPackageName(mPackageName);
final ConversationActionsCallback callback = new ConversationActionsCallback();
mManagerService.onSuggestConversationActions(mSessionId, request, callback);
final ConversationActions conversationActions = callback.mReceiver.get();