| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Change-Id: Ifde34ce367ceeb19ad71bcff0c4518d578bb52a5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Author: codeworkx <daniel.hillenbrand@codeworkx.de>
Date: Sat Jan 28 14:56:35 2017 +0100
Snap: detect and use Camera2 if available
Also add overlay option to enable support for Camera2 to retain current behaviour.
Change-Id: I20939e33f4bb687e4abea11bbcdb9bf246b156e4
Author: codeworkx <daniel.hillenbrand@codeworkx.de>
Date: Sun Aug 13 12:22:05 2017 +0200
Snap: Add missing null check on isCamera2Supported
Change-Id: I61c04c7cb8d344573ab7fb11f7114f09aaf24fb7
Change-Id: I339ead08d10ddff5dad491987d94367354a4b3f3
|
|
|
|
|
| |
Change-Id: Id054ccc9445722bcb08953fd40e43a82bdd13ae2
Signed-off-by: Joey Rizzoli <joey@cyanogenmoditalia.it>
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
| |
Change-Id: Icfab44c674bcc59c1d369af64985956ccaf63ccc
issue-id: SAMBAR-869
(cherry picked from commit e0ca697b97ef2d872f682d2b357d7233762cfafd)
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Change-Id: I9474219c57fc204dd16797aa8921296e61cc9d37
|
|
|
|
|
| |
Change-Id: I72b2bf2e1062a548ff9470075a5151923619e062
issue-id: FEIJ-469
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Change-Id: I19d8a3d5a12c4be06bced056b80ad1a354c6b761
|
|
|
|
| |
Change-Id: I1fe55daca970a8e9a725718aa6a02618450ccbf6
|
|
|
|
| |
Change-Id: I0ce48da277a532b46fdde15027f636de4d7585b7
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Author: jrizzoli <joey@cyanogenmoditalia.it>
Date: Thu Jan 7 21:07:51 2016 +0100
Snap: initial materialization
Just for initial ship
Change-Id: I8d6c0d71d1b94e6eb2f43ab962fb92de0e6c7093
Signed-off-by: jrizzoli <joey@cyanogenmoditalia.it>
Author: jrizzoli <joey@cyanogenmoditalia.it>
Date: Mon Jan 11 21:02:08 2016 +0100
Snap: remove captureUI pngdrawables
CM now supports 90/270 degrees rotated vectordrawables
Change-Id: I13b36463c60430564c00bd1e36393fff7ddbfdae
Signed-off-by: jrizzoli <joey@cyanogenmoditalia.it>
Author: jrizzoli <joey@cyanogenmoditalia.it>
Date: Wed Jan 20 20:54:10 2016 +0100
Snap: update shutter button style
Change-Id: Ide5fc0ff1c54e216ac7cd9bea202002d1d4dfa12
Author: Joey Rizzoli <joey@cyanogenmoditalia.it>
Date: Sun Dec 11 21:30:18 2016 +0100
Snap: update caf icons
Change-Id: I1adaf709253637bde037b5aea1f856fc5b9029c7
Signed-off-by: Joey Rizzoli <joey@cyanogenmoditalia.it>
Author: Arne Coucheron <arco68@gmail.com>
Date: Thu Aug 17 01:19:05 2017 +0200
Snap: Update HDR icons
Current ones are so small, I can hardly see them. These new ones
are bigger and looks more in line with the rest of the icons.
Change-Id: Idaeec67a78d66105a375f09b6701a49dce43fd22
Author: codeworkx <daniel.hillenbrand@codeworkx.de>
Date: Sat Jan 20 12:46:31 2018 +0100
Snap: update shutter buttons on CaptureUI
Change-Id: I674de05dfb46fb714979ac66c16a85825af13c95
Author: Paul Keith <javelinanddart@gmail.com>
Date: Tue Jan 23 23:36:19 2018 +0100
Snap: Update pano and video icons to be more like photo icons
* Put the colored ring on the _outside_ of the shutter
* While we're at it, cleanup naming and usage of color resources
Change-Id: I4f344fa272374d043f2b83dba7248e263fab8bf0
Author: Andreas Blaesius <andi@unlegacy-android.org>
Date: Fri Jun 1 17:47:00 2018 +0200
Snap: remove unused shutter buttons
Change-Id: Id913626bbccc6fd245ed9f46374389ca7eca3c30
Change-Id: I7596f3c887874b4913d87ecbfa5438191fc86249
Signed-off-by: Chippa-a <vusal1372@gmail.com>
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
| |
Original commit by cyanogen 7daaa72d35c1f8820117768e4b129acd030bcefb
Change-Id: I51853913f6459b599176910f7f486f59972eaf36
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Author: Sultanxda <sultanxda@gmail.com>
Date: Sun Dec 6 10:30:28 2015 -0800
Snap: Add ability to set the tap-to-focus duration to 0 sec
Setting a tap-to-focus duration of 0 seconds allows for a quick, manual
refocus of the subject without interfering with the exposure. This is
particularly useful when recording videos.
Change-Id: Ie3d92e50f755c938e9725438ba5baad0d0985485
Signed-off-by: Sultanxda <sultanxda@gmail.com>
Author: Michael Bestas <mikeioannina@cyanogenmod.org>
Date: Tue Feb 9 18:51:28 2016 +0200
Snap: Fix crash when set infinite touch-focus duration
* java.lang.Integer.valueOf(string) method can't parse
hexadecimal values
Change-Id: I42706db72fc9c1093a7aa16440af449f731e5176
Change-Id: I9ae88f55a452a66af39906d46f1b899130199da2
|
|
|
|
| |
Change-Id: I5432554a40d7375ed7893c38cb2741a12cc8cc80
|
|
|
|
| |
Change-Id: I6bf76a0a607e4c275a63c60b042ae239d893095f
|
|
|
|
|
|
|
|
|
| |
The exposure and white balance get stuck after taking photos with ZSL.
Always unlock the exposure and white balance after taking photos with
ZSL.
Change-Id: Ia34a54522048fdd619f44ac1f6d2924ce2c3fc6a
|
|
|
|
|
|
|
|
| |
Lock the auto exposure (AE) and auto white balance (AWB) when tap-to-focus
is used in the camcorder.
Change-Id: Ieb24e04b74a06b2390eb9302e74b4f69b1486951
Signed-off-by: Sultanxda <sultanxda@gmail.com>
|
|
|
|
|
|
|
|
| |
Lock the auto exposure (AE) and auto white balance (AWB) when tap-to-focus
is used.
Change-Id: I9d8e9b4928516e8b2bad7be958e5c4849db19ab6
Signed-off-by: Sultanxda <sultanxda@gmail.com>
|
|
|
|
|
|
|
| |
User can now control the focus mode used while recording video.
Change-Id: I340c01a3f88314de67ca024279672276eff453ed
Signed-off-by: Sultanxda <sultanxda@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Author: Steve Kondik <shade@chemlab.org>
Date: Wed Aug 28 14:21:49 2013 +0800
camera: Touch focus support for camcorder
* Available when video snapshots are not supported.
* Original from CodeAurora Forum.
Change-Id: I232c178430db08e7366aa9f91b4926d07e7c225d
Author: Dheeraj CVR <cvr.dheeraj@gmail.com>
Date: Sat Apr 19 02:33:46 2014 +0530
Camera2: Prevent autofocus when video snapshot is in progress
During video recording if screen is tapped repeatedly, autofocus is
started while the snapshot is taken. This would either result in an
out of focus snapshot which would also disturb the focus in the recorded
video or crash the sensors that can't handle autofocus during snapshot.
Change-Id: If2763094f5ab7536e4409469276de54580e803c8
Author: Dheeraj CVR <cvr.dheeraj@gmail.com>
Date: Mon Jun 23 22:00:07 2014 +0530
Camera2: Prevent propogating CancelAutoFocus during Video Recording
When AutoFocus is started during Video Recording, CancelAutoFocus
is called after KEY_FOCUS_TIME seconds. CancelAutoFocus has the
side effect of resetting the sensor AF position and will result in
instant loss of focus which is not a desired event when AF is
manually triggered in case of Video Recording.
Change-Id: Icee7f6dfd4ad083c9b383ee2a4df6a34e4668de6
Author: lion0738 <lion0738@naver.com>
Date: Sun Jan 10 16:55:01 2016 +0900
Snap: Set parameters before starting preview
Old parameters are used when grabbing focus mode.
Camera parameters should be set to FocusOverlayManager before starting preview.
Change-Id: I908559e1c2003be47b486996b0ec016b78107468
Change-Id: I8be16315ccede388e590e81e93f0dd417ae51c4a
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Snap does not correctly handle devices with a landscape screen as rotation
is 0 when device is in landscape while Snap assume that 0 is portrait.
This lead to a rotated gui and a deformed preview.
This commit:
- Solve the gui rotation for Photo, Video and Panorama modules
- Solve the deformed preview for Photo and Video (Panorama preview was ok with gui fix)
- Solve the PhotoMenu rotation (all devices, it was also broken on portrait devices)
Change-Id: Ic0b95904da6e13946c7e46e2e571b26da498db02
|
|
|
|
| |
Change-Id: Ib8941843567fd822051830ce638e3f5d7ea21657
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of depending on a large matching table, generated the list
of picture sizes to show to the user directly from the supported
list returned by the camera. The list is filtered to remove
uselessly small resolutions on modern devices, to group resolutions
by aspect ratio, and to filter out fairly similar sizes.
Change-Id: I47a67a89786543baec133cf7e71df9819793ebac
Signed-off-by: Chippa-a <vusal1372@gmail.com>
|
|
|
|
|
| |
Change-Id: I9807c7f9303f17eb971ff1a82fbd35dfbdbfa529
Signed-off-by: Zdrowy Gosciu <ZdrowyGosciu+GITHUB@gmail.com>
|
|
|
|
|
|
|
|
|
| |
* On the OP3, we can only use Longshot in a single scene mode without
conflicting with other built-in postprocessing features which cannot
be disabled. Add support for this. When a scene specified in the
longshot-scenemodes list is active, continuous shot will be enabled.
Change-Id: I79878e5ac918e907ddc5b3ca168e49f4e06656c3
|
|
|
|
| |
Change-Id: Id93d5807fb4c4d14eeea33be0776a6f705a6c435
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Not all devices have red eye reduction, which made it
impossible to enable advanced options. Move the toggle
to max brightness option which is present in all devices.
* Allow enabling advanced options through camcorder settings.
* Move hardcoded strings to cm_strings for translations.
* Close menus when developer mode is toggled so we can see
the extra options when the menu is reopened.
* Decrease taps to 7, matching Settings tap-to-enable.
* Properly reset tap counter.
Change-Id: Iac39b9309388b92bf75a49a6091b483b13bd9154
|
|
|
|
| |
Change-Id: Iaa64372e5d196fd0117a32a386686bdb1fd51e45
|
|
|
|
|
|
| |
Camera HAL not always return proper values
Change-Id: Id81fe40ac84b0ffb70560e55077d90544139e463
|
|
|
|
|
|
|
| |
As we have a header and a footer view now, the assumption 'pref list
size == child count' doesn't hold anymore.
Change-Id: I1b4ab16907eea758921ccce64af01d2a73e82459
|
|
|
|
| |
Change-Id: Ie8f1dac602957cb871d0f8c7043ac0f434f4bfac
|
|
|
|
|
|
|
| |
* Some cameras simply don't set this parameter.
* Also set cur-focus-diopter to 0 if it's null.
Change-Id: Ib1049012de9a58279560c14ed77f83f52c07fe30
|