diff --git a/src/com/android/launcher3/anim/RevealOutlineAnimation.java b/src/com/android/launcher3/anim/RevealOutlineAnimation.java
index 1312da9..c6b62fa 100644
--- a/src/com/android/launcher3/anim/RevealOutlineAnimation.java
+++ b/src/com/android/launcher3/anim/RevealOutlineAnimation.java
@@ -34,7 +34,6 @@
         final float elevation = revealView.getElevation();
 
         va.addListener(new AnimatorListenerAdapter() {
-            private boolean mWasCanceled = false;
             private boolean mIsClippedToOutline;
             private ViewOutlineProvider mOldOutlineProvider;
 
@@ -49,18 +48,11 @@
                 }
             }
 
-            @Override
-            public void onAnimationCancel(Animator animation) {
-                mWasCanceled = true;
-            }
-
             public void onAnimationEnd(Animator animation) {
-                if (!mWasCanceled) {
-                    revealView.setOutlineProvider(mOldOutlineProvider);
-                    revealView.setClipToOutline(mIsClippedToOutline);
-                    if (shouldRemoveElevationDuringAnimation()) {
-                        revealView.setTranslationZ(0);
-                    }
+                revealView.setOutlineProvider(mOldOutlineProvider);
+                revealView.setClipToOutline(mIsClippedToOutline);
+                if (shouldRemoveElevationDuringAnimation()) {
+                    revealView.setTranslationZ(0);
                 }
             }
 
diff --git a/src/com/android/launcher3/shortcuts/ShortcutKey.java b/src/com/android/launcher3/shortcuts/ShortcutKey.java
index e86bfb2..704d82f 100644
--- a/src/com/android/launcher3/shortcuts/ShortcutKey.java
+++ b/src/com/android/launcher3/shortcuts/ShortcutKey.java
@@ -1,6 +1,7 @@
 package com.android.launcher3.shortcuts;
 
 import android.content.ComponentName;
+import android.content.Context;
 import android.content.Intent;
 import android.os.UserHandle;
 
@@ -17,6 +18,10 @@
         super(new ComponentName(packageName, id), user);
     }
 
+    public ShortcutKey(Context context, String componentKeyStr) {
+        super(context, componentKeyStr);
+    }
+
     public String getId() {
         return componentName.getClassName();
     }
