diff --git a/src/com/android/launcher3/SecondaryDropTarget.java b/src/com/android/launcher3/SecondaryDropTarget.java index 1dbe195da3..114c49118f 100644 --- a/src/com/android/launcher3/SecondaryDropTarget.java +++ b/src/com/android/launcher3/SecondaryDropTarget.java @@ -56,6 +56,7 @@ public class SecondaryDropTarget extends ButtonDropTarget implements OnAlarmList private final ArrayMap mUninstallDisabledCache = new ArrayMap<>(1); private final Alarm mCacheExpireAlarm; + private boolean mHadPendingAlarm; protected int mCurrentAccessibilityAction = -1; public SecondaryDropTarget(Context context, AttributeSet attrs) { @@ -69,6 +70,24 @@ public class SecondaryDropTarget extends ButtonDropTarget implements OnAlarmList mCacheExpireAlarm.setOnAlarmListener(this); } + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + if (mHadPendingAlarm) { + mCacheExpireAlarm.setAlarm(CACHE_EXPIRE_TIMEOUT); + mHadPendingAlarm = false; + } + } + + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + if (mCacheExpireAlarm.alarmPending()) { + mCacheExpireAlarm.cancelAlarm(); + mHadPendingAlarm = true; + } + } + @Override protected void onFinishInflate() { super.onFinishInflate();