Updating Clings UI

issue: 16127412

Change-Id: Ie5885cabbef086e3b08811da72af88d01c4405e7
diff --git a/res/drawable-hdpi/cling_bg.9.png b/res/drawable-hdpi/cling_bg.9.png
new file mode 100644
index 0000000..e173ba5
--- /dev/null
+++ b/res/drawable-hdpi/cling_bg.9.png
Binary files differ
diff --git a/res/drawable-mdpi/cling_bg.9.png b/res/drawable-mdpi/cling_bg.9.png
new file mode 100644
index 0000000..fc49c89
--- /dev/null
+++ b/res/drawable-mdpi/cling_bg.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/cling_bg.9.png b/res/drawable-xhdpi/cling_bg.9.png
new file mode 100644
index 0000000..4db356f
--- /dev/null
+++ b/res/drawable-xhdpi/cling_bg.9.png
Binary files differ
diff --git a/res/drawable-xxhdpi/cling_bg.9.png b/res/drawable-xxhdpi/cling_bg.9.png
new file mode 100644
index 0000000..dc9f69a
--- /dev/null
+++ b/res/drawable-xxhdpi/cling_bg.9.png
Binary files differ
diff --git a/res/layout-land/longpress_cling.xml b/res/layout-land/longpress_cling.xml
index ffae0be..d1b30a8 100644
--- a/res/layout-land/longpress_cling.xml
+++ b/res/layout-land/longpress_cling.xml
@@ -1,22 +1,26 @@
 <?xml version="1.0" encoding="utf-8"?>
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3"
     android:id="@+id/longpress_cling"
     android:layout_width="match_parent"
-    android:layout_height="match_parent" >
+    android:layout_height="match_parent"
+    android:orientation="vertical" >
 
-    <com.android.launcher3.ClearCircleLayout
-        android:id="@+id/cling_longpress_hole"
+    <Space
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        launcher:holeLocation="page_indicator" />
+        android:layout_height="0dp"
+        android:layout_weight="1" />
 
     <FrameLayout
         android:id="@+id/cling_content"
         android:layout_width="360dp"
         android:layout_height="wrap_content"
-        android:layout_gravity="center"
-        android:background="#FF009688"
-        android:elevation="6dp" />
+        android:layout_gravity="center_horizontal"
+        android:background="@drawable/cling_bg" />
 
-</FrameLayout>
\ No newline at end of file
+    <Space
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="2" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout-land/migration_cling.xml b/res/layout-land/migration_cling.xml
index cc446fb..4765524 100644
--- a/res/layout-land/migration_cling.xml
+++ b/res/layout-land/migration_cling.xml
@@ -58,7 +58,7 @@
         <TextView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:fontFamily="sans-serif-condensed"
+            android:fontFamily="sans-serif-medium"
             android:text="@string/migration_cling_title"
             android:textColor="#E1000000"
             android:textSize="20sp" />
@@ -68,7 +68,7 @@
             android:layout_height="wrap_content"
             android:paddingBottom="24dp"
             android:text="@string/migration_cling_description"
-            android:textColor="#E1000000"
+            android:textColor="#99000000"
             android:textSize="16sp" />
 
         <LinearLayout
@@ -76,23 +76,23 @@
             android:layout_height="wrap_content" >
 
             <Button
+                android:id="@+id/cling_dismiss_migration_copy_apps"
                 style="?android:attr/buttonBarButtonStyle"
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_weight="1"
-                android:fontFamily="sans-serif-condensed"
-                android:id="@+id/cling_dismiss_migration_copy_apps"
+                android:fontFamily="sans-serif-medium"
                 android:text="@string/migration_cling_copy_apps"
                 android:textColor="#FFFFFFFF"
                 android:textSize="14sp" />
 
             <Button
+                android:id="@+id/cling_dismiss_migration_use_default"
                 style="?android:attr/buttonBarButtonStyle"
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_weight="1"
-                android:fontFamily="sans-serif-condensed"
-                android:id="@+id/cling_dismiss_migration_use_default"
+                android:fontFamily="sans-serif-medium"
                 android:text="@string/migration_cling_use_default"
                 android:textColor="#deFFFFFF"
                 android:textSize="14sp" />
diff --git a/res/layout-port/longpress_cling.xml b/res/layout-port/longpress_cling.xml
index ec0321f..d0f1ab7 100644
--- a/res/layout-port/longpress_cling.xml
+++ b/res/layout-port/longpress_cling.xml
@@ -5,19 +5,12 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent" >
 
-    <com.android.launcher3.ClearCircleLayout
-        android:id="@+id/cling_longpress_hole"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        launcher:holeLocation="center_screen" />
-
     <FrameLayout
         android:id="@+id/cling_content"
-        android:layout_width="360dp"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_gravity="bottom"
-        android:background="#FF009688"
-        android:elevation="6dp"
-        android:tag="slide_from_bottom" />
+        android:layout_gravity="top"
+        android:background="@drawable/cling_bg"
+        android:tag="crop_bg_top_and_sides" />
 
 </FrameLayout>
\ No newline at end of file
diff --git a/res/layout-port/migration_cling.xml b/res/layout-port/migration_cling.xml
index 5251e7b..932a9f4 100644
--- a/res/layout-port/migration_cling.xml
+++ b/res/layout-port/migration_cling.xml
@@ -60,7 +60,7 @@
             <TextView
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:fontFamily="sans-serif-condensed"
+                android:fontFamily="sans-serif-medium"
                 android:text="@string/migration_cling_title"
                 android:textColor="#E1000000"
                 android:textSize="20sp" />
@@ -70,7 +70,7 @@
                 android:layout_height="wrap_content"
                 android:paddingBottom="24dp"
                 android:text="@string/migration_cling_description"
-                android:textColor="#E1000000"
+                android:textColor="#99000000"
                 android:textSize="16sp" />
 
             <LinearLayout
@@ -83,7 +83,7 @@
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:layout_weight="1"
-                    android:fontFamily="sans-serif-condensed"
+                    android:fontFamily="sans-serif-medium"
                     android:text="@string/migration_cling_copy_apps"
                     android:textColor="#FFFFFFFF"
                     android:textSize="14sp" />
@@ -94,7 +94,7 @@
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:layout_weight="1"
-                    android:fontFamily="sans-serif-condensed"
+                    android:fontFamily="sans-serif-medium"
                     android:text="@string/migration_cling_use_default"
                     android:textColor="#deFFFFFF"
                     android:textSize="14sp" />
diff --git a/res/layout-sw600dp-port/longpress_cling.xml b/res/layout-sw600dp-port/longpress_cling.xml
index 4b4cf91..090adc5 100644
--- a/res/layout-sw600dp-port/longpress_cling.xml
+++ b/res/layout-sw600dp-port/longpress_cling.xml
@@ -1,23 +1,26 @@
 <?xml version="1.0" encoding="utf-8"?>
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3"
     android:id="@+id/longpress_cling"
     android:layout_width="match_parent"
-    android:layout_height="match_parent" >
+    android:layout_height="match_parent"
+    android:orientation="vertical" >
 
-    <com.android.launcher3.ClearCircleLayout
-        android:id="@+id/cling_longpress_hole"
+    <Space
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        launcher:holeLocation="center_screen" />
+        android:layout_height="0dp"
+        android:layout_weight="1" />
 
     <FrameLayout
         android:id="@+id/cling_content"
         android:layout_width="360dp"
         android:layout_height="wrap_content"
-        android:layout_gravity="center_horizontal|top"
-        android:background="#FF009688"
-        android:elevation="6dp"
-        android:tag="slide_from_top" />
+        android:layout_gravity="center_horizontal"
+        android:background="@drawable/cling_bg" />
 
-</FrameLayout>
\ No newline at end of file
+    <Space
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="3" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout-sw720dp/longpress_cling.xml b/res/layout-sw720dp/longpress_cling.xml
deleted file mode 100644
index ffae0be..0000000
--- a/res/layout-sw720dp/longpress_cling.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3"
-    android:id="@+id/longpress_cling"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent" >
-
-    <com.android.launcher3.ClearCircleLayout
-        android:id="@+id/cling_longpress_hole"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        launcher:holeLocation="page_indicator" />
-
-    <FrameLayout
-        android:id="@+id/cling_content"
-        android:layout_width="360dp"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center"
-        android:background="#FF009688"
-        android:elevation="6dp" />
-
-</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/longpress_cling_content.xml b/res/layout/longpress_cling_content.xml
index 16bb493..47a8e97 100644
--- a/res/layout/longpress_cling_content.xml
+++ b/res/layout/longpress_cling_content.xml
@@ -3,11 +3,14 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical"
-    android:padding="48dp" >
+    android:paddingBottom="24dp"
+    android:paddingTop="36dp" >
 
     <TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
+        android:paddingLeft="36dp"
+        android:paddingRight="36dp"
         android:text="@string/workspace_cling_longpress_title"
         android:textColor="#E1000000"
         android:textSize="24sp" />
@@ -16,8 +19,10 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginTop="16dp"
+        android:paddingLeft="36dp"
+        android:paddingRight="36dp"
         android:text="@string/workspace_cling_longpress_description"
-        android:textColor="#E1000000"
+        android:textColor="#99000000"
         android:textSize="16sp" />
 
     <Button
@@ -26,8 +31,9 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_gravity="end"
-        android:layout_marginTop="24dp"
-        android:fontFamily="sans-serif-condensed"
+        android:layout_marginRight="12dp"
+        android:layout_marginTop="27dp"
+        android:fontFamily="sans-serif-medium"
         android:paddingLeft="24dp"
         android:paddingRight="24dp"
         android:text="@string/workspace_cling_longpress_dismiss"
diff --git a/res/layout/longpress_cling_welcome_content.xml b/res/layout/longpress_cling_welcome_content.xml
index 4b3410b..dd4f8d7 100644
--- a/res/layout/longpress_cling_welcome_content.xml
+++ b/res/layout/longpress_cling_welcome_content.xml
@@ -3,12 +3,15 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical"
-    android:padding="48dp" >
+    android:paddingBottom="24dp"
+    android:paddingTop="36dp" >
 
     <TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:paddingBottom="16dp"
+        android:layout_marginBottom="8dp"
+        android:paddingLeft="36dp"
+        android:paddingRight="36dp"
         android:text="@string/first_run_cling_title"
         android:textColor="#E1000000"
         android:textSize="34sp" />
@@ -16,7 +19,10 @@
     <TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:fontFamily="sans-serif-condensed"
+        android:layout_marginBottom="5.3dp"
+        android:fontFamily="sans-serif-medium"
+        android:paddingLeft="36dp"
+        android:paddingRight="36dp"
         android:text="@string/workspace_cling_longpress_title"
         android:textColor="#E1000000"
         android:textSize="20sp" />
@@ -24,8 +30,10 @@
     <TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
+        android:paddingLeft="36dp"
+        android:paddingRight="36dp"
         android:text="@string/workspace_cling_longpress_description"
-        android:textColor="#E1000000"
+        android:textColor="#99000000"
         android:textSize="16sp" />
 
     <Button
@@ -34,8 +42,9 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_gravity="end"
-        android:layout_marginTop="24dp"
-        android:fontFamily="sans-serif-condensed"
+        android:layout_marginRight="12dp"
+        android:layout_marginTop="27dp"
+        android:fontFamily="sans-serif-medium"
         android:paddingLeft="24dp"
         android:paddingRight="24dp"
         android:text="@string/workspace_cling_longpress_dismiss"
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index a2bdafc..c974399 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -25,13 +25,6 @@
         <attr name="sourceViewId" format="integer" />
     </declare-styleable>
 
-    <!-- ClearCircleLayout specific attributes. These attributes are used to customize
-         the cling in XML files. -->
-    <declare-styleable name="ClearCircleLayout">
-        <!-- Used to identify how to draw the cling bg -->
-        <attr name="holeLocation" format="string"  />
-    </declare-styleable>
-
     <!-- Page Indicator specific attributes. -->
     <declare-styleable name="PageIndicator">
         <attr name="windowSize" format="integer"  />
diff --git a/src/com/android/launcher3/BorderCropDrawable.java b/src/com/android/launcher3/BorderCropDrawable.java
new file mode 100644
index 0000000..caf497d
--- /dev/null
+++ b/src/com/android/launcher3/BorderCropDrawable.java
@@ -0,0 +1,90 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.launcher3;
+
+import android.graphics.Canvas;
+import android.graphics.ColorFilter;
+import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
+
+public class BorderCropDrawable extends Drawable {
+
+    private final Drawable mChild;
+    private final Rect mBoundsShift;
+    private final Rect mPadding;
+
+    BorderCropDrawable(Drawable child, boolean cropLeft,
+            boolean cropTop, boolean cropRight, boolean cropBottom) {
+        mChild = child;
+
+        mBoundsShift = new Rect();
+        mPadding = new Rect();
+        mChild.getPadding(mPadding);
+
+        if (cropLeft) {
+            mBoundsShift.left = -mPadding.left;
+            mPadding.left = 0;
+        }
+        if (cropTop) {
+            mBoundsShift.top = -mPadding.top;
+            mPadding.top = 0;
+        }
+        if (cropRight) {
+            mBoundsShift.right = mPadding.right;
+            mPadding.right = 0;
+        }
+        if (cropBottom) {
+            mBoundsShift.bottom = mPadding.bottom;
+            mPadding.bottom = 0;
+        }
+    }
+
+    @Override
+    protected void onBoundsChange(Rect bounds) {
+        mChild.setBounds(
+                bounds.left + mBoundsShift.left,
+                bounds.top + mBoundsShift.top,
+                bounds.right + mBoundsShift.right,
+                bounds.bottom + mBoundsShift.bottom);
+    }
+
+    @Override
+    public boolean getPadding(Rect padding) {
+        padding.set(mPadding);
+        return (padding.left | padding.top | padding.right | padding.bottom) != 0;
+    }
+
+    @Override
+    public void draw(Canvas canvas) {
+        mChild.draw(canvas);
+    }
+
+    @Override
+    public int getOpacity() {
+        return mChild.getOpacity();
+    }
+
+    @Override
+    public void setAlpha(int alpha) {
+        mChild.setAlpha(alpha);
+    }
+
+    @Override
+    public void setColorFilter(ColorFilter cf) {
+        mChild.setColorFilter(cf);
+    }
+}
diff --git a/src/com/android/launcher3/ClearCircleLayout.java b/src/com/android/launcher3/ClearCircleLayout.java
deleted file mode 100644
index e48c84e..0000000
--- a/src/com/android/launcher3/ClearCircleLayout.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.launcher3;
-
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.graphics.Bitmap;
-import android.graphics.Canvas;
-import android.graphics.Paint;
-import android.graphics.Point;
-import android.graphics.PorterDuff;
-import android.graphics.PorterDuffXfermode;
-import android.graphics.Rect;
-import android.util.AttributeSet;
-import android.util.DisplayMetrics;
-import android.view.View;
-
-public class ClearCircleLayout extends View {
-
-    private static final String HOLE_LOCATION_PAGE_INDICATOR = "page_indicator";
-    private static final String HOLE_LOCATION_CENTER_SCREEN = "center_screen";
-
-    private static final int BACKGROUND_COLOR = 0x80000000;
-    private static float MIGRATION_WORKSPACE_INNER_CIRCLE_RADIUS_DPS = 42;
-    private static float MIGRATION_WORKSPACE_OUTER_CIRCLE_RADIUS_DPS = 46;
-
-    private final String mHoleLocation;
-    private final Paint mErasePaint;
-    private final Paint mBorderPaint;
-
-    private Launcher mLauncher;
-    private Point mHoleCenter;
-    private DisplayMetrics mMetrics;
-
-    public ClearCircleLayout(Context context, AttributeSet attrs) {
-        super(context, attrs);
-
-        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ClearCircleLayout);
-        mHoleLocation = a.getString(R.styleable.ClearCircleLayout_holeLocation);
-        a.recycle();
-
-        mErasePaint = new Paint();
-        mErasePaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.MULTIPLY));
-        mErasePaint.setColor(0xFFFFFF);
-        mErasePaint.setAlpha(0);
-        mErasePaint.setAntiAlias(true);
-
-        mBorderPaint = new Paint();
-        mBorderPaint.setColor(0xFFFFFFFF);
-        mBorderPaint.setAntiAlias(true);
-    }
-
-    void initHole(Launcher launcher) {
-        mLauncher = launcher;
-        mMetrics = new DisplayMetrics();
-        launcher.getWindowManager().getDefaultDisplay().getMetrics(mMetrics);
-
-        if (mHoleLocation.endsWith(HOLE_LOCATION_PAGE_INDICATOR)) {
-            LauncherAppState app = LauncherAppState.getInstance();
-            DeviceProfile grid = app.getDynamicGrid().getDeviceProfile();
-
-            Rect indicator = grid.getWorkspacePageIndicatorBounds(new Rect());
-            mHoleCenter = new Point(indicator.centerX(), indicator.centerY());
-        } else if (mHoleLocation.endsWith(HOLE_LOCATION_CENTER_SCREEN)) {
-            mHoleCenter = new Point(mMetrics.widthPixels / 2, mMetrics.heightPixels / 2);
-        }
-    }
-
-    @Override
-    protected void dispatchDraw(Canvas canvas) {
-        if (mHoleCenter == null) {
-            canvas.drawColor(BACKGROUND_COLOR);
-        } else {
-            drawHole(canvas);
-        }
-
-        super.dispatchDraw(canvas);
-    }
-
-    private void drawHole(Canvas canvas) {
-        // Initialize the draw buffer (to allow punching through)
-        Bitmap eraseBg = Bitmap.createBitmap(getMeasuredWidth(), getMeasuredHeight(),
-                Bitmap.Config.ARGB_8888);
-        Canvas eraseCanvas = new Canvas(eraseBg);
-        eraseCanvas.drawColor(BACKGROUND_COLOR);
-
-        Rect insets = mLauncher.getDragLayer().getInsets();
-        float x = mHoleCenter.x - insets.left;
-        float y = mHoleCenter.y - insets.top;
-        // Draw the outer circle
-        eraseCanvas.drawCircle(x, y,
-                DynamicGrid.pxFromDp(MIGRATION_WORKSPACE_OUTER_CIRCLE_RADIUS_DPS, mMetrics),
-                mBorderPaint);
-
-        // Draw the inner circle
-        eraseCanvas.drawCircle(x, y,
-                DynamicGrid.pxFromDp(MIGRATION_WORKSPACE_INNER_CIRCLE_RADIUS_DPS, mMetrics),
-                mErasePaint);
-
-        canvas.drawBitmap(eraseBg, 0, 0, null);
-        eraseCanvas.setBitmap(null);
-        eraseBg.recycle();
-    }
-}
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index e134d1b..dff98f2 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -506,7 +506,7 @@
             if (mModel.canMigrateFromOldLauncherDb(this)) {
                 launcherClings.showMigrationCling();
             } else {
-                launcherClings.showLongPressCling(true);
+                launcherClings.showLongPressCling(false);
             }
         }
     }
diff --git a/src/com/android/launcher3/LauncherClings.java b/src/com/android/launcher3/LauncherClings.java
index 840fb52..458d81f 100644
--- a/src/com/android/launcher3/LauncherClings.java
+++ b/src/com/android/launcher3/LauncherClings.java
@@ -18,13 +18,12 @@
 
 import android.accounts.Account;
 import android.accounts.AccountManager;
-import android.animation.AnimatorSet;
 import android.animation.ObjectAnimator;
 import android.animation.PropertyValuesHolder;
-import android.animation.ValueAnimator;
 import android.app.ActivityManager;
 import android.content.Context;
 import android.content.SharedPreferences;
+import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.os.UserManager;
 import android.provider.Settings;
@@ -41,8 +40,7 @@
     private static final String MIGRATION_CLING_DISMISSED_KEY = "cling_gel.migration.dismissed";
     private static final String WORKSPACE_CLING_DISMISSED_KEY = "cling_gel.workspace.dismissed";
 
-    private static final String ANIM_SLIDE_FROM_BOTTOM = "slide_from_bottom";
-    private static final String ANIM_SLIDE_FROM_TOP = "slide_from_top";
+    private static final String TAG_CROP_TOP_AND_SIDES = "crop_bg_top_and_sides";
 
     private static final boolean DISABLE_CLINGS = false;
 
@@ -124,10 +122,7 @@
         ViewGroup root = (ViewGroup) mLauncher.findViewById(R.id.launcher);
         View cling = mInflater.inflate(R.layout.longpress_cling, root, false);
 
-        final ClearCircleLayout hole = (ClearCircleLayout) cling.findViewById(R.id.cling_longpress_hole);
-        hole.initHole(mLauncher);
-        hole.setClickable(true);
-        hole.setOnLongClickListener(new OnLongClickListener() {
+        cling.setOnLongClickListener(new OnLongClickListener() {
 
             @Override
             public boolean onLongClick(View v) {
@@ -142,6 +137,12 @@
                 : R.layout.longpress_cling_content, content);
         content.findViewById(R.id.cling_dismiss_longpress_info).setOnClickListener(this);
 
+        if (TAG_CROP_TOP_AND_SIDES.equals(content.getTag())) {
+            Drawable bg = new BorderCropDrawable(mLauncher.getResources().getDrawable(R.drawable.cling_bg),
+                    true, true, true, false);
+            content.setBackground(bg);
+        }
+
         root.addView(cling);
 
         if (showWelcome) {
@@ -156,29 +157,20 @@
             public void onGlobalLayout() {
                 content.getViewTreeObserver().removeOnGlobalLayoutListener(this);
 
-                hole.setAlpha(0);
-                ValueAnimator anim1 = LauncherAnimUtils.ofFloat(hole, "alpha", 1);
-
-                ObjectAnimator anim2;
-
-                if (ANIM_SLIDE_FROM_TOP.equals(content.getTag())) {
+                ObjectAnimator anim;
+                if (TAG_CROP_TOP_AND_SIDES.equals(content.getTag())) {
                     content.setTranslationY(-content.getMeasuredHeight());
-                    anim2 = LauncherAnimUtils.ofFloat(content, "translationY", 0);
-                } else if (ANIM_SLIDE_FROM_BOTTOM.equals(content.getTag())) {
-                    content.setTranslationY(content.getMeasuredHeight());
-                    anim2 = LauncherAnimUtils.ofFloat(content, "translationY", 0);
+                    anim = LauncherAnimUtils.ofFloat(content, "translationY", 0);
                 } else {
                     content.setScaleX(0);
                     content.setScaleY(0);
                     PropertyValuesHolder scaleX = PropertyValuesHolder.ofFloat("scaleX", 1);
                     PropertyValuesHolder scaleY = PropertyValuesHolder.ofFloat("scaleY", 1);
-                    anim2 = LauncherAnimUtils.ofPropertyValuesHolder(content, scaleX, scaleY);
+                    anim = LauncherAnimUtils.ofPropertyValuesHolder(content, scaleX, scaleY);
                 }
 
-                AnimatorSet anim = LauncherAnimUtils.createAnimatorSet();
                 anim.setDuration(SHOW_CLING_DURATION);
                 anim.setInterpolator(new LogDecelerateInterpolator(100, 0));
-                anim.playTogether(anim1, anim2);
                 anim.start();
             }
         });