Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 39d2a64b authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Do not forget to sendToTarget() in StorageMS"

parents 48cba7c9 44ff13e4
Loading
Loading
Loading
Loading
+19 −13
Original line number Diff line number Diff line
@@ -802,12 +802,20 @@ class StorageManagerService extends IStorageManager.Stub
                    break;
                }
                case H_CLOUD_MEDIA_PROVIDER_CHANGED: {
                    final Object listener = msg.obj;
                    if (listener instanceof StorageManagerInternal.CloudProviderChangeListener) {
                        notifyCloudMediaProviderChangedAsync(
                                (StorageManagerInternal.CloudProviderChangeListener) listener);
                    // We send this message in two cases:
                    // 1. After the cloud provider has been set/updated for a user.
                    //    In this case Message's #arg1 is set to UserId, and #obj is set to the
                    //    authority of the new cloud provider.
                    // 2. After a new CloudProviderChangeListener is registered.
                    //    In this case Message's #obj is set to the CloudProviderChangeListener.
                    if (msg.obj instanceof StorageManagerInternal.CloudProviderChangeListener) {
                        final StorageManagerInternal.CloudProviderChangeListener listener =
                                (StorageManagerInternal.CloudProviderChangeListener) msg.obj;
                        notifyCloudMediaProviderChangedAsync(listener);
                    } else {
                        onCloudMediaProviderChangedAsync(msg.arg1);
                        final int userId = msg.arg1;
                        final String authority = (String) msg.obj;
                        onCloudMediaProviderChangedAsync(userId, authority);
                    }
                    break;
                }
@@ -1686,17 +1694,15 @@ class StorageManagerService extends IStorageManager.Stub
            @NonNull StorageManagerInternal.CloudProviderChangeListener listener) {
        synchronized (mCloudMediaProviders) {
            for (int i = mCloudMediaProviders.size() - 1; i >= 0; --i) {
                listener.onCloudProviderChanged(
                        mCloudMediaProviders.keyAt(i), mCloudMediaProviders.valueAt(i));
                final int userId = mCloudMediaProviders.keyAt(i);
                final String authority = mCloudMediaProviders.valueAt(i);
                listener.onCloudProviderChanged(userId, authority);
            }
        }
    }

    private void onCloudMediaProviderChangedAsync(int userId) {
        final String authority;
        synchronized (mCloudMediaProviders) {
            authority = mCloudMediaProviders.get(userId);
        }
    private void onCloudMediaProviderChangedAsync(
            @UserIdInt int userId, @Nullable String authority) {
        for (StorageManagerInternal.CloudProviderChangeListener listener :
                mStorageManagerInternal.mCloudProviderChangeListeners) {
            listener.onCloudProviderChanged(userId, authority);
@@ -4831,7 +4837,7 @@ class StorageManagerService extends IStorageManager.Stub
        public void registerCloudProviderChangeListener(
                @NonNull StorageManagerInternal.CloudProviderChangeListener listener) {
            mCloudProviderChangeListeners.add(listener);
            mHandler.obtainMessage(H_CLOUD_MEDIA_PROVIDER_CHANGED, listener);
            mHandler.obtainMessage(H_CLOUD_MEDIA_PROVIDER_CHANGED, listener).sendToTarget();
        }
    }
}