Skip to content

Commit 603b1ec

Browse files
committed
Fix bug.
1 parent df2f4d7 commit 603b1ec

15 files changed

Lines changed: 119 additions & 102 deletions

File tree

activitytaskview/src/main/AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
<receiver android:name=".LifecycleReceiver">
2222
<intent-filter>
23-
<action android:name="action_update_lifecycle" />
23+
<action android:name="cc.rome753.activitytask.ACTION_UPDATE_LIFECYCLE" />
2424
</intent-filter>
2525
</receiver>
2626
</application>

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

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,13 @@ public class LifecycleReceiver extends BroadcastReceiver {
1313

1414
@Override
1515
public void onReceive(Context context, Intent intent) {
16-
if(TextUtils.equals(intent.getAction(), "action_update_lifecycle")) {
17-
String lifecycle = intent.getStringExtra("lifecycle");
18-
String task = intent.getStringExtra("task");
19-
String activity = intent.getStringExtra("activity");
20-
ArrayList<String> fragments = intent.getStringArrayListExtra("fragments");
21-
String s = fragments == null ? "" : Arrays.toString(fragments.toArray());
22-
Log.d("chao", lifecycle + " " + task + " " + activity + " " + s);
16+
String lifecycle = intent.getStringExtra("lifecycle");
17+
String task = intent.getStringExtra("task");
18+
String activity = intent.getStringExtra("activity");
19+
ArrayList<String> fragments = intent.getStringArrayListExtra("fragments");
20+
String s = fragments == null ? "" : Arrays.toString(fragments.toArray());
21+
Log.d("chao", lifecycle + " " + task + " " + activity + " " + s);
2322

24-
ActivityTask.add(lifecycle, task, activity, fragments);
25-
}
23+
ActivityTask.add(lifecycle, task, activity, fragments);
2624
}
2725
}

activitytaskview/src/main/java/cc/rome753/activitytask/model/ATree.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22

33
import java.util.ArrayList;
44
import java.util.HashMap;
5+
import java.util.LinkedHashMap;
56

6-
public class ATree extends HashMap<String, ArrayList<String>> {
7+
public class ATree extends LinkedHashMap<String, ArrayList<String>> {
78

89
public void add(String key, String value, String lifecycle) {
910
ArrayList<String> values = get(key);
@@ -22,6 +23,9 @@ public void remove(String key, String value) {
2223
return;
2324
}
2425
values.remove(value);
26+
if(values.isEmpty()) {
27+
remove(key);
28+
}
2529

2630
lifeMap.remove(value);
2731
}

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

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,6 @@ public ActivityTaskView(Context context) {
4545
mObservable = new LifecycleObservable();
4646
}
4747

48-
private LinearLayout createLinearLayout(String tag) {
49-
LinearLayout layout = new LinearLayout(getContext());
50-
layout.setOrientation(LinearLayout.VERTICAL);
51-
layout.setBackgroundResource(R.drawable.bg_rect_inner);
52-
layout.setPadding(10,0,10,0);
53-
layout.setTag(tag);
54-
return layout;
55-
}
56-
5748
public FragmentTaskView findFragmentTaskView(String activity) {
5849
for(int i = 0; i < mContainer.getChildCount(); i++) {
5950
View view = mContainer.getChildAt(i);
@@ -142,7 +133,7 @@ public void update(LifecycleInfo info) {
142133
} else if(info.lifecycle.contains("Pause")) {
143134
FragmentTaskView view = findFragmentTaskView(info.activity);
144135
if(view != null) {
145-
view.setVisibility(INVISIBLE);
136+
view.setVisibility(GONE);
146137
}
147138
}
148139

@@ -155,14 +146,15 @@ private void notifyData() {
155146
mObservable.deleteObservers();
156147
Set<Map.Entry<String, ArrayList<String>>> set = aTree.entrySet();
157148
for(Map.Entry<String, ArrayList<String>> entry : set) {
158-
LinearLayout layout = createLinearLayout("");
149+
TaskLayout layout = new TaskLayout(getContext());
150+
layout.setTitle(entry.getKey());
159151
for (String value : entry.getValue()) {
160152
ObserverTextView textView = new ObserverTextView(getContext());
161153
textView.setInfoText(value, aTree.getLifecycle(value));
162-
layout.addView(textView, 0);
154+
layout.add(textView);
163155
mObservable.addObserver(textView);
164156
}
165-
mLinearLayout.addView(layout);
157+
mLinearLayout.addView(layout, 0);
166158
}
167159
}
168160

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public void remove(List<String> fragments) {
4242
}
4343

4444
public void update(LifecycleInfo info) {
45-
mTree.updateLifecycle(info.activity, info.lifecycle);
45+
mTree.updateLifecycle(info.fragments.get(0), info.lifecycle);
4646
notifyData();
4747
}
4848

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

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

33
import android.content.Context;
44
import android.graphics.Color;
5+
import android.text.SpannableString;
6+
import android.text.Spanned;
57
import android.text.TextUtils;
8+
import android.text.style.AbsoluteSizeSpan;
69
import android.util.AttributeSet;
710

811
import androidx.appcompat.widget.AppCompatTextView;
@@ -19,6 +22,7 @@
1922

2023
public class ObserverTextView extends AppCompatTextView implements Observer{
2124

25+
private static AbsoluteSizeSpan absoluteSizeSpan = new AbsoluteSizeSpan(8, true);
2226

2327
public ObserverTextView(Context context) {
2428
this(context, null);
@@ -32,16 +36,23 @@ public ObserverTextView(Context context, AttributeSet attrs, int defStyleAttr) {
3236
super(context, attrs, defStyleAttr);
3337
setMaxLines(1);
3438
setTextSize(10);
35-
setTextColor(Color.BLACK);
3639
}
3740

3841
public void setInfoText(String s, String lifecycle) {
3942
int i1 = s.indexOf("@");
4043
String tag = s.substring(i1);
4144
setTag(tag);
4245

46+
s = s.replace("Activity", "A…");
47+
s = s.replace("Fragment", "F…");
4348
s = s.replace(tag, " ") + lifecycle;
44-
setText(s);
49+
50+
int i2 = s.indexOf(" ");
51+
52+
setTextColor(s.contains("Resume") ? Color.RED : Color.BLACK);
53+
SpannableString span = new SpannableString(s);
54+
span.setSpan(absoluteSizeSpan, i2, s.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
55+
setText(span);
4556
}
4657

4758

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package cc.rome753.activitytask.view;
2+
3+
import android.content.Context;
4+
import android.util.AttributeSet;
5+
import android.view.View;
6+
import android.widget.LinearLayout;
7+
import android.widget.TextView;
8+
9+
import cc.rome753.activitytask.R;
10+
11+
12+
/**
13+
* Created by rome753 on 2017/3/31.
14+
*/
15+
16+
public class TaskLayout extends LinearLayout {
17+
18+
LinearLayout ll;
19+
TextView tv;
20+
21+
public TaskLayout(Context context) {
22+
this(context, null);
23+
}
24+
25+
public TaskLayout(Context context, AttributeSet attrs) {
26+
super(context, attrs);
27+
inflate(context, R.layout.layout_task, this);
28+
ll = findViewById(R.id.ll);
29+
tv = findViewById(R.id.tv_title);
30+
}
31+
32+
public void setTitle(String title) {
33+
tv.setText(title);
34+
}
35+
36+
public void add(View view) {
37+
ll.addView(view, 0);
38+
}
39+
40+
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
<Button
1111
android:id="@+id/btn_permission"
12-
android:text="Request permission"
12+
android:text="Request window permission"
1313
android:textAllCaps="false"
1414
app:layout_constraintTop_toTopOf="parent"
1515
app:layout_constraintStart_toStartOf="parent"
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<layout xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:app="http://schemas.android.com/apk/res-auto"
4+
xmlns:tools="http://schemas.android.com/tools">
5+
6+
<androidx.constraintlayout.widget.ConstraintLayout
7+
android:background="@drawable/bg_rect_inner"
8+
android:paddingStart="2dp"
9+
android:paddingEnd="2dp"
10+
android:layout_width="wrap_content"
11+
android:layout_height="wrap_content">
12+
13+
<TextView
14+
android:id="@+id/tv_title"
15+
android:text="Package@TaskId"
16+
android:textSize="10sp"
17+
app:layout_constraintTop_toTopOf="parent"
18+
app:layout_constraintStart_toStartOf="parent"
19+
app:layout_constraintEnd_toEndOf="parent"
20+
android:layout_width="wrap_content"
21+
android:layout_height="wrap_content" />
22+
23+
<LinearLayout
24+
android:id="@+id/ll"
25+
android:orientation="vertical"
26+
app:layout_constraintTop_toBottomOf="@id/tv_title"
27+
app:layout_constraintBottom_toBottomOf="parent"
28+
app:layout_constraintStart_toStartOf="parent"
29+
app:layout_constraintEnd_toEndOf="parent"
30+
android:layout_width="wrap_content"
31+
android:layout_height="wrap_content">
32+
33+
</LinearLayout>
34+
35+
</androidx.constraintlayout.widget.ConstraintLayout>
36+
</layout>

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
<LinearLayout
2222
android:id="@+id/ll"
2323
android:orientation="vertical"
24+
android:gravity="end"
2425
android:layout_width="wrap_content"
2526
android:layout_height="wrap_content"/>
2627

0 commit comments

Comments
 (0)