Merge "QS: Fix missing flashlight tile" into nyc-mr1-dev

This commit is contained in:
TreeHugger Robot
2016-07-20 15:51:11 +00:00
committed by Android (Google) Code Review

View File

@@ -17,6 +17,7 @@
package com.android.systemui.statusbar.policy;
import android.content.Context;
import android.content.pm.PackageManager;
import android.hardware.camera2.CameraAccessException;
import android.hardware.camera2.CameraCharacteristics;
import android.hardware.camera2.CameraManager;
@@ -42,6 +43,7 @@ public class FlashlightController {
private static final int DISPATCH_AVAILABILITY_CHANGED = 2;
private final CameraManager mCameraManager;
private final Context mContext;
/** Call {@link #ensureHandler()} before using */
private Handler mHandler;
@@ -51,20 +53,22 @@ public class FlashlightController {
/** Lock on {@code this} when accessing */
private boolean mFlashlightEnabled;
private final String mCameraId;
private String mCameraId;
private boolean mTorchAvailable;
public FlashlightController(Context mContext) {
public FlashlightController(Context context) {
mContext = context;
mCameraManager = (CameraManager) mContext.getSystemService(Context.CAMERA_SERVICE);
String cameraId = null;
tryInitCamera();
}
private void tryInitCamera() {
try {
cameraId = getCameraId();
mCameraId = getCameraId();
} catch (Throwable e) {
Log.e(TAG, "Couldn't initialize.", e);
return;
} finally {
mCameraId = cameraId;
}
if (mCameraId != null) {
@@ -94,7 +98,7 @@ public class FlashlightController {
}
public boolean hasFlashlight() {
return mCameraId != null;
return mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
}
public synchronized boolean isEnabled() {
@@ -107,6 +111,9 @@ public class FlashlightController {
public void addListener(FlashlightListener l) {
synchronized (mListeners) {
if (mCameraId == null) {
tryInitCamera();
}
cleanUpListenersLocked(l);
mListeners.add(new WeakReference<>(l));
}