summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Snap: Remove "help screen on first start" featureArne Coucheron2018-01-276-545/+2
| | | | | | | | | | | | | | | | | | | | Revert "SnapdragonCamera: Add help menu to camera2" This reverts commit 0dbfdffc9994a17e60c57b17c3cc5743cc75e155. Change-Id: Icb4e4bbc2b7883fa232483615a18d3197b2577bd Revert "SnapdragonCamera: Move help menu string to ressource" This reverts commit 901130273dbfc753ef883941a4e93b50056177e4. Change-Id: I82815ee7ef80985c88315c40d6b222f688fd6b75 Revert "SnapdragonCamera: Adding help screen on first start" This reverts commit 666692bf730a1c46210cc74781a56afb4b6fcf28. Change-Id: I8f2ee58c263537c3a02248aa344516f5321de13f
* Snap: Fix filter mode button after disabling HDR modeArne Coucheron2018-01-271-1/+4
| | | | Change-Id: I24953691c020727900a8cd944e60c27a24ff62c9
* Snap: Fix swipe right to open menuArne Coucheron2018-01-271-3/+10
| | | | Change-Id: I74b9230e7c63813b3e8b716acf66b10c835f12b5
* Snap: Don't close slide out menu after selecting scene modeArne Coucheron2018-01-271-1/+0
| | | | | | Keep consistent with how filter mode menu behaves. Change-Id: If53bdca075bf97e1f2ad3b8a3f494dcb720026dc
* Snap: Increase default pano capture pixels to 1440x1000Arne Coucheron2018-01-271-2/+2
| | | | Change-Id: I5a67ee329a46701629b017c57f640a5be1976288
* Snap: Show remaining photos on initial startArne Coucheron2018-01-271-0/+1
| | | | | | Also increase margin a bit. Change-Id: Id8ddb1137094f03bd26b487575b555bbadd80432
* SnapdragonCamera: Add missing toast on HSR/HFR overrideAlex Naidis2018-01-271-0/+2
| | | | | | | | | Add in a missing toast to warn a user when the wanted HSR/HFR mode gets overriden due to the incompatibility with image stabilization. Change-Id: Ib81c50e8fad0bca075e6b33399321da42d77eb03 Signed-off-by: Alex Naidis <alex.naidis@linux.com>
* Snap: Don't do touch-to-focus on top of UI elementsSultanxda2018-01-273-4/+21
| | | | | | | | Don't process touch-to-focus for taps that are located on either the top or bottom UI panes. Change-Id: Iac4ccda8625080ff0bd1133ac339e53c423b626d Signed-off-by: Sultanxda <sultanxda@gmail.com>
* Snap: Render zoom circle in the center of the camera previewSultanxda2018-01-271-1/+18
| | | | | | | | | Previously, the zoom circle was rendered in the center of the entire screen, making it look unevenly placed due to the uneven sizes of the top and bottom UI panes. The camera preview in this case is calculated to be the portion of the screen between the top and bottom UI panes. Change-Id: I67678f7bc227cf2b7a6eed3161805b2b107c488a
* SnapdragonCamera: Enforce 120ms delay in between shutter clicksSultanxda2018-01-271-2/+10
| | | | | | | To prevent unintentional duplicate photo captures. Change-Id: I5b24d834ba6eb7e2f606d656a71f5878ab8d08f5 Signed-off-by: Alex Naidis <alex.naidis@linux.com>
* SnapdragonCamera: Fix shutter button clicks in rapid succession getting ignoredSultanxda2018-01-271-1/+1
| | | | | | | | | | | | | | Due to this check, the shutter button would be disabled until each photo would finish processing. This results in the shutter button getting disabled for quite a long time when ZSL isn't used, forcing the user to wait until the previous shot is finished before requesting a new shot. Fix the HDR check so that shutter button clicks in quick succession work. There is code in place to handle button clicks in rapid succession, so this is fine. Change-Id: Ifc36a22e4ec3a1be24e5a9b40c3fc682e82605b3 Signed-off-by: Alex Naidis <alex.naidis@linux.com>
* VideoModule: don't set negative HFR valueAnas Karbila2018-01-271-1/+5
| | | | | | Change-Id: Ic5e429c16792af7f3af0155f50c162487ffa4ef7 (cherry picked from commit 460c0f207ad453473a1d2d5f0f94651578f5eccb) Signed-off-by: Alex Naidis <alex.naidis@linux.com>
* ListPreference: prevent ArrayIndexOutOfBoundsExceptionThecrazyskull2018-01-271-0/+1
| | | | | | * Index value is not allowed to be higher/equal to the array length Change-Id: Iff361603f337e4e77085717fce6227815ea06fc7
* Protect against multiple shutter callbacks per frame in longshot mode.Danny Baumann2018-01-271-0/+8
| | | | | | | | | | Some devices send multiple shutter callbacks for one captured frame in longshot mode. As this causes mismatch between the calculated number of captured frames and the calculated number of JPEGs received for those, which in turn leads to longshot mode never being ended properly, protect against that scenario by discarding all but the first callback. Change-Id: I0c3a270f664a0cd16354fb0a13c5941a52001650
* SnapdragonCamera: Longshot with Burst Functionality.Vijay kumar Tumati2018-01-273-19/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | This is a new Longshot feature where in the snapshot frames captured at ISP is @ 3fps and output JPEG encoded rate is @ 1.2 fps. This can be enabled by setting following setprop with the maximum number of snapshots. adb shell setprop persist.camera.longshot.max <max_number> e.g.:adb shell setprop persist.camera.longshot.max 10 If the number is -1, then the existing Longshot will be used. Main changes: 1) The number of Snapshot/Preview/Metadata buffers are increased to make sure no frames will be dropped @ ISP and to maintain burst fps. e.g.: For max number of 10 snapshots, Snapshot buffers are increased to 9 from existing 6. This buffer numbers are derived considering snapshot YUV frames @ 3 fps and JPEG encoding @ 1.2 fps. 2) Shutter will be played after receiving YUV frame instead of reprocess frame. 3) New Longshot stop command is sent after receiving all the required YUV callbacks or releasing the shutter before reaching Max number. 4) Existing Longshot off command is sent after receiving all JPEG CB.s for the issued TakePictures() and also shutter button will be disabled until all the JPEG callbacks are received. Change-Id: Id0c21aeb67245530768bf3ab859d39dea7e2bc40
* Snapdragon Camera: Use consistent API for preview fps resetEmilian Peev2018-01-272-5/+12
| | | | | | | | | | Instead of using preview fps range API during preview framerate reset use the fixed fps API. This is to avoid any inconsistent behavior that can be triggered when using both APIs from MediaRecorder and Snapdragon application side. Change-Id: Ib5251d8ea4d697db9bdea4e5ebf20606b286f54f
* Snapdragon Camera: Avoid possible race conditionEmilian Peev2018-01-271-0/+9
| | | | | | | | | | | | | | | | | | Camera open and preview start are currently executed in a separate thread different from the main handler thread. If the main thread tries to switch the camera immediately after the open camera thread starts a race condition is possible. This race condition can lead to a failing assert in CameraHolder which can receive two camera open requests one after another. To resolve this the main handler thread needs to check whether an open camera thread got initialized and started previously. If the check is positive, it needs to wait until the separate thread finishes before proceeding with the camera switch sequence. Change-Id: I409e3158bc976120de31540351ea8e55fddbca46
* Camera: Set preview fps after recording.Suman Mukherjee2018-01-271-0/+12
| | | | | | | | 4k DCI recorded FPS is getting picked up from profile and not getting reset to preview FPS after stop recording. Fix made to set the preview FPS range after stop recording. Change-Id: I4892e6fcee3eefbcbd6ca9426e56e2303cdad844
* Initialize focus overlay manager if it is not initialized.Santhosh Kumar H E2018-01-271-3/+9
| | | | | | | | | | | Camera open thread initializes the focus overlay manager after opening camera. In a rare scenario above background thread had not initialized focus overlay manager by the time UI thread start acessesing it, so we see a crash. Initialize focus overlay manager from UI thread if it is not initialized already. Change-Id: I1635c8759d0e0647fe61fe975a0cc24df40df529
* Never ignore finger swipes in gallery modeGabriele M2018-01-272-8/+0
| | | | | | | | | | | | | | Under certain conditions finger swipes are ignored. Steps to reproduce the bug: - Open left menu - Close menu choosing an option or tapping out of the preview - Tap preview of last picture in bottom left corner Swipes in the gallry should now be ignored until a right to left swipe is performed in the preview. Change-Id: I3928d84360266cca368265553a037192aa5d6780
* Focus only when tapping the previewGabriele M2018-01-271-2/+2
| | | | | | | | Calling onSingleTapUp() from onScroll() is causing Snap to issue a focus request for every touch movement, including the gestures to open the menu and the gallery. Change-Id: If913607735add13c1af8e0882748d4800e4e10f9
* Add overlay for restarting camera preview for additional camerasLuK13372018-01-271-1/+6
| | | | Change-Id: I95eb7237b101b73d66fe231a11d0c8d5156bfe47
* Snap: Simulate back button press when menu back button is pressedGabriele M2018-01-271-8/+2
| | | | | | | | | | | | Launching Gallery when the home button (shown as back button) is pressed makes no sense, especially because it's only shown in Snap's own gallery. In addition to that, if Gallery is disabled, Snap closes itself. Fix both the issues by simply simulating a back button press when the menu back button is pressed. REGRESSION-607 Change-Id: I0b2b6ee074715e2866bcebb009118b8271b1efdf
* Always apply frame size reduction to panorama picturesGabriele M2018-01-271-7/+1
| | | | | | | | | | | | | | | | Panorama mode requires quite some memory, especially after the frame num bump done with commit aa0733567c30 ("Make panorama able to go 270 degrees in landscape"). Some devices run out of memory while taking a panorama picture and force close Snap before the picture is complete. We have a config to reduce the memory requirements that reduces the size of each frame, but it's applied only if ro.config.low_ram is true. Bump the default value to 100 and always respect it. Devices having ro.config.low_ram set to true will have to override this config from their device tree. BUGBASH-326 Change-Id: Ic6d24b17b2293adf8d715904c8c1874a4c624e99
* Snap: Allow switching beyond just 2 camerasChristian Frisson2018-01-273-3/+8
| | | | | | | | Some devices have dual rear cameras, which means that they will have more than just 2 camera ID's (0 and 1). For example, the LG G5 has 0, 1 and 2. Allow Snap to run cycle through more than just 0 and 1 Change-Id: I50d8b6c02c97961990b1fbf69b9cf706c422381c
* Snap: CaptureModule: check if ZSL is supported before using itcodeworkx2018-01-273-45/+70
| | | | Change-Id: Ifde34ce367ceeb19ad71bcff0c4518d578bb52a5
* Snap: detect and use Camera2 if availablecodeworkx2018-01-263-10/+42
| | | | | | Also add overlay option to enable support for Camera2 to retain current behaviour. Change-Id: I20939e33f4bb687e4abea11bbcdb9bf246b156e4
* Snap: prevent NPE when checking if controls are visibleJoey Rizzoli2018-01-261-0/+3
| | | | | Change-Id: Id054ccc9445722bcb08953fd40e43a82bdd13ae2 Signed-off-by: Joey Rizzoli <joey@cyanogenmoditalia.it>
* Initialize focus manager in onResume().Danny Baumann2018-01-262-0/+2
| | | | | | | | | | | Since commit 87b4a40d588a7ae8a61cb353c4cff8df37f7b483 moved camera initialization (and focus manager initialization with it) to a background thread, the focus manager initialization now races against the onPreviewRectChanged() call triggered by SurfaceView initialization in the main thread, potentially leaving the focus manager in an uninitialized state that prevented taking pictures. Change-Id: I8cf650d6a67768acd131b3cddad175ed198e0838
* Stop data loader on activity destroy.Danny Baumann2018-01-264-4/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes this crash: 11-29 13:02:30.837 18338 18338 E AndroidRuntime: java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at com.bumptech.glide.manager.RequestManagerRetriever.assertNotDestroyed(RequestManagerRetriever.java:136) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at com.bumptech.glide.manager.RequestManagerRetriever.get(RequestManagerRetriever.java:127) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at com.bumptech.glide.manager.RequestManagerRetriever.get(RequestManagerRetriever.java:88) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at com.bumptech.glide.Glide.with(Glide.java:587) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at com.android.camera.data.LocalMediaData$PhotoData.loadUri(LocalMediaData.java:535) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at com.android.camera.data.LocalMediaData$PhotoData.loadImage(LocalMediaData.java:507) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at com.android.camera.data.LocalMediaData$PhotoData.fillImageView(LocalMediaData.java:485) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at com.android.camera.data.LocalMediaData.getView(LocalMediaData.java:232) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at com.android.camera.data.CameraDataAdapter.getView(CameraDataAdapter.java:101) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at com.android.camera.data.FixedFirstDataAdapter.getView(FixedFirstDataAdapter.java:117) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at com.android.camera.ui.FilmStripView.buildItemFromData(FilmStripView.java:928) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at com.android.camera.ui.FilmStripView.update(FilmStripView.java:2072) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at com.android.camera.ui.FilmStripView.-wrap12(FilmStripView.java) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at com.android.camera.ui.FilmStripView$4.onDataUpdated(FilmStripView.java:1803) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at com.android.camera.data.FixedFirstDataAdapter.onDataLoaded(FixedFirstDataAdapter.java:152) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at com.android.camera.data.CameraDataAdapter.replaceData(CameraDataAdapter.java:269) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at com.android.camera.data.CameraDataAdapter.-wrap1(CameraDataAdapter.java) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at com.android.camera.data.CameraDataAdapter$QueryTask.onPostExecute(CameraDataAdapter.java:359) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at com.android.camera.data.CameraDataAdapter$QueryTask.onPostExecute(CameraDataAdapter.java:358) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at android.os.AsyncTask.finish(AsyncTask.java:660) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at android.os.AsyncTask.-wrap1(AsyncTask.java) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:677) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at android.os.Looper.loop(Looper.java:154) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6095) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 11-29 13:02:30.837 18338 18338 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) Change-Id: I43c6eb85651e5ee69647114a5ec819ed98c61720
* CameraNext: Update focus behavior for panoramasJim Wilson2018-01-261-11/+26
| | | | | | | | | | Panorama was using Infinity for the focus mode all the time for panoramas. Change to use continuous-picture in viewfinder before the actual mosaic is started then change to fixed to lock in. This allows indoor panoramas to not suck. Change-Id: Ida01ca1ded1e1058d76da851cd20e5b7072e15be (cherry picked from commit 33ece020c28796f004f28843fda28092e315c9dc)
* Make panorama able to go 270 degrees in landscapeMartin Brabham2018-01-262-5/+9
| | | | | | Change-Id: Icfab44c674bcc59c1d369af64985956ccaf63ccc issue-id: SAMBAR-869 (cherry picked from commit e0ca697b97ef2d872f682d2b357d7233762cfafd)
* Grant read URI permission for playback of video captureAlan Newberger2018-01-261-0/+1
| | | | | | | | | | | Current implementation of video capture UI configured MediaRecorder to output directly into supplied URI, which per recommendation should be a content: URI. We pass this URI to another app to play back the video, and should pass along the read permission. Bug: 19675889 Change-Id: Idfc0ee42422dde5d921e81f098d4697e652ac689
* CameraNext: stop updating the pano progress bar on pauseScott Mertz2018-01-261-7/+15
| | | | | | | | | | | Fixes a NPE if a panorama is rendering when the user pauses the activity, then launches the camera from the lockscreen and enters panorama mode. With this patch, the user is shown a message "previous panorama is rendering" instead of the progress bar. FEIJ-533 Change-Id: I3247e4bd96aa3aa67e9b1ff75d747d8be0c3c633
* CropActivity: notify MediaScanner on save completeKhalid Zubair2018-01-262-2/+13
| | | | | | | | | | | MediaScanner should be notified when a file is created or changed. Add an explicit call at the end of the async task writing saving the bitmap. Fixes FEIJ-479 where the cropped file was being shown as a 0 byte file over MTP. Change-Id: I2220654a75f502089f44e1cb24682b73516c43b0
* Fix broken filenames for cropped imagesKhalid Zubair2018-01-261-6/+7
| | | | | | | | | | | | makeAndInsertUri() was missing the filename prefix and ended up creating filenames like '_20160518_170242.JPG'. getNewFile() already does most of what we need to handle PANO and IMG prefixes. Modify it to accept a time argument and use that instead. CYNGNOS-2877 Change-Id: I593be63d43b18efbae134c10b59921498d48df8f
* snap: Panorama fixesSteve Kondik2018-01-263-5/+17
| | | | Change-Id: I9474219c57fc204dd16797aa8921296e61cc9d37
* Show UI when pano stitch starts and remove cancel conditionArtem Shvadskiy2018-01-261-1/+2
| | | | | Change-Id: I72b2bf2e1062a548ff9470075a5151923619e062 issue-id: FEIJ-469
* CameraNext: don't crash when pref is not booleanKeith Mok2018-01-261-4/+8
| | | | | | | | | | | | | | | | | | | | | In some situation, a portion of pref (enableRecordingLocation) is created without first calling upgradeGlobalPreference first. Leaving the pref without the version field and makes the application thinks that the pref is in old version. When it tries to do an upgrade on the pref later, it tries to getBoolean for that location field, but that location field is already in string format, making getBoolean throws an exception. The best is to call upgradeGlobalPreference and upgradeLocalPreference when the application starts. However it should be no harm just add a simple guard in getBoolean to avoid that sitation. FEIJ-1258 Change-Id: Ic73078556b1a198a58968806091f8b0afd1ad6cc
* CameraNext: Fallback to do copy exif if exif not existKeith Mok2018-01-261-1/+10
| | | | | | | | | | | If exif in jpeg does not exist, rewriteExif will throw IOException instead of returning false. Let's catch it and fallback to the original logic to do a copy instead of in-place replacement. FEIJ-1245 Change-Id: I61b8bd9b9b7c855bff1897c036d948fcd16bb30a
* De-uglify menu.Danny Baumann2018-01-266-36/+19
| | | | Change-Id: I19d8a3d5a12c4be06bced056b80ad1a354c6b761
* snap: Adjust top bar icon orderSteve Kondik2018-01-261-7/+7
| | | | Change-Id: I1fe55daca970a8e9a725718aa6a02618450ccbf6
* Remove unused menu indicators code.Danny Baumann2018-01-268-322/+1
| | | | Change-Id: I0ce48da277a532b46fdde15027f636de4d7585b7
* Snap: initial materializationjrizzoli2018-01-267-73/+6
| | | | | | | Just for initial ship Change-Id: I8d6c0d71d1b94e6eb2f43ab962fb92de0e6c7093 Signed-off-by: jrizzoli <joey@cyanogenmoditalia.it>
* snap: Additional fixes for auto-HDR modeSteve Kondik2018-01-261-26/+41
| | | | Change-Id: I0d9b982dc9d817b40d59fc5fa58d542a213a3d1f
* snap: Fixes for advanced features and scene modesSteve Kondik2018-01-263-41/+56
| | | | | | | | * Get rid of the annoying toast when longshot is disabled * Add support for ChromaFlash as a scene mode * Adjust overrides for various scene modes Change-Id: Ifda1990f4e9b3435655664f2a6c2b31fc3ae23fa
* camera: Keep touch focus intact during back-to-back ZSL shotsSteve Kondik2018-01-262-2/+12
| | | | | | | | * If ZSL is enabled, we should not resetTouchFocus between shots. * Instead, re-kick the timer for each shot. If I set a focus point, I want that point to stick while I take a succession of shots. Change-Id: I407bb1e248cc902355d0294f47b071cc8a32fac3
* Camera2: Only autofocus before a snap if we are actually in "auto" mode.Steve Kondik2018-01-261-4/+1
| | | | | | Original commit by cyanogen 7daaa72d35c1f8820117768e4b129acd030bcefb Change-Id: I51853913f6459b599176910f7f486f59972eaf36
* Snap: Fix crash when set infinite touch-focus durationMichael Bestas2018-01-262-2/+2
| | | | | | | * java.lang.Integer.valueOf(string) method can't parse hexadecimal values Change-Id: I42706db72fc9c1093a7aa16440af449f731e5176
* Snap: Separate default focus time between camera/videoSultanxda2018-01-261-1/+1
| | | | | | | | | | | | | | For the camera, the user expects a default tap-to-focus duration of 3 seconds with exposure locking. For the camcorder, however, the user expects a tap-to-focus duration of 0 seconds with no exposure locking, as the rapid change in exposure while recording would negatively impact the video. Separate the tap-to-focus option to reflect the recommended defaults. [mikeioannina]: Adapted to Snap Change-Id: I75bc0610f5d301c9728b4bc104b86e0fab5493fb Signed-off-by: Sultanxda <sultanxda@gmail.com>