From 51216abb6bfd90ff2a7494b837e2ce0056a2f5d5 Mon Sep 17 00:00:00 2001
From: doc HD <doc.divxm@gmail.com>
Date: Fri, 03 Jan 2020 15:45:23 +0300
Subject: [PATCH] base: fixes for Torch


Change-Id: Ia4f241f357de372257b869451eb8931fe227891e
---

diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index af911fb..61020cd 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -1974,8 +1974,6 @@
         });
 
         mHandler = new PolicyHandler();
-        mCameraManager = (CameraManager) mContext.getSystemService(Context.CAMERA_SERVICE);
-        mCameraManager.registerTorchCallback(new TorchModeCallback(), mHandler);
         mWakeGestureListener = new MyWakeGestureListener(mContext, mHandler);
         // only for hwkey devices
         if (!mContext.getResources().getBoolean(
@@ -1984,6 +1982,11 @@
         }
         mSettingsObserver = new SettingsObserver(mHandler);
         mSettingsObserver.observe();
+
+        mAlarmManager = mContext.getSystemService(AlarmManager.class);
+        mCameraManager = (CameraManager) mContext.getSystemService(Context.CAMERA_SERVICE);
+        mCameraManager.registerTorchCallback(new TorchModeCallback(), mHandler);
+
         mShortcutManager = new ShortcutManager(context);
         mUiMode = context.getResources().getInteger(
                 com.android.internal.R.integer.config_defaultUiModeType);
@@ -6371,10 +6374,12 @@
         if (mRearFlashCameraId != null) return mRearFlashCameraId;
         for (final String id : mCameraManager.getCameraIdList()) {
             CameraCharacteristics c = mCameraManager.getCameraCharacteristics(id);
-            boolean flashAvailable = c.get(CameraCharacteristics.FLASH_INFO_AVAILABLE);
-            int lensDirection = c.get(CameraCharacteristics.LENS_FACING);
-            if (flashAvailable && lensDirection == CameraCharacteristics.LENS_FACING_BACK) {
+            Boolean flashAvailable = c.get(CameraCharacteristics.FLASH_INFO_AVAILABLE);
+            Integer lensFacing = c.get(CameraCharacteristics.LENS_FACING);
+            if (flashAvailable != null && flashAvailable
+                    && lensFacing != null && lensFacing == CameraCharacteristics.LENS_FACING_BACK) {
                 mRearFlashCameraId = id;
+                break;
             }
         }
         return mRearFlashCameraId;
