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

Commit dd852f99 authored by Preethi Kandhalu's avatar Preethi Kandhalu
Browse files

[MediaQuality] Adding CreateSoundProfile and RemoveSoundProfile APIs

Test: cts and logs
Flag: android.media.tv.flags.media_quality_fw
Bug: 378708165

Change-Id: I66a155f3129666924d5c1c449da1cea399e56fe1
parent 222750e7
Loading
Loading
Loading
Loading
+38 −24
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ 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;
import android.media.quality.MediaQualityContract.BaseParameters;
import android.media.quality.ParamCapability;
import android.media.quality.PictureProfile;
import android.media.quality.PictureProfileHandle;
@@ -75,10 +75,10 @@ public class MediaQualityService extends SystemService {
            SQLiteDatabase db = mMediaQualityDbHelper.getWritableDatabase();

            ContentValues values = new ContentValues();
            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(BaseParameters.PARAMETER_TYPE, pp.getProfileType());
            values.put(BaseParameters.PARAMETER_NAME, pp.getName());
            values.put(BaseParameters.PARAMETER_PACKAGE, pp.getPackageName());
            values.put(BaseParameters.PARAMETER_INPUT_ID, pp.getInputId());
            values.put(mMediaQualityDbHelper.SETTINGS, bundleToJson(pp.getParameters()));

            // id is auto-generated by SQLite upon successful insertion of row
@@ -99,8 +99,8 @@ public class MediaQualityService extends SystemService {
        public PictureProfile getPictureProfile(int type, String name) {
            SQLiteDatabase db = mMediaQualityDbHelper.getReadableDatabase();

            String selection = MediaQualityContract.BaseParameters.PARAMETER_TYPE + " = ? AND "
                    + MediaQualityContract.BaseParameters.PARAMETER_NAME + " = ?";
            String selection = BaseParameters.PARAMETER_TYPE + " = ? AND "
                    + BaseParameters.PARAMETER_NAME + " = ?";
            String[] selectionArguments = {Integer.toString(type), name};

            try (
@@ -176,26 +176,26 @@ public class MediaQualityService extends SystemService {

        private String[] getAllPictureProfileColumns() {
            return new String[]{
                    MediaQualityContract.BaseParameters.PARAMETER_ID,
                    MediaQualityContract.BaseParameters.PARAMETER_TYPE,
                    MediaQualityContract.BaseParameters.PARAMETER_NAME,
                    MediaQualityContract.BaseParameters.PARAMETER_INPUT_ID,
                    MediaQualityContract.BaseParameters.PARAMETER_PACKAGE,
                    BaseParameters.PARAMETER_ID,
                    BaseParameters.PARAMETER_TYPE,
                    BaseParameters.PARAMETER_NAME,
                    BaseParameters.PARAMETER_INPUT_ID,
                    BaseParameters.PARAMETER_PACKAGE,
                    mMediaQualityDbHelper.SETTINGS
            };
        }

        private PictureProfile getPictureProfileFromCursor(Cursor cursor) {
            String returnId = cursor.getString(cursor.getColumnIndexOrThrow(
                    MediaQualityContract.BaseParameters.PARAMETER_ID));
                    BaseParameters.PARAMETER_ID));
            int type = cursor.getInt(cursor.getColumnIndexOrThrow(
                    MediaQualityContract.BaseParameters.PARAMETER_TYPE));
                    BaseParameters.PARAMETER_TYPE));
            String name = cursor.getString(cursor.getColumnIndexOrThrow(
                    MediaQualityContract.BaseParameters.PARAMETER_NAME));
                    BaseParameters.PARAMETER_NAME));
            String inputId = cursor.getString(cursor.getColumnIndexOrThrow(
                    MediaQualityContract.BaseParameters.PARAMETER_INPUT_ID));
                    BaseParameters.PARAMETER_INPUT_ID));
            String packageName = cursor.getString(cursor.getColumnIndexOrThrow(
                    MediaQualityContract.BaseParameters.PARAMETER_PACKAGE));
                    BaseParameters.PARAMETER_PACKAGE));
            String settings = cursor.getString(
                    cursor.getColumnIndexOrThrow(mMediaQualityDbHelper.SETTINGS));
            return new PictureProfile(returnId, type, name, inputId,
@@ -204,7 +204,7 @@ public class MediaQualityService extends SystemService {

        @Override
        public List<PictureProfile> getPictureProfilesByPackage(String packageName) {
            String selection = MediaQualityContract.BaseParameters.PARAMETER_PACKAGE + " = ?";
            String selection = BaseParameters.PARAMETER_PACKAGE + " = ?";
            String[] selectionArguments = {packageName};
            return getPictureProfilesBasedOnConditions(getAllPictureProfileColumns(), selection,
                    selectionArguments);
@@ -217,7 +217,7 @@ public class MediaQualityService extends SystemService {

        @Override
        public List<String> getPictureProfilePackageNames() {
            String [] column = {MediaQualityContract.BaseParameters.PARAMETER_NAME};
            String [] column = {BaseParameters.PARAMETER_NAME};
            List<PictureProfile> pictureProfiles = getPictureProfilesBasedOnConditions(column,
                    null, null);
            List<String> packageNames = new ArrayList<>();
@@ -255,18 +255,32 @@ public class MediaQualityService extends SystemService {
        }

        @Override
        public SoundProfile createSoundProfile(SoundProfile pp) {
            // TODO: implement
            return pp;
        public SoundProfile createSoundProfile(SoundProfile sp) {
            SQLiteDatabase db = mMediaQualityDbHelper.getWritableDatabase();

            ContentValues values = new ContentValues();
            values.put(BaseParameters.PARAMETER_NAME, sp.getName());
            values.put(BaseParameters.PARAMETER_PACKAGE, sp.getPackageName());
            values.put(BaseParameters.PARAMETER_INPUT_ID, sp.getInputId());
            values.put(mMediaQualityDbHelper.SETTINGS, bundleToJson(sp.getParameters()));

            long id = db.insert(mMediaQualityDbHelper.SOUND_QUALITY_TABLE_NAME, null, values);
            return new SoundProfile.Builder(sp).setProfileId(Long.toString(id)).build();
        }

        @Override
        public void updateSoundProfile(String id, SoundProfile pp) {
        public void updateSoundProfile(String id, SoundProfile sp) {
            // TODO: implement
        }

        @Override
        public void removeSoundProfile(String id) {
            // TODO: implement
            SQLiteDatabase db = mMediaQualityDbHelper.getWritableDatabase();
            String selection = BaseParameters.PARAMETER_ID + " = ?";
            String[] selectionArgs = {id};
            db.delete(mMediaQualityDbHelper.SOUND_QUALITY_TABLE_NAME, selection, selectionArgs);
        }

        @Override
        public SoundProfile getSoundProfile(int type, String id) {
            return null;