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

Commit 4be3f755 authored by Soonil Nagarkar's avatar Soonil Nagarkar Committed by Automerger Merge Worker
Browse files

DO NOT MERGE: Fix array casting bug am: e0073038

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11971856

Change-Id: If540972b625345139eae68d1bca98675fdf63813
parents ca816643 e0073038
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -29,6 +29,8 @@ import android.util.ArrayMap;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.util.Preconditions;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.Executor;
import java.util.function.Consumer;
@@ -193,7 +195,7 @@ abstract class AbstractListenerManager<TRequest, TListener> {
    protected abstract void unregisterService() throws RemoteException;

    @Nullable
    protected TRequest merge(@NonNull TRequest[] requests) {
    protected TRequest merge(@NonNull List<TRequest> requests) {
        for (TRequest request : requests) {
            Preconditions.checkArgument(request == null,
                    "merge() has to be overridden for non-null requests.");
@@ -221,9 +223,9 @@ abstract class AbstractListenerManager<TRequest, TListener> {
            return mListeners.valueAt(0).getRequest();
        }

        TRequest[] requests = (TRequest[]) new Object[mListeners.size()];
        ArrayList<TRequest> requests = new ArrayList<>(mListeners.size());
        for (int index = 0; index < mListeners.size(); index++) {
            requests[index] = mListeners.valueAt(index).getRequest();
            requests.add(mListeners.valueAt(index).getRequest());
        }
        return merge(requests);
    }
+3 −3
Original line number Diff line number Diff line
@@ -3030,14 +3030,14 @@ public class LocationManager {

        @Override
        @Nullable
        protected GnssRequest merge(@NonNull GnssRequest[] requests) {
            Preconditions.checkArgument(requests.length > 0);
        protected GnssRequest merge(@NonNull List<GnssRequest> requests) {
            Preconditions.checkArgument(!requests.isEmpty());
            for (GnssRequest request : requests) {
                if (request.isFullTracking()) {
                    return request;
                }
            }
            return requests[0];
            return requests.get(0);
        }

        private class GnssMeasurementsListener extends IGnssMeasurementsListener.Stub {