am d691e3af: am a243ca05: Fix WXGA skin for proper sensor support.

* commit 'd691e3afc1aa842d2691b7c1daee21c814663f78':
  Fix WXGA skin for proper sensor support.
diff --git a/build/tools/windows_sdk.mk b/build/tools/windows_sdk.mk
index 91033a6..7dc6b7f 100644
--- a/build/tools/windows_sdk.mk
+++ b/build/tools/windows_sdk.mk
@@ -87,10 +87,7 @@
 	$(hide) USB_DRIVER_HOOK=$(USB_DRIVER_HOOK) \
 		$(TOPDIR)development/build/tools/patch_windows_sdk.sh $(subst @,-q,$(hide)) \
 		$(WIN_SDK_DIR)/$(WIN_SDK_NAME) $(OUT_DIR) $(TOPDIR)
-	# TODO remove test once llvm-rs-cc is merged
-	$(hide) if [ -f $(WIN_SDK_DIR)/$(WIN_SDK_NAME)/platform-tools/llvm-rs-cc.exe ]; then \
-			strip --strip-all $(WIN_SDK_DIR)/$(WIN_SDK_NAME)/platform-tools/llvm-rs-cc.exe; \
-		fi
+	$(hide) strip --strip-all $(WIN_SDK_DIR)/$(WIN_SDK_NAME)/platform-tools/llvm-rs-cc.exe
 	$(hide) $(TOPDIR)sdk/build/patch_windows_sdk.sh $(subst @,-q,$(hide)) \
 		$(WIN_SDK_DIR)/$(WIN_SDK_NAME) $(OUT_DIR) $(TOPDIR)
 	$(hide) ( \
diff --git a/cmds/monkey/src/com/android/commands/monkey/Monkey.java b/cmds/monkey/src/com/android/commands/monkey/Monkey.java
index 1e061ea..343c344 100644
--- a/cmds/monkey/src/com/android/commands/monkey/Monkey.java
+++ b/cmds/monkey/src/com/android/commands/monkey/Monkey.java
@@ -136,6 +136,17 @@
      */
     private boolean mRequestAppCrashBugreport = false;
 
+    /**Request the bugreport based on the mBugreportFrequency. */
+    private boolean mGetPeriodicBugreport = true;
+
+    /**
+     * Request the bugreport based on the mBugreportFrequency.
+     */
+    private boolean mRequestPeriodicBugreport = false;
+
+    /** Bugreport frequency. */
+    private long mBugreportFrequency = 10;
+
     /** Failure process name */
     private String mReportProcessName;
 
@@ -337,9 +348,8 @@
                 synchronized (Monkey.this) {
                     mAbort = true;
                 }
-                return (mKillProcessAfterError) ? -1 : 0;
             }
-            return 0;
+            return (mKillProcessAfterError) ? -1 : 1;
         }
     }
 
@@ -618,6 +628,10 @@
                 reportDumpsysMemInfo();
                 mRequestDumpsysMemInfo = false;
             }
+            if (mRequestPeriodicBugreport){
+                getBugreport("Bugreport_");
+                mRequestPeriodicBugreport = false;
+            }
         }
 
         if (mGenerateHprof) {
@@ -762,6 +776,9 @@
                     mScriptLog = true;
                 } else if (opt.equals("--bugreport")) {
                     mRequestBugreport = true;
+                } else if (opt.equals("--periodic-bugreport")){
+                    mGetPeriodicBugreport = true;
+                    mBugreportFrequency = nextOptionLong("Number of iterations");
                 } else if (opt.equals("-h")) {
                     showUsage();
                     return false;
@@ -993,6 +1010,10 @@
                     getBugreport("app_crash" + mReportProcessName + "_");
                     mRequestAppCrashBugreport = false;
                 }
+                if (mRequestPeriodicBugreport){
+                    getBugreport("Bugreport_");
+                    mRequestPeriodicBugreport = false;
+                }
                 if (mRequestDumpsysMemInfo) {
                     mRequestDumpsysMemInfo = false;
                     shouldReportDumpsysMemInfo = true;
@@ -1082,6 +1103,12 @@
                 if (!mCountEvents) {
                     cycleCounter++;
                     writeScriptLog(cycleCounter);
+                    //Capture the bugreport after n iteration
+                    if (mGetPeriodicBugreport) {
+                        if ((cycleCounter % mBugreportFrequency) == 0) {
+                            mRequestPeriodicBugreport = true;
+                        }
+                    }
                 } else {
                     // Event Source has signaled that we have no more events to process
                     break;
@@ -1259,6 +1286,7 @@
         usage.append("              [--randomize-script]\n");
         usage.append("              [--script-log]\n");
         usage.append("              [--bugreport]\n");
+        usage.append("              [--periodic-bugreport]\n");
         usage.append("              COUNT\n");
         System.err.println(usage.toString());
     }
diff --git a/cmds/monkey/src/com/android/commands/monkey/MonkeySourceScript.java b/cmds/monkey/src/com/android/commands/monkey/MonkeySourceScript.java
index 7e60b7f..09ec8e9 100644
--- a/cmds/monkey/src/com/android/commands/monkey/MonkeySourceScript.java
+++ b/cmds/monkey/src/com/android/commands/monkey/MonkeySourceScript.java
@@ -113,6 +113,10 @@
 
     private static final String EVENT_KEYWORD_INPUT_STRING = "DispatchString";
 
+    private static final String EVENT_KEYWORD_PRESSANDHOLD = "PressAndHold";
+
+    private static final String EVENT_KEYWORD_DRAG = "Drag";
+
     // a line at the end of the header
     private static final String STARTING_DATA_LINE = "start data >>";
 
@@ -308,6 +312,34 @@
                         .addPointer(0, x, y, 1, 5);
                 mQ.addLast(e1);
                 mQ.addLast(e2);
+            } catch (NumberFormatException e) {
+                System.err.println("// " + e.toString());
+            }
+            return;
+        }
+
+        //Handle the press and hold
+        if ((s.indexOf(EVENT_KEYWORD_PRESSANDHOLD) >= 0) && args.length == 3) {
+            try {
+                float x = Float.parseFloat(args[0]);
+                float y = Float.parseFloat(args[1]);
+                long pressDuration = Long.parseLong(args[2]);
+
+                // Set the default parameters
+                long downTime = SystemClock.uptimeMillis();
+
+                MonkeyMotionEvent e1 = new MonkeyTouchEvent(MotionEvent.ACTION_DOWN)
+                        .setDownTime(downTime)
+                        .setEventTime(downTime)
+                        .addPointer(0, x, y, 1, 5);
+                MonkeyWaitEvent e2 = new MonkeyWaitEvent(pressDuration);
+                MonkeyMotionEvent e3 = new MonkeyTouchEvent(MotionEvent.ACTION_UP)
+                        .setDownTime(downTime + pressDuration)
+                        .setEventTime(downTime + pressDuration)
+                        .addPointer(0, x, y, 1, 5);
+                mQ.addLast(e1);
+                mQ.addLast(e2);
+                mQ.addLast(e2);
 
             } catch (NumberFormatException e) {
                 System.err.println("// " + e.toString());
@@ -315,6 +347,44 @@
             return;
         }
 
+        // Handle drag event
+        if ((s.indexOf(EVENT_KEYWORD_DRAG) >= 0) && args.length == 5) {
+            float xStart = Float.parseFloat(args[0]);
+            float yStart = Float.parseFloat(args[1]);
+            float xEnd = Float.parseFloat(args[2]);
+            float yEnd = Float.parseFloat(args[3]);
+            int stepCount = Integer.parseInt(args[4]);
+
+            float x = xStart;
+            float y = yStart;
+            long downTime = SystemClock.uptimeMillis();
+            long eventTime = SystemClock.uptimeMillis();
+
+            if (stepCount > 0) {
+                float xStep = (xEnd - xStart) / stepCount;
+                float yStep = (yEnd - yStart) / stepCount;
+
+                MonkeyMotionEvent e =
+                        new MonkeyTouchEvent(MotionEvent.ACTION_DOWN).setDownTime(downTime)
+                                .setEventTime(eventTime).addPointer(0, x, y, 1, 5);
+                mQ.addLast(e);
+
+                for (int i = 0; i < stepCount; ++i) {
+                    x += xStep;
+                    y += yStep;
+                    eventTime = SystemClock.uptimeMillis();
+                    e = new MonkeyTouchEvent(MotionEvent.ACTION_MOVE).setDownTime(downTime)
+                        .setEventTime(eventTime).addPointer(0, x, y, 1, 5);
+                    mQ.addLast(e);
+                }
+
+                eventTime = SystemClock.uptimeMillis();
+                e = new MonkeyTouchEvent(MotionEvent.ACTION_UP).setDownTime(downTime)
+                    .setEventTime(eventTime).addPointer(0, x, y, 1, 5);
+                mQ.addLast(e);
+            }
+        }
+
         // Handle flip events
         if (s.indexOf(EVENT_KEYWORD_FLIP) >= 0 && args.length == 1) {
             boolean keyboardOpen = Boolean.parseBoolean(args[0]);
diff --git a/ide/eclipse/.classpath b/ide/eclipse/.classpath
index dd495af..990a751 100644
--- a/ide/eclipse/.classpath
+++ b/ide/eclipse/.classpath
@@ -20,7 +20,6 @@
 	<classpathentry kind="src" path="packages/apps/Settings/src"/>
 	<classpathentry kind="src" path="packages/apps/SoundRecorder/src"/>
 	<classpathentry kind="src" path="packages/apps/Stk/src"/>
-	<classpathentry kind="src" path="packages/apps/Tag/src"/>
 	<classpathentry kind="src" path="packages/apps/VoiceDialer/src"/>
 	<classpathentry kind="src" path="packages/providers/CalendarProvider/src"/>
 	<classpathentry kind="src" path="packages/providers/ContactsProvider/src"/>
@@ -43,6 +42,7 @@
 	<classpathentry kind="src" path="frameworks/base/obex"/>
 	<classpathentry kind="src" path="frameworks/base/opengl/java"/>
 	<classpathentry kind="src" path="frameworks/base/packages/SettingsProvider/src"/>
+	<classpathentry kind="src" path="frameworks/base/packages/SystemUI/src"/>
 	<classpathentry kind="src" path="frameworks/base/policy/src"/>
 	<classpathentry kind="src" path="frameworks/base/sax/java"/>
 	<classpathentry kind="src" path="frameworks/base/services/java"/>
@@ -51,6 +51,7 @@
 	<classpathentry kind="src" path="frameworks/base/voip/java"/>
 	<classpathentry kind="src" path="frameworks/base/vpn/java"/>
 	<classpathentry kind="src" path="frameworks/base/wifi/java"/>
+	<classpathentry kind="src" path="frameworks/ex/carousel/java"/>
 	<classpathentry kind="src" path="frameworks/ex/common/java"/>
 	<classpathentry kind="src" path="frameworks/opt/vcard/java"/>
 	<classpathentry kind="src" path="development/samples/ApiDemos/src"/>
@@ -84,6 +85,7 @@
 	<classpathentry kind="src" path="out/target/common/obj/APPS/Music_intermediates/src/src"/>
 	<classpathentry kind="src" path="out/target/common/obj/APPS/Phone_intermediates/src/src"/>
 	<classpathentry kind="src" path="out/target/common/obj/APPS/QuickSearchBox_intermediates/src/src"/>
+	<classpathentry kind="src" path="out/target/common/obj/JAVA_LIBRARIES/android-common-carousel_intermediates/src/renderscript/src"/>
 	<classpathentry kind="src" path="out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/core/java"/>
 	<classpathentry kind="src" path="out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/location/java"/>
 	<classpathentry kind="src" path="out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/media/java"/>
diff --git a/samples/ApiDemos/res/layout/layout_animations_by_default.xml b/samples/ApiDemos/res/layout/layout_animations_by_default.xml
index b7f69ab..a5062bb 100644
--- a/samples/ApiDemos/res/layout/layout_animations_by_default.xml
+++ b/samples/ApiDemos/res/layout/layout_animations_by_default.xml
@@ -16,7 +16,7 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content"
+    android:layout_height="match_parent"
     >
     <Button
         android:layout_width="wrap_content"
@@ -27,7 +27,7 @@
     <LinearLayout
         android:orientation="horizontal"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
+        android:layout_height="wrap_content"
         android:id="@+id/horizontalContainer"
         android:animateLayoutChanges="true"
         />
diff --git a/samples/ApiDemos/res/layout/layout_animations_hideshow.xml b/samples/ApiDemos/res/layout/layout_animations_hideshow.xml
index 641f6c1..4215ac1 100644
--- a/samples/ApiDemos/res/layout/layout_animations_hideshow.xml
+++ b/samples/ApiDemos/res/layout/layout_animations_hideshow.xml
@@ -16,13 +16,13 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content"
+    android:layout_height="match_parent"
     android:id="@+id/parent"
     >
     <LinearLayout
         android:orientation="horizontal"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
+        android:layout_height="wrap_content"
         >
         <Button
             android:layout_width="wrap_content"
diff --git a/samples/ApiDemos/src/com/example/android/apis/animation/FixedGridLayout.java b/samples/ApiDemos/src/com/example/android/apis/animation/FixedGridLayout.java
index 75c5580..5d92e85 100644
--- a/samples/ApiDemos/src/com/example/android/apis/animation/FixedGridLayout.java
+++ b/samples/ApiDemos/src/com/example/android/apis/animation/FixedGridLayout.java
@@ -64,9 +64,11 @@
             final View child = getChildAt(index);
             child.measure(cellWidthSpec, cellHeightSpec);
         }
-        // Use the size our parents gave us
-        setMeasuredDimension(resolveSize(mCellWidth*count, widthMeasureSpec),
-                resolveSize(mCellHeight*count, heightMeasureSpec));
+        // Use the size our parents gave us, but default to a minimum size to avoid
+        // clipping transitioning children
+        int minCount =  count > 3 ? count : 3;
+        setMeasuredDimension(resolveSize(mCellWidth * minCount, widthMeasureSpec),
+                resolveSize(mCellHeight * minCount, heightMeasureSpec));
     }
 
     @Override
diff --git a/samples/ApiDemos/src/com/example/android/apis/animation/LayoutAnimations.java b/samples/ApiDemos/src/com/example/android/apis/animation/LayoutAnimations.java
index 5d38b03..65ad782 100644
--- a/samples/ApiDemos/src/com/example/android/apis/animation/LayoutAnimations.java
+++ b/samples/ApiDemos/src/com/example/android/apis/animation/LayoutAnimations.java
@@ -58,6 +58,7 @@
         setContentView(R.layout.layout_animations);
 
         container = new FixedGridLayout(this);
+        container.setClipChildren(false);
         ((FixedGridLayout)container).setCellHeight(50);
         ((FixedGridLayout)container).setCellWidth(200);
         final LayoutTransition transitioner = new LayoutTransition();
@@ -77,6 +78,7 @@
 
         ViewGroup parent = (ViewGroup) findViewById(R.id.parent);
         parent.addView(container);
+        parent.setClipChildren(false);
         Button addButton = (Button) findViewById(R.id.addNewButton);
         addButton.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {
diff --git a/samples/ApiDemos/src/com/example/android/apis/animation/LayoutAnimationsHideShow.java b/samples/ApiDemos/src/com/example/android/apis/animation/LayoutAnimationsHideShow.java
index 66e424e..3ee7b0c 100644
--- a/samples/ApiDemos/src/com/example/android/apis/animation/LayoutAnimationsHideShow.java
+++ b/samples/ApiDemos/src/com/example/android/apis/animation/LayoutAnimationsHideShow.java
@@ -53,10 +53,9 @@
 
         final CheckBox hideGoneCB = (CheckBox) findViewById(R.id.hideGoneCB);
 
-        container = new FixedGridLayout(this);
-        ((FixedGridLayout)container).setCellHeight(50);
-        ((FixedGridLayout)container).setCellWidth(100);
         container = new LinearLayout(this);
+        container.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
+                ViewGroup.LayoutParams.MATCH_PARENT));
 
         // Add a slew of buttons to the container. We won't add any more buttons at runtime, but
         // will just show/hide the buttons we've already created
diff --git a/samples/ApiDemos/src/com/example/android/apis/nfc/ForegroundDispatch.java b/samples/ApiDemos/src/com/example/android/apis/nfc/ForegroundDispatch.java
index f29c268..3fefe0f 100644
--- a/samples/ApiDemos/src/com/example/android/apis/nfc/ForegroundDispatch.java
+++ b/samples/ApiDemos/src/com/example/android/apis/nfc/ForegroundDispatch.java
@@ -87,6 +87,7 @@
     @Override
     public void onPause() {
         super.onPause();
-        mAdapter.disableForegroundDispatch(this);
+        //mAdapter.disableForegroundDispatch(this);
+        throw new RuntimeException("onPause not implemented to fix build");
     }
 }