Merge change 8804 into donut

* changes:
  Fix SDK build break caused by including legacy support header into main API header
diff --git a/pdk/docs/guide/camera.jd b/pdk/docs/guide/camera.jd
index 083f43a..281f76d 100755
--- a/pdk/docs/guide/camera.jd
+++ b/pdk/docs/guide/camera.jd
@@ -16,7 +16,7 @@
 
 <p>Android's camera subsystem connects the camera application to the application framework and user space libraries, which in turn communicate with the camera hardware layer that operates the physical camera.</p>
 <p>The diagram below illustrates the structure of the camera subsystem.</p>
-<p><img src="images/androidCameraArchitecture.gif"></p>
+<p><img src="images/camera_video2.gif"></p>
 
 
 <a name="androidCameraBuildingDriver"></a><h3>Building a Camera Library</h3>
diff --git a/pdk/docs/guide/images/androidCameraArchitecture.gif b/pdk/docs/guide/images/androidCameraArchitecture.gif
deleted file mode 100755
index 2679b43..0000000
--- a/pdk/docs/guide/images/androidCameraArchitecture.gif
+++ /dev/null
Binary files differ
diff --git a/pdk/docs/guide/images/camera_video2.gif b/pdk/docs/guide/images/camera_video2.gif
new file mode 100755
index 0000000..8c46a83
--- /dev/null
+++ b/pdk/docs/guide/images/camera_video2.gif
Binary files differ
diff --git a/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/PlatformTarget.java b/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/PlatformTarget.java
index 0481d4c..15e7e51 100644
--- a/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/PlatformTarget.java
+++ b/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/PlatformTarget.java
@@ -242,6 +242,9 @@
         int apiDiff = mVersion.getApiLevel() - target.getVersion().getApiLevel();
 
         if (mVersion.getCodename() != null && apiDiff == 0) {
+            if (target.getVersionName() == null) {
+                return +1; // preview showed last
+            }
             return mVersion.getCodename().compareTo(target.getVersion().getCodename());
         }
 
diff --git a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdateChooserDialog.java b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdateChooserDialog.java
index 14c8bbc..c940e0d 100755
--- a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdateChooserDialog.java
+++ b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdateChooserDialog.java
@@ -63,6 +63,12 @@
  */

 final class UpdateChooserDialog extends Dialog {

 

+    /**

+     * Min Y location for dialog. Need to deal with the menu bar on mac os.

+     */

+    private final static int MIN_Y = SdkConstants.CURRENT_PLATFORM == SdkConstants.PLATFORM_DARWIN ?

+            20 : 0;

+

     /** Last dialog size for this session. */

     private static Point sLastSize;

     private boolean mCompleted;

@@ -373,7 +379,18 @@
             int cw = childSize.x;

             int ch = childSize.y;

 

-            child.setLocation(px + (pw - cw) / 2, py + (ph - ch) / 2);

+            int x = px + (pw - cw) / 2;

+            int y = py + (ph - ch) / 2;

+

+            if (x < 0) {

+                x = 0;

+            }

+

+            if (y < MIN_Y) {

+                y = MIN_Y;

+            }

+

+            child.setLocation(x, y);

             child.setSize(cw, ch);

         }

     }

diff --git a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/tasks/ProgressDialog.java b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/tasks/ProgressDialog.java
index 12ef2cc..ff79c68 100755
--- a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/tasks/ProgressDialog.java
+++ b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/tasks/ProgressDialog.java
@@ -16,6 +16,7 @@
 

 package com.android.sdkuilib.internal.tasks;

 

+import com.android.sdklib.SdkConstants;

 import com.android.sdklib.internal.repository.ITaskMonitor;

 

 import org.eclipse.swt.SWT;

@@ -46,6 +47,12 @@
  */

 final class ProgressDialog extends Dialog {

 

+    /**

+     * Min Y location for dialog. Need to deal with the menu bar on mac os.

+     */

+    private final static int MIN_Y = SdkConstants.CURRENT_PLATFORM == SdkConstants.PLATFORM_DARWIN ?

+            20 : 0;

+

     private static enum CancelMode {

         /** Cancel button says "Cancel" and is enabled. Waiting for user to cancel. */

         ACTIVE,

@@ -388,7 +395,13 @@
             int cw = childSize.x;

             int ch = childSize.y;

 

-            child.setLocation(px + (pw - cw) / 2, py + (ph - ch) / 2);

+            int x = px + (pw - cw) / 2;

+            if (x < 0) x = 0;

+

+            int y = py + (ph - ch) / 2;

+            if (y < MIN_Y) y = MIN_Y;

+

+            child.setLocation(x, y);

             child.setSize(cw, ch);

         }

     }