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

Commit 3209997d authored by Chavi Weingarten's avatar Chavi Weingarten Committed by Android (Google) Code Review
Browse files

Merge "Add synchronous transaction to wait for setInputWindow to complete (3/n)"

parents 91f56e4d 291d88aa
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@

#include <utils/Vector.h>
#include <input/InputWindow.h>
#include <input/ISetInputWindowsListener.h>

namespace android {

@@ -35,7 +36,8 @@ class IInputFlinger : public IInterface {
public:
    DECLARE_META_INTERFACE(InputFlinger)

    virtual void setInputWindows(const Vector<InputWindowInfo>& inputHandles) = 0;
    virtual void setInputWindows(const Vector<InputWindowInfo>& inputHandles,
            const sp<ISetInputWindowsListener>& setInputWindowsListener) = 0;
    virtual void transferTouchFocus(const sp<IBinder>& fromToken, const sp<IBinder>& toToken) = 0;
    virtual void registerInputChannel(const sp<InputChannel>& channel) = 0;
    virtual void unregisterInputChannel(const sp<InputChannel>& channel) = 0;
+40 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2019 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#pragma once

#include <binder/IInterface.h>
#include <binder/Parcel.h>

namespace android {

class ISetInputWindowsListener : public IInterface {
public:
    DECLARE_META_INTERFACE(SetInputWindowsListener)
    virtual void onSetInputWindowsFinished() = 0;
};

class BnSetInputWindowsListener: public BnInterface<ISetInputWindowsListener> {
public:
    enum SetInputWindowsTag : uint32_t {
        ON_SET_INPUT_WINDOWS_FINISHED
    };

    virtual status_t onTransact(uint32_t code, const Parcel& data, Parcel* reply,
                                uint32_t flags = 0) override;
};

}; // namespace android
+0 −11
Original line number Diff line number Diff line
@@ -806,12 +806,6 @@ public:
        }
        return error;
    }

    virtual void setInputWindowsFinished() {
        Parcel data, reply;
        data.writeInterfaceToken(ISurfaceComposer::getInterfaceDescriptor());
        remote()->transact(BnSurfaceComposer::SET_INPUT_WINDOWS_FINISHED, data, &reply);
    }
};

// Out-of-line virtual method definition to trigger vtable emission in this
@@ -1323,11 +1317,6 @@ status_t BnSurfaceComposer::onTransact(
            }
            return removeRegionSamplingListener(listener);
        }
        case SET_INPUT_WINDOWS_FINISHED: {
            CHECK_INTERFACE(ISurfaceComposer, data, reply);
            setInputWindowsFinished();
            return NO_ERROR;
        }
        default: {
            return BBinder::onTransact(code, data, reply, flags);
        }
+0 −3
Original line number Diff line number Diff line
@@ -359,8 +359,6 @@ public:
     * Removes a listener that was streaming median luma updates from SurfaceFlinger.
     */
    virtual status_t removeRegionSamplingListener(const sp<IRegionSamplingListener>& listener) = 0;

    virtual void setInputWindowsFinished() = 0;
};

// ----------------------------------------------------------------------------
@@ -408,7 +406,6 @@ public:
        GET_PHYSICAL_DISPLAY_IDS,
        ADD_REGION_SAMPLING_LISTENER,
        REMOVE_REGION_SAMPLING_LISTENER,
        SET_INPUT_WINDOWS_FINISHED,

        // Always append new enum to the end.
    };
+1 −1
Original line number Diff line number Diff line
@@ -254,7 +254,7 @@ struct InputWindowCommands {
    };

    std::vector<TransferTouchFocusCommand> transferTouchFocusCommands;
    bool syncInputWindows;
    bool syncInputWindows{false};

    void merge(const InputWindowCommands& other);
    void clear();
Loading