summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjunjiez <junjiez@codeaurora.org>2017-07-13 17:35:49 +0800
committerGerrit - the friendly Code Review server <code-review@localhost>2017-07-26 00:29:59 -0700
commitf18663eae3f80a46bdaa1a140abd2799577bb739 (patch)
tree490a263637642c89df6af2bccabc1deb0e20a434
parentef407574ede2694755abbd5a872936623030c1d7 (diff)
downloadandroid_packages_apps_Snap-f18663eae3f80a46bdaa1a140abd2799577bb739.tar.gz
android_packages_apps_Snap-f18663eae3f80a46bdaa1a140abd2799577bb739.tar.bz2
android_packages_apps_Snap-f18663eae3f80a46bdaa1a140abd2799577bb739.zip
SnapdragonCamera:modify RTB UI
1. reduce the size of the bokeh focus circle. 2. hide bokeh focus circle and seekbar when it's not needed. 3. update the location of the seekbar according the location of the bokeh focus circle 4. convert depth map buffer to rgb then compress to jpeg Change-Id: Ibfa4d1d90413939566129247a23325f941507691
-rwxr-xr-xres/drawable-hdpi/bokeh_shutter_01.pngbin42999 -> 32188 bytes
-rwxr-xr-xres/drawable-hdpi/bokeh_shutter_02.pngbin43225 -> 32496 bytes
-rwxr-xr-xres/drawable-hdpi/bokeh_shutter_03.pngbin42931 -> 32437 bytes
-rwxr-xr-xres/drawable-hdpi/bokeh_shutter_04.pngbin42412 -> 32099 bytes
-rwxr-xr-xres/drawable-hdpi/bokeh_shutter_05.pngbin41767 -> 31629 bytes
-rwxr-xr-xres/drawable-hdpi/bokeh_shutter_06.pngbin41226 -> 31204 bytes
-rwxr-xr-xres/drawable-hdpi/bokeh_shutter_07.pngbin40408 -> 30857 bytes
-rwxr-xr-xsrc/com/android/camera/PhotoModule.java41
-rw-r--r--src/com/android/camera/PhotoUI.java20
-rwxr-xr-xsrc/com/android/camera/ui/PieRenderer.java21
-rwxr-xr-xsrc/org/codeaurora/snapcam/filter/GDepth.java6
11 files changed, 62 insertions, 26 deletions
diff --git a/res/drawable-hdpi/bokeh_shutter_01.png b/res/drawable-hdpi/bokeh_shutter_01.png
index 051bc372d..0baccbddf 100755
--- a/res/drawable-hdpi/bokeh_shutter_01.png
+++ b/res/drawable-hdpi/bokeh_shutter_01.png
Binary files differ
diff --git a/res/drawable-hdpi/bokeh_shutter_02.png b/res/drawable-hdpi/bokeh_shutter_02.png
index ccbf3361a..3d28bf7bb 100755
--- a/res/drawable-hdpi/bokeh_shutter_02.png
+++ b/res/drawable-hdpi/bokeh_shutter_02.png
Binary files differ
diff --git a/res/drawable-hdpi/bokeh_shutter_03.png b/res/drawable-hdpi/bokeh_shutter_03.png
index 861e07972..6970987e2 100755
--- a/res/drawable-hdpi/bokeh_shutter_03.png
+++ b/res/drawable-hdpi/bokeh_shutter_03.png
Binary files differ
diff --git a/res/drawable-hdpi/bokeh_shutter_04.png b/res/drawable-hdpi/bokeh_shutter_04.png
index dc9ff6864..c912d8639 100755
--- a/res/drawable-hdpi/bokeh_shutter_04.png
+++ b/res/drawable-hdpi/bokeh_shutter_04.png
Binary files differ
diff --git a/res/drawable-hdpi/bokeh_shutter_05.png b/res/drawable-hdpi/bokeh_shutter_05.png
index 89bd851ad..a34e09a52 100755
--- a/res/drawable-hdpi/bokeh_shutter_05.png
+++ b/res/drawable-hdpi/bokeh_shutter_05.png
Binary files differ
diff --git a/res/drawable-hdpi/bokeh_shutter_06.png b/res/drawable-hdpi/bokeh_shutter_06.png
index 66a6c7a94..759aa0783 100755
--- a/res/drawable-hdpi/bokeh_shutter_06.png
+++ b/res/drawable-hdpi/bokeh_shutter_06.png
Binary files differ
diff --git a/res/drawable-hdpi/bokeh_shutter_07.png b/res/drawable-hdpi/bokeh_shutter_07.png
index 021f32d18..69ffad8a0 100755
--- a/res/drawable-hdpi/bokeh_shutter_07.png
+++ b/res/drawable-hdpi/bokeh_shutter_07.png
Binary files differ
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index 292349e31..eb8a2f5e5 100755
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -1586,18 +1586,37 @@ public class PhotoModule
}
String mPictureFormat = mParameters.get(KEY_PICTURE_FORMAT);
Log.d(TAG, "capture:" + title + "." + mPictureFormat);
- if (mIsBokehMode && !PERSIST_BOKEH_DEBUG_CHECK && mSaveBokehXmp) {
- if (jpegData != null && mCallTime == 3) {
- if (mOrigin != null && mBokeh != null) {
- GImage gImage = new GImage(mOrigin, "image/jpeg");
- GDepth.DepthMap map= new GDepth.DepthMap(1280,960);
- map.buffer = mDepth;
- map.roi = new Rect(0,0,width,height);
+ if (mIsBokehMode) {
+ if (!PERSIST_BOKEH_DEBUG_CHECK && mSaveBokehXmp) {
+ if (jpegData != null && mCallTime == 3) {
+ if (mOrigin != null && mBokeh != null) {
+ GImage gImage = new GImage(mOrigin, "image/jpeg");
+ GDepth.DepthMap map= new GDepth.DepthMap(1280,960);
+ map.buffer = mDepth;
+ map.roi = new Rect(0,0,width,height);
+ GDepth gDepth = GDepth.createGDepth(map);
+ mActivity.getMediaSaveService().addXmpImage(mBokeh,gImage,
+ gDepth,"bokeh_"+title,date,mLocation,width,height,
+ orientation,exif,mOnMediaSavedListener,
+ mContentResolver,mPictureFormat);
+ }
+ }
+ } else {
+ if (mCallTime == 3) {
+ GDepth.DepthMap map = new GDepth.DepthMap(1280, 960);
+ map.buffer = jpegData;
+ map.roi = new Rect(0, 0, width, height);
GDepth gDepth = GDepth.createGDepth(map);
- mActivity.getMediaSaveService().addXmpImage(mBokeh,gImage,
- gDepth,"bokeh_"+title,date,mLocation,width,height,
- orientation,exif,mOnMediaSavedListener,
- mContentResolver,mPictureFormat);
+ byte[] depth = gDepth.getDepthJpeg();
+ mActivity.getMediaSaveService().addImage(depth,
+ title, date, mLocation, width, height,
+ orientation, exif, mOnMediaSavedListener,
+ mContentResolver, mPictureFormat);
+ } else {
+ mActivity.getMediaSaveService().addImage(
+ jpegData, title, date, mLocation, width, height,
+ orientation, exif, mOnMediaSavedListener,
+ mContentResolver, mPictureFormat);
}
}
} else {
diff --git a/src/com/android/camera/PhotoUI.java b/src/com/android/camera/PhotoUI.java
index 29d3c3df2..c4fd11aa3 100644
--- a/src/com/android/camera/PhotoUI.java
+++ b/src/com/android/camera/PhotoUI.java
@@ -162,6 +162,7 @@ public class PhotoUI implements PieListener,
private int mOrientation;
private float mScreenBrightness = 0.0f;
+ private boolean mIsBokehMode = false;
public enum SURFACE_STATUS {
HIDE,
@@ -1130,6 +1131,9 @@ public class PhotoUI implements PieListener,
}
// Close module selection menu when pie menu is opened.
mSwitcher.closePopup();
+ if (mIsBokehMode && mBlurDegreeProgressBar != null) {
+ mBlurDegreeProgressBar.setVisibility(View.VISIBLE);
+ }
}
@Override
@@ -1138,14 +1142,23 @@ public class PhotoUI implements PieListener,
if (mFaceView != null) {
mFaceView.setBlockDraw(false);
}
+ if (mIsBokehMode && mBlurDegreeProgressBar != null) {
+ mBlurDegreeProgressBar.setVisibility(View.GONE);
+ }
}
@Override
public void onPieMoved(int centerX, int centerY) {
Size bokehCircle = mPieRenderer.getBokehFocusSize();
- mBlurDegreeProgressBar.setX(centerX - bokehCircle.getWidth()/2);
- mBlurDegreeProgressBar.setY(centerY + bokehCircle.getHeight()/2);
- if (mBlurDegreeProgressBar.getVisibility() != View.VISIBLE) {
+ int y;
+ if (centerY > mPieRenderer.getHeight()/2) {
+ y = centerY - bokehCircle.getHeight()/2 - mBlurDegreeProgressBar.getHeight();
+ } else {
+ y = centerY + bokehCircle.getHeight()/2;
+ }
+ mBlurDegreeProgressBar.setX(centerX - mBlurDegreeProgressBar.getWidth() /2);
+ mBlurDegreeProgressBar.setY(y);
+ if (mBlurDegreeProgressBar.getVisibility() != View.VISIBLE && mPieRenderer.isVisible()) {
mBlurDegreeProgressBar.setVisibility(View.VISIBLE);
}
}
@@ -1153,6 +1166,7 @@ public class PhotoUI implements PieListener,
public void enableBokehRender(boolean enable) {
if (mPieRenderer != null) {
mPieRenderer.setBokehMode(enable);
+ mIsBokehMode = enable;
}
}
diff --git a/src/com/android/camera/ui/PieRenderer.java b/src/com/android/camera/ui/PieRenderer.java
index 323973301..d97616975 100755
--- a/src/com/android/camera/ui/PieRenderer.java
+++ b/src/com/android/camera/ui/PieRenderer.java
@@ -288,12 +288,10 @@ public class PieRenderer extends OverlayRenderer
public void setBokehDegree(int degree) {
if (degree >=0 && degree <= 100) {
int index = (int)degree/15;
- Log.d("ZJJ","index="+index);
if (mBokehFocusIndex == index)
return;
mBokehFocusIndex = index;
int resid = mBokehFocusResId.getResourceId(mBokehFocusIndex,0);
- Log.d("ZJJ","resid = "+resid );
if (mBokehFocusCircle != null) {
mBokehFocusCircle.recycle();
}
@@ -379,11 +377,7 @@ public class PieRenderer extends OverlayRenderer
mLabel.setText("");
}
}
- if (mIsBokehMode) {
- setVisible(true);
- } else {
- setVisible(show);
- }
+ setVisible(show);
mHandler.sendEmptyMessage(show ? MSG_OPEN : MSG_CLOSE);
}
@@ -625,10 +619,10 @@ public class PieRenderer extends OverlayRenderer
float sf = 0.9f + alpha * 0.1f;
canvas.scale(sf, sf, mPieCenterX, mPieCenterY);
}
- if (mIsBokehMode) {
- drawBokehFocus(canvas);
- } else {
- if (mState != STATE_PIE) {
+ if (mState != STATE_PIE) {
+ if (mIsBokehMode) {
+ drawBokehFocus(canvas);
+ } else {
drawFocus(canvas);
}
}
@@ -1189,12 +1183,15 @@ public class PieRenderer extends OverlayRenderer
private class Disappear implements Runnable {
@Override
public void run() {
- if (mState == STATE_PIE || mIsBokehMode) return;
+ if (mState == STATE_PIE) return;
setVisible(false);
mFocusX = mCenterX;
mFocusY = mCenterY;
mState = STATE_IDLE;
setCircle(mFocusX, mFocusY);
+ if (mIsBokehMode) {
+ mHandler.sendEmptyMessage(MSG_CLOSE);
+ }
mFocused = false;
}
}
diff --git a/src/org/codeaurora/snapcam/filter/GDepth.java b/src/org/codeaurora/snapcam/filter/GDepth.java
index 92c0e07f5..d3a7cb19c 100755
--- a/src/org/codeaurora/snapcam/filter/GDepth.java
+++ b/src/org/codeaurora/snapcam/filter/GDepth.java
@@ -77,6 +77,7 @@ public class GDepth{
private String mData;
private final String mFormat = FORMAT_8_BIT;
private int[] mMap;
+ private byte[] mGdepthJpeg;
static {
try {
@@ -139,6 +140,7 @@ public class GDepth{
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream);
byte[] jpegBytes = outputStream.toByteArray();
+ mGdepthJpeg = jpegBytes;
if (jpegBytes != null ) {
String base64String = serializeAsBase64Str(jpegBytes);
result = true;
@@ -179,6 +181,10 @@ public class GDepth{
return outputStream.toByteArray();
}
+ public byte[] getDepthJpeg() {
+ return mGdepthJpeg;
+ }
+
private String serializeAsBase64Str(byte[] image) {
Log.d(TAG, "serializeAsBase64Str");
return Base64.encodeToString(image, Base64.DEFAULT);