Merge "Mark all published authorities for a provider as ready" into sc-dev

This commit is contained in:
Amith Yamasani
2021-06-21 16:31:09 +00:00
committed by Android (Google) Code Review
2 changed files with 10 additions and 7 deletions

View File

@@ -447,7 +447,7 @@ public final class ActivityThread extends ClientTransactionHandler
@GuardedBy("mLock") @GuardedBy("mLock")
ContentProviderHolder mHolder; // Temp holder to be used between notifier and waiter ContentProviderHolder mHolder; // Temp holder to be used between notifier and waiter
Object mLock; // The lock to be used to get notified when the provider is ready final Object mLock; // The lock to be used to get notified when the provider is ready
public ProviderKey(String authority, int userId) { public ProviderKey(String authority, int userId) {
this.authority = authority; this.authority = authority;
@@ -1827,11 +1827,14 @@ public final class ActivityThread extends ClientTransactionHandler
@Override @Override
public void notifyContentProviderPublishStatus(@NonNull ContentProviderHolder holder, public void notifyContentProviderPublishStatus(@NonNull ContentProviderHolder holder,
@NonNull String auth, int userId, boolean published) { @NonNull String authorities, int userId, boolean published) {
final ProviderKey key = getGetProviderKey(auth, userId); final String auths[] = authorities.split(";");
synchronized (key.mLock) { for (String auth: auths) {
key.mHolder = holder; final ProviderKey key = getGetProviderKey(auth, userId);
key.mLock.notifyAll(); synchronized (key.mLock) {
key.mHolder = holder;
key.mLock.notifyAll();
}
} }
} }

View File

@@ -153,7 +153,7 @@ oneway interface IApplicationThread {
void performDirectAction(IBinder activityToken, String actionId, void performDirectAction(IBinder activityToken, String actionId,
in Bundle arguments, in RemoteCallback cancellationCallback, in Bundle arguments, in RemoteCallback cancellationCallback,
in RemoteCallback resultCallback); in RemoteCallback resultCallback);
void notifyContentProviderPublishStatus(in ContentProviderHolder holder, String auth, void notifyContentProviderPublishStatus(in ContentProviderHolder holder, String authorities,
int userId, boolean published); int userId, boolean published);
void instrumentWithoutRestart(in ComponentName instrumentationName, void instrumentWithoutRestart(in ComponentName instrumentationName,
in Bundle instrumentationArgs, in Bundle instrumentationArgs,