Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3d64ffd4 authored by vadimt's avatar vadimt
Browse files

Fixing activity leak via alarm in SecondaryDropTarget

Change-Id: I12c099ee1bb55d9db81e14d27d2eb09fbbc83e0f
parent 3ba68005
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@ public class SecondaryDropTarget extends ButtonDropTarget implements OnAlarmList
    private final ArrayMap<UserHandle, Boolean> 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();