Revert "Add device state Hal service"

Revert submission 30266203-device state hal service

Reason for revert: DroidMonitor created revert due to b/381006458. Will be verified through ABTD for standard investigation.

Reverted changes: /q/submissionid:30266203-device+state+hal+service

Change-Id: I4abf46bf7865bcd0b189b55f43c165732956712d
diff --git a/services/core/Android.bp b/services/core/Android.bp
index d2b8bda..aea16b0 100644
--- a/services/core/Android.bp
+++ b/services/core/Android.bp
@@ -178,7 +178,6 @@
 
     static_libs: [
         "android.frameworks.vibrator-V1-java", // AIDL
-        "android.frameworks.devicestate-V1-java", // AIDL
         "android.hardware.authsecret-V1.0-java",
         "android.hardware.authsecret-V1-java",
         "android.hardware.boot-V1.0-java", // HIDL
diff --git a/services/core/java/com/android/server/devicestate/DeviceStateManagerService.java b/services/core/java/com/android/server/devicestate/DeviceStateManagerService.java
index 2513443..8b9c664 100644
--- a/services/core/java/com/android/server/devicestate/DeviceStateManagerService.java
+++ b/services/core/java/com/android/server/devicestate/DeviceStateManagerService.java
@@ -19,16 +19,7 @@
 import static android.Manifest.permission.CONTROL_DEVICE_STATE;
 import static android.app.ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND;
 import static android.content.pm.PackageManager.PERMISSION_GRANTED;
-import static android.frameworks.devicestate.DeviceStateConfiguration.DeviceStatePropertyValue.FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_CLOSED;
-import static android.frameworks.devicestate.DeviceStateConfiguration.DeviceStatePropertyValue.FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_HALF_OPEN;
-import static android.frameworks.devicestate.DeviceStateConfiguration.DeviceStatePropertyValue.FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_OPEN;
-import static android.frameworks.devicestate.DeviceStateConfiguration.DeviceStatePropertyValue.FEATURE_DUAL_DISPLAY;
-import static android.frameworks.devicestate.DeviceStateConfiguration.DeviceStatePropertyValue.FEATURE_REAR_DISPLAY;
-import static android.frameworks.devicestate.DeviceStateConfiguration.DeviceStatePropertyValue.FOLDABLE_DISPLAY_CONFIGURATION_INNER_PRIMARY;
-import static android.frameworks.devicestate.DeviceStateConfiguration.DeviceStatePropertyValue.FOLDABLE_DISPLAY_CONFIGURATION_OUTER_PRIMARY;
-import static android.hardware.devicestate.DeviceState.PROPERTY_FEATURE_DUAL_DISPLAY_INTERNAL_DEFAULT;
 import static android.hardware.devicestate.DeviceState.PROPERTY_FEATURE_REAR_DISPLAY;
-import static android.hardware.devicestate.DeviceState.PROPERTY_FOLDABLE_DISPLAY_CONFIGURATION_INNER_PRIMARY;
 import static android.hardware.devicestate.DeviceState.PROPERTY_FOLDABLE_DISPLAY_CONFIGURATION_OUTER_PRIMARY;
 import static android.hardware.devicestate.DeviceState.PROPERTY_POLICY_AVAILABLE_FOR_APP_REQUEST;
 import static android.hardware.devicestate.DeviceState.PROPERTY_POLICY_CANCEL_OVERRIDE_REQUESTS;
@@ -53,10 +44,6 @@
 import android.app.ActivityManagerInternal;
 import android.app.IProcessObserver;
 import android.content.Context;
-import android.frameworks.devicestate.DeviceStateConfiguration;
-import android.frameworks.devicestate.ErrorCode;
-import android.frameworks.devicestate.IDeviceStateListener;
-import android.frameworks.devicestate.IDeviceStateService;
 import android.hardware.devicestate.DeviceState;
 import android.hardware.devicestate.DeviceStateInfo;
 import android.hardware.devicestate.DeviceStateManager;
@@ -69,12 +56,9 @@
 import android.os.IBinder;
 import android.os.RemoteException;
 import android.os.ResultReceiver;
-import android.os.ServiceManager;
-import android.os.ServiceSpecificException;
 import android.os.ShellCallback;
 import android.os.SystemProperties;
 import android.os.Trace;
-import android.util.LongSparseLongArray;
 import android.util.Slog;
 import android.util.SparseArray;
 
@@ -98,7 +82,6 @@
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
-import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
 import java.util.WeakHashMap;
@@ -147,8 +130,6 @@
     @NonNull
     private final BinderService mBinderService;
     @NonNull
-    private final HalService mHalService;
-    @NonNull
     private final OverrideRequestController mOverrideRequestController;
     @NonNull
     private final DeviceStateProviderListener mDeviceStateProviderListener;
@@ -158,7 +139,7 @@
 
     // All supported device states keyed by identifier.
     @GuardedBy("mLock")
-    private final SparseArray<DeviceState> mDeviceStates = new SparseArray<>();
+    private SparseArray<DeviceState> mDeviceStates = new SparseArray<>();
 
     // The current committed device state. Will be empty until the first device state provided by
     // the DeviceStateProvider is committed.
@@ -196,7 +177,7 @@
     @GuardedBy("mLock")
     private final SparseArray<ProcessRecord> mProcessRecords = new SparseArray<>();
 
-    private final Set<Integer> mDeviceStatesAvailableForAppRequests = new HashSet<>();
+    private Set<Integer> mDeviceStatesAvailableForAppRequests = new HashSet<>();
 
     private Set<Integer> mFoldedDeviceStates = new HashSet<>();
 
@@ -278,7 +259,6 @@
         mDeviceStateProviderListener = new DeviceStateProviderListener();
         mDeviceStatePolicy.getDeviceStateProvider().setListener(mDeviceStateProviderListener);
         mBinderService = new BinderService();
-        mHalService = new HalService();
         mActivityTaskManagerInternal = LocalServices.getService(ActivityTaskManagerInternal.class);
         mDeviceStateNotificationController = new DeviceStateNotificationController(
                 context, mHandler,
@@ -292,10 +272,6 @@
     @Override
     public void onStart() {
         publishBinderService(Context.DEVICE_STATE_SERVICE, mBinderService);
-        String halServiceName = IDeviceStateService.DESCRIPTOR + "/default";
-        if (ServiceManager.isDeclared(halServiceName)) {
-            publishBinderService(halServiceName, mHalService);
-        }
         publishLocalService(DeviceStateManagerInternal.class, new LocalService());
 
         if (!Flags.deviceStatePropertyMigration()) {
@@ -464,11 +440,6 @@
         return mBinderService;
     }
 
-    @VisibleForTesting
-    IDeviceStateService getHalBinderService() {
-        return mHalService;
-    }
-
     private void updateSupportedStates(DeviceState[] supportedDeviceStates,
             @DeviceStateProvider.SupportedStatesUpdatedReason int reason) {
         synchronized (mLock) {
@@ -1311,124 +1282,6 @@
         }
     }
 
-    private final class HalService extends IDeviceStateService.Stub {
-        private final LongSparseLongArray mPublicProperties = new LongSparseLongArray();
-        public HalService() {
-            mPublicProperties.put(
-                    DeviceState.PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_CLOSED,
-                    FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_CLOSED);
-            mPublicProperties.put(
-                    DeviceState.PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_HALF_OPEN,
-                    FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_HALF_OPEN);
-            mPublicProperties.put(
-                    DeviceState.PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_OPEN,
-                    FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_OPEN);
-            mPublicProperties.put(
-                    PROPERTY_FOLDABLE_DISPLAY_CONFIGURATION_OUTER_PRIMARY,
-                    FOLDABLE_DISPLAY_CONFIGURATION_OUTER_PRIMARY);
-            mPublicProperties.put(
-                    PROPERTY_FOLDABLE_DISPLAY_CONFIGURATION_INNER_PRIMARY,
-                    FOLDABLE_DISPLAY_CONFIGURATION_INNER_PRIMARY);
-            mPublicProperties.put(
-                    PROPERTY_FEATURE_REAR_DISPLAY,
-                    FEATURE_REAR_DISPLAY);
-            mPublicProperties.put(
-                    PROPERTY_FEATURE_DUAL_DISPLAY_INTERNAL_DEFAULT,
-                    FEATURE_DUAL_DISPLAY);
-        }
-
-        private final class HalBinderCallback implements IDeviceStateManagerCallback {
-            private final IDeviceStateListener mListener;
-
-            private HalBinderCallback(@NonNull IDeviceStateListener listener) {
-                mListener = listener;
-            }
-
-            @Override
-            public void onDeviceStateInfoChanged(DeviceStateInfo info) throws RemoteException {
-                DeviceStateConfiguration config = new DeviceStateConfiguration();
-                Set<Integer> systemProperties = new HashSet<>(
-                        info.currentState.getConfiguration().getSystemProperties());
-                Set<Integer> physicalProperties = new HashSet<>(
-                        info.currentState.getConfiguration().getPhysicalProperties());
-                config.deviceProperties = 0;
-                for (Integer prop : systemProperties) {
-                    Long publicProperty = mPublicProperties.get(prop);
-                    if (publicProperty != null) {
-                        config.deviceProperties |= publicProperty.longValue();
-                    }
-                }
-                for (Integer prop : physicalProperties) {
-                    Long publicProperty = mPublicProperties.get(prop);
-                    if (publicProperty != null) {
-                        config.deviceProperties |= publicProperty.longValue();
-                    }
-                }
-                mListener.onDeviceStateChanged(config);
-            }
-
-            @Override
-            public void onRequestActive(IBinder token) {
-                //No-op
-            }
-
-            @Override
-            public void onRequestCanceled(IBinder token) {
-                //No-op
-            }
-
-            @Override
-            public IBinder asBinder() {
-                return mListener.asBinder();
-            }
-        }
-
-        @Override
-        public void registerListener(IDeviceStateListener listener) throws RemoteException {
-            if (listener == null) {
-                throw new ServiceSpecificException(ErrorCode.BAD_INPUT);
-            }
-
-            final int callingPid = Binder.getCallingPid();
-            final long token = Binder.clearCallingIdentity();
-            try {
-                HalBinderCallback callback = new HalBinderCallback(listener);
-                DeviceStateInfo info = registerProcess(callingPid, callback);
-                if (info != null)  {
-                    callback.onDeviceStateInfoChanged(info);
-                }
-            } catch (SecurityException e) {
-                throw new ServiceSpecificException(ErrorCode.ALREADY_EXISTS);
-            } finally {
-                Binder.restoreCallingIdentity(token);
-            }
-        }
-
-        @Override
-        public void unregisterListener(IDeviceStateListener listener) throws RemoteException {
-            final int callingPid = Binder.getCallingPid();
-
-            synchronized (mLock) {
-                if (mProcessRecords.contains(callingPid)) {
-                    mProcessRecords.remove(callingPid);
-                    return;
-                }
-            }
-
-            throw new ServiceSpecificException(ErrorCode.BAD_INPUT);
-        }
-
-        @Override
-        public int getInterfaceVersion() throws RemoteException {
-            return IDeviceStateService.VERSION;
-        }
-
-        @Override
-        public String getInterfaceHash() throws RemoteException {
-            return IDeviceStateService.HASH;
-        }
-    }
-
     /** Implementation of {@link IDeviceStateManager} published as a binder service. */
     private final class BinderService extends IDeviceStateManager.Stub {
 
diff --git a/services/manifest_services.xml b/services/manifest_services.xml
index 9457205..114fe32 100644
--- a/services/manifest_services.xml
+++ b/services/manifest_services.xml
@@ -4,9 +4,4 @@
         <version>2</version>
         <fqname>IAltitudeService/default</fqname>
     </hal>
-    <hal format="aidl">
-        <name>android.frameworks.devicestate</name>
-        <version>1</version>
-        <fqname>IDeviceStateService/default</fqname>
-    </hal>
 </manifest>
diff --git a/services/tests/servicestests/src/com/android/server/devicestate/DeviceStateManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/devicestate/DeviceStateManagerServiceTest.java
index 5127b2d..ab5a5a9 100644
--- a/services/tests/servicestests/src/com/android/server/devicestate/DeviceStateManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/devicestate/DeviceStateManagerServiceTest.java
@@ -24,14 +24,9 @@
 
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
-import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertThrows;
 
 import android.content.Context;
-import android.frameworks.devicestate.DeviceStateConfiguration;
-import android.frameworks.devicestate.ErrorCode;
-import android.frameworks.devicestate.IDeviceStateListener;
-import android.frameworks.devicestate.IDeviceStateService;
 import android.hardware.devicestate.DeviceState;
 import android.hardware.devicestate.DeviceStateInfo;
 import android.hardware.devicestate.DeviceStateRequest;
@@ -39,7 +34,6 @@
 import android.os.Binder;
 import android.os.IBinder;
 import android.os.RemoteException;
-import android.os.ServiceSpecificException;
 import android.platform.test.annotations.Presubmit;
 import android.platform.test.flag.junit.FlagsParameterization;
 import android.platform.test.flag.junit.SetFlagsRule;
@@ -342,53 +336,6 @@
     }
 
     @Test
-    public void halRegisterUnregisterCallback() throws RemoteException {
-        IDeviceStateService halService = mService.getHalBinderService();
-        IDeviceStateListener halListener = new IDeviceStateListener.Stub() {
-            @Override
-            public void onDeviceStateChanged(DeviceStateConfiguration deviceState) { }
-
-            @Override
-            public int getInterfaceVersion() {
-                return IDeviceStateListener.VERSION;
-            }
-
-            @Override
-            public String getInterfaceHash() {
-                return IDeviceStateListener.HASH;
-            }
-        };
-
-        int errorCode = ErrorCode.OK;
-        try {
-            halService.unregisterListener(halListener);
-        } catch(ServiceSpecificException e) {
-            errorCode = e.errorCode;
-        }
-        assertEquals(errorCode, ErrorCode.BAD_INPUT);
-
-        errorCode = ErrorCode.OK;
-        try {
-            halService.unregisterListener(null);
-        } catch(ServiceSpecificException e) {
-            errorCode = e.errorCode;
-        }
-        assertEquals(errorCode, ErrorCode.BAD_INPUT);
-
-        halService.registerListener(halListener);
-
-        errorCode = ErrorCode.OK;
-        try {
-            halService.registerListener(halListener);
-        } catch (ServiceSpecificException e) {
-            errorCode = e.errorCode;
-        }
-        assertEquals(errorCode, ErrorCode.ALREADY_EXISTS);
-
-        halService.unregisterListener(halListener);
-    }
-
-    @Test
     public void registerCallback() throws RemoteException {
         final TestDeviceStateManagerCallback callback = new TestDeviceStateManagerCallback();
         mService.getBinderService().registerCallback(callback);