Camera: fix invalid torch flash status

If the camera is restricted by MDM, the Camera HAL is initialized and
then the connection is rejected by startCameraOps.
However, for some AP vendors, the Camera HAL will post a torch status
callback when the HAL is initialized but not when it is disconnected.

Under the above circumstances, FlashlightTile receives only
onTorchModeUnavailable callback and torch flash control is disabled
until the device is rebooted.

This patch addresses the issue by adjusting the order of startCameraOps.

Bug: 325562820
Test: Manual test with MDM policy applied

Change-Id: I47b59ac12fbd735fdfc1ba66cb34a77a7e2d4640
diff --git a/services/camera/libcameraservice/common/Camera2ClientBase.cpp b/services/camera/libcameraservice/common/Camera2ClientBase.cpp
index 43eb181..4a8d7a3 100644
--- a/services/camera/libcameraservice/common/Camera2ClientBase.cpp
+++ b/services/camera/libcameraservice/common/Camera2ClientBase.cpp
@@ -135,16 +135,17 @@
         return NO_INIT;
     }
 
+    // Verify ops permissions
+    res = TClientBase::startCameraOps();
+    if (res != OK) {
+        TClientBase::finishCameraOps();
+        return res;
+    }
+
     res = mDevice->initialize(providerPtr, monitorTags);
     if (res != OK) {
         ALOGE("%s: Camera %s: unable to initialize device: %s (%d)",
                 __FUNCTION__, TClientBase::mCameraIdStr.c_str(), strerror(-res), res);
-        return res;
-    }
-
-    // Verify ops permissions
-    res = TClientBase::startCameraOps();
-    if (res != OK) {
         TClientBase::finishCameraOps();
         return res;
     }