Don't show aspect ratio UI if using API2 portability
Avoid preview size changes due to current state of locking in API2
portability implementation.
Bug: 17462976
Change-Id: I9426380699988d67b21ce86850ef00736e84a5d6
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index 878bc00..3360122 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -2182,15 +2182,17 @@
(double) size.width() / size.height());
Size original = mCameraSettings.getCurrentPreviewSize();
if (!optimalSize.equals(original)) {
- Log.v(TAG, "setting preview size");
+ Log.v(TAG, "setting preview size. optimal: " + optimalSize + "original: " + original);
mCameraSettings.setPreviewSize(optimalSize);
// Zoom related settings will be changed for different preview
// sizes, so set and read the parameters to get latest values
if (mHandler.getLooper() == Looper.myLooper()) {
+ Log.v(TAG, "matched looper, setting up preview");
// On UI thread only, not when camera starts up
setupPreview();
} else {
+ Log.v(TAG, "no looper match, directly applying settings");
mCameraDevice.applySettings(mCameraSettings);
}
mCameraSettings = mCameraDevice.getSettings();
diff --git a/src/com/android/camera/PhotoUI.java b/src/com/android/camera/PhotoUI.java
index c0fd8c2..dac4cb3 100644
--- a/src/com/android/camera/PhotoUI.java
+++ b/src/com/android/camera/PhotoUI.java
@@ -39,7 +39,9 @@
import com.android.camera.ui.FaceView;
import com.android.camera.ui.PreviewOverlay;
import com.android.camera.ui.PreviewStatusListener;
+import com.android.camera.util.ApiHelper;
import com.android.camera.util.CameraUtil;
+import com.android.camera.util.GservicesHelper;
import com.android.camera.widget.AspectRatioDialogLayout;
import com.android.camera.widget.AspectRatioSelector;
import com.android.camera.widget.LocationDialogLayout;
@@ -451,8 +453,10 @@
* intro dialog on.
*/
private boolean showAspectRatioDialogOnThisDevice() {
- // We only want to show that dialog on N4 and N5
- return "hammerhead".equals(Build.DEVICE) || "mako".equals(Build.DEVICE);
+ // We only want to show that dialog on N4/N5/N6
+ // Don't show if using API2 portability, b/17462976
+ return !GservicesHelper.useCamera2ApiThroughPortabilityLayer(mActivity) &&
+ (ApiHelper.IS_NEXUS_4 || ApiHelper.IS_NEXUS_5 || ApiHelper.IS_NEXUS_6);
}
public void initializeZoom(CameraCapabilities capabilities, CameraSettings settings) {
diff --git a/src/com/android/camera/util/ApiHelper.java b/src/com/android/camera/util/ApiHelper.java
index caa748f..db27471 100644
--- a/src/com/android/camera/util/ApiHelper.java
+++ b/src/com/android/camera/util/ApiHelper.java
@@ -54,6 +54,7 @@
public static final boolean HAS_HIDEYBARS = isKitKatOrHigher();
+ public static final boolean IS_NEXUS_4 = "mako".equalsIgnoreCase(Build.DEVICE);
public static final boolean IS_NEXUS_5 = "LGE".equalsIgnoreCase(Build.MANUFACTURER)
&& "hammerhead".equalsIgnoreCase(Build.DEVICE);
public static final boolean IS_NEXUS_6 = "motorola".equalsIgnoreCase(Build.MANUFACTURER)