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

Commit 6471aee7 authored by D4rKn3sSyS's avatar D4rKn3sSyS Committed by Danesh Mondegarian
Browse files

"Clear all" button on recent apps

Port forward from cm-10.2

Change-Id: I9ebcf22f85957f61caefb14e0efd4cf2978d92cd
parent 5e2fe0f6
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -33,7 +33,8 @@
        android:layout_height="match_parent"
        android:layout_alignParentBottom="true"
        android:clipToPadding="false"
        android:clipChildren="false">
        android:clipChildren="false"
        android:fitsSystemWindows="true">

        <com.android.systemui.recent.RecentsHorizontalScrollView android:id="@+id/recents_container"
            android:layout_width="wrap_content"
@@ -54,6 +55,15 @@

        </com.android.systemui.recent.RecentsHorizontalScrollView>

        <ImageView
            android:id="@+id/recents_clear"
            android:clickable="true"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:scaleType="center"
            android:layout_gravity="top|right"
            android:src="@drawable/ic_notify_clear" />

    </FrameLayout>

    <include layout="@layout/status_bar_no_recent_apps"
+11 −1
Original line number Diff line number Diff line
@@ -31,7 +31,8 @@
        android:background="@drawable/status_bar_recents_background"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentBottom="true">
        android:layout_alignParentBottom="true"
        android:fitsSystemWindows="true">

        <com.android.systemui.recent.RecentsVerticalScrollView
            android:id="@+id/recents_container"
@@ -58,6 +59,15 @@

        </com.android.systemui.recent.RecentsVerticalScrollView>

        <ImageView
            android:id="@+id/recents_clear"
            android:clickable="true"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:scaleType="center"
            android:layout_gravity="top|right"
            android:src="@drawable/ic_notify_clear" />

    </FrameLayout>

    <include layout="@layout/status_bar_no_recent_apps"
+19 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.content.res.Configuration;
import android.database.DataSetObserver;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.os.Handler;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.util.FloatMath;
@@ -178,6 +179,24 @@ public class RecentsHorizontalScrollView extends HorizontalScrollView
        dismissChild(view);
    }

    @Override
    public void removeAllViewsInLayout() {
        int count = mLinearLayout.getChildCount();
        int scrollX = getScrollX();
        for (int i = 0, delayCounter = 0; i < count; i++) {
            final View child = mLinearLayout.getChildAt(i);
            if (child.getRight() > scrollX) {
                delayCounter++;
            }
            postDelayed(new Runnable() {
                @Override
                public void run() {
                    dismissChild(child);
                }
            }, delayCounter * 150);
        }
    }

    public boolean onInterceptTouchEvent(MotionEvent ev) {
        if (DEBUG) Log.v(TAG, "onInterceptTouchEvent()");
        return mSwipeHelper.onInterceptTouchEvent(ev) ||
+13 −1
Original line number Diff line number Diff line
@@ -92,6 +92,7 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener
    private boolean mFitThumbnailToXY;
    private int mRecentItemLayoutId;
    private boolean mHighEndGfx;
    private ImageView mClearRecents;

    public static interface RecentsScrollView {
        public int numItemsInOneScreenful();
@@ -101,6 +102,7 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener
        public View findViewForTask(int persistentTaskId);
        public void drawFadedEdges(Canvas c, int left, int right, int top, int bottom);
        public void setOnScrollListener(Runnable listener);
        public void removeAllViewsInLayout();
    }

    private final class OnLongClickDelegate implements View.OnLongClickListener {
@@ -340,7 +342,7 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener
                    && (mRecentTaskDescriptions.size() == 0);
            mRecentsNoApps.setAlpha(1f);
            mRecentsNoApps.setVisibility(noApps ? View.VISIBLE : View.INVISIBLE);

            mClearRecents.setVisibility(noApps ? View.GONE : View.VISIBLE);
            onAnimationEnd(null);
            setFocusable(true);
            setFocusableInTouchMode(true);
@@ -447,6 +449,16 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener
        mRecentsScrim = findViewById(R.id.recents_bg_protect);
        mRecentsNoApps = findViewById(R.id.recents_no_apps);

        mClearRecents = (ImageView) findViewById(R.id.recents_clear);
        if (mClearRecents != null){
            mClearRecents.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    mRecentsContainer.removeAllViewsInLayout();
                }
            });
        }

        if (mRecentsScrim != null) {
            mHighEndGfx = ActivityManager.isHighEndGfx();
            if (!mHighEndGfx) {
+19 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.content.Context;
import android.content.res.Configuration;
import android.database.DataSetObserver;
import android.graphics.Canvas;
import android.os.Handler;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.util.FloatMath;
@@ -185,6 +186,24 @@ public class RecentsVerticalScrollView extends ScrollView
        dismissChild(view);
    }

    @Override
    public void removeAllViewsInLayout() {
        int count = mLinearLayout.getChildCount();
        int scrollY = getScrollY();
        for (int i = 0, delayCounter = 0; i < count; i++) {
            final View child = mLinearLayout.getChildAt(i);
            if (child.getBottom() > scrollY) {
                delayCounter++;
            }
            postDelayed(new Runnable() {
                @Override
                public void run() {
                    dismissChild(child);
                }
            }, delayCounter * 150);
        }
    }

    public boolean onInterceptTouchEvent(MotionEvent ev) {
        if (DEBUG) Log.v(TAG, "onInterceptTouchEvent()");
        return mSwipeHelper.onInterceptTouchEvent(ev) ||