summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--[-rwxr-xr-x]AndroidManifest.xml70
-rw-r--r--jni/feature_mos/src/mosaic_renderer/SurfaceTextureRenderer.cpp2
-rw-r--r--jni/feature_mos/src/mosaic_renderer/SurfaceTextureRenderer.h1
-rw-r--r--proguard.flags2
-rw-r--r--[-rwxr-xr-x]res/layout/one_ui_layout.xml99
-rw-r--r--[-rwxr-xr-x]res/values/camera2arrays.xml2
-rw-r--r--res/values/strings.xml1
-rw-r--r--src/com/android/camera/CameraActivity.java3
-rw-r--r--src/com/android/camera/CameraSettings.java2
-rw-r--r--[-rwxr-xr-x]src/com/android/camera/SettingsManager.java2
-rw-r--r--src/com/android/camera/imageprocessor/FrameProcessor.java12
-rw-r--r--src/com/android/camera/imageprocessor/filter/ChromaflashFilter.java60
-rw-r--r--[-rwxr-xr-x]src/com/android/camera/ui/Camera2FaceView.java2
-rw-r--r--src/com/android/camera/util/CameraUtil.java4
-rw-r--r--version.mk4
15 files changed, 160 insertions, 106 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 1b8a88d2d..92e8b7f35 100755..100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -53,7 +53,8 @@
android:screenOrientation="portrait"
android:taskAffinity="com.android.camera.CameraActivity"
android:theme="@style/Theme.Camera"
- android:windowSoftInputMode="stateAlwaysHidden|adjustPan" >
+ android:windowSoftInputMode="stateAlwaysHidden|adjustPan"
+ android:visibleToInstantApps="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
@@ -69,10 +70,32 @@
android:label="@string/app_name"
android:launchMode="singleTop"
android:configChanges="orientation|screenSize|keyboardHidden"
- android:parentActivityName="com.android.camera.CameraActivity" >
- <meta-data
- android:name="android.support.PARENT_ACTIVITY"
- android:value="com.android.camera.CameraActivity" />
+ android:parentActivityName="com.android.camera.CameraActivity"
+ android:visibleToInstantApps="true">
+
+ <intent-filter>
+ <action android:name="android.media.action.VIDEO_CAMERA" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+
+ <intent-filter>
+ <action android:name="android.media.action.VIDEO_CAPTURE" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+
+ <intent-filter>
+ <action android:name="android.media.action.IMAGE_CAPTURE" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+
+ <intent-filter>
+ <action android:name="android.media.action.STILL_IMAGE_CAMERA" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+
+ <meta-data
+ android:name="android.support.PARENT_ACTIVITY"
+ android:value="com.android.camera.CameraActivity" />
</activity>
<activity
@@ -110,43 +133,6 @@
</intent-filter>
</activity-alias>
- <activity-alias
- android:name="com.android.camera.PhotoCamera"
- android:icon="@mipmap/ic_launcher_camera"
- android:label="@string/snapcam_app_name"
- android:launchMode="singleTop"
- android:targetActivity="com.android.camera.PermissionsActivity">
- <intent-filter>
- <action android:name="android.media.action.IMAGE_CAPTURE" />
- <category android:name="android.intent.category.DEFAULT" />
- </intent-filter>
- <intent-filter>
- <action android:name="android.media.action.STILL_IMAGE_CAMERA" />
- <category android:name="android.intent.category.DEFAULT" />
- </intent-filter>
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.DEFAULT" />
- </intent-filter>
- </activity-alias>
-
- <!-- Video camera and capture use the Camcorder label and icon. -->
- <activity-alias
- android:name="com.android.camera.VideoCamera"
- android:icon="@mipmap/ic_launcher_video_camera"
- android:label="@string/video_camera_label"
- android:launchMode="singleTop"
- android:targetActivity="com.android.camera.PermissionsActivity">
- <intent-filter>
- <action android:name="android.media.action.VIDEO_CAMERA" />
- <category android:name="android.intent.category.DEFAULT" />
- </intent-filter>
- <intent-filter>
- <action android:name="android.media.action.VIDEO_CAPTURE" />
- <category android:name="android.intent.category.DEFAULT" />
- </intent-filter>
- </activity-alias>
-
<activity
android:name="com.android.camera.SecureCameraActivity"
android:clearTaskOnLaunch="true"
diff --git a/jni/feature_mos/src/mosaic_renderer/SurfaceTextureRenderer.cpp b/jni/feature_mos/src/mosaic_renderer/SurfaceTextureRenderer.cpp
index 4725463f2..2a7a1c2a0 100644
--- a/jni/feature_mos/src/mosaic_renderer/SurfaceTextureRenderer.cpp
+++ b/jni/feature_mos/src/mosaic_renderer/SurfaceTextureRenderer.cpp
@@ -16,7 +16,9 @@
#include "SurfaceTextureRenderer.h"
+#include <string.h>
#include <GLES2/gl2ext.h>
+
const GLfloat g_vVertices[] = {
-1.f, -1.f, 0.0f, 1.0f, // Position 0
0.0f, 0.0f, // TexCoord 0
diff --git a/jni/feature_mos/src/mosaic_renderer/SurfaceTextureRenderer.h b/jni/feature_mos/src/mosaic_renderer/SurfaceTextureRenderer.h
index 9dbe9eb48..ea2b81ade 100644
--- a/jni/feature_mos/src/mosaic_renderer/SurfaceTextureRenderer.h
+++ b/jni/feature_mos/src/mosaic_renderer/SurfaceTextureRenderer.h
@@ -8,7 +8,6 @@
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
-#include <string.h>
class SurfaceTextureRenderer: public Renderer {
public:
diff --git a/proguard.flags b/proguard.flags
index 9d477262a..522c66444 100644
--- a/proguard.flags
+++ b/proguard.flags
@@ -3,6 +3,7 @@
#Avoid the library class dependency error
-dontwarn android.view.inputmethod.InputMethodManager
-dontwarn android.content.res.Resources
+-dontwarn com.android.internal.widget.ViewInfoStore$InfoRecord
# ctors of subclasses of CameraPreference are called with Java reflection.
-keep class * extends com.android.camera.CameraPreference {
@@ -57,3 +58,4 @@
}
-keep class android.renderscript.** { *; }
+
diff --git a/res/layout/one_ui_layout.xml b/res/layout/one_ui_layout.xml
index 5904b5b96..59e31b95d 100755..100644
--- a/res/layout/one_ui_layout.xml
+++ b/res/layout/one_ui_layout.xml
@@ -133,15 +133,48 @@
style="@style/OneUIMenuButton" />
<LinearLayout
+ android:id="@+id/remaining_photos"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:background="@android:color/transparent"
+ android:orientation="horizontal"
+ android:visibility="gone">
+
+ <TextView
+ android:id="@+id/remaining_photos_text"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:background="@android:color/transparent"
+ android:textColor="@android:color/white"
+ android:visibility="gone" />
+
+ <ImageView
+ android:id="@+id/remaining_photos_image"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:src="@drawable/remaining_sheets"
+ android:visibility="gone" />
+ </LinearLayout>
+
+ <include layout="@layout/pro_mode_layout" />
+
+ <ImageView
+ android:id="@+id/promode_close_button"
+ android:layout_height="20dp"
+ android:layout_width="20dp"
+ android:src="@drawable/icon_x" />
+
+ <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/makeup_seekbar_layout"
android:visibility="gone">
<ImageView
- android:layout_width="12dp"
- android:layout_height="20dp"
- android:layout_marginLeft="23dp"
- android:layout_marginRight="23dp"
+ android:layout_width="30dp"
+ android:layout_height="40dp"
+ android:layout_marginLeft="20dp"
+ android:layout_marginRight="10dp"
+ android:src="@drawable/seekbar_hide"
android:id="@+id/seekbar_toggle">
</ImageView>
<RelativeLayout
@@ -149,8 +182,8 @@
android:layout_height="wrap_content"
android:id="@+id/seekbar_body">
<com.android.camera.ui.RotateLayout
- android:layout_width="24dp"
- android:layout_height="24dp"
+ android:layout_width="30dp"
+ android:layout_height="40dp"
android:layout_alignParentLeft="true"
android:id="@+id/makeup_low_text">
<TextView
@@ -163,18 +196,18 @@
</TextView>
</com.android.camera.ui.RotateLayout>
<SeekBar
- android:layout_width="220dp"
- android:layout_height="wrap_content"
- android:maxHeight="3dip"
- android:minHeight="1dip"
- android:layout_marginLeft="10dp"
- android:layout_toRightOf="@+id/makeup_low_text"
- android:progressDrawable="@drawable/beautify_progressbar_style"
- android:thumb="@drawable/ic_beautify_oval"
- android:id="@+id/makeup_seekbar"/>
+ android:layout_width="220dp"
+ android:layout_height="40dp"
+ android:maxHeight="3dip"
+ android:minHeight="1dip"
+ android:layout_marginLeft="10dp"
+ android:layout_toRightOf="@+id/makeup_low_text"
+ android:progressDrawable="@drawable/beautify_progressbar_style"
+ android:thumb="@drawable/ic_beautify_oval"
+ android:id="@+id/makeup_seekbar"/>
<com.android.camera.ui.RotateLayout
- android:layout_width="24dp"
- android:layout_height="24dp"
+ android:layout_width="30dp"
+ android:layout_height="40dp"
android:layout_toRightOf="@+id/makeup_seekbar"
android:layout_marginLeft="10dp"
android:id="@+id/makeup_high_text">
@@ -189,36 +222,4 @@
</com.android.camera.ui.RotateLayout>
</RelativeLayout>
</LinearLayout>
-
- <LinearLayout
- android:id="@+id/remaining_photos"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:background="@android:color/transparent"
- android:orientation="horizontal"
- android:visibility="gone">
-
- <TextView
- android:id="@+id/remaining_photos_text"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:background="@android:color/transparent"
- android:textColor="@android:color/white"
- android:visibility="gone" />
-
- <ImageView
- android:id="@+id/remaining_photos_image"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:src="@drawable/remaining_sheets"
- android:visibility="gone" />
- </LinearLayout>
-
- <include layout="@layout/pro_mode_layout" />
-
- <ImageView
- android:id="@+id/promode_close_button"
- android:layout_height="20dp"
- android:layout_width="20dp"
- android:src="@drawable/icon_x" />
</com.android.camera.ui.OneUICameraControls>
diff --git a/res/values/camera2arrays.xml b/res/values/camera2arrays.xml
index b6cf25f2e..7f4b0da26 100755..100644
--- a/res/values/camera2arrays.xml
+++ b/res/values/camera2arrays.xml
@@ -431,7 +431,7 @@
<item>@string/pref_camera_picturesize_entry_16mp_wide</item>
<item>@string/pref_camera_picturesize_entry_13mp</item>
<item>@string/pref_camera_picturesize_entry_12mp</item>
- <item>@string/pref_camera_picturesize_entry_8mp</item>
+ <item>@string/pref_camera_picturesize_entry_8mp_wide</item>
<item>@string/pref_camera_picturesize_entry_8mp</item>
<item>@string/pref_camera_picturesize_entry_square</item>
<item>@string/pref_camera_picturesize_entry_5mp</item>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 0b2310439..42ad07272 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -296,6 +296,7 @@
<string name="pref_camera_picturesize_entry_12mp">12M pixels</string>
<!-- Settings screen, dialog choice for 8 megapixels picture size [CHAR LIMIT=20] -->
<string name="pref_camera_picturesize_entry_8mp">8M pixels</string>
+ <string name="pref_camera_picturesize_entry_8mp_wide">8M pixels (16:9)</string>
<!-- Settings screen, dialog choice for square picture size [CHAR LIMIT=20] -->
<string name="pref_camera_picturesize_entry_square">Square (1:1)</string>
<!-- Settings screen, dialog choice for 5 megapixels picture size [CHAR LIMIT=20] -->
diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java
index 7f155cbd7..ca78ba969 100644
--- a/src/com/android/camera/CameraActivity.java
+++ b/src/com/android/camera/CameraActivity.java
@@ -129,7 +129,7 @@ public class CameraActivity extends Activity
ActionBar.OnMenuVisibilityListener,
ShareActionProvider.OnShareTargetSelectedListener {
- private static final String TAG = "CAM_Activity";
+ private static final String TAG = "CAM_Activity";
private static final String INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE =
"android.media.action.STILL_IMAGE_CAMERA_SECURE";
@@ -1467,7 +1467,6 @@ public class CameraActivity extends Activity
} else {
mSecureCamera = intent.getBooleanExtra(SECURE_CAMERA_EXTRA, false);
}
-
if (mSecureCamera) {
// Change the window flags so that secure camera can show when locked
Window win = getWindow();
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java
index 44f3978f5..541c65704 100644
--- a/src/com/android/camera/CameraSettings.java
+++ b/src/com/android/camera/CameraSettings.java
@@ -982,6 +982,8 @@ public class CameraSettings {
supportedAdvancedFeatures)) {
removePreference(group, chromaFlash.getKey());
}
+ //remove chromaFlash
+ removePreference(group, chromaFlash.getKey());
}
if (sceneMode != null) {
diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java
index c0a545426..af796c6a7 100755..100644
--- a/src/com/android/camera/SettingsManager.java
+++ b/src/com/android/camera/SettingsManager.java
@@ -1397,7 +1397,9 @@ public class SettingsManager implements ListMenu.SettingsListener {
modes.add("" + i);
}
} catch(NullPointerException e) {
+ Log.w(TAG, "Supported instant aec modes is null.");
} catch(IllegalArgumentException e) {
+ Log.w(TAG, "Supported instant aec modes is null.");
}
return modes;
diff --git a/src/com/android/camera/imageprocessor/FrameProcessor.java b/src/com/android/camera/imageprocessor/FrameProcessor.java
index b1b415acd..6b0c97732 100644
--- a/src/com/android/camera/imageprocessor/FrameProcessor.java
+++ b/src/com/android/camera/imageprocessor/FrameProcessor.java
@@ -401,7 +401,11 @@ public class FrameProcessor {
}
} else {
filter.init(mSize.getWidth(), mSize.getHeight(), stride, stride);
- filter.addImage(bY, bVU, 0, new Boolean(true));
+ if (filter instanceof BeautificationFilter) {
+ filter.addImage(bY, bVU, 0, new Boolean(false));
+ } else {
+ filter.addImage(bY, bVU, 0, new Boolean(true));
+ }
needToFeedSurface = true;
}
bY.rewind();
@@ -485,7 +489,11 @@ public class FrameProcessor {
mBY.rewind();
mBVU.rewind();
mFilter.init(mWidth, mHeight, mStride, mStride);
- mFilter.addImage(mBY, mBVU, 0, new Boolean(true));
+ if (mFilter instanceof BeautificationFilter) {
+ mFilter.addImage(mBY, mBVU, 0, new Boolean(false));
+ } else {
+ mFilter.addImage(mBY, mBVU, 0, new Boolean(true));
+ }
mMutureLock.release();
} catch (InterruptedException e) {
}
diff --git a/src/com/android/camera/imageprocessor/filter/ChromaflashFilter.java b/src/com/android/camera/imageprocessor/filter/ChromaflashFilter.java
index 607908ebf..4682e3947 100644
--- a/src/com/android/camera/imageprocessor/filter/ChromaflashFilter.java
+++ b/src/com/android/camera/imageprocessor/filter/ChromaflashFilter.java
@@ -32,8 +32,10 @@ import android.graphics.Rect;
import android.hardware.camera2.CameraAccessException;
import android.hardware.camera2.CameraCaptureSession;
import android.hardware.camera2.CameraCharacteristics;
+import android.hardware.camera2.CameraDevice;
import android.hardware.camera2.CaptureRequest;
import android.hardware.camera2.CaptureResult;
+import android.hardware.camera2.TotalCaptureResult;
import android.os.Handler;
import android.util.Log;
@@ -155,20 +157,33 @@ public class ChromaflashFilter implements ImageFilter{
for (int i = 0; i < NUM_REQUIRED_IMAGE; i++) {
if (i == 0) {
captureSession.capture(builder.build(), callback, handler);
+ waitForImage(i);
} else if (i == 1) { //To change the setting
builder.set(CaptureRequest.CONTROL_AE_LOCK, Boolean.FALSE);
+ builder.set(CaptureRequest.FLASH_MODE,
+ CaptureRequest.FLASH_MODE_SINGLE);
captureSession.capture(builder.build(), callback, handler);
waitForImage(i);
} else if (i == 2) { //To change the setting
- builder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON);
- builder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_SINGLE);
- builder.set(CaptureRequest.CONTROL_AE_LOCK, Boolean.TRUE);
- captureSession.capture(builder.build(), callback, handler);
- waitForImage(i);
+ builder.set(CaptureRequest.CONTROL_AE_MODE,
+ CaptureRequest.CONTROL_AE_MODE_ON);
+ CaptureRequest.Builder AeTunningBuilder = captureSession.getDevice().
+ createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
+ CaptureRequest request = builder.build();
+ for (CaptureRequest.Key key : request.getKeys()) {
+ AeTunningBuilder.set(key, request.get(key));
+ }
+ AeTunningBuilder.addTarget(mModule.getPreviewSurfaceForSession(
+ mModule.getMainCameraId()));
+
+ waitForAeBlock(AeTunningBuilder,builder,callback,
+ captureSession,handler,5);
} else if (i == 3) {
captureSession.capture(builder.build(), callback, handler);
+ waitForImage(i);
} else if (i == 4) { //To change the setting
builder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_OFF);
+ builder.set(CaptureRequest.CONTROL_AE_LOCK, Boolean.FALSE);
captureSession.capture(builder.build(), callback, handler);
waitForImage(i);
} else if (i == 5) {
@@ -190,6 +205,41 @@ public class ChromaflashFilter implements ImageFilter{
}
}
+ private void waitForAeBlock(final CaptureRequest.Builder tuningBuilder,
+ final CaptureRequest.Builder captureBuilder,
+ final CameraCaptureSession.CaptureCallback callback,
+ final CameraCaptureSession captureSession,
+ final Handler handler, final int AeTunningTime) {
+ try{
+ captureSession.capture(tuningBuilder.build(),
+ new CameraCaptureSession.CaptureCallback() {
+ private boolean mAeStateConverged = false;
+
+ @Override
+ public void onCaptureCompleted(CameraCaptureSession session, CaptureRequest request,
+ TotalCaptureResult result) {
+ Integer aeState = result.get(CaptureResult.CONTROL_AE_STATE);
+ Log.d(TAG,"AE tunning onCaptureCompleted aeState = " + aeState);
+ if (aeState != null && aeState == CaptureResult.CONTROL_AE_STATE_CONVERGED) {
+ mAeStateConverged = true;
+ }
+ Log.d(TAG,"AE tunning completed mAeStateConverged = " + mAeStateConverged);
+ if(!mAeStateConverged && AeTunningTime >= 2) {
+ int resetTime = AeTunningTime - 1;
+ waitForAeBlock(tuningBuilder,captureBuilder,callback,
+ captureSession,handler,resetTime);
+ } else {
+ try{
+ captureSession.capture(captureBuilder.build(),callback,handler);
+ } catch (CameraAccessException e){}
+ }
+ }
+ }, handler);
+ }catch (CameraAccessException e){
+
+ }
+ }
+
public static boolean isSupportedStatic() {
return mIsSupported;
}
diff --git a/src/com/android/camera/ui/Camera2FaceView.java b/src/com/android/camera/ui/Camera2FaceView.java
index 3b6d10541..81be61f81 100755..100644
--- a/src/com/android/camera/ui/Camera2FaceView.java
+++ b/src/com/android/camera/ui/Camera2FaceView.java
@@ -151,7 +151,9 @@ public class Camera2FaceView extends FaceView {
faceBound.offset(-mCameraBound.left, -mCameraBound.top);
mRect.set(faceBound);
translateMatrix.mapRect(mRect);
+ if (LOGV) CameraUtil.dumpRect(mRect, "Original rect");
mMatrix.mapRect(mRect);
+ if (LOGV) CameraUtil.dumpRect(mRect, "Transformed rect");
mPaint.setColor(mColor);
mRect.offset(dx, dy);
diff --git a/src/com/android/camera/util/CameraUtil.java b/src/com/android/camera/util/CameraUtil.java
index 3b0d5e6ac..d6c1956d9 100644
--- a/src/com/android/camera/util/CameraUtil.java
+++ b/src/com/android/camera/util/CameraUtil.java
@@ -526,8 +526,8 @@ public class CameraUtil {
//For < 720p, there is no need to do any capping.
//By capping the panel size, we are indirectly controlling the preview size being
//chosen in getOptimalPreviewSize().
- String uMax = SystemProperties.get("camera.display.umax", "");
- String lMax = SystemProperties.get("camera.display.lmax", "");
+ String uMax = PersistUtil.getDisplayUMax();
+ String lMax = PersistUtil.getDisplayLMax();
if ((uMax.length() > 0) && (lMax.length() > 0)) {
Log.v(TAG,"display uMax "+ uMax + " lMax " + lMax);
String uMaxArr[] = uMax.split("x", 2);
diff --git a/version.mk b/version.mk
index 869c764ad..b9926f8b1 100644
--- a/version.mk
+++ b/version.mk
@@ -85,10 +85,10 @@ version_code_package := $(base_version_major)$(base_version_minor)$(base_version
# On eng builds, the BUILD_NUMBER has the user and timestamp inline
ifneq "" "$(filter eng.%,$(BUILD_NUMBER))"
git_hash := $(shell git --git-dir $(LOCAL_PATH)/.git log -n 1 --pretty=format:%h)
- date_string := $(shell date +%m%d%y_%H%M%S)
+ date_string := $$(date +%m%d%y_%H%M%S)
version_name_package := $(base_version_major).$(base_version_minor).$(base_version_build) (eng.$(USER).$(git_hash).$(date_string)-$(base_version_arch)$(base_version_density))
else
- version_name_package := $(base_version_major).$(base_version_minor).$(base_version_build) ($(BUILD_NUMBER)-$(base_version_arch)$(base_version_density))
+ version_name_package := $(base_version_major).$(base_version_minor).$(base_version_build) ($(BUILD_NUMBER_FROM_FILE)-$(base_version_arch)$(base_version_density))
endif
# Cleanup the locals