Skip to content

Commit 25ece55

Browse files
committed
Fragment tree complete!
1 parent 29f9835 commit 25ece55

16 files changed

Lines changed: 444 additions & 289 deletions

File tree

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import android.content.res.Resources;
55

66
/**
7-
* Created by Administrator on 2018/5/10.
7+
* Created by rome753 on 2018/5/10.
88
*/
99

1010
public class AUtils {
@@ -18,6 +18,7 @@ public class AUtils {
1818
0x33000000,//onStop
1919
0x00000000//onDestroy
2020
};
21+
2122
public static int dp2px(float dpValue) {
2223
return (int) (0.5f + dpValue * Resources.getSystem().getDisplayMetrics().density);
2324
}

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

Lines changed: 45 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@
2222
import java.util.LinkedList;
2323
import java.util.Queue;
2424

25+
import cc.rome753.activitytask.model.FragmentInfo;
26+
import cc.rome753.activitytask.model.TaskInfo;
27+
import cc.rome753.activitytask.view.ActivityTaskView;
28+
2529
import static android.view.View.GONE;
2630
import static android.view.View.VISIBLE;
2731
import static cc.rome753.activitytask.AUtils.getSimpleName;
@@ -36,7 +40,7 @@ public class ActivityTask {
3640

3741
private static ActivityTaskView activityTaskView;
3842
private static boolean autoHide = true;
39-
private static long interval = 300;
43+
private static long interval = 100;
4044

4145
/**
4246
* Is current app front. If not, hide the activityTaskView.
@@ -49,28 +53,18 @@ public class ActivityTask {
4953

5054
/**
5155
* auto hide when app is not in foreground, default true
52-
* @param autoHide
5356
*/
5457
public static void setAutoHide(boolean autoHide) {
5558
ActivityTask.autoHide = autoHide;
5659
}
5760

5861
/**
59-
* interval between lifecycle, default 300(ms)
60-
* @param interval
62+
* interval between lifecycle, default 100(ms)
6163
*/
6264
public static void setInterval(long interval) {
6365
ActivityTask.interval = interval;
6466
}
6567

66-
public static boolean isAutoHide() {
67-
return autoHide;
68-
}
69-
70-
public static long getInterval() {
71-
return interval;
72-
}
73-
7468
/**
7569
* Init in your application's onCreate()
7670
*
@@ -91,8 +85,7 @@ public static void init(Application app, boolean debug) {
9185
}
9286

9387
static void start(Application app) {
94-
activityTaskView = new ActivityTaskView(app);
95-
addViewToWindow(app, activityTaskView);
88+
addViewToWindow(app, activityTaskView = new ActivityTaskView(app));
9689
registerActivityLifecycleCallbacks(app);
9790
}
9891

@@ -106,7 +99,7 @@ private static void addViewToWindow(Application app, View view){
10699
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
107100
params.gravity = Gravity.START | Gravity.TOP;
108101
params.x = 0;
109-
params.y = app.getResources().getDisplayMetrics().heightPixels;
102+
params.y = app.getResources().getDisplayMetrics().heightPixels - 500;
110103
if(windowManager != null) {
111104
windowManager.addView(view, params);
112105
}
@@ -119,21 +112,21 @@ private static void registerActivityLifecycleCallbacks(Application app){
119112
@Override
120113
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
121114
Log.w(TAG, activity.getClass().getName() + "@" + activity.hashCode() + " " + activity.getTaskId() + " " + " onActivityCreated");
122-
queueHandler.add(new ATaskInfo(0, String.valueOf(activity.getTaskId()), getSimpleName(activity)));
115+
queueHandler.add(new TaskInfo(0, String.valueOf(activity.getTaskId()), getSimpleName(activity)));
123116
registerFragmentLifecycleCallbacks(activity, queueHandler);
124117
}
125118

126119
@Override
127120
public void onActivityStarted(Activity activity) {
128121
Log.d(TAG, activity.getClass().getSimpleName() + " onActivityStarted");
129-
queueHandler.add(new ATaskInfo(1, String.valueOf(activity.getTaskId()), getSimpleName(activity)));
122+
queueHandler.add(new TaskInfo(1, String.valueOf(activity.getTaskId()), getSimpleName(activity)));
130123
}
131124

132125
@Override
133126
public void onActivityResumed(Activity activity) {
134127
Log.d(TAG, activity.getClass().getSimpleName() + " onActivityResumed");
135-
queueHandler.add(new ATaskInfo(2, String.valueOf(activity.getTaskId()), getSimpleName(activity)));
136-
if(isAutoHide()) {
128+
queueHandler.add(new TaskInfo(2, String.valueOf(activity.getTaskId()), getSimpleName(activity)));
129+
if(autoHide) {
137130
activityTaskView.setVisibility(VISIBLE);
138131
isFront = true;
139132
}
@@ -142,15 +135,15 @@ public void onActivityResumed(Activity activity) {
142135
@Override
143136
public void onActivityPaused(Activity activity) {
144137
Log.d(TAG, activity.getClass().getSimpleName() + " onActivityPaused");
145-
queueHandler.add(new ATaskInfo(3, String.valueOf(activity.getTaskId()), getSimpleName(activity)));
138+
queueHandler.add(new TaskInfo(3, String.valueOf(activity.getTaskId()), getSimpleName(activity)));
146139
isFront = false;
147140
}
148141

149142
@Override
150143
public void onActivityStopped(Activity activity) {
151144
Log.d(TAG, activity.getClass().getSimpleName() + " onActivityStopped");
152-
queueHandler.add(new ATaskInfo(4, String.valueOf(activity.getTaskId()), getSimpleName(activity)));
153-
if(isAutoHide()){
145+
queueHandler.add(new TaskInfo(4, String.valueOf(activity.getTaskId()), getSimpleName(activity)));
146+
if(autoHide){
154147
activityTaskView.setVisibility(isFront ? VISIBLE : GONE);
155148
}
156149

@@ -164,7 +157,7 @@ public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
164157
@Override
165158
public void onActivityDestroyed(Activity activity) {
166159
Log.w(TAG, activity.getClass().getSimpleName() + " onActivityDestroyed");
167-
queueHandler.add(new ATaskInfo(5, String.valueOf(activity.getTaskId()), getSimpleName(activity)));
160+
queueHandler.add(new TaskInfo(5, String.valueOf(activity.getTaskId()), getSimpleName(activity)));
168161
}
169162
});
170163
}
@@ -174,74 +167,74 @@ private static void registerFragmentLifecycleCallbacks(Activity activity, final
174167
((FragmentActivity) activity).getSupportFragmentManager().registerFragmentLifecycleCallbacks(new FragmentManager.FragmentLifecycleCallbacks() {
175168
@Override
176169
public void onFragmentPreAttached(FragmentManager fm, Fragment f, Context context) {
177-
Log.e("chao", getSimpleName(context) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
170+
Log.d(TAG, getSimpleName(context) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
178171
}
179172

180173
@Override
181174
public void onFragmentAttached(FragmentManager fm, Fragment f, Context context) {
182-
Log.e("chao", getSimpleName(f) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
175+
Log.d(TAG, getSimpleName(f) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
183176
}
184177

185178
@Override
186179
public void onFragmentCreated(FragmentManager fm, Fragment f, Bundle savedInstanceState) {
187-
Log.e("chao", getSimpleName(f) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
188-
queueHandler.add(new ATaskInfo(0, getSimpleName(f.getActivity()), getSimpleName(f)));
180+
Log.d(TAG, getSimpleName(f) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
181+
queueHandler.add(new FragmentInfo(0, f));
189182

190183
}
191184

192185
@Override
193186
public void onFragmentActivityCreated(FragmentManager fm, Fragment f, Bundle savedInstanceState) {
194-
Log.e("chao", getSimpleName(f) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
187+
Log.d(TAG, getSimpleName(f) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
195188
}
196189

197190
@Override
198191
public void onFragmentViewCreated(FragmentManager fm, Fragment f, View v, Bundle savedInstanceState) {
199-
Log.e("chao", getSimpleName(f) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
192+
Log.d(TAG, getSimpleName(f) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
200193
}
201194

202195
@Override
203196
public void onFragmentStarted(FragmentManager fm, Fragment f) {
204-
Log.e("chao", getSimpleName(f) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
205-
queueHandler.add(new ATaskInfo(1, getSimpleName(f.getActivity()), getSimpleName(f)));
197+
Log.d(TAG, getSimpleName(f) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
198+
queueHandler.add(new FragmentInfo(1, f));
206199
}
207200

208201
@Override
209202
public void onFragmentResumed(FragmentManager fm, Fragment f) {
210-
Log.e("chao", getSimpleName(f) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
211-
queueHandler.add(new ATaskInfo(2, getSimpleName(f.getActivity()), getSimpleName(f)));
203+
Log.d(TAG, getSimpleName(f) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
204+
queueHandler.add(new FragmentInfo(2, f));
212205
}
213206

214207
@Override
215208
public void onFragmentPaused(FragmentManager fm, Fragment f) {
216-
Log.e("chao", getSimpleName(f) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
217-
queueHandler.add(new ATaskInfo(3, getSimpleName(f.getActivity()), getSimpleName(f)));
209+
Log.d(TAG, getSimpleName(f) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
210+
queueHandler.add(new FragmentInfo(3, f));
218211
}
219212

220213
@Override
221214
public void onFragmentStopped(FragmentManager fm, Fragment f) {
222-
Log.e("chao", getSimpleName(f) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
223-
queueHandler.add(new ATaskInfo(4, getSimpleName(f.getActivity()), getSimpleName(f)));
215+
Log.d(TAG, getSimpleName(f) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
216+
queueHandler.add(new FragmentInfo(4, f));
224217
}
225218

226219
@Override
227220
public void onFragmentSaveInstanceState(FragmentManager fm, Fragment f, Bundle outState) {
228-
Log.e("chao", getSimpleName(f) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
221+
Log.d(TAG, getSimpleName(f) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
229222
}
230223

231224
@Override
232225
public void onFragmentViewDestroyed(FragmentManager fm, Fragment f) {
233-
Log.e("chao", getSimpleName(f) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
226+
Log.d(TAG, getSimpleName(f) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
234227
}
235228

236229
@Override
237230
public void onFragmentDestroyed(FragmentManager fm, Fragment f) {
238-
Log.e("chao", getSimpleName(f) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
239-
queueHandler.add(new ATaskInfo(5, getSimpleName(f.getActivity()), getSimpleName(f)));
231+
Log.d(TAG, getSimpleName(f) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
232+
queueHandler.add(new FragmentInfo(5, f));
240233
}
241234

242235
@Override
243236
public void onFragmentDetached(FragmentManager fm, Fragment f) {
244-
Log.e("chao", getSimpleName(f) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
237+
Log.d(TAG, getSimpleName(f) + ": " + Thread.currentThread().getStackTrace()[2].getMethodName());
245238
}
246239

247240
}, true);
@@ -250,7 +243,7 @@ public void onFragmentDetached(FragmentManager fm, Fragment f) {
250243

251244
private static class QueueHandler extends Handler{
252245

253-
private Queue<ATaskInfo> queue;
246+
private Queue<Object> queue;
254247
private long lastTime;
255248

256249
QueueHandler(){
@@ -259,24 +252,22 @@ private static class QueueHandler extends Handler{
259252
queue = new LinkedList<>();
260253
}
261254

262-
void add(ATaskInfo taskInfo){
263-
queue.add(taskInfo);
255+
void add(Object obj){
256+
queue.add(obj);
264257
sendEmptyMessage(0);
265258
}
266259

267260
@Override
268261
public void handleMessage(Message msg) {
269-
if(System.currentTimeMillis() - lastTime < getInterval()){
270-
sendEmptyMessageDelayed(0, getInterval() / 5);
262+
if(System.currentTimeMillis() - lastTime < interval){
263+
sendEmptyMessageDelayed(0, interval / 5);
271264
}else {
272265
lastTime = System.currentTimeMillis();
273-
ATaskInfo taskInfo = queue.poll();
274-
if(taskInfo != null){
275-
if(taskInfo.isActivityLifecycle()) {
276-
activityTaskView.onActivityChange(taskInfo);
277-
} else {
278-
activityTaskView.onFragmentChange(taskInfo);
279-
}
266+
Object obj = queue.poll();
267+
if(obj instanceof FragmentInfo) {
268+
activityTaskView.onFragmentChange((FragmentInfo) obj);
269+
} else if(obj instanceof TaskInfo) {
270+
activityTaskView.onActivityChange((TaskInfo) obj);
280271
}
281272
}
282273
}

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

Lines changed: 0 additions & 38 deletions
This file was deleted.

0 commit comments

Comments
 (0)