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

Commit 48a16830 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 (1/n)"

parents 7560d0d0 5f21a5e4
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -806,6 +806,12 @@ 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
@@ -1317,6 +1323,11 @@ 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);
        }
+4 −0
Original line number Diff line number Diff line
@@ -359,6 +359,8 @@ 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;
};

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

        // Always append new enum to the end.
    };

+2 −0
Original line number Diff line number Diff line
@@ -679,6 +679,8 @@ public:
        return NO_ERROR;
    }

    void setInputWindowsFinished() override {}

protected:
    IBinder* onAsBinder() override { return nullptr; }

+4 −1
Original line number Diff line number Diff line
@@ -4897,7 +4897,8 @@ status_t SurfaceFlinger::CheckTransactCodeCredentials(uint32_t code) {
        case GET_COLOR_MANAGEMENT:
        case GET_COMPOSITION_PREFERENCE:
        case GET_PROTECTED_CONTENT_SUPPORT:
        case IS_WIDE_COLOR_DISPLAY: {
        case IS_WIDE_COLOR_DISPLAY:
        case SET_INPUT_WINDOWS_FINISHED: {
            return OK;
        }
        case CAPTURE_LAYERS:
@@ -5623,6 +5624,8 @@ status_t SurfaceFlinger::captureScreenImplLocked(const RenderArea& renderArea,
    return NO_ERROR;
}

void SurfaceFlinger::setInputWindowsFinished() {}

// ---------------------------------------------------------------------------

void SurfaceFlinger::State::traverseInZOrder(const LayerVector::Visitor& visitor) const {
+1 −0
Original line number Diff line number Diff line
@@ -477,6 +477,7 @@ private:
    status_t addRegionSamplingListener(const Rect& samplingArea, const sp<IBinder>& stopLayerHandle,
                                       const sp<IRegionSamplingListener>& listener) override;
    status_t removeRegionSamplingListener(const sp<IRegionSamplingListener>& listener) override;
    void setInputWindowsFinished() override;
    /* ------------------------------------------------------------------------
     * DeathRecipient interface
     */