Skip to content

Commit dbf6c49

Browse files
committed
New UI complete!
1 parent 603b1ec commit dbf6c49

11 files changed

Lines changed: 115 additions & 40 deletions

File tree

activitytaskview/src/main/java/cc/rome753/activitytask/ActivityTask.java

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,19 @@ public class ActivityTask {
2828

2929
private static ActivityTaskView activityTaskView;
3030

31-
private static long interval = 100;
31+
public static long interval = 100;
3232

3333
public static void start(Context context) {
34-
addViewToWindow(context, activityTaskView = new ActivityTaskView(context));
34+
if(activityTaskView == null) {
35+
activityTaskView = new ActivityTaskView(context);
36+
addViewToWindow(context, activityTaskView);
37+
}
38+
}
39+
40+
public static void clear() {
41+
if(activityTaskView != null) {
42+
activityTaskView.clear();
43+
}
3544
}
3645

3746
private static void addViewToWindow(Context context, View view){
@@ -90,9 +99,8 @@ public void handleMessage(Message msg) {
9099
if(info == null) {
91100
return;
92101
}
102+
info.lifecycle = trimLifecycle(info.lifecycle);
93103
if(info.fragments != null) {
94-
info.lifecycle = info.lifecycle.replace("onFragment", "");
95-
96104
FragmentTaskView fragmentTaskView = activityTaskView.findFragmentTaskView(info.activity);
97105
if(fragmentTaskView != null) {
98106
if (info.lifecycle.contains("PreAttach")) {
@@ -104,8 +112,6 @@ public void handleMessage(Message msg) {
104112
}
105113
}
106114
} else {
107-
info.lifecycle = info.lifecycle.replace("onActivity", "");
108-
109115
if(info.lifecycle.contains("Create")) {
110116
activityTaskView.add(info);
111117
} else if(info.lifecycle.contains("Destroy")) {
@@ -116,6 +122,13 @@ public void handleMessage(Message msg) {
116122
}
117123
}
118124
}
125+
126+
private String trimLifecycle(String lifecycle) {
127+
lifecycle = lifecycle.replace("onFragment", "");
128+
lifecycle = lifecycle.replace("onActivity", "");
129+
lifecycle = lifecycle.replace("SaveInstanceState", "SaveIS");
130+
return lifecycle;
131+
}
119132
}
120133

121134
}

activitytaskview/src/main/java/cc/rome753/activitytask/MainActivity.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,14 @@ protected void onCreate(Bundle savedInstanceState) {
2626
requestWindowPermission();
2727
});
2828

29+
binding.btnClear.setOnClickListener(v -> {
30+
ActivityTask.clear();
31+
});
32+
33+
binding.btnExit.setOnClickListener(v -> {
34+
System.exit(0);
35+
});
36+
2937
}
3038

3139
@Override

activitytaskview/src/main/java/cc/rome753/activitytask/view/ActivityTaskView.java

Lines changed: 38 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import android.content.Context;
44
import android.text.TextUtils;
5-
import android.view.Gravity;
5+
import android.util.Log;
66
import android.view.MotionEvent;
77
import android.view.View;
88
import android.view.WindowManager;
@@ -22,26 +22,30 @@
2222
* Created by rome753 on 2017/3/31.
2323
*/
2424

25-
public class ActivityTaskView extends FrameLayout {
25+
public class ActivityTaskView extends LinearLayout {
2626

2727
public static final String TAG = ActivityTaskView.class.getSimpleName();
2828
private LinearLayout mLinearLayout;
2929
private FrameLayout mContainer;
3030
private View mTinyView;
3131
private View mTaskView;
32+
private View mEmptyView;
3233

3334
private LifecycleObservable mObservable;
3435

3536
private int mStatusHeight;
37+
private int mScreenWidth;
3638

3739
public ActivityTaskView(Context context) {
3840
super(context);
3941
inflate(context, R.layout.view_activity_task, this);
4042
mStatusHeight = AUtils.getStatusBarHeight(context);
43+
mScreenWidth = AUtils.getScreenWidth(context);
4144
mLinearLayout = findViewById(R.id.ll);
4245
mContainer = findViewById(R.id.fl);
4346
mTinyView = findViewById(R.id.tiny_view);
4447
mTaskView = findViewById(R.id.task_view);
48+
mEmptyView = findViewById(R.id.view_empty);
4549
mObservable = new LifecycleObservable();
4650
}
4751

@@ -57,11 +61,13 @@ public FragmentTaskView findFragmentTaskView(String activity) {
5761

5862
float mInnerX;
5963
float mInnerY;
64+
long downTime;
6065

6166
@Override
6267
public boolean onTouchEvent(MotionEvent event) {
6368
switch (event.getAction()) {
6469
case MotionEvent.ACTION_DOWN:
70+
downTime = System.currentTimeMillis();
6571
mInnerX = event.getX();
6672
mInnerY = event.getY();
6773
break;
@@ -74,16 +80,22 @@ public boolean onTouchEvent(MotionEvent event) {
7480
updateLayout(params);
7581
break;
7682
case MotionEvent.ACTION_UP:
77-
showTinyOrNot();
83+
if(System.currentTimeMillis() - downTime < 100
84+
&& Math.abs(event.getX() - mInnerX) < 10
85+
&& Math.abs(event.getY() - mInnerY) < 10) {
86+
doClick();
87+
}
88+
moveToBorder();
7889
break;
7990

8091
}
8192
return true;
8293
}
8394

84-
@Override
85-
public boolean onInterceptTouchEvent(MotionEvent ev) {
86-
return true;
95+
private void doClick() {
96+
boolean visible = mTaskView.getVisibility() == VISIBLE;
97+
mTaskView.setVisibility(visible ? GONE : VISIBLE);
98+
mTinyView.setVisibility(!visible ? GONE : VISIBLE);
8799
}
88100

89101
private void updateLayout(WindowManager.LayoutParams params){
@@ -93,17 +105,21 @@ private void updateLayout(WindowManager.LayoutParams params){
93105
}
94106
}
95107

96-
private void showTinyOrNot() {
108+
private void moveToBorder() {
97109
WindowManager.LayoutParams p = (WindowManager.LayoutParams) getLayoutParams();
98-
if(p.x < 5 || mLinearLayout.getChildCount() == 0){
99-
mTinyView.setVisibility(VISIBLE);
100-
mTaskView.setVisibility(GONE);
110+
Log.d("chao", "x " + p.x + " " + ((mScreenWidth - getWidth()) / 2));
111+
112+
if(p.x <= (mScreenWidth - getWidth()) / 2) { // move left
101113
p.x = 0;
102-
updateLayout(p);
103-
}else{
104-
mTinyView.setVisibility(GONE);
105-
mTaskView.setVisibility(VISIBLE);
114+
removeView(mTinyView);
115+
addView(mTinyView, 0);
116+
117+
} else { // move right
118+
p.x = mScreenWidth;
119+
removeView(mTinyView);
120+
addView(mTinyView);
106121
}
122+
updateLayout(p);
107123
}
108124

109125
private ATree aTree = new ATree();
@@ -156,6 +172,14 @@ private void notifyData() {
156172
}
157173
mLinearLayout.addView(layout, 0);
158174
}
175+
mEmptyView.setVisibility(mLinearLayout.getChildCount() == 0 ? VISIBLE : GONE);
176+
177+
}
178+
179+
public void clear() {
180+
aTree = new ATree();
181+
mContainer.removeAllViews();
182+
notifyData();
159183
}
160184

161185
}

activitytaskview/src/main/java/cc/rome753/activitytask/view/ObserverTextView.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public void setInfoText(String s, String lifecycle) {
4949

5050
int i2 = s.indexOf(" ");
5151

52-
setTextColor(s.contains("Resume") ? Color.RED : Color.BLACK);
52+
setTextColor(s.contains("Resume") ? Color.YELLOW : Color.WHITE);
5353
SpannableString span = new SpannableString(s);
5454
span.setSpan(absoluteSizeSpan, i2, s.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
5555
setText(span);

activitytaskview/src/main/java/cc/rome753/activitytask/view/TaskLayout.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public TaskLayout(Context context, AttributeSet attrs) {
3030
}
3131

3232
public void setTitle(String title) {
33-
tv.setText(title);
33+
tv.setText("[" + title + "]");
3434
}
3535

3636
public void add(View view) {
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<shape android:shape="oval" xmlns:android="http://schemas.android.com/apk/res/android">
3+
<size android:width="10dp" android:height="10dp" />
4+
<solid android:color="#333333" />
5+
</shape>

activitytaskview/src/main/res/drawable/bg_rect.xml

Lines changed: 0 additions & 6 deletions
This file was deleted.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
33
<size android:width="10dp" android:height="10dp" />
4-
<solid android:color="@android:color/transparent" />
5-
<stroke android:color="@android:color/holo_blue_dark" android:width="1dp" />
4+
<corners android:radius="2dp" />
5+
<solid android:color="#333333" />
66
</shape>

activitytaskview/src/main/res/layout/activity_main.xml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,24 @@
2828
android:layout_width="wrap_content"
2929
android:layout_height="wrap_content" />
3030

31+
<Button
32+
android:id="@+id/btn_clear"
33+
android:text="Clear"
34+
android:textAllCaps="false"
35+
app:layout_constraintTop_toBottomOf="@id/btn_permission"
36+
app:layout_constraintStart_toStartOf="parent"
37+
app:layout_constraintEnd_toEndOf="parent"
38+
android:layout_width="wrap_content"
39+
android:layout_height="wrap_content" />
40+
41+
<Button
42+
android:id="@+id/btn_exit"
43+
android:text="Exit"
44+
android:textAllCaps="false"
45+
app:layout_constraintTop_toBottomOf="@id/btn_clear"
46+
app:layout_constraintStart_toStartOf="parent"
47+
app:layout_constraintEnd_toEndOf="parent"
48+
android:layout_width="wrap_content"
49+
android:layout_height="wrap_content" />
3150
</androidx.constraintlayout.widget.ConstraintLayout>
3251
</layout>

activitytaskview/src/main/res/layout/layout_task.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,17 @@
44
xmlns:tools="http://schemas.android.com/tools">
55

66
<androidx.constraintlayout.widget.ConstraintLayout
7-
android:background="@drawable/bg_rect_inner"
87
android:paddingStart="2dp"
98
android:paddingEnd="2dp"
9+
android:layout_marginBottom="5dp"
1010
android:layout_width="wrap_content"
1111
android:layout_height="wrap_content">
1212

1313
<TextView
1414
android:id="@+id/tv_title"
1515
android:text="Package@TaskId"
16-
android:textSize="10sp"
16+
android:textSize="8sp"
17+
android:textColor="#00FF00"
1718
app:layout_constraintTop_toTopOf="parent"
1819
app:layout_constraintStart_toStartOf="parent"
1920
app:layout_constraintEnd_toEndOf="parent"

0 commit comments

Comments
 (0)