Skip to content

Commit 766c829

Browse files
committed
Android:APIJSONTest 自动 UI 测试初步完成触摸拦截并传递
1 parent 6a9a9bf commit 766c829

File tree

9 files changed

+438
-11
lines changed

9 files changed

+438
-11
lines changed

APIJSON-Android/APIJSONTest/app/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,5 @@ dependencies {
3131
compile 'com.alibaba:fastjson:1.2.61'
3232
compile 'com.github.APIJSON:apijson-orm:3.9.0'
3333
compile 'com.koushikdutta.async:androidasync:2.+'
34+
compile 'com.github.yhaolpz:FloatWindow:1.0.9'
3435
}

APIJSON-Android/APIJSONTest/app/src/main/AndroidManifest.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010

1111
<uses-permission android:name="android.permission.INTERNET" />
1212
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
13+
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
14+
<uses-permission android:name="android.permission.GET_TASKS" />
15+
1316

1417
<application
1518
android:name="apijson.demo.application.DemoApplication"
@@ -54,6 +57,7 @@
5457
android:windowSoftInputMode="adjustPan"
5558
android:configChanges="orientation|screenSize"
5659
android:screenOrientation="portrait"
60+
android:theme="@style/Window"
5761
/>
5862
</application>
5963

APIJSON-Android/APIJSONTest/app/src/main/java/apijson/demo/application/DemoApplication.java

Lines changed: 70 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,15 @@
1414

1515
package apijson.demo.application;
1616

17+
import android.app.Activity;
1718
import android.app.Application;
19+
import android.os.Bundle;
1820
import android.util.Log;
21+
22+
import java.lang.ref.WeakReference;
23+
import java.util.LinkedList;
24+
import java.util.List;
25+
1926
import apijson.demo.R;
2027

2128
/**Application
@@ -24,18 +31,61 @@
2431
public class DemoApplication extends Application {
2532
private static final String TAG = "DemoApplication";
2633

27-
28-
private static Application instance;
29-
public static Application getInstance() {
34+
35+
private static DemoApplication instance;
36+
public static DemoApplication getInstance() {
3037
return instance;
3138
}
32-
39+
3340
@Override
3441
public void onCreate() {
3542
super.onCreate();
3643
instance = this;
3744
Log.d(TAG, "项目启动 >>>>>>>>>>>>>>>>>>>> \n\n");
38-
45+
46+
registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
47+
48+
49+
@Override
50+
public void onActivityStarted(Activity activity) {
51+
Log.v(TAG, "onActivityStarted activity = " + activity.getClass().getName());
52+
}
53+
54+
@Override
55+
public void onActivityStopped(Activity activity) {
56+
Log.v(TAG, "onActivityStopped activity = " + activity.getClass().getName());
57+
}
58+
59+
@Override
60+
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
61+
Log.v(TAG, "onActivitySaveInstanceState activity = " + activity.getClass().getName());
62+
}
63+
64+
@Override
65+
public void onActivityResumed(Activity activity) {
66+
Log.v(TAG, "onActivityResumed activity = " + activity.getClass().getName());
67+
setCurrentActivity(activity);
68+
}
69+
70+
@Override
71+
public void onActivityPaused(Activity activity) {
72+
Log.v(TAG, "onActivityPaused activity = " + activity.getClass().getName());
73+
setCurrentActivity(activityList.isEmpty() ? null : activityList.get(activityList.size() - 1));
74+
}
75+
76+
@Override
77+
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
78+
Log.v(TAG, "onActivityCreated activity = " + activity.getClass().getName());
79+
activityList.add(activity);
80+
}
81+
82+
@Override
83+
public void onActivityDestroyed(Activity activity) {
84+
Log.v(TAG, "onActivityDestroyed activity = " + activity.getClass().getName());
85+
activityList.remove(activity);
86+
}
87+
88+
});
3989
}
4090

4191

@@ -52,5 +102,20 @@ public String getAppVersion() {
52102
return getResources().getString(R.string.app_version);
53103
}
54104

105+
private List<Activity> activityList = new LinkedList<>();
106+
107+
private WeakReference<Activity> sCurrentActivityWeakRef;
108+
public Activity getCurrentActivity() {
109+
Activity currentActivity = null;
110+
if (sCurrentActivityWeakRef != null) {
111+
currentActivity = sCurrentActivityWeakRef.get();
112+
}
113+
return currentActivity;
114+
}
55115

116+
public void setCurrentActivity(Activity activity) {
117+
if (sCurrentActivityWeakRef == null || !activity.equals(sCurrentActivityWeakRef.get())) {
118+
sCurrentActivityWeakRef = new WeakReference<>(activity);
119+
}
120+
}
56121
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package apijson.demo.ui;
2+
3+
4+
import android.content.Context;
5+
import android.support.annotation.NonNull;
6+
import android.support.annotation.Nullable;
7+
import android.util.AttributeSet;
8+
import android.util.Log;
9+
import android.view.MotionEvent;
10+
import android.widget.RelativeLayout;
11+
12+
import java.util.Calendar;
13+
14+
public class TouchLayout extends RelativeLayout {
15+
private static final String TAG = "TouchLayout";
16+
17+
public TouchLayout(@NonNull Context context) {
18+
super(context);
19+
}
20+
21+
public TouchLayout(@NonNull Context context, @Nullable AttributeSet attrs) {
22+
super(context, attrs);
23+
}
24+
25+
public TouchLayout(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
26+
super(context, attrs, defStyleAttr);
27+
}
28+
29+
public TouchLayout(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
30+
super(context, attrs, defStyleAttr, defStyleRes);
31+
}
32+
33+
@Override
34+
public boolean dispatchTouchEvent(MotionEvent ev) {
35+
Log.d(TAG, "dispatchTouchEvent " + Calendar.getInstance().getTime().toLocaleString() + " action:" + (ev.getAction()) + "; x:" + ev.getX() + "; y:" + ev.getY());
36+
37+
super.dispatchTouchEvent(ev);
38+
return false;
39+
}
40+
41+
@Override
42+
public boolean onTouchEvent(MotionEvent ev) {
43+
Log.d(TAG, "onTouchEvent " + Calendar.getInstance().getTime().toLocaleString() + " action:" + (ev.getAction()) + "; x:" + ev.getX() + "; y:" + ev.getY());
44+
45+
super.onTouchEvent(ev);
46+
return false;
47+
}
48+
}

0 commit comments

Comments
 (0)