Merge "QS: Fix missing flashlight tile" into nyc-mr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
761d89ef4e
@@ -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));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user