Fix remaining cause of a leak in SecondaryDropTarget

Bug: 139137636
Change-Id: Ib94c5804616910ee562d63c022579042bb1727f5
diff --git a/src/com/android/launcher3/SecondaryDropTarget.java b/src/com/android/launcher3/SecondaryDropTarget.java
index 114c491..1841134 100644
--- a/src/com/android/launcher3/SecondaryDropTarget.java
+++ b/src/com/android/launcher3/SecondaryDropTarget.java
@@ -67,7 +67,6 @@
         super(context, attrs, defStyle);
 
         mCacheExpireAlarm = new Alarm();
-        mCacheExpireAlarm.setOnAlarmListener(this);
     }
 
     @Override
@@ -75,6 +74,7 @@
         super.onAttachedToWindow();
         if (mHadPendingAlarm) {
             mCacheExpireAlarm.setAlarm(CACHE_EXPIRE_TIMEOUT);
+            mCacheExpireAlarm.setOnAlarmListener(this);
             mHadPendingAlarm = false;
         }
     }
@@ -84,6 +84,7 @@
         super.onDetachedFromWindow();
         if (mCacheExpireAlarm.alarmPending()) {
             mCacheExpireAlarm.cancelAlarm();
+            mCacheExpireAlarm.setOnAlarmListener(null);
             mHadPendingAlarm = true;
         }
     }
@@ -168,6 +169,7 @@
         }
         // Cancel any pending alarm and set cache expiry after some time
         mCacheExpireAlarm.setAlarm(CACHE_EXPIRE_TIMEOUT);
+        mCacheExpireAlarm.setOnAlarmListener(this);
         if (uninstallDisabled) {
             return false;
         }