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

Commit 3a5f1c0d authored by Yara Hassan's avatar Yara Hassan
Browse files

Add methods to return AppFunctions request and response sizes

Flag: android.app.appfunctions.flags.enable_app_function_manager
Bug: 376688078
Test: manual
Change-Id: I999269a96e7ae589d1d6b7b03fead29b711f07c0
parent 7879f67a
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -136,6 +136,16 @@ public final class ExecuteAppFunctionRequest implements Parcelable {
        return mExtras;
    }

    /**
     * Returns the size of the request in bytes.
     *
     * @hide
     */
    public int getRequestDataSize() {
        return mTargetPackageName.getBytes().length + mFunctionIdentifier.getBytes().length
                + mParameters.getDataSize() + mExtras.getSize();
    }

    @Override
    public void writeToParcel(@NonNull Parcel dest, int flags) {
        dest.writeString8(mTargetPackageName);
+9 −0
Original line number Diff line number Diff line
@@ -135,6 +135,15 @@ public final class ExecuteAppFunctionResponse implements Parcelable {
        return mExtras;
    }

    /**
     * Returns the size of the response in bytes.
     *
     * @hide
     */
    public int getResponseDataSize() {
        return mResultDocumentWrapper.getDataSize() + mExtras.getSize();
    }

    @Override
    public int describeContents() {
        return 0;
+21 −0
Original line number Diff line number Diff line
@@ -50,6 +50,10 @@ public final class GenericDocumentWrapper implements Parcelable {
    @Nullable
    private Parcel mParcel;

    @GuardedBy("mLock")
    @Nullable
    private Integer mDataSize;

    private final Object mLock = new Object();

    public static final Creator<GenericDocumentWrapper> CREATOR =
@@ -75,11 +79,13 @@ public final class GenericDocumentWrapper implements Parcelable {
    public GenericDocumentWrapper(@NonNull GenericDocument genericDocument) {
        mGenericDocument = Objects.requireNonNull(genericDocument);
        mParcel = null;
        mDataSize = null;
    }

    public GenericDocumentWrapper(@NonNull Parcel parcel) {
        mGenericDocument = null;
        mParcel = Objects.requireNonNull(parcel);
        mDataSize = mParcel.dataSize();
    }

    /** Returns the wrapped {@link android.app.appsearch.GenericDocument} */
@@ -109,6 +115,21 @@ public final class GenericDocumentWrapper implements Parcelable {
        }
    }

    /** Returns the size of the parcelled document. */

    int getDataSize() {
        synchronized (mLock) {
            if (mDataSize != null) {
                return mDataSize;
            }
            Parcel tempParcel = Parcel.obtain();
            writeToParcel(tempParcel, 0);
            mDataSize = tempParcel.dataSize();
            tempParcel.recycle();
            return mDataSize;
        }
    }

    @Override
    public int describeContents() {
        return 0;