11package cc .rome753 .activitytask .view ;
22
33import android .content .Context ;
4+ import android .content .Intent ;
45import android .util .Log ;
56import android .view .MotionEvent ;
67import android .view .View ;
1314import java .util .Map ;
1415
1516import cc .rome753 .activitytask .AUtils ;
17+ import cc .rome753 .activitytask .MainActivity ;
1618import cc .rome753 .activitytask .R ;
1719import cc .rome753 .activitytask .model .ATree ;
1820import cc .rome753 .activitytask .model .LifecycleInfo ;
2224 * Created by rome753 on 2017/3/31.
2325 */
2426
25- public class ActivityTaskView extends LinearLayout {
27+ public class ActivityTaskView extends LinearLayout implements Runnable {
2628
2729 public static final String TAG = ActivityTaskView .class .getSimpleName ();
2830 private ViewGroup mLinearLayout ;
@@ -52,12 +54,13 @@ public ActivityTaskView(Context context) {
5254 long downTime ;
5355
5456 @ Override
55- public boolean onTouchEvent (MotionEvent event ) {
57+ public boolean onTouchEvent (MotionEvent event ) {
5658 switch (event .getAction ()) {
5759 case MotionEvent .ACTION_DOWN :
5860 downTime = System .currentTimeMillis ();
5961 mInnerX = event .getX ();
6062 mInnerY = event .getY ();
63+ postDelayed (this , 300 );
6164 break ;
6265 case MotionEvent .ACTION_MOVE :
6366 float x = event .getRawX ();
@@ -66,11 +69,17 @@ public boolean onTouchEvent(MotionEvent event) {
6669 params .x = (int ) (x - mInnerX );
6770 params .y = (int ) (y - mInnerY - mStatusHeight );
6871 updateLayout (params );
72+
73+ if (Math .abs (event .getX () - mInnerX ) > 20
74+ || Math .abs (event .getY () - mInnerY ) > 20 ) {
75+ removeCallbacks (this );
76+ }
6977 break ;
7078 case MotionEvent .ACTION_UP :
79+ removeCallbacks (this );
7180 if (System .currentTimeMillis () - downTime < 100
72- && Math .abs (event .getX () - mInnerX ) < 10
73- && Math .abs (event .getY () - mInnerY ) < 10 ) {
81+ && Math .abs (event .getX () - mInnerX ) < 20
82+ && Math .abs (event .getY () - mInnerY ) < 20 ) {
7483 doClick ();
7584 }
7685 moveToBorder ();
@@ -86,6 +95,11 @@ private void doClick() {
8695 mTinyView .setVisibility (!visible ? GONE : VISIBLE );
8796 }
8897
98+ private void doLongClick () {
99+ Intent intent = new Intent (getContext (), MainActivity .class );
100+ getContext ().startActivity (intent );
101+ }
102+
89103 private void updateLayout (WindowManager .LayoutParams params ){
90104 WindowManager windowManager = (WindowManager ) getContext ().getSystemService (Context .WINDOW_SERVICE );
91105 if (windowManager != null ) {
@@ -182,4 +196,8 @@ public void clear() {
182196 notifyData ();
183197 }
184198
199+ @ Override
200+ public void run () {
201+ doLongClick ();
202+ }
185203}
0 commit comments