一键清理功能

一键清理功能

——frameworks/base/packages/SystemUI/res/drawable/ic_one_key_clean.xml
——frameworks/base/packages/SystemUI/res/drawable/ic_one_key_clean_bg.png
——frameworks/base/packages/SystemUI/res/drawable/ic_one_key_clean_press.png –
——frameworks/base/packages/SystemUI/res/layout/recents.xml
——frameworks/base/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java
——frameworks/base/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java
——frameworks/base/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java
——frameworks/base/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java

----- frameworks/base/packages/SystemUI/res/drawable/ic_one_key_clean.xml -----
    new file mode 100644
    index 0000000..c6e9ead
    @@ -0,0 +1,7 @@
    +<?xml version="1.0" encoding="utf-8"?>
    +<selector
    + xmlns:android="http://schemas.android.com/apk/res/android">
    + <item android:state_pressed="false" android:drawable="@drawable/ic_one_key_clean_bg" />
    + <item android:state_pressed="true" android:drawable="@drawable/ic_one_key_clean_press" />
    + <item android:state_focused="true" android:drawable="@drawable/ic_one_key_clean_press" />
    +</selector>
---- frameworks/base/packages/SystemUI/res/drawable/ic_one_key_clean_bg.png ----
    new file mode 100644
    index 0000000..a418757
    Binary files /dev/null and b/frameworks/base/packages/SystemUI/res/drawable/ic_one_key_clean_bg.png differ
-- frameworks/base/packages/SystemUI/res/drawable/ic_one_key_clean_press.png --
    new file mode 100644
    index 0000000..a56bdd7
    Binary files /dev/null and b/frameworks/base/packages/SystemUI/res/drawable/ic_one_key_clean_press.png differ
----------- frameworks/base/packages/SystemUI/res/layout/recents.xml -----------
    index bdda527..d5bb64a 100644
    @@ -45,7 +45,16 @@
                android:layout="@layout/recents_debug_overlay"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
    -
    +    <!-- One Key Clean view added  -->
    +    <ImageView
    +        android:id="@+id/one_key_clean"
    +        android:layout_width="55.0dip"
    +        android:layout_height="55.0dip"
    +        android:layout_gravity="center_horizontal|bottom"
    +        android:layout_marginBottom="50dp"
    +        android:focusable="true"
    +        android:scaleType="centerCrop"
    +        android:src="@drawable/ic_one_key_clean" />
         <!-- Nav Bar Scrim View -->
         <ImageView
             android:id="@+id/nav_bar_scrim"
 frameworks/base/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java 
    index d08f916..01cb980 100644
    @@ -30,7 +30,9 @@ import android.os.SystemClock;
     import android.os.UserHandle;
     import android.view.KeyEvent;
     import android.view.View;
    +import android.view.View.OnClickListener;
     import android.view.ViewStub;
    +import android.widget.ImageView;
     import android.widget.Toast;
     import android.util.Log;

    @@ -73,6 +75,9 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView
         ViewStub mDebugOverlayStub;
         View mEmptyView;
         DebugOverlayView mDebugOverlay;
    +    // added 
    +    ImageView mOneKeyClean;
    +    // added 

         // Resize task debug
         RecentsResizeTaskDialog mResizeTaskDebugDialog;
    @@ -255,6 +260,7 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView
                 }
                 mEmptyView.setVisibility(View.VISIBLE);
                 mRecentsView.setSearchBarVisibility(View.GONE);
    +            mOneKeyClean.setVisibility(View.GONE); //added  for one key clean
             } else {
                 if (mEmptyView != null) {
                     mEmptyView.setVisibility(View.GONE);
    @@ -264,6 +270,7 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView
                 } else {
                     refreshSearchWidgetView();
                 }
    +            mOneKeyClean.setVisibility(View.VISIBLE); //added  for one key clean
             }

             // Animate the SystemUI scrims into view
    @@ -368,7 +375,20 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView
             mDebugOverlayStub = (ViewStub) findViewById(R.id.debug_overlay_stub);
             mScrimViews = new SystemBarScrimViews(this, mConfig);
             inflateDebugOverlay();
    -
    +        // added  for one key clean
    +        mOneKeyClean = (ImageView) findViewById(R.id.one_key_clean);
    +        mOneKeyClean.setOnClickListener(new OnClickListener(){
    +
    +           @Override
    +           public void onClick(View v) {
    +               // TODO Auto-generated method stub
    +               if (mRecentsView != null) {
    +                   mRecentsView.onOneKeyCleanClicked();
    +               }
    +           }
    +           
    +        });
    +        // added  end
             // Bind the search app widget when we first start up
             mSearchWidgetInfo = ssp.getOrBindSearchAppWidget(this, mAppWidgetHost);
 frameworks/base/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java 
    index 947c19c..dae0f0a 100644
    @@ -719,4 +719,41 @@ public class RecentsView extends FrameLayout implements TaskStackView.TaskStackV
                 stackView.onPackagesChanged(monitor, packageName, userId);
             }
         }
    +    /**
    +     * Added for One Key Clean Feature
    +     */
    +   @Override
    +   public void onOneKeyCleanClicked() {
    +       int childCount = getChildCount();
    +       for (int i = 0; i < childCount; i++) {
    +            View child = getChildAt(i);
    +           if (child != mSearchBar) {
    +               final TaskStackView stackView = (TaskStackView) child;
    +               final int viewCount = stackView.getChildCount();
    +               TaskStack stack = stackView.mStack;
    +               ArrayList<Task> tasks = stack.getTasks();
    +               int delay = 0;
    +               for (int k = viewCount - 1; k >= 0; k--) {
    +                   TaskView tv = (TaskView) stackView.getChildAt(k);
    +                   Task task = tv.getTask();
    +                   if (tasks.contains(task)) {
    +                       tasks.remove(task);
    +                   }
    +                    tv.dismissTask();
    +                   //tv.dismissTask(delay);
    +                   //delay += 50;
    +                    //Log.d(TAG, "Lee----stackView.getChildCount():" + viewCount
    +                    //        + ", k = " + k);
    +               }
    +
    +               if (!tasks.isEmpty()) {
    +                   final int taskCount = tasks.size();
    +                   for (int j = 0; j < taskCount; j++) {
    +                       Task task = tasks.get(0);
    +                       stack.removeTask(task);
    +                   }
    +               }
    +           }
    +        }
    +   }
     }
 frameworks/base/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java 
    index e2b1050..be7fc43 100644
    @@ -67,6 +67,7 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal
             public void onTaskStackUnfilterTriggered();

             public void onTaskResize(Task t);
    +        public void onOneKeyCleanClicked(); //added for one key clean      
         }
         RecentsConfiguration mConfig;
 frameworks/base/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java 
    index cbfe842..6dda68b 100644
    @@ -493,6 +493,20 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks,
             }, 0);
         }

    +    /** Dismisses this task. added */
    +    void dismissTask(int delay) {
    +        // Animate out the view and call the callback
    +        final TaskView tv = this;
    +        startDeleteTaskAnimation(new Runnable() {
    +            @Override
    +            public void run() {
    +                if (mCb != null) {
    +                    mCb.onTaskViewDismissed(tv);
    +                }
    +            }
    +        }, delay);
    +    }
    +    
         /**
          * Returns whether this view should be clipped, or any views below should clip against this
          * view.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值