Receive commands in the water wallpaper
diff --git a/src/com/android/wallpaper/RenderScriptScene.java b/src/com/android/wallpaper/RenderScriptScene.java
index 0272651..1f68ce1 100644
--- a/src/com/android/wallpaper/RenderScriptScene.java
+++ b/src/com/android/wallpaper/RenderScriptScene.java
@@ -18,6 +18,7 @@
 package com.android.wallpaper;
 
 import android.content.res.Resources;
+import android.os.Bundle;
 import android.renderscript.RenderScript;
 import android.renderscript.ScriptC;
 
@@ -83,4 +84,10 @@
     @SuppressWarnings({"UnusedDeclaration"})
     public void setOffset(float xOffset, float yOffset, int xPixels, int yPixels) {
     }
+    
+    @SuppressWarnings({"UnusedDeclaration"})
+    public Bundle onCommand(String action, int x, int y, int z, Bundle extras,
+            boolean resultRequested) {
+        return null;
+    }
 }
diff --git a/src/com/android/wallpaper/RenderScriptWallpaper.java b/src/com/android/wallpaper/RenderScriptWallpaper.java
index afc6e0c..5df2a34 100644
--- a/src/com/android/wallpaper/RenderScriptWallpaper.java
+++ b/src/com/android/wallpaper/RenderScriptWallpaper.java
@@ -17,6 +17,7 @@
 package com.android.wallpaper;
 
 import android.service.wallpaper.WallpaperService;
+import android.os.Bundle;
 import android.renderscript.RenderScript;
 import android.view.SurfaceHolder;
 import android.view.Surface;
@@ -101,5 +102,12 @@
             super.onSurfaceDestroyed(holder);
             destroyRenderer();
         }
+
+        @Override
+        public Bundle onCommand(String action, int x, int y, int z,
+                Bundle extras, boolean resultRequested) {
+            return mRenderer.onCommand(action, x, y, z, extras, resultRequested);
+        }
+        
     }
 }
diff --git a/src/com/android/wallpaper/fall/FallRS.java b/src/com/android/wallpaper/fall/FallRS.java
index d50976c..9849526 100644
--- a/src/com/android/wallpaper/fall/FallRS.java
+++ b/src/com/android/wallpaper/fall/FallRS.java
@@ -16,6 +16,7 @@
 
 package com.android.wallpaper.fall;
 
+import android.os.Bundle;
 import android.renderscript.ScriptC;
 import android.renderscript.ProgramFragment;
 import android.renderscript.ProgramStore;
@@ -111,6 +112,15 @@
         mWorldState.xOffset = xOffset;
         mState.data(mWorldState);
     }
+    
+    @Override
+    public Bundle onCommand(String action, int x, int y, int z, Bundle extras,
+            boolean resultRequested) {
+        if ("android.wallpaper.tap".equals(action)) {
+            addDrop(x + (mWorldState.width * mWorldState.xOffset), y);
+        }
+        return null;
+    }
 
     @Override
     public void resize(int width, int height) {