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)