2222import java .util .LinkedList ;
2323import 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+
2529import static android .view .View .GONE ;
2630import static android .view .View .VISIBLE ;
2731import 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 }
0 commit comments