History log of /packages/apps/Camera2/src/com/android/camera/app/CameraController.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d46ac0034a0fe7b700c4f39499dd22c2c5da5300 11-May-2015 Paul Rohde <codelogic@google.com> Hide no active camera NPE by defaulting to camera device -1

NPE's can occur if no camera device is currently active. It's
not feasable to rewire all parts of the codebase for this
release to properly access the target camera device. This
fix may lead to inconsistent setting persistance if in places
where a NPE would otherwise occur.

Bug: 21026362

Change-Id: I76c5b5fab429f61238a1ba91c0c52e839a431573
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
1d84d7107686aa428ee2eeb1a8caf0ea3e43b1df 12-Mar-2015 Paul Rohde <codelogic@google.com> Re-arrange camera initialization.

This change re-arranges several things to make it possible to know
the CameraId you are about to open before you actually open the
camera device. It also adds an explicit CameraId class for handling
both legacy and camera2 id comparisons, an active camera tracker,
and moves the camera id query mechanism into a hardware manager
class in prep for the subsequent camera release.

Bug: 19679820

Change-Id: I4c09b9a12a1ea5badcac3a6a073a56764f9a7eba
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
8f51086c8177056345de996963515c4bd3415254 19-Feb-2015 Sascha Haeberling <haeberling@google.com> Centralize logic for Camera API feature determination.

Bug: 19179276

This captures camera capabilities in a centralized class and allows
them to be overridden by GServices in the field or using adb.

Since this is not it's own class it would be trivial to create another
instance for testing and pass that into CameraActivity or even to change
these values using a UI before the actual Activity is started.

Change-Id: I74262c8467f631c7b5e42b02d269d5f401d4e9e7
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
8be316c7a8caf962cf3fcf5e49d332fb2718319f 20-Jan-2015 Paul Rohde <codelogic@google.com> Make it possible for singletons that rely on application context to be
initalized lazily.

* Add AndroidContext
* Add AndroidServices
* Make LogHelper ues thread safe lazy initialization
* Convert several unused fields into local variables in CameraApp.

Change-Id: I9c73e9b91efb49a01d848a8cca1e8e65f059b5d0
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
662082d70ce8dc5f679a25322a00c2733f0339f2 12-Jan-2015 Alan Newberger <alann@google.com> Remove exception when releasing a requested, not yet opened camera

From monkey tests, we see a spike in an exception from new device
which is likely due to slow close performance. If we camera B is
open, and we request camera A, B will be closed then A opened. If
we release A during this process but B is not yet closed, don't
crash, just let the pending underlying open of A happen and release
the request. Preserve the exception for application errors where
truly unrequested cameras are released.

Bug: 17975345
Change-Id: I9aa3b0575e130f516cea6a3df120e4812df55bce
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
6a07363be15d11735b0b47059bf8d0e9998693ef 11-Oct-2014 Puneet Lall <puneetl@google.com> Always close the camera

Previous logic had a race condition in which the camera may not be
closed if it was in the process of being opened.

Bug: 17939709
Change-Id: Ife9d96b73dac17625b3344fcf8553d181a74024e
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
2a0e18e280dfe541d4740345511ad299099cda79 07-Oct-2014 Senpo Hu <senpo@google.com> Adopt the new error handling mechanism in portability.

Show camera fatal dialog to guide users exiting the app when
1) camera framework throws RTE or
2) DispatchThread job is timeout.

If users hit home button while error dialog is shown, just exit
the app.

Bug: 16189216
Change-Id: Ia0f1c64d452735ec62549f50ab62646d8d873c65
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
626e4272456e9478b59b503d6fbd56c8339e0cad 03-Oct-2014 Puneet Lall <puneetl@google.com> Close dangling camera proxy

Bug: 17677971
Change-Id: I2cf2df7a12a44b3f9f33d0d9eac479c5281da356
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
45f316bcecb8713cbb217507981fd657fcdaa274 11-Sep-2014 Alan Newberger <alann@google.com> Establish synchronous camera closing when app utilizes API1/API2

To ensure API1 and API2 portability implementations coordinate together,
if app uses API2 for any mode, lock both modes into synchronouse camera
closing.

Bug: 17464089
Change-Id: If4cf1eb02053ec9e56b7b8df97c21e012467aa3a
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
c91c8d273b8884468dfd66a5b82526dc8245934e 10-Sep-2014 Alan Newberger <alann@google.com> Remove jank on camera options switching

There are two main causes of jank on encountered on options switching:

1. When requesting camera in requestCamera, a portability refactor
introduced a regression where we blocked in the main thread to close
the camera. This main thread blockage is unacceptable as it caused a
preview freeze in addition to the freeze we were trying to create during
the switch, leading to a two-frame preview freeze.

2. The mode options animations which delay the button state transition,
also resulted in preview stutters. Unsure of cause but reverting first
and will assess fixes and reintroduce.

Bug: 17414652
Change-Id: Ib72e331f1bbb5d3b608d8bdc5656c2ff2836ed42
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
29a009c974f153f72cd5e28851a8cb85a691e215 05-Sep-2014 Alan Newberger <alann@google.com> Add additional lifecycle logging to Camera

To assist in diagnosing startup issues, added some logging.

Bug: 17397753
Change-Id: Icc47ec278c0b68c8834bfb52554425ff7f371ea0
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
395bc17b71d13d97b3fd9f258fcf4d5748e66e5e 21-Aug-2014 Sol Boucher <solb@google.com> TextureViewHelper workaround for SurfaceTexture/CameraProxy race

CameraController#getCurrentCameraId() now returns the ID of the requested camera
device if called after #requestCamera() but before the camera device has
finished opening. Assuming the most recent request is for the desired API level
and device, this resolves an issue where no transformation matrix was applied on
returning from the settings activity.

Bug: 17140996
Change-Id: Ideaec0072acd8aab77b98b213f260907f84270de
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
44ce4b26614f85518d548a6750c7a08908ae3596 05-Aug-2014 Sol Boucher <solb@google.com> Enable seamless switching to/from camera2-backed Photo module

This supports running individual modules against the camera2 API framework while
the rest of the modules use the legacy Camera class.

Bug: 16875535
Change-Id: Ic0ae313a3dd96ba22bacc36c7b1712b183b713ff
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
71ae986c611c49674d53af48e56da629de0ace93 18-Jul-2014 Sascha Haeberling <haeberling@google.com> resolved conflicts for merge of dcea7639 to ub-camera-glacier

Change-Id: I151b172d3e415a529375351ba8c038308e593cd5
dcea7639255d5bc4b17a5976bb84de1f6dba0ed1 17-Jul-2014 Sascha Haeberling <haeberling@google.com> Speed up lockscreen start-up time.

Bug: 16375664

- Avoid unnecessary camera open/close loop (~350ms)
- Don't load sounds and do other init work when not needed.

Change-Id: I5d297913dcbd3100034c3915119cc3c818f330d3
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
43e1813a5d4a59ef107768eb523d76ae2781cb02 20-Jun-2014 Sol Boucher <solb@google.com> Replace uses of CameraDevice#getCameraInfos() and CameraInfo

This API 1--specific portability library method has been removed. All
non-debugging direct uses of the Camera.CameraInfo class are also addressed by
this commit.

Change-Id: I551bb1476a26f79c101892336d0bf99e4fa823cc
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
6190c36db653e848f29d1caefc4fa1bb61e8a662 13-Jun-2014 Erin Dahlgren <edahlgren@google.com> New Settings API

Based on discussions from last week and comments on the design doc,
this api begins to implement the following:

1. Adds a "Scope" variable to api, which tells the SettingsManager
whether the setting can be stored globally (so that it is visible
to all parts of the app), or per-camera, or per-module, or per-
custom scope that the api user provides.
2. Separates keys and default values from SettingsManager,
to make it easy to add new settings/defaults from third party
modules.
3. Stores all settings as strings, to avoid upgrade errors, and
handles casting to type requested. Only String, Integer, and
boolean are supported.
4. Opens SharedPreferences files on demand, depending on scope
argument.
5. Creates a "DefaultsStore" to hold the defaults and possible
values of a setting. Then a user can request the default or
possible values of a setting at any time.

Change-Id: I03e0e1dd0955c519f54112e89716014aa963a425
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
5a344964cb003525727c31d295ca3a592c245606 17-Jun-2014 Sol Boucher <solb@google.com> Remove cameradevice subpackage and point references at ex library

This code is being relocated into frameworks/ex for availability to other apps.

Change-Id: Icada261ac7a795b08dd8b187dfd17077077b37c3
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
c44c5d93a681d98719dfffdf7223c694e1cab715 13-May-2014 Angus Kong <shkong@google.com> Handle error getting camera info.

bug:13877028
Change-Id: Iff0353738de3290244092076b2f955f0d7d57408
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
0b9eb5bb8d2ef409e8c88196c0c82c8ece65728b 01-May-2014 Angus Kong <shkong@google.com> Cancel onResumeTask when the app is paused.

Also change the camera closing conditions to force close all camera before
killing the handler thread.

bug:14190951
bug:14441425

Change-Id: Ic752b0678530b34eb3710bd7796cb17d15452013
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
b65117fbce9a0dc6d7568a6b7b802baf5df6ead5 29-Apr-2014 Angus Kong <shkong@google.com> am 1b9d4fb6: Add history info for camera open failure log.

* commit '1b9d4fb6f649262e491c0fa743229b4930a87802':
Add history info for camera open failure log.
1b9d4fb6f649262e491c0fa743229b4930a87802 25-Apr-2014 Angus Kong <shkong@google.com> Add history info for camera open failure log.

bug:14365703
Change-Id: I4b2259e12121cac5b8165f5c5dbacf9cb3a936a6
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
1045fefdf22bd58fa911b100e7db5750f7efa3e6 21-Apr-2014 Angus Kong <shkong@google.com> Create cameradevice package for camera management.

Change-Id: I73c69a70736b0b0eb0ef069a7876cf75fee91262
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
0fed7e62bfa0d8351b91d3531228a113637963a3 14-Apr-2014 Sascha Haeberling <haeberling@google.com> Safeguard callback receiver to prevent crashes.

Bug: 13765929

It is safe to add these checks here. The receiver is only set in
the constructor, and it's only created in one place, which is
onCreate. And the parameter is the Activity itself, so it can
never be null.
This means the NPE can only happen if onCameraOpened is called after
removeCallbackReceiver is called, which is in onDestroy of the activity.
In this case it's safe to exit.

Change-Id: Ibffd6d54679b564a11b3e83319896241f2e306ad
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
5596b4c902dcb685928b43678f428746ca5ffd08 12-Mar-2014 Angus Kong <shkong@google.com> Use debug.Log instead of android.util.Log.

1. Change to use com.android.camera.debug.Log instead of android.util.Log.
2. Add DebugCameraProxy to support more detailed debug info.
3. Add CameraErrorCallback in CameraManager.
4. Support posting to a specific handler for CameraErrorCallback.
5. Trim down some TAGs to match the framework tag length limit.
6. Remove some unused codes in CameraSettings.

bug:13324870

Change-Id: I8c20a8a0d11cfd50b6e199b03cbc88d3c4ad2ceb
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
3413517f52239cebe3261cfce32b00899f8bd1e5 11-Mar-2014 Erin Dahlgren <edahlgren@google.com> Merge "Handle uncaught runtime exceptions from the framework." into gb-ub-photos-denali
630d55ba8111357730119899565026be503264c0 10-Mar-2014 Erin Dahlgren <edahlgren@google.com> Handle uncaught runtime exceptions from the framework.

Bug: 12529676
Change-Id: I0319b1fa7367076f33853200b8b09a6abe7b0bdf
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
97e282a3764215ac193726e0d259e55bf94369fe 05-Mar-2014 Angus Kong <shkong@google.com> No switch camera when switching camera

bug:13234553
Change-Id: I1f26c2c69e5a0aee0ea1962a9cb2837bde94e02e
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
432c964bb528a28600f19e18e81ff2b6407bb22d 28-Feb-2014 Angus Kong <shkong@google.com> Refine the logic in CameraController.

Define a constant for empty request and also add some documentation.

bug:13234553
Change-Id: Ib491dc94304451a215dd09995233edf340f57d2b
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
e6a62c4cbe63a3b6b8cf6b710d21e1ee4856ceab 28-Feb-2014 Angus Kong <shkong@google.com> Prevent crash during rapid switching camera

1. Don't request new camera when the previous request is not fulfilled yet.
2. Send camera open message through dispatch thread also.

bug:13234553
Change-Id: I9962cf084bc7f39bcbf05946800fc28a39d204c7
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
f578829a0f9a298fd5e4fdd9081b768f25811599 27-Feb-2014 Angus Kong <shkong@google.com> Check whether the camera is opened when releasing

bug:13213439
Change-Id: I7360aca7de7533c920c1a1f5c7293a99a571a247
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
62753ae94be2ae7c08bf24ebcf1c462975af230f 10-Feb-2014 Angus Kong <shkong@google.com> Add camera state in CameraManager implementation

1. Add camera states.
2. Avoid potentially dangerous camera operations according the states.

bug:11985910
Change-Id: I2bce5c778077473e07f281053a441097fa71e3fb
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
846d3abfe3da2fa2a5593c7d40a196005408bed1 04-Feb-2014 Sascha Haeberling <haeberling@google.com> Avoid activity leaks.

Bug: 12805279

Change-Id: Ib91ff2d286f6a0e0d67dad673e7af24600e15759
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
4d4a4bc8891bbfc5a7ca842f2981829ac3a716e8 20-Dec-2013 Doris Liu <tianliu@google.com> Hook up with camera for accurate timing of new frame

TextureView's onSurfaceTextureChanged callback has been proved
inaccurate in terms of timing for new frame, which contradicts
the documentation. Nevertheless, we need accurate timing to
ensure smooth mode change.

Bug: 11963674
Bug: 11767246
Change-Id: I8673174ac5e191c0ab7c4377ff81b3e0889f8831
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
39b460b805adaa54f310d8637868b3a5c792b2f5 07-Dec-2013 Angus Kong <shkong@google.com> Add CameraProvider methods to check camera facing.

Change-Id: Iba0f21a65a44bed1a26fa375a050e4879701bd72
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
18500a493634b593dc8ba1e74b46d1f10bb6d031 22-Nov-2013 Angus Kong <shkong@google.com> Refactor PhotoSphere and Refocus: new camera open

This is part of the Denali refactor work. Now PhotoSphere and Refocus both uses
the new camera start up process so the camera is not released between modules.

See http://ag/392043/

Change-Id: I6ae9b111ba1fda33912159e0967f3a12d02937ba
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java
20fad249cbb587b8cf03e8e53bc64ff8e0bec7fd 12-Nov-2013 Angus Kong <shkong@google.com> Major refactor: Make resources access through app.

1. Make the camera device avaiability a callback event so the process can be
event-driven.
2. Add ModuleManager interface and implementation.
3. Make AndroidCameraManagerImpl implementation package private.

This CL is the refactoring work on Gallery2 side. The other part is
http://ag/389297/

Known issue: only work for normal photo mode and video mode for now.

Change-Id: Ib0a89ca56c00f6a7294192e9737a70dec5143ee3
/packages/apps/Camera2/src/com/android/camera/app/CameraController.java