summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/api/current.txt39
-rw-r--r--core/api/system-current.txt10
-rw-r--r--media/java/android/media/quality/MediaQualityContract.java4
-rw-r--r--media/java/android/media/quality/MediaQualityManager.java1
-rw-r--r--media/java/android/media/quality/PictureProfile.java54
-rw-r--r--services/core/java/com/android/server/media/quality/MediaQualityService.java56
6 files changed, 105 insertions, 59 deletions
diff --git a/core/api/current.txt b/core/api/current.txt
index cbc35299fff3..ddaa9c6cba1c 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -27055,6 +27055,45 @@ package android.media.projection {
}
+package android.media.quality {
+
+ @FlaggedApi("android.media.tv.flags.media_quality_fw") public class MediaQualityContract {
+ }
+
+ public static final class MediaQualityContract.PictureQuality {
+ field public static final String PARAMETER_BRIGHTNESS = "brightness";
+ field public static final String PARAMETER_CONTRAST = "contrast";
+ field public static final String PARAMETER_SATURATION = "saturation";
+ field public static final String PARAMETER_SHARPNESS = "sharpness";
+ }
+
+ @FlaggedApi("android.media.tv.flags.media_quality_fw") public final class MediaQualityManager {
+ method @NonNull public java.util.List<android.media.quality.PictureProfile> getAvailablePictureProfiles();
+ }
+
+ @FlaggedApi("android.media.tv.flags.media_quality_fw") public final class PictureProfile implements android.os.Parcelable {
+ method public int describeContents();
+ method @Nullable public String getInputId();
+ method @NonNull public String getName();
+ method @Nullable public String getPackageName();
+ method @NonNull public android.os.PersistableBundle getParameters();
+ method @Nullable public String getProfileId();
+ method public int getProfileType();
+ method public void writeToParcel(@NonNull android.os.Parcel, int);
+ field @NonNull public static final android.os.Parcelable.Creator<android.media.quality.PictureProfile> CREATOR;
+ field public static final int TYPE_APPLICATION = 2; // 0x2
+ field public static final int TYPE_SYSTEM = 1; // 0x1
+ }
+
+ public static final class PictureProfile.Builder {
+ ctor public PictureProfile.Builder(@NonNull String);
+ ctor public PictureProfile.Builder(@NonNull android.media.quality.PictureProfile);
+ method @NonNull public android.media.quality.PictureProfile build();
+ method @NonNull public android.media.quality.PictureProfile.Builder setParameters(@NonNull android.os.PersistableBundle);
+ }
+
+}
+
package android.media.session {
public final class MediaController {
diff --git a/core/api/system-current.txt b/core/api/system-current.txt
index d2d9e8586736..a2563649b232 100644
--- a/core/api/system-current.txt
+++ b/core/api/system-current.txt
@@ -8111,6 +8111,16 @@ package android.media.musicrecognition {
}
+package android.media.quality {
+
+ public static final class PictureProfile.Builder {
+ method @NonNull public android.media.quality.PictureProfile.Builder setInputId(@NonNull String);
+ method @NonNull public android.media.quality.PictureProfile.Builder setPackageName(@NonNull String);
+ method @NonNull public android.media.quality.PictureProfile.Builder setProfileType(int);
+ }
+
+}
+
package android.media.session {
public final class MediaSessionManager {
diff --git a/media/java/android/media/quality/MediaQualityContract.java b/media/java/android/media/quality/MediaQualityContract.java
index f07ef873a0af..5fec86a81a53 100644
--- a/media/java/android/media/quality/MediaQualityContract.java
+++ b/media/java/android/media/quality/MediaQualityContract.java
@@ -23,7 +23,6 @@ import android.media.tv.flags.Flags;
/**
* The contract between the media quality service and applications. Contains definitions for the
* commonly used parameter names.
- * @hide
*/
@FlaggedApi(Flags.FLAG_MEDIA_QUALITY_FW)
public class MediaQualityContract {
@@ -42,9 +41,8 @@ public class MediaQualityContract {
/**
* Parameters picture quality.
- * @hide
*/
- public static final class PictureQuality implements BaseParameters {
+ public static final class PictureQuality {
/**
* The brightness.
*
diff --git a/media/java/android/media/quality/MediaQualityManager.java b/media/java/android/media/quality/MediaQualityManager.java
index dcf497122053..fc2ce6c30e31 100644
--- a/media/java/android/media/quality/MediaQualityManager.java
+++ b/media/java/android/media/quality/MediaQualityManager.java
@@ -37,7 +37,6 @@ import java.util.concurrent.Executor;
/**
* Central system API to the overall media quality, which arbitrates interaction between
* applications and media quality service.
- * @hide
*/
@FlaggedApi(Flags.FLAG_MEDIA_QUALITY_FW)
@SystemService(Context.MEDIA_QUALITY_SERVICE)
diff --git a/media/java/android/media/quality/PictureProfile.java b/media/java/android/media/quality/PictureProfile.java
index 2be47dd87ef2..faea77f3c41d 100644
--- a/media/java/android/media/quality/PictureProfile.java
+++ b/media/java/android/media/quality/PictureProfile.java
@@ -18,11 +18,12 @@ package android.media.quality;
import android.annotation.FlaggedApi;
import android.annotation.IntDef;
+import android.annotation.SystemApi;
import android.media.tv.TvInputInfo;
import android.media.tv.flags.Flags;
-import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
+import android.os.PersistableBundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -33,7 +34,6 @@ import java.lang.annotation.RetentionPolicy;
/**
* Profile for picture quality.
- * @hide
*/
@FlaggedApi(Flags.FLAG_MEDIA_QUALITY_FW)
public final class PictureProfile implements Parcelable {
@@ -47,7 +47,7 @@ public final class PictureProfile implements Parcelable {
@NonNull
private final String mPackageName;
@NonNull
- private final Bundle mParams;
+ private final PersistableBundle mParams;
/** @hide */
@Retention(RetentionPolicy.SOURCE)
@@ -59,14 +59,14 @@ public final class PictureProfile implements Parcelable {
/**
* System profile type.
*
- * <p>A profile of system type is managed by the system, and readable to the package define in
+ * <p>A profile of system type is managed by the system, and readable to the package returned by
* {@link #getPackageName()}.
*/
public static final int TYPE_SYSTEM = 1;
/**
* Application profile type.
*
- * <p>A profile of application type is managed by the package define in
+ * <p>A profile of application type is managed by the package returned by
* {@link #getPackageName()}.
*/
public static final int TYPE_APPLICATION = 2;
@@ -125,7 +125,7 @@ public final class PictureProfile implements Parcelable {
mName = in.readString();
mInputId = in.readString();
mPackageName = in.readString();
- mParams = in.readBundle();
+ mParams = in.readPersistableBundle();
}
@Override
@@ -135,7 +135,7 @@ public final class PictureProfile implements Parcelable {
dest.writeString(mName);
dest.writeString(mInputId);
dest.writeString(mPackageName);
- dest.writeBundle(mParams);
+ dest.writePersistableBundle(mParams);
}
@Override
@@ -168,7 +168,7 @@ public final class PictureProfile implements Parcelable {
@NonNull String name,
@Nullable String inputId,
@NonNull String packageName,
- @NonNull Bundle params) {
+ @NonNull PersistableBundle params) {
this.mId = id;
this.mType = type;
this.mName = name;
@@ -251,13 +251,12 @@ public final class PictureProfile implements Parcelable {
* {@link MediaQualityContract.PictureQuality}.
*/
@NonNull
- public Bundle getParameters() {
- return new Bundle(mParams);
+ public PersistableBundle getParameters() {
+ return new PersistableBundle(mParams);
}
/**
* A builder for {@link PictureProfile}.
- * @hide
*/
public static final class Builder {
@Nullable
@@ -270,7 +269,7 @@ public final class PictureProfile implements Parcelable {
@NonNull
private String mPackageName;
@NonNull
- private Bundle mParams;
+ private PersistableBundle mParams;
/**
* Creates a new Builder.
@@ -291,27 +290,26 @@ public final class PictureProfile implements Parcelable {
mParams = p.getParameters();
}
- /* @hide using by MediaQualityService */
-
/**
- * Only used by system to assign the ID.
+ * Sets profile type.
+ *
* @hide
*/
+ @SystemApi
+ @RequiresPermission(android.Manifest.permission.MANAGE_GLOBAL_PICTURE_QUALITY_SERVICE)
@NonNull
- public Builder setProfileId(@Nullable String id) {
- mId = id;
+ public Builder setProfileType(@ProfileType int value) {
+ mType = value;
return this;
}
/**
- * Sets profile type.
- *
- * @hide @SystemApi
+ * Only used by system to assign the ID.
+ * @hide
*/
- @RequiresPermission(android.Manifest.permission.MANAGE_GLOBAL_PICTURE_QUALITY_SERVICE)
@NonNull
- public Builder setProfileType(@ProfileType int value) {
- mType = value;
+ public Builder setProfileId(@Nullable String id) {
+ mId = id;
return this;
}
@@ -320,8 +318,9 @@ public final class PictureProfile implements Parcelable {
*
* @see PictureProfile#getInputId()
*
- * @hide @SystemApi
+ * @hide
*/
+ @SystemApi
@RequiresPermission(android.Manifest.permission.MANAGE_GLOBAL_PICTURE_QUALITY_SERVICE)
@NonNull
public Builder setInputId(@NonNull String value) {
@@ -334,8 +333,9 @@ public final class PictureProfile implements Parcelable {
*
* @see PictureProfile#getPackageName()
*
- * @hide @SystemApi
+ * @hide
*/
+ @SystemApi
@RequiresPermission(android.Manifest.permission.MANAGE_GLOBAL_PICTURE_QUALITY_SERVICE)
@NonNull
public Builder setPackageName(@NonNull String value) {
@@ -349,8 +349,8 @@ public final class PictureProfile implements Parcelable {
* @see PictureProfile#getParameters()
*/
@NonNull
- public Builder setParameters(@NonNull Bundle params) {
- mParams = new Bundle(params);
+ public Builder setParameters(@NonNull PersistableBundle params) {
+ mParams = new PersistableBundle(params);
return this;
}
diff --git a/services/core/java/com/android/server/media/quality/MediaQualityService.java b/services/core/java/com/android/server/media/quality/MediaQualityService.java
index 1f8a2007a9ff..00bab8af44f3 100644
--- a/services/core/java/com/android/server/media/quality/MediaQualityService.java
+++ b/services/core/java/com/android/server/media/quality/MediaQualityService.java
@@ -25,11 +25,11 @@ import android.media.quality.IAmbientBacklightCallback;
import android.media.quality.IMediaQualityManager;
import android.media.quality.IPictureProfileCallback;
import android.media.quality.ISoundProfileCallback;
-import android.media.quality.MediaQualityContract.PictureQuality;
+import android.media.quality.MediaQualityContract;
import android.media.quality.ParamCapability;
import android.media.quality.PictureProfile;
import android.media.quality.SoundProfile;
-import android.os.Bundle;
+import android.os.PersistableBundle;
import android.util.Log;
import com.android.server.SystemService;
@@ -74,10 +74,10 @@ public class MediaQualityService extends SystemService {
SQLiteDatabase db = mMediaQualityDbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
- values.put(PictureQuality.PARAMETER_TYPE, pp.getProfileType());
- values.put(PictureQuality.PARAMETER_NAME, pp.getName());
- values.put(PictureQuality.PARAMETER_PACKAGE, pp.getPackageName());
- values.put(PictureQuality.PARAMETER_INPUT_ID, pp.getInputId());
+ values.put(MediaQualityContract.BaseParameters.PARAMETER_TYPE, pp.getProfileType());
+ values.put(MediaQualityContract.BaseParameters.PARAMETER_NAME, pp.getName());
+ values.put(MediaQualityContract.BaseParameters.PARAMETER_PACKAGE, pp.getPackageName());
+ values.put(MediaQualityContract.BaseParameters.PARAMETER_INPUT_ID, pp.getInputId());
values.put(mMediaQualityDbHelper.SETTINGS, bundleToJson(pp.getParameters()));
// id is auto-generated by SQLite upon successful insertion of row
@@ -98,8 +98,8 @@ public class MediaQualityService extends SystemService {
public PictureProfile getPictureProfile(int type, String name) {
SQLiteDatabase db = mMediaQualityDbHelper.getReadableDatabase();
- String selection = PictureQuality.PARAMETER_TYPE + " = ? AND "
- + PictureQuality.PARAMETER_NAME + " = ?";
+ String selection = MediaQualityContract.BaseParameters.PARAMETER_TYPE + " = ? AND "
+ + MediaQualityContract.BaseParameters.PARAMETER_NAME + " = ?";
String[] selectionArguments = {Integer.toString(type), name};
try (
@@ -127,7 +127,7 @@ public class MediaQualityService extends SystemService {
}
}
- private String bundleToJson(Bundle bundle) {
+ private String bundleToJson(PersistableBundle bundle) {
JSONObject jsonObject = new JSONObject();
if (bundle == null) {
return jsonObject.toString();
@@ -142,9 +142,9 @@ public class MediaQualityService extends SystemService {
return jsonObject.toString();
}
- private Bundle jsonToBundle(String jsonString) {
+ private PersistableBundle jsonToBundle(String jsonString) {
JSONObject jsonObject = null;
- Bundle bundle = new Bundle();
+ PersistableBundle bundle = new PersistableBundle();
try {
jsonObject = new JSONObject(jsonString);
@@ -175,26 +175,26 @@ public class MediaQualityService extends SystemService {
private String[] getAllPictureProfileColumns() {
return new String[]{
- PictureQuality.PARAMETER_ID,
- PictureQuality.PARAMETER_TYPE,
- PictureQuality.PARAMETER_NAME,
- PictureQuality.PARAMETER_INPUT_ID,
- PictureQuality.PARAMETER_PACKAGE,
+ MediaQualityContract.BaseParameters.PARAMETER_ID,
+ MediaQualityContract.BaseParameters.PARAMETER_TYPE,
+ MediaQualityContract.BaseParameters.PARAMETER_NAME,
+ MediaQualityContract.BaseParameters.PARAMETER_INPUT_ID,
+ MediaQualityContract.BaseParameters.PARAMETER_PACKAGE,
mMediaQualityDbHelper.SETTINGS
};
}
private PictureProfile getPictureProfileFromCursor(Cursor cursor) {
- String returnId = cursor.getString(
- cursor.getColumnIndexOrThrow(PictureQuality.PARAMETER_ID));
- int type = cursor.getInt(
- cursor.getColumnIndexOrThrow(PictureQuality.PARAMETER_TYPE));
- String name = cursor.getString(
- cursor.getColumnIndexOrThrow(PictureQuality.PARAMETER_NAME));
- String inputId = cursor.getString(
- cursor.getColumnIndexOrThrow(PictureQuality.PARAMETER_INPUT_ID));
- String packageName = cursor.getString(
- cursor.getColumnIndexOrThrow(PictureQuality.PARAMETER_PACKAGE));
+ String returnId = cursor.getString(cursor.getColumnIndexOrThrow(
+ MediaQualityContract.BaseParameters.PARAMETER_ID));
+ int type = cursor.getInt(cursor.getColumnIndexOrThrow(
+ MediaQualityContract.BaseParameters.PARAMETER_TYPE));
+ String name = cursor.getString(cursor.getColumnIndexOrThrow(
+ MediaQualityContract.BaseParameters.PARAMETER_NAME));
+ String inputId = cursor.getString(cursor.getColumnIndexOrThrow(
+ MediaQualityContract.BaseParameters.PARAMETER_INPUT_ID));
+ String packageName = cursor.getString(cursor.getColumnIndexOrThrow(
+ MediaQualityContract.BaseParameters.PARAMETER_PACKAGE));
String settings = cursor.getString(
cursor.getColumnIndexOrThrow(mMediaQualityDbHelper.SETTINGS));
return new PictureProfile(returnId, type, name, inputId,
@@ -203,7 +203,7 @@ public class MediaQualityService extends SystemService {
@Override
public List<PictureProfile> getPictureProfilesByPackage(String packageName) {
- String selection = PictureQuality.PARAMETER_PACKAGE + " = ?";
+ String selection = MediaQualityContract.BaseParameters.PARAMETER_PACKAGE + " = ?";
String[] selectionArguments = {packageName};
return getPictureProfilesBasedOnConditions(getAllPictureProfileColumns(), selection,
selectionArguments);
@@ -216,7 +216,7 @@ public class MediaQualityService extends SystemService {
@Override
public List<String> getPictureProfilePackageNames() {
- String [] column = {PictureQuality.PARAMETER_NAME};
+ String [] column = {MediaQualityContract.BaseParameters.PARAMETER_NAME};
List<PictureProfile> pictureProfiles = getPictureProfilesBasedOnConditions(column,
null, null);
List<String> packageNames = new ArrayList<>();