Permission to access shortcuts in AppSearch to Launcher and Assistant
Adopts permission based visibility api to make shortcuts persisted in AppSearch visible to the apps that has the role Home and Assistant. Bug: 224835051 Test: manual Change-Id: Ice9c1c056d56cbd12ae95ee9a11a8329f4a4c1d0
This commit is contained in:
@@ -23,7 +23,6 @@ import android.app.appsearch.AppSearchManager;
|
||||
import android.app.appsearch.AppSearchResult;
|
||||
import android.app.appsearch.AppSearchSession;
|
||||
import android.app.appsearch.GetByDocumentIdRequest;
|
||||
import android.app.appsearch.PackageIdentifier;
|
||||
import android.app.appsearch.PutDocumentsRequest;
|
||||
import android.app.appsearch.RemoveByDocumentIdRequest;
|
||||
import android.app.appsearch.ReportUsageRequest;
|
||||
@@ -180,11 +179,6 @@ class ShortcutPackage extends ShortcutPackageItem {
|
||||
*/
|
||||
private final ArrayList<ShareTargetInfo> mShareTargets = new ArrayList<>(0);
|
||||
|
||||
/**
|
||||
* All external packages that have gained access to the shortcuts from this package
|
||||
*/
|
||||
private final Map<String, PackageIdentifier> mPackageIdentifiers = new ArrayMap<>(0);
|
||||
|
||||
/**
|
||||
* # of times the package has called rate-limited APIs.
|
||||
*/
|
||||
@@ -2313,14 +2307,15 @@ class ShortcutPackage extends ShortcutPackageItem {
|
||||
}
|
||||
SetSchemaRequest.Builder schemaBuilder = new SetSchemaRequest.Builder()
|
||||
.addSchemas(AppSearchShortcutPerson.SCHEMA, AppSearchShortcutInfo.SCHEMA)
|
||||
.setForceOverride(true);
|
||||
for (PackageIdentifier pi : mPackageIdentifiers.values()) {
|
||||
schemaBuilder = schemaBuilder
|
||||
.setSchemaTypeVisibilityForPackage(
|
||||
AppSearchShortcutPerson.SCHEMA_TYPE, true, pi)
|
||||
.setSchemaTypeVisibilityForPackage(
|
||||
AppSearchShortcutInfo.SCHEMA_TYPE, true, pi);
|
||||
}
|
||||
.setForceOverride(true)
|
||||
.addRequiredPermissionsForSchemaTypeVisibility(AppSearchShortcutInfo.SCHEMA_TYPE,
|
||||
Collections.singleton(SetSchemaRequest.READ_HOME_APP_SEARCH_DATA))
|
||||
.addRequiredPermissionsForSchemaTypeVisibility(AppSearchShortcutInfo.SCHEMA_TYPE,
|
||||
Collections.singleton(SetSchemaRequest.READ_ASSISTANT_APP_SEARCH_DATA))
|
||||
.addRequiredPermissionsForSchemaTypeVisibility(AppSearchShortcutPerson.SCHEMA_TYPE,
|
||||
Collections.singleton(SetSchemaRequest.READ_HOME_APP_SEARCH_DATA))
|
||||
.addRequiredPermissionsForSchemaTypeVisibility(AppSearchShortcutPerson.SCHEMA_TYPE,
|
||||
Collections.singleton(SetSchemaRequest.READ_ASSISTANT_APP_SEARCH_DATA));
|
||||
final AndroidFuture<AppSearchSession> future = new AndroidFuture<>();
|
||||
session.setSchema(
|
||||
schemaBuilder.build(), mExecutor, mShortcutUser.mExecutor, result -> {
|
||||
|
||||
Reference in New Issue
Block a user