Squash of commits from CM.

Didn't want to upload them seperate because that would 35 commits.

Camera: Request for 2 snapshots in HDR Mode.

Request for 2 snapshots(1x exposure, HDR Processed) images to be
stored on the SD Card.

Change-Id: Ie7b553e7dd7bf8e03edcf9eb7c09c5e28bacc1ab
(cherry picked from commit 1eebfba9e64ce6800209933063bc50336102dfd8)

Gallery2: fix the size displayed error of livesnapshot exif

The exif size info of livesnapshot picture should be right, aka.,
the same as the actual picture.

Change-Id: I7415de4fb4b017f681048319ad2a849fa5b29fe9

Gallery2: Recycle the image when activity is about to close

By calling recycle() on fullImage object, the destructor of the
SkPNGImageIndex class (libskia) will get called which releases all
the memory resources related to that images.

Change-Id: Ic74d9469cabeb07018b76e183f28115c4a93775a
CRs-Fixed: 551617

Gallery2: Clear the undefined buffer for the first 15 frames

The view is undefined before the first frame of camera preview data
come up.
This makes the UI has random corruption when open camera
and exit quickly.
However, we have no way to know the timing of the first frame.

It will take about 700~800ms before first camera preview data comes up,
and the time of drawing one frame is about 50ms,
so need to clear 15 frames before first camera preview data comes up.

Change-Id: Ibc9a5662a15ad58919384ce00cb3a7557b17cae8

Camera: Add checker for null pointer exception during camera release

In current code, handler will still try to execute command even
camera is closed, so add null point checker to skip these commands

Change-Id: Idc407b31bedbf5e879673cb2ca4011dbb006587a

Camera: set default focus and metering areas to null.

Earlier, default values were not null which
is not compatiable with our HAL.

Change-Id: I317836b3289b9976bf281c8c74308969cbab626c

camera: Add parameter debugging support

Change-Id: Ifc1653f0046af169ba36d94796b4d9a3055c6798

Conflicts:
	src/com/android/camera/VideoModule.java

camera: Add new picture sizes for N1

Change-Id: I5edc7e9657b0be7e1d5705bc3b8f05f1878134b3

camera: Set extra ZSL parameter

Change-Id: Idca1814659575368c69bd9706239e1c2999e6c13

camera: Add workaround for broken video snapshots

 * A certain device requires careful handling of this parameter
   so that the hardware is configured properly and the memory is
   freed after a video is recorded.
 * Add workaround until bug is fixed.

Change-Id: I027bd16ecd76f85157cb8bf9dfc8d94c0d25fb76

Gallery2: ES translations

-Add new resolutions

Change-Id: I473cb5f705b9d44f9cae316fa6b1d06a1dd38576

camera: Add support for high frame rate video

 * If the camera supports HFR for the WVGA profile, use it.

Change-Id: I3ba03239b66482af36010b75f6827ad9a5b28d30

Conflicts:
	res/values/arrays.xml
	src/com/android/camera/VideoModule.java

camera: Enable face detection parameter if required

Change-Id: Iecb982a7634390b486cc51ab05937e5928891745

camera: Video HDR mode

 * Add option for video HDR mode.
 * Some cameras claim to support it, but spontaneously combust when
   enabled, so we'll disable it by default.

Change-Id: Ib17ff4cbb0007440ddc994889b8c2242d4d07e43

Conflicts:
	src/com/android/camera/CameraSettings.java
	src/com/android/camera/VideoMenu.java

camera: Touch focus support for camcorder

 * Available when video snapshots are not supported.
 * Original from CodeAurora Forum.

Change-Id: I232c178430db08e7366aa9f91b4926d07e7c225d

camera: Depurpleator

 * One particular camera has a filter which must be enabled to reduce
   purple artifacting in certain lighting conditions.

Change-Id: I6fe8e0878c0e52459a15cea8802614f76148ba98

Camera: Fix for the AF brackets issues in Face Detetcion.

Also disable the FD start flag from stopPreview.

CRs-Fixed:  453944
	modified:   src/com/android/camera/PhotoModule.java

Change-Id: I7ab17154f461d90db2744dbae7aeff518ccd7cc8
(cherry picked from commit e1b82c95910d783cb531c81b5f23552bf26e6cc6)

Camera: change to fix camera preview stretched issue

When change camera preview size between 16:9 and 4:3, we need update
the CamereScreenNail size, but this size will never update the size
of mRenderWidth and mRenderHeight, this cause the function getWidth
and getHeight get a wrong size, and cause the camera preview stretched
change the method to fix this issue.

CRs-Fixed: 507577

Change-Id: I00744851e0ecc393b13e907423ac6ec27230ff49

Camera: Add facial processing features

Add smile, gaze and blink detection features

CRs-fixed: 531927
Change-Id: I7e710e6d9038b14d00d77ea87f9b4c65baa74fc0

Camera: Avoid the crash if fail to find value

If fail to find value, set index to 0,
which can Avoid camera crash.

Crs-fixed: 540594
Change-Id: Iedad101b8f065dbacac4b1203a378cad9c4bc62c

camera: fix VideoModule memory leak

Layout change listener should be removed when module onpause,
otherwise the VideoModule will not be able to release.

Change-Id: I929526cae01b549044fef305d5af247b41420b0a
CRs-Fixed: 549757

Camera: Add camcorder pause feature

Add Camcorder pause/resume feature, recording can pause,
then resume to go on recording.

Change-Id: I64840a982535f481655723bc7e03302d8b765132

Camera: Fix for stretched preview in camera and camcorder.

Stretched preview is observed due to camera sensor's mount angle.
So resize the preview frame using aspect ratios to avoid this.

Change-Id: Ie8a9e062782aa6caaa80ddab705c937da6b0761e
CRs-fixed: 510295

Conflicts:
	src/com/android/camera/PhotoModule.java

Camera: Do not create start preview thread if one thread is alive

It will have exception if two same threads tried to manipulate
same UI component, check the thread status before create a new
one.

Change-Id: I6f9a5c03f46360d15fdcebcd52c48b924f5b42ad
CRs-fixed: 545574

Conflicts:
	src/com/android/camera/VideoModule.java

Camera: Fix swiping disabled after unsupported video prompt

Before recording starts, some parameters will be checked.
If failed, the recording will not run. So the swiping disable
should be done after this check.

Change-Id: I3e6b0bf1f5d5eb8eef333dac79e56e01bd51b43d
CRs-Fixed: 523885

Camera: Fix camera crash when post picture taken in message app

When post the picture taken in message, the gestures should be
disabled, that's to say, you can not touch screen to AF or show
the preference menu.
1. Disable gestures.
2. Disable keyevent.

Change-Id: I70d478979b0738334886dc3ca6534ca428159339
CRs-Fixed: 520918

Conflicts:
	src/com/android/camera/PhotoModule.java

Camera: fix panorama rotation issues on 8226.

preview and snapshot are rotated unexpectedly
on 8226 but is fine on 8974. Need to change
rotation angles in panorama based on
sensor mount angle.

Change-Id: I0eff35e574b57b787683722bb16762b7b9b0ee2a
CRs-Fixed: 495787
(cherry picked from commit 7c0e1e546ac903268a16df6a1823743711e396e4)

Camera: Fix panorama preview/snapshot rotation issue

Remove earlier hardcode and use unified solution to solve Panorama
preview and snapshot rotation issue by using sensor mount angle and
angle compensation in panorama postprocessing.

Change-Id: If68c6500c41c7cb3c461352826f1fec45db0a5b0

Camera App: FaceView: Fix for no smile drawing

In case of 'no smile' indicator,
center the line without any offsets.

Change-Id: I3992b6be2cf20d19bdb7c9cee85691cff3ce2feb

Camera: Draw smile indicator based on display orientation

Without this, smile indicator is always drawn horizontally
which is a vertical line in 90 and 270 degree cases

CRs-Fixed: 539887

Change-Id: I320b90a7a8981075565171e69b64e7d3dc832a6f

Camera: Prevent callling of resize  before camera is initialized

Prevent callling of resizeForPreviewAspectRatio
before camera is initialized

Change-Id: If8595cd26f4b0e131aa97f6f1f14b2c98e7a21ad

camera: VideoModule: fix NPE while trying to set HFR video parameter

* getSupportedVideoHighFrameRateModes can return null on a device
  which doesn't support it, so check if it's not null rather than
  checking if it's size is > 0.

Change-Id: Ie5be1f8a0f885ea913be5fb1eb44a97e648756d6

Revert "Camera: Request for 2 snapshots in HDR Mode."

This reverts commit 3fd51b1e22d0d9e8816ba56ca10ab609214920a4.

Gallery2: camera: Invoke camera UI functions only after initialization.

When switching from Panorama mode to Camera mode, the CameraActivity
invokes two functions openModule and onOrientationChanged.
openModule initializes PhotoModule. As part of the PhotoModule
initialization, the PhotoUI and PhotoMenu are initialized.
But this is acheived by posting a message to the handler. When the
message is read by the Handler, the PhotoUI's onCameraOpen is invoked
which initializes the PhotoMenu. But sometimes before this message
is read by the Handler, the onOrientationChanged is invoked, which
invokes couple of functions from PhotoUI class acting on the PhotoMenu.
But since the PhotoMenu is still not initialized, it throws up error in
the form of NullPointerExceptions.
Fix this by checking if the PhotoUI and PhotoMenu have been initialized.
If they have not yet been initialized, send a message to the Handler to
invoke these PhotoUI functionalities after the PhotoUI has been
initialized completely.

CRs-Fixed: 519055
Change-Id: I06ea54aa56da96459db6cacea92b02d0f8c23bcd

Conflicts:
	src/com/android/camera/PhotoModule.java

Camera: Change volume hard key button to zoom function

Able to capture image through volume hard key
button in camera application, change the function
to zoom function.

Change-Id: Iab9fc2492b2e2ff89cd58c21bac2f147f47b77e2