atom
@@ -0,0 +1,26 @@
|
||||
package com.derry.wechat;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.test.platform.app.InstrumentationRegistry;
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
* Instrumented test, which will execute on an Android device.
|
||||
*
|
||||
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
|
||||
*/
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public class ExampleInstrumentedTest {
|
||||
@Test
|
||||
public void useAppContext() {
|
||||
// Context of the app under test.
|
||||
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
|
||||
assertEquals("com.derry.login", appContext.getPackageName());
|
||||
}
|
||||
}
|
||||
22
wechat/src/main/AndroidManifest.xml
Normal file
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.derry.wechat">
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:icon="@mipmap/atom_logo"
|
||||
android:label="@string/app_name"
|
||||
android:roundIcon="@mipmap/atom_logo"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme">
|
||||
<activity android:name=".W_MainActivity">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity android:name=".WeChatPlate"/>
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
21
wechat/src/main/debug/AndroidManifest.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.derry.wechat.debug">
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:label="@string/app_name"
|
||||
android:roundIcon="@mipmap/ic_launcher_round"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme">
|
||||
<activity android:name=".Login_DebugActivity">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
111
wechat/src/main/java/com/derry/wechat/TestAblStep1.java
Normal file
@@ -0,0 +1,111 @@
|
||||
package com.derry.wechat;
|
||||
|
||||
import android.os.Message;
|
||||
import android.util.Log;
|
||||
import android.view.accessibility.AccessibilityNodeInfo;
|
||||
|
||||
import com.levine.abllib.AblStepBase;
|
||||
import com.levine.abllib.AblStepHandler;
|
||||
import com.levine.abllib.AblSteps;
|
||||
import com.levine.abllib.callback.AniCallBack;
|
||||
import com.levine.abllib.callback.AnisCallBack;
|
||||
import com.levine.abllib.utils.AblViewUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class TestAblStep1 extends AblStepBase {//微信8.0.7
|
||||
int i = 0;
|
||||
@Override
|
||||
public void onStep(int step, Message msg) {
|
||||
switch (step){
|
||||
case AblSteps.STEP_1://找到更多选项
|
||||
|
||||
AblViewUtil.findById("com.tencent.mm:id/fcu", 0, new AniCallBack() {
|
||||
@Override
|
||||
public void succ(AccessibilityNodeInfo info) {
|
||||
info.performAction(AccessibilityNodeInfo.ACTION_CLICK);
|
||||
AblStepHandler.sendMsg(AblSteps.STEP_2);
|
||||
Log.d("-----","i="+i);
|
||||
}
|
||||
});
|
||||
break;
|
||||
case AblSteps.STEP_2://找到添加联系人
|
||||
AblViewUtil.findById("com.tencent.mm:id/h8v", 1, new AniCallBack() {
|
||||
@Override
|
||||
public void succ(AccessibilityNodeInfo info) {
|
||||
info.performAction(AccessibilityNodeInfo.ACTION_CLICK);
|
||||
AblStepHandler.sendMsg(AblSteps.STEP_3);
|
||||
}
|
||||
});
|
||||
|
||||
break;
|
||||
case AblSteps.STEP_3://通过通讯录添加
|
||||
AblViewUtil.findById("android:id/list", 0, new AniCallBack() {
|
||||
@Override
|
||||
public void succ(AccessibilityNodeInfo info) {
|
||||
info.getChild(7).performAction(AccessibilityNodeInfo.ACTION_CLICK);
|
||||
AblStepHandler.sendMsg(AblSteps.STEP_4);
|
||||
}
|
||||
});
|
||||
break;
|
||||
case AblSteps.STEP_4://按顺序点击联系人
|
||||
AblViewUtil.findById("com.tencent.mm:id/dal", new AnisCallBack() {
|
||||
@Override
|
||||
public void succ(List<AccessibilityNodeInfo> infos) {
|
||||
if ( infos.get(0).isClickable() && infos.size() != 0){
|
||||
infos.get(0).performAction(AccessibilityNodeInfo.ACTION_CLICK);
|
||||
} else if (infos.get(1).isClickable() && infos.size() != 0){
|
||||
infos.get(1).performAction(AccessibilityNodeInfo.ACTION_CLICK);
|
||||
} else if (infos.get(2).isClickable() && infos.size() != 0){
|
||||
infos.get(2).performAction(AccessibilityNodeInfo.ACTION_CLICK);
|
||||
} else if (infos.get(3).isClickable() && infos.size() != 0){
|
||||
infos.get(3).performAction(AccessibilityNodeInfo.ACTION_CLICK);
|
||||
} else if (infos.get(4).isClickable() && infos.size() != 0){
|
||||
infos.get(4).performAction(AccessibilityNodeInfo.ACTION_CLICK);
|
||||
}
|
||||
i++;
|
||||
AblStepHandler.sendMsg(AblSteps.STEP_5);
|
||||
}
|
||||
});
|
||||
break;
|
||||
case AblSteps.STEP_5://发送请求
|
||||
AblViewUtil.findById("com.tencent.mm:id/d4y", 0, new AniCallBack() {
|
||||
@Override
|
||||
public void succ(AccessibilityNodeInfo info) {
|
||||
info.performAction(AccessibilityNodeInfo.ACTION_CLICK);
|
||||
AblStepHandler.sendMsg(AblSteps.STEP_6);
|
||||
}
|
||||
@Override
|
||||
public void fail() {//获取该界面失败时处理(有可能是被拉入了黑名单时)
|
||||
AblViewUtil.findById("com.tencent.mm:id/ffp", 0, new AniCallBack() {
|
||||
@Override
|
||||
public void succ(AccessibilityNodeInfo info) {
|
||||
info.performAction(AccessibilityNodeInfo.ACTION_CLICK);
|
||||
AblStepHandler.sendMsg(AblSteps.STEP_4);
|
||||
}
|
||||
@Override
|
||||
public void fail() {
|
||||
AblStepHandler.sendMsg(AblSteps.STEP_4);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
break;
|
||||
case AblSteps.STEP_6://返回到通讯录列表
|
||||
AblViewUtil.findById("com.tencent.mm:id/eh", 0, new AniCallBack() {
|
||||
@Override
|
||||
public void succ(AccessibilityNodeInfo info) {
|
||||
info.performAction(AccessibilityNodeInfo.ACTION_CLICK);
|
||||
if (i<23){
|
||||
AblStepHandler.sendMsg(AblSteps.STEP_7);
|
||||
}
|
||||
}
|
||||
});
|
||||
break;
|
||||
case AblSteps.STEP_7:
|
||||
AblViewUtil.scrollVertical(3,1);//滑动
|
||||
AblStepHandler.sendMsg(AblSteps.STEP_4);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
14
wechat/src/main/java/com/derry/wechat/TestAblStep2.java
Normal file
@@ -0,0 +1,14 @@
|
||||
package com.derry.wechat;
|
||||
|
||||
import android.os.Message;
|
||||
|
||||
import com.levine.abllib.AblStepBase;
|
||||
|
||||
public class TestAblStep2 extends AblStepBase {
|
||||
@Override
|
||||
public void onStep(int step, Message msg) {
|
||||
switch (step){
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
113
wechat/src/main/java/com/derry/wechat/W_MainActivity.java
Normal file
@@ -0,0 +1,113 @@
|
||||
package com.derry.wechat;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import com.blankj.utilcode.util.ToastUtils;
|
||||
|
||||
import com.levine.abllib.AblConfig;
|
||||
import com.levine.abllib.AblService;
|
||||
import com.levine.abllib.AblStepHandler;
|
||||
import com.levine.abllib.AblSteps;
|
||||
import com.levine.abllib.utils.AblUtil;
|
||||
import com.xiangxue.arouter_annotation.ARouter;
|
||||
|
||||
/**
|
||||
* xiaoading
|
||||
*/
|
||||
@ARouter(path = "/wechat/W_MainActivity")
|
||||
public class W_MainActivity extends AppCompatActivity {
|
||||
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.w_activity_main);
|
||||
AblConfig.Builder()
|
||||
.setMonitoringPackageNames("com.tencent.mm")//微信包
|
||||
.setLogTag("DDD")//logtag,不设置默认是abllib
|
||||
.setStepMsgDelayMillis(3000)//步骤延迟时间
|
||||
.setFindViewMillisInFuture(10000)//寻找界面超时时间
|
||||
.setFindViewCountDownInterval(200)//寻找界面间隔时间
|
||||
.build().init();
|
||||
AblStepHandler.getInstance().initStepClass(new TestAblStep1());
|
||||
findViewById(R.id.btn_1).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
AblUtil.openAccessibilitySettings();
|
||||
}
|
||||
});
|
||||
findViewById(R.id.btn_2).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
AblUtil.addSuspensionWindowView(W_MainActivity.this,initWindowView());
|
||||
}
|
||||
});
|
||||
findViewById(R.id.btn_3).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
AblUtil.openDrawOverlaysAnth(W_MainActivity.this);
|
||||
}
|
||||
});
|
||||
findViewById(R.id.btn_4).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if (AblUtil.isAccessibilityServiceOpen(W_MainActivity.this)) {
|
||||
AblStepHandler.getInstance().setStop(false);
|
||||
AblStepHandler.sendMsg(AblSteps.STEP_1);
|
||||
} else {
|
||||
ToastUtils.showShort("请先开启辅助服务");
|
||||
}
|
||||
}
|
||||
});
|
||||
findViewById(R.id.btn_5).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
AblStepHandler.getInstance().setStop(true);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
private View initWindowView(){//悬浮窗
|
||||
View view = View.inflate(this, R.layout.view_test_w, null);
|
||||
view.findViewById(R.id.fu_btn_1).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if (AblUtil.isAccessibilityServiceOpen(W_MainActivity.this)) {
|
||||
AblStepHandler.getInstance().setStop(false);
|
||||
AblStepHandler.sendMsg(AblSteps.STEP_1);
|
||||
} else {
|
||||
ToastUtils.showShort("请先开启辅助服务");
|
||||
}
|
||||
}
|
||||
});
|
||||
view.findViewById(R.id.fu_btn_2).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
|
||||
windowManager.removeView(view);
|
||||
}
|
||||
});
|
||||
view.findViewById(R.id.fu_btn_3).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
AblStepHandler.getInstance().setStop(true);
|
||||
}
|
||||
});
|
||||
view.findViewById(R.id.fu_btn_4).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
AblService.getInstance().disableSelf();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return view;
|
||||
}
|
||||
}
|
||||
48
wechat/src/main/java/com/derry/wechat/WeChatPlate.java
Normal file
@@ -0,0 +1,48 @@
|
||||
package com.derry.wechat;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.Button;
|
||||
import android.widget.PopupWindow;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
|
||||
public class WeChatPlate extends AppCompatActivity {
|
||||
private PopupWindow mPopCut;
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.layout_wechatplate);
|
||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
|
||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
|
||||
|
||||
Button mBtnCut = findViewById(R.id.cut);
|
||||
mBtnCut.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
@SuppressLint("InflateParams") View v = getLayoutInflater().inflate(R.layout.layout_pop,null);
|
||||
mPopCut = new PopupWindow(v, ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
|
||||
mPopCut.setTouchable(true);
|
||||
mPopCut.setFocusable(true);
|
||||
mPopCut.showAtLocation(getWindow().getDecorView(), Gravity.BOTTOM,0,0);
|
||||
}
|
||||
});
|
||||
|
||||
Button mBtnRecommend = findViewById(R.id.recommed);
|
||||
mBtnRecommend.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
Intent intent = new Intent(WeChatPlate.this,W_MainActivity.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
4
wechat/src/main/java/com/derry/wechat/debug/A.java
Normal file
@@ -0,0 +1,4 @@
|
||||
package com.derry.wechat.debug;
|
||||
|
||||
public class A {
|
||||
}
|
||||
4
wechat/src/main/java/com/derry/wechat/debug/B.java
Normal file
@@ -0,0 +1,4 @@
|
||||
package com.derry.wechat.debug;
|
||||
|
||||
public class B {
|
||||
}
|
||||
4
wechat/src/main/java/com/derry/wechat/debug/C.java
Normal file
@@ -0,0 +1,4 @@
|
||||
package com.derry.wechat.debug;
|
||||
|
||||
public class C {
|
||||
}
|
||||
4
wechat/src/main/java/com/derry/wechat/debug/D.java
Normal file
@@ -0,0 +1,4 @@
|
||||
package com.derry.wechat.debug;
|
||||
|
||||
public class D {
|
||||
}
|
||||
@@ -0,0 +1,112 @@
|
||||
package com.derry.wechat.debug;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import com.blankj.utilcode.util.ToastUtils;
|
||||
import com.derry.wechat.TestAblStep1;
|
||||
import com.levine.abllib.AblConfig;
|
||||
import com.levine.abllib.AblService;
|
||||
import com.levine.abllib.AblStepHandler;
|
||||
import com.levine.abllib.AblSteps;
|
||||
import com.levine.abllib.utils.AblUtil;
|
||||
|
||||
// import com.derry.login.R; // 不对了
|
||||
|
||||
|
||||
public class Login_DebugActivity extends AppCompatActivity {
|
||||
|
||||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.w_activity_debug);
|
||||
AblConfig.Builder()
|
||||
.setMonitoringPackageNames("com.tencent.mm")//微信包
|
||||
.setLogTag("DDD")//logtag,不设置默认是abllib
|
||||
.setStepMsgDelayMillis(3000)//步骤延迟时间
|
||||
.setFindViewMillisInFuture(10000)//寻找界面超时时间
|
||||
.setFindViewCountDownInterval(200)//寻找界面间隔时间
|
||||
.build().init();
|
||||
AblStepHandler.getInstance().initStepClass(new TestAblStep1());
|
||||
findViewById(R.id.btn_1).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
AblUtil.openAccessibilitySettings();
|
||||
}
|
||||
});
|
||||
findViewById(R.id.btn_2).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
AblUtil.addSuspensionWindowView(Login_DebugActivity.this,initWindowView());
|
||||
}
|
||||
});
|
||||
findViewById(R.id.btn_3).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
AblUtil.openDrawOverlaysAnth(Login_DebugActivity.this);
|
||||
}
|
||||
});
|
||||
findViewById(R.id.btn_4).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if (AblUtil.isAccessibilityServiceOpen(Login_DebugActivity.this)) {
|
||||
AblStepHandler.getInstance().setStop(false);
|
||||
AblStepHandler.sendMsg(AblSteps.STEP_1);
|
||||
} else {
|
||||
ToastUtils.showShort("请先开启辅助服务");
|
||||
}
|
||||
}
|
||||
});
|
||||
findViewById(R.id.btn_5).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
AblStepHandler.getInstance().setStop(true);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
private View initWindowView(){//悬浮窗
|
||||
View view = View.inflate(this, R.layout.view_test_w, null);
|
||||
view.findViewById(R.id.fu_btn_1).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if (AblUtil.isAccessibilityServiceOpen(Login_DebugActivity.this)) {
|
||||
AblStepHandler.getInstance().setStop(false);
|
||||
AblStepHandler.sendMsg(AblSteps.STEP_1);
|
||||
} else {
|
||||
ToastUtils.showShort("请先开启辅助服务");
|
||||
}
|
||||
}
|
||||
});
|
||||
view.findViewById(R.id.fu_btn_2).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
|
||||
windowManager.removeView(view);
|
||||
}
|
||||
});
|
||||
view.findViewById(R.id.fu_btn_3).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
AblStepHandler.getInstance().setStop(true);
|
||||
}
|
||||
});
|
||||
view.findViewById(R.id.fu_btn_4).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
AblService.getInstance().disableSelf();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return view;
|
||||
|
||||
}
|
||||
}
|
||||
30
wechat/src/main/res/drawable-v24/ic_launcher_foreground.xml
Normal file
@@ -0,0 +1,30 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:aapt="http://schemas.android.com/aapt"
|
||||
android:width="108dp"
|
||||
android:height="108dp"
|
||||
android:viewportWidth="108"
|
||||
android:viewportHeight="108">
|
||||
<path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="85.84757"
|
||||
android:endY="92.4963"
|
||||
android:startX="42.9492"
|
||||
android:startY="49.59793"
|
||||
android:type="linear">
|
||||
<item
|
||||
android:color="#44000000"
|
||||
android:offset="0.0" />
|
||||
<item
|
||||
android:color="#00000000"
|
||||
android:offset="1.0" />
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:fillColor="#FFFFFF"
|
||||
android:fillType="nonZero"
|
||||
android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
|
||||
android:strokeWidth="1"
|
||||
android:strokeColor="#00000000" />
|
||||
</vector>
|
||||
@@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M13,8.2l-1,-1 -4,4 -4,-4 -1,1 4,4 -4,4 1,1 4,-4 4,4 1,-1 -4,-4 4,-4zM19,1H9c-1.1,0 -2,0.9 -2,2v3h2V4h10v16H9v-2H7v3c0,1.1 0.9,2 2,2h10c1.1,0 2,-0.9 2,-2V3c0,-1.1 -0.9,-2 -2,-2z"/>
|
||||
</vector>
|
||||
10
wechat/src/main/res/drawable/ic_baseline_play_arrow_24.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M8,5v14l11,-7z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M13,3h-2v10h2L13,3zM17.83,5.17l-1.42,1.42C17.99,7.86 19,9.81 19,12c0,3.87 -3.13,7 -7,7s-7,-3.13 -7,-7c0,-2.19 1.01,-4.14 2.58,-5.42L6.17,5.17C4.23,6.82 3,9.26 3,12c0,4.97 4.03,9 9,9s9,-4.03 9,-9c0,-2.74 -1.23,-5.18 -3.17,-6.83z"/>
|
||||
</vector>
|
||||
10
wechat/src/main/res/drawable/ic_baseline_stop_24.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M6,6h12v12H6z"/>
|
||||
</vector>
|
||||
170
wechat/src/main/res/drawable/ic_launcher_background.xml
Normal file
@@ -0,0 +1,170 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="108dp"
|
||||
android:height="108dp"
|
||||
android:viewportWidth="108"
|
||||
android:viewportHeight="108">
|
||||
<path
|
||||
android:fillColor="#3DDC84"
|
||||
android:pathData="M0,0h108v108h-108z" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M9,0L9,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,0L19,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M29,0L29,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M39,0L39,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M49,0L49,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M59,0L59,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M69,0L69,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M79,0L79,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M89,0L89,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M99,0L99,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,9L108,9"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,19L108,19"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,29L108,29"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,39L108,39"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,49L108,49"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,59L108,59"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,69L108,69"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,79L108,79"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,89L108,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,99L108,99"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,29L89,29"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,39L89,39"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,49L89,49"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,59L89,59"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,69L89,69"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,79L89,79"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M29,19L29,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M39,19L39,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M49,19L49,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M59,19L59,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M69,19L69,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M79,19L79,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
</vector>
|
||||
12
wechat/src/main/res/drawable/ic_pop.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item >
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#ff20313f"/>
|
||||
<corners android:bottomRightRadius="0dp"
|
||||
android:bottomLeftRadius="0dp"
|
||||
android:topRightRadius="20dp"
|
||||
android:topLeftRadius="20dp"/>
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
||||
12
wechat/src/main/res/drawable/mybutton.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item>
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#ff08b981"/>
|
||||
<corners android:topLeftRadius="13dp"
|
||||
android:topRightRadius="13dp"
|
||||
android:bottomLeftRadius="13dp"
|
||||
android:bottomRightRadius="13dp"/>
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
||||
44
wechat/src/main/res/layout/layout_pop.xml
Normal file
@@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/ic_pop"
|
||||
android:gravity="center_horizontal">
|
||||
<TextView
|
||||
android:id="@+id/wechat_cut"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="24dp"
|
||||
android:text="微信"
|
||||
android:textColor="#ffffffff"
|
||||
android:textSize="17sp"
|
||||
android:layout_marginTop="19.5dp"
|
||||
android:gravity="center"
|
||||
tools:ignore="HardcodedText" />
|
||||
|
||||
|
||||
<TextView
|
||||
android:id="@+id/douyin_cut"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="24dp"
|
||||
android:text="抖音"
|
||||
android:textColor="#ffffffff"
|
||||
android:textSize="17sp"
|
||||
android:gravity="center"
|
||||
android:layout_below="@id/wechat_cut"
|
||||
android:layout_marginTop="33.5dp"
|
||||
tools:ignore="HardcodedText" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/red_cut"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="24dp"
|
||||
android:text="小红书"
|
||||
android:textColor="#ffffffff"
|
||||
android:textSize="17sp"
|
||||
android:gravity="center"
|
||||
android:layout_below="@id/douyin_cut"
|
||||
android:layout_marginTop="33dp"
|
||||
android:layout_marginBottom="22dp"
|
||||
tools:ignore="HardcodedText" />
|
||||
</RelativeLayout>
|
||||
163
wechat/src/main/res/layout/layout_wechatplate.xml
Normal file
@@ -0,0 +1,163 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@mipmap/zu_9308"
|
||||
tools:ignore="ExtraText">
|
||||
<RelativeLayout
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="60dp"
|
||||
android:layout_marginTop="56dp"
|
||||
android:layout_marginLeft="27dp"
|
||||
android:background="@drawable/mybutton"
|
||||
tools:ignore="RtlHardcoded">
|
||||
<Button
|
||||
android:id="@+id/recommed"
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="60dp"
|
||||
android:background="#00000000"/>
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:layout_width="38.4dp"
|
||||
android:layout_height="38.4dp"
|
||||
android:layout_centerInParent="true"
|
||||
android:src="@mipmap/recommend"/>
|
||||
</RelativeLayout>
|
||||
<TextView
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="14dp"
|
||||
android:layout_marginTop="121dp"
|
||||
android:layout_marginLeft="32dp"
|
||||
android:text="通讯录好友"
|
||||
android:textColor="#ffffffff"
|
||||
android:textSize="10sp"
|
||||
tools:ignore="HardcodedText,RtlHardcoded,SmallSp" />
|
||||
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="60dp"
|
||||
android:layout_marginTop="56dp"
|
||||
android:layout_marginLeft="114dp"
|
||||
android:background="@drawable/mybutton"
|
||||
tools:ignore="RtlHardcoded">
|
||||
<Button
|
||||
android:id="@+id/share"
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="60dp"
|
||||
android:background="#00000000"/>
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:layout_width="38.4dp"
|
||||
android:layout_height="38.4dp"
|
||||
android:layout_centerInParent="true"
|
||||
android:src="@mipmap/zu_9309"/>
|
||||
</RelativeLayout>
|
||||
<TextView
|
||||
android:layout_width="85dp"
|
||||
android:layout_height="14dp"
|
||||
android:layout_marginTop="121dp"
|
||||
android:layout_marginLeft="106.5dp"
|
||||
android:text="直播间/视频分享"
|
||||
android:textColor="#ffffffff"
|
||||
android:textSize="10sp"
|
||||
tools:ignore="HardcodedText,RtlHardcoded,SmallSp" />
|
||||
|
||||
|
||||
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="60dp"
|
||||
android:layout_marginTop="704.5dp"
|
||||
android:layout_marginLeft="27dp"
|
||||
android:background="@drawable/mybutton"
|
||||
tools:ignore="RtlHardcoded">
|
||||
<Button
|
||||
android:id="@+id/trick"
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="60dp"
|
||||
android:background="#00000000"/>
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:layout_width="38.4dp"
|
||||
android:layout_height="38.4dp"
|
||||
android:layout_centerInParent="true"
|
||||
android:src="@mipmap/zu_9309"/>
|
||||
</RelativeLayout>
|
||||
<TextView
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="14dp"
|
||||
android:layout_marginTop="769.5dp"
|
||||
android:layout_marginLeft="37dp"
|
||||
android:text="话术设置"
|
||||
android:textColor="#ffffffff"
|
||||
android:textSize="10sp"
|
||||
tools:ignore="HardcodedText,RtlHardcoded,SmallSp" />
|
||||
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="60dp"
|
||||
android:layout_marginTop="704.5dp"
|
||||
android:layout_marginLeft="114dp"
|
||||
android:background="@drawable/mybutton"
|
||||
tools:ignore="RtlHardcoded">
|
||||
<Button
|
||||
android:id="@+id/system"
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="60dp"
|
||||
android:background="#00000000"/>
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:layout_width="38.4dp"
|
||||
android:layout_height="38.4dp"
|
||||
android:layout_centerInParent="true"
|
||||
android:src="@mipmap/zu_9309"/>
|
||||
</RelativeLayout>
|
||||
<TextView
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="14dp"
|
||||
android:layout_marginTop="769.5dp"
|
||||
android:layout_marginLeft="124dp"
|
||||
android:text="系统设置"
|
||||
android:textColor="#ffffffff"
|
||||
android:textSize="10sp"
|
||||
tools:ignore="HardcodedText,RtlHardcoded,SmallSp" />
|
||||
|
||||
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="60dp"
|
||||
android:layout_marginTop="704.5dp"
|
||||
android:layout_marginLeft="201dp"
|
||||
android:background="@drawable/mybutton"
|
||||
tools:ignore="RtlHardcoded">
|
||||
<Button
|
||||
android:id="@+id/cut"
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="60dp"
|
||||
android:background="#00000000"/>
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:layout_width="38.4dp"
|
||||
android:layout_height="38.4dp"
|
||||
android:layout_centerInParent="true"
|
||||
android:src="@mipmap/zu_9310"/>
|
||||
</RelativeLayout>
|
||||
<TextView
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="14dp"
|
||||
android:layout_marginTop="771dp"
|
||||
android:layout_marginLeft="211dp"
|
||||
android:text="切换平台"
|
||||
android:textColor="#ffffffff"
|
||||
android:textSize="10sp"
|
||||
tools:ignore="HardcodedText,RtlHardcoded,SmallSp" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:layout_width="94.85dp"
|
||||
android:layout_height="74.11dp"
|
||||
android:layout_marginTop="605.34dp"
|
||||
android:layout_marginLeft="270.58dp"
|
||||
android:src="@mipmap/way5398"
|
||||
tools:ignore="RtlHardcoded" />
|
||||
|
||||
</RelativeLayout>
|
||||
46
wechat/src/main/res/layout/view_test_w.xml
Normal file
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<com.getbase.floatingactionbutton.FloatingActionsMenu
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:fab_labelStyle="@style/fab_labels_style"
|
||||
app:fab_expandDirection="down"
|
||||
tools:ignore="UnusedAttribute"
|
||||
app:fab_addButtonSize="normal"
|
||||
app:fab_labelsPosition="right"
|
||||
app:fab_addButtonColorPressed="@color/white"
|
||||
app:fab_addButtonPlusIconColor="@color/black">
|
||||
<com.getbase.floatingactionbutton.FloatingActionButton
|
||||
android:id="@+id/fu_btn_1"
|
||||
app:fab_title="开始"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:fab_size="mini"
|
||||
app:fab_icon="@drawable/ic_baseline_play_arrow_24"/>
|
||||
<com.getbase.floatingactionbutton.FloatingActionButton
|
||||
android:id="@+id/fu_btn_2"
|
||||
app:fab_title="关闭悬浮窗"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:fab_size="mini"
|
||||
app:fab_icon="@drawable/ic_baseline_phonelink_erase_24"/>
|
||||
<com.getbase.floatingactionbutton.FloatingActionButton
|
||||
android:id="@+id/fu_btn_3"
|
||||
app:fab_title="服务停止"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:fab_size="mini"
|
||||
app:fab_icon="@drawable/ic_baseline_stop_24"/>
|
||||
<com.getbase.floatingactionbutton.FloatingActionButton
|
||||
android:id="@+id/fu_btn_4"
|
||||
app:fab_title="关闭服务"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:fab_size="mini"
|
||||
app:fab_icon="@drawable/ic_baseline_power_settings_new_24"/>
|
||||
</com.getbase.floatingactionbutton.FloatingActionsMenu>
|
||||
</LinearLayout>
|
||||
45
wechat/src/main/res/layout/w_activity_debug.xml
Normal file
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:layout_margin="30dp"
|
||||
>
|
||||
<Button
|
||||
android:id="@+id/btn_1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:text="开启服务"
|
||||
tools:ignore="HardcodedText" />
|
||||
<Button
|
||||
android:id="@+id/btn_2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:text="开启悬浮窗"
|
||||
tools:ignore="HardcodedText" />
|
||||
<Button
|
||||
android:id="@+id/btn_3"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:text="开启悬浮窗权限"
|
||||
tools:ignore="HardcodedText" />
|
||||
<Button
|
||||
android:id="@+id/btn_4"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:text="开始"
|
||||
tools:ignore="HardcodedText" />
|
||||
<Button
|
||||
android:id="@+id/btn_5"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:text="停止"
|
||||
tools:ignore="HardcodedText" />
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:text="启用前,请关闭微信通知,将省电模式设置为无限制,给予自启动权限"
|
||||
tools:ignore="HardcodedText" />
|
||||
</LinearLayout>
|
||||
45
wechat/src/main/res/layout/w_activity_main.xml
Normal file
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:layout_margin="30dp"
|
||||
>
|
||||
<Button
|
||||
android:id="@+id/btn_1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:text="开启服务"
|
||||
tools:ignore="HardcodedText" />
|
||||
<Button
|
||||
android:id="@+id/btn_2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:text="开启悬浮窗"
|
||||
tools:ignore="HardcodedText" />
|
||||
<Button
|
||||
android:id="@+id/btn_3"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:text="开启悬浮窗权限"
|
||||
tools:ignore="HardcodedText" />
|
||||
<Button
|
||||
android:id="@+id/btn_4"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:text="开始"
|
||||
tools:ignore="HardcodedText" />
|
||||
<Button
|
||||
android:id="@+id/btn_5"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:text="停止"
|
||||
tools:ignore="HardcodedText" />
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:text="启用前,请关闭微信通知,将省电模式设置为无限制,给予自启动权限"
|
||||
tools:ignore="HardcodedText" />
|
||||
</LinearLayout>
|
||||
5
wechat/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@drawable/ic_launcher_background" />
|
||||
<foreground android:drawable="@drawable/ic_launcher_foreground" />
|
||||
</adaptive-icon>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@drawable/ic_launcher_background" />
|
||||
<foreground android:drawable="@drawable/ic_launcher_foreground" />
|
||||
</adaptive-icon>
|
||||
BIN
wechat/src/main/res/mipmap-hdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
BIN
wechat/src/main/res/mipmap-hdpi/ic_launcher_round.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
wechat/src/main/res/mipmap-hdpi/recommend.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
wechat/src/main/res/mipmap-hdpi/way5398.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
wechat/src/main/res/mipmap-hdpi/zu_9308.png
Normal file
|
After Width: | Height: | Size: 474 KiB |
BIN
wechat/src/main/res/mipmap-hdpi/zu_9309.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
wechat/src/main/res/mipmap-hdpi/zu_9310.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
wechat/src/main/res/mipmap-mdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
wechat/src/main/res/mipmap-mdpi/ic_launcher_round.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
wechat/src/main/res/mipmap-xhdpi/atom_logo.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
wechat/src/main/res/mipmap-xhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
wechat/src/main/res/mipmap-xhdpi/ic_launcher_round.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
wechat/src/main/res/mipmap-xxhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
wechat/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
wechat/src/main/res/mipmap-xxxhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
wechat/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
13
wechat/src/main/res/values/colors.xml
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="colorPrimary">#6200EE</color>
|
||||
<color name="colorPrimaryDark">#3700B3</color>
|
||||
<color name="colorAccent">#03DAC5</color>
|
||||
<color name="purple_200">#FFBB86FC</color>
|
||||
<color name="purple_500">#FF6200EE</color>
|
||||
<color name="purple_700">#FF3700B3</color>
|
||||
<color name="teal_200">#FF03DAC5</color>
|
||||
<color name="teal_700">#FF018786</color>
|
||||
<color name="black">#FF000000</color>
|
||||
<color name="white">#FFFFFFFF</color>
|
||||
</resources>
|
||||
3
wechat/src/main/res/values/strings.xml
Normal file
@@ -0,0 +1,3 @@
|
||||
<resources>
|
||||
<string name="app_name">wechat</string>
|
||||
</resources>
|
||||
9
wechat/src/main/res/values/style.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<style name="fab_labels_style">
|
||||
<item name="android:background">@color/white</item>
|
||||
<item name="android:textColor">@color/black</item>
|
||||
<item name="android:textSize">20sp</item>
|
||||
<item name="android:textStyle">bold</item>
|
||||
</style>
|
||||
</resources>
|
||||
10
wechat/src/main/res/values/styles.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<resources>
|
||||
<!-- Base application theme. -->
|
||||
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
|
||||
<!-- Customize your theme here. -->
|
||||
<item name="colorPrimary">@color/colorPrimary</item>
|
||||
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
|
||||
<item name="colorAccent">@color/colorAccent</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
||||
17
wechat/src/test/java/com/derry/wechat/ExampleUnitTest.java
Normal file
@@ -0,0 +1,17 @@
|
||||
package com.derry.wechat;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
* Example local unit test, which will execute on the development machine (host).
|
||||
*
|
||||
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
|
||||
*/
|
||||
public class ExampleUnitTest {
|
||||
@Test
|
||||
public void addition_isCorrect() {
|
||||
assertEquals(4, 2 + 2);
|
||||
}
|
||||
}
|
||||