Revert "[MQ] Add implementation for ambient light"

This reverts commit 9a3a2d3180c414a7236cdddccb9a026da2c0b935.

Reason for revert: Droidmonitor created revert due to b/379354410. Will be verifying through ABTD before submission.

Change-Id: I5b377604dc67b125cdb469b3e1825cd56f70f9a9
diff --git a/media/java/android/media/quality/IMediaQualityManager.aidl b/media/java/android/media/quality/IMediaQualityManager.aidl
index 7ff0ff4..aaedf21 100644
--- a/media/java/android/media/quality/IMediaQualityManager.aidl
+++ b/media/java/android/media/quality/IMediaQualityManager.aidl
@@ -53,8 +53,6 @@
     void registerSoundProfileCallback(in ISoundProfileCallback cb);
     void registerAmbientBacklightCallback(in IAmbientBacklightCallback cb);
 
-    void unregisterAmbientBacklightCallback(in IAmbientBacklightCallback cb);
-
     List<ParamCapability> getParamCapabilities(in List<String> names);
 
     boolean isSupported();
diff --git a/services/core/Android.bp b/services/core/Android.bp
index b13277e..aea16b0 100644
--- a/services/core/Android.bp
+++ b/services/core/Android.bp
@@ -131,7 +131,6 @@
     srcs: [
         ":android.hardware.tv.hdmi.connection-V1-java-source",
         ":android.hardware.tv.hdmi.earc-V1-java-source",
-        ":android.hardware.tv.mediaquality-V1-java-source",
         ":statslog-art-java-gen",
         ":statslog-contexthub-java-gen",
         ":services.core-aidl-sources",
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 aa0da5d..1f8a200 100644
--- a/services/core/java/com/android/server/media/quality/MediaQualityService.java
+++ b/services/core/java/com/android/server/media/quality/MediaQualityService.java
@@ -16,17 +16,8 @@
 
 package com.android.server.media.quality;
 
-import static android.media.quality.AmbientBacklightEvent.AMBIENT_BACKLIGHT_EVENT_ENABLED;
-import static android.media.quality.AmbientBacklightEvent.AMBIENT_BACKLIGHT_EVENT_DISABLED;
-import static android.media.quality.AmbientBacklightEvent.AMBIENT_BACKLIGHT_EVENT_METADATA;
-import static android.media.quality.AmbientBacklightEvent.AMBIENT_BACKLIGHT_EVENT_INTERRUPTED;
-
-import android.annotation.NonNull;
 import android.content.ContentValues;
 import android.content.Context;
-import android.hardware.tv.mediaquality.IMediaQuality;
-import android.media.quality.AmbientBacklightEvent;
-import android.media.quality.AmbientBacklightMetadata;
 import android.database.Cursor;
 import android.database.sqlite.SQLiteDatabase;
 import android.media.quality.AmbientBacklightSettings;
@@ -38,27 +29,17 @@
 import android.media.quality.ParamCapability;
 import android.media.quality.PictureProfile;
 import android.media.quality.SoundProfile;
-import android.os.Binder;
-import android.os.IBinder;
-import android.os.RemoteException;
-import android.os.ServiceManager;
-import android.text.TextUtils;
-import android.util.Slog;
 import android.os.Bundle;
 import android.util.Log;
 
 import com.android.server.SystemService;
-import com.android.server.utils.Slogf;
 
 import org.json.JSONException;
 import org.json.JSONObject;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
-import java.util.NoSuchElementException;
 import java.util.Locale;
 
 /**
@@ -70,16 +51,11 @@
     private static final boolean DEBUG = false;
     private static final String TAG = "MediaQualityService";
     private final Context mContext;
-    private IMediaQuality mMediaQuality;
-    private final Object mLock = new Object();
-    private final HalAmbientBacklightCallback mHalAmbientBacklightCallback;
-    private final Map<String, AmbientBacklightCallbackRecord> mCallbackRecords = new HashMap<>();
     private final MediaQualityDbHelper mMediaQualityDbHelper;
 
     public MediaQualityService(Context context) {
         super(context);
         mContext = context;
-        mHalAmbientBacklightCallback = new HalAmbientBacklightCallback();
         mMediaQualityDbHelper = new MediaQualityDbHelper(mContext);
         mMediaQualityDbHelper.setWriteAheadLoggingEnabled(true);
         mMediaQualityDbHelper.setIdleConnectionTimeout(30);
@@ -87,18 +63,6 @@
 
     @Override
     public void onStart() {
-        IBinder binder = ServiceManager.getService(IMediaQuality.DESCRIPTOR + "/default");
-        if (binder != null) {
-            Slogf.d(TAG, "binder is not null");
-            mMediaQuality = IMediaQuality.Stub.asInterface(binder);
-            if (mMediaQuality != null) {
-                try {
-                    mMediaQuality.setCallback(mHalAmbientBacklightCallback);
-                } catch (RemoteException e) {
-                    Slog.e(TAG, "Failed to set ambient backlight detector callback", e);
-                }
-            }
-        }
         publishBinderService(Context.MEDIA_QUALITY_SERVICE, new BinderService());
     }
 
@@ -324,89 +288,14 @@
 
         @Override
         public void registerAmbientBacklightCallback(IAmbientBacklightCallback callback) {
-            if (DEBUG) {
-                Slogf.d(TAG, "registerAmbientBacklightCallback");
-            }
-
-            String callingPackageName = getCallingPackageName();
-
-            synchronized (mCallbackRecords) {
-                AmbientBacklightCallbackRecord record = mCallbackRecords.get(callingPackageName);
-                if (record != null) {
-                    if (record.mCallback.asBinder().equals(callback.asBinder())) {
-                        Slog.w(TAG, "AmbientBacklight Callback already registered");
-                        return;
-                    }
-                    record.release();
-                    mCallbackRecords.remove(callingPackageName);
-                }
-                mCallbackRecords.put(callingPackageName,
-                        new AmbientBacklightCallbackRecord(callingPackageName, callback));
-            }
-        }
-
-        @Override
-        public void unregisterAmbientBacklightCallback(IAmbientBacklightCallback callback) {
-            if (DEBUG) {
-                Slogf.d(TAG, "unregisterAmbientBacklightCallback");
-            }
-
-            synchronized (mCallbackRecords) {
-                for (AmbientBacklightCallbackRecord record : mCallbackRecords.values()) {
-                    if (record.mCallback.asBinder().equals(callback.asBinder())) {
-                        record.release();
-                        mCallbackRecords.remove(record.mPackageName);
-                        return;
-                    }
-                }
-            }
         }
 
         @Override
         public void setAmbientBacklightSettings(AmbientBacklightSettings settings) {
-            if (DEBUG) {
-                Slogf.d(TAG, "setAmbientBacklightSettings " + settings);
-            }
-
-            try {
-                if (mMediaQuality != null) {
-                    android.hardware.tv.mediaquality.AmbientBacklightSettings halSettings =
-                            new android.hardware.tv.mediaquality.AmbientBacklightSettings();
-                    halSettings.packageName = getCallingPackageName();
-                    halSettings.source = (byte) settings.getSource();
-                    halSettings.maxFramerate = settings.getMaxFps();
-                    halSettings.colorFormat = (byte) settings.getColorFormat();
-                    halSettings.hZonesNumber = settings.getHorizontalZonesNumber();
-                    halSettings.vZonesNumber = settings.getVerticalZonesNumber();
-                    halSettings.hasLetterbox = settings.isLetterboxOmitted();
-                    halSettings.threshold = settings.getThreshold();
-
-                    mMediaQuality.setAmbientBacklightDetector(halSettings);
-
-                    mHalAmbientBacklightCallback.setAmbientBacklightClientPackageName(
-                            getCallingPackageName());
-
-                    if (DEBUG) {
-                        Slogf.d(TAG, "set ambient settings package: " + halSettings.packageName);
-                    }
-                }
-            } catch (RemoteException e) {
-                Slog.e(TAG, "Failed to set ambient backlight settings", e);
-            }
         }
 
         @Override
         public void setAmbientBacklightEnabled(boolean enabled) {
-            if (DEBUG) {
-                Slogf.d(TAG, "setAmbientBacklightEnabled " + enabled);
-            }
-            try {
-                if (mMediaQuality != null) {
-                    mMediaQuality.setAmbientBacklightDetectionEnabled(enabled);
-                }
-            } catch (RemoteException e) {
-                Slog.e(TAG, "Failed to set ambient backlight enabled", e);
-            }
         }
 
         @Override
@@ -464,168 +353,4 @@
             return false;
         }
     }
-
-    private final class AmbientBacklightCallbackRecord implements IBinder.DeathRecipient {
-        final String mPackageName;
-        final IAmbientBacklightCallback mCallback;
-
-        AmbientBacklightCallbackRecord(@NonNull String pkgName,
-                @NonNull IAmbientBacklightCallback cb) {
-            mPackageName = pkgName;
-            mCallback = cb;
-            try {
-                mCallback.asBinder().linkToDeath(this, 0);
-            } catch (RemoteException e) {
-                Slog.e(TAG, "Failed to link to death", e);
-            }
-        }
-
-        void release() {
-            try {
-                mCallback.asBinder().unlinkToDeath(this, 0);
-            } catch (NoSuchElementException e) {
-                Slog.e(TAG, "Failed to unlink to death", e);
-            }
-        }
-
-        @Override
-        public void binderDied() {
-            synchronized (mCallbackRecords) {
-                mCallbackRecords.remove(mPackageName);
-            }
-        }
-    }
-
-    private final class HalAmbientBacklightCallback
-            extends android.hardware.tv.mediaquality.IMediaQualityCallback.Stub {
-        private final Object mLock = new Object();
-        private String mAmbientBacklightClientPackageName;
-
-        void setAmbientBacklightClientPackageName(@NonNull String packageName) {
-            synchronized (mLock) {
-                if (TextUtils.equals(mAmbientBacklightClientPackageName, packageName)) {
-                    return;
-                }
-                handleAmbientBacklightInterrupted();
-                mAmbientBacklightClientPackageName = packageName;
-            }
-        }
-
-        void handleAmbientBacklightInterrupted() {
-            synchronized (mCallbackRecords) {
-                if (mAmbientBacklightClientPackageName == null) {
-                    Slog.e(TAG, "Invalid package name in interrupted event");
-                    return;
-                }
-                AmbientBacklightCallbackRecord record = mCallbackRecords.get(
-                        mAmbientBacklightClientPackageName);
-                if (record == null) {
-                    Slog.e(TAG, "Callback record not found for ambient backlight");
-                    return;
-                }
-                AmbientBacklightEvent event =
-                        new AmbientBacklightEvent(
-                                AMBIENT_BACKLIGHT_EVENT_INTERRUPTED, null);
-                try {
-                    record.mCallback.onAmbientBacklightEvent(event);
-                } catch (RemoteException e) {
-                    Slog.e(TAG, "Deliver ambient backlight interrupted event failed", e);
-                }
-            }
-        }
-
-        void handleAmbientBacklightEnabled(boolean enabled) {
-            AmbientBacklightEvent event =
-                    new AmbientBacklightEvent(
-                            enabled ? AMBIENT_BACKLIGHT_EVENT_ENABLED :
-                                    AMBIENT_BACKLIGHT_EVENT_DISABLED, null);
-            synchronized (mCallbackRecords) {
-                for (AmbientBacklightCallbackRecord record : mCallbackRecords.values()) {
-                    try {
-                        record.mCallback.onAmbientBacklightEvent(event);
-                    } catch (RemoteException e) {
-                        Slog.e(TAG, "Deliver ambient backlight enabled event failed", e);
-                    }
-                }
-            }
-        }
-
-        void handleAmbientBacklightMetadataEvent(
-                @NonNull android.hardware.tv.mediaquality.AmbientBacklightMetadata
-                        halMetadata) {
-            if (!TextUtils.equals(mAmbientBacklightClientPackageName,
-                    halMetadata.settings.packageName)) {
-                Slog.e(TAG, "Invalid package name in metadata event");
-                return;
-            }
-
-            AmbientBacklightMetadata metadata =
-                    new AmbientBacklightMetadata(
-                            halMetadata.settings.packageName,
-                            halMetadata.compressAlgorithm,
-                            halMetadata.settings.source,
-                            halMetadata.settings.colorFormat,
-                            halMetadata.settings.hZonesNumber,
-                            halMetadata.settings.vZonesNumber,
-                            halMetadata.zonesColors);
-            AmbientBacklightEvent event =
-                    new AmbientBacklightEvent(
-                            AMBIENT_BACKLIGHT_EVENT_METADATA, metadata);
-
-            synchronized (mCallbackRecords) {
-                AmbientBacklightCallbackRecord record = mCallbackRecords
-                                                .get(halMetadata.settings.packageName);
-                if (record == null) {
-                    Slog.e(TAG, "Callback record not found for ambient backlight metadata");
-                    return;
-                }
-
-                try {
-                    record.mCallback.onAmbientBacklightEvent(event);
-                } catch (RemoteException e) {
-                    Slog.e(TAG, "Deliver ambient backlight metadata event failed", e);
-                }
-            }
-        }
-
-        @Override
-        public void notifyAmbientBacklightEvent(
-                android.hardware.tv.mediaquality.AmbientBacklightEvent halEvent) {
-            synchronized (mLock) {
-                if (halEvent.getTag() == android.hardware.tv.mediaquality
-                                .AmbientBacklightEvent.Tag.enabled) {
-                    boolean enabled = halEvent.getEnabled();
-                    if (enabled) {
-                        handleAmbientBacklightEnabled(true);
-                    } else {
-                        handleAmbientBacklightEnabled(false);
-                    }
-                } else if (halEvent.getTag() == android.hardware.tv.mediaquality
-                                    .AmbientBacklightEvent.Tag.metadata) {
-                    handleAmbientBacklightMetadataEvent(halEvent.getMetadata());
-                } else {
-                    Slog.e(TAG, "Invalid event type in ambient backlight event");
-                }
-            }
-        }
-
-        @Override
-        public synchronized String getInterfaceHash() throws android.os.RemoteException {
-            return android.hardware.tv.mediaquality.IMediaQualityCallback.Stub.HASH;
-        }
-
-        @Override
-        public int getInterfaceVersion() throws android.os.RemoteException {
-            return android.hardware.tv.mediaquality.IMediaQualityCallback.Stub.VERSION;
-        }
-    }
-
-    private String getCallingPackageName() {
-        final String[] packages = mContext.getPackageManager().getPackagesForUid(
-                Binder.getCallingUid());
-        if (packages != null && packages.length > 0) {
-            return packages[0];
-        }
-        return "unknown";
-    }
 }