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

Commit ac7642bd authored by Haofan Wang's avatar Haofan Wang Committed by Android (Google) Code Review
Browse files

Merge changes from topic "MQ vendor extension" into main

* changes:
  Add vendor picture parameters
  [MQ vendor extension] add vendor extension in contract
parents 7a096d3f 198c1ce6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -82,7 +82,7 @@ public class MediaQualityContract {
        String PARAMETER_NAME = "_name";
        String PARAMETER_PACKAGE = "_package";
        String PARAMETER_INPUT_ID = "_input_id";

        String VENDOR_PARAMETERS = "_vendor_parameters";
    }

    /**
+5 −4
Original line number Diff line number Diff line
@@ -138,6 +138,7 @@ java_library_static {
        "ondeviceintelligence_conditionally",
    ],
    srcs: [
        ":android.hardware.audio.effect-V1-java-source",
        ":android.hardware.tv.hdmi.connection-V1-java-source",
        ":android.hardware.tv.hdmi.earc-V1-java-source",
        ":android.hardware.tv.mediaquality-V1-java-source",
+31 −1
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.hardware.audio.effect.DefaultExtension;
import android.hardware.tv.mediaquality.AmbientBacklightColorFormat;
import android.hardware.tv.mediaquality.IMediaQuality;
import android.hardware.tv.mediaquality.IPictureProfileAdjustmentListener;
@@ -57,6 +58,7 @@ import android.os.Binder;
import android.os.Bundle;
import android.os.Environment;
import android.os.IBinder;
import android.os.Parcel;
import android.os.PersistableBundle;
import android.os.RemoteCallbackList;
import android.os.RemoteException;
@@ -365,13 +367,21 @@ public class MediaQualityService extends SystemService {

            try {
                if (mMediaQuality != null) {
                    PictureParameters pp = new PictureParameters();
                    PictureParameter[] pictureParameters = MediaQualityUtils
                            .convertPersistableBundleToPictureParameterList(params);

                    PictureParameters pp = new PictureParameters();
                    PersistableBundle vendorPictureParameters = params
                            .getPersistableBundle(BaseParameters.VENDOR_PARAMETERS);
                    Parcel parcel = Parcel.obtain();
                    if (vendorPictureParameters != null) {
                        setVendorPictureParameters(pp, parcel, vendorPictureParameters);
                    }

                    pp.pictureParameters = pictureParameters;

                    mMediaQuality.sendDefaultPictureParameters(pp);
                    parcel.recycle();
                    return true;
                }
            } catch (RemoteException e) {
@@ -1419,11 +1429,19 @@ public class MediaQualityService extends SystemService {
                    MediaQualityUtils.convertPersistableBundleToPictureParameterList(
                            params);

            PersistableBundle vendorPictureParameters = params
                    .getPersistableBundle(BaseParameters.VENDOR_PARAMETERS);
            Parcel parcel = Parcel.obtain();
            if (vendorPictureParameters != null) {
                setVendorPictureParameters(pictureParameters, parcel, vendorPictureParameters);
            }

            android.hardware.tv.mediaquality.PictureProfile toReturn =
                    new android.hardware.tv.mediaquality.PictureProfile();
            toReturn.pictureProfileId = id;
            toReturn.parameters = pictureParameters;

            parcel.recycle();
            return toReturn;
        }

@@ -1729,4 +1747,16 @@ public class MediaQualityService extends SystemService {
            return android.hardware.tv.mediaquality.IMediaQualityCallback.Stub.VERSION;
        }
    }

    private void setVendorPictureParameters(
            PictureParameters pictureParameters,
            Parcel parcel,
            PersistableBundle vendorPictureParameters) {
        vendorPictureParameters.writeToParcel(parcel, 0);
        byte[] vendorBundleToByteArray = parcel.marshall();
        DefaultExtension defaultExtension = new DefaultExtension();
        defaultExtension.bytes = Arrays.copyOf(
                vendorBundleToByteArray, vendorBundleToByteArray.length);
        pictureParameters.vendorPictureParameters.setParcelable(defaultExtension);
    }
}