first commit
This commit is contained in:
16
.idea/compiler.xml
generated
16
.idea/compiler.xml
generated
@@ -14,19 +14,19 @@
|
||||
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.j2objc/j2objc-annotations/1.1/ed28ded51a8b1c6b112568def5f4b455e6809019/j2objc-annotations-1.1.jar" />
|
||||
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.codehaus.mojo/animal-sniffer-annotations/1.14/775b7e22fb10026eed3f86e8dc556dfafe35f2d5/animal-sniffer-annotations-1.14.jar" />
|
||||
</processorPath>
|
||||
<module name="fuzhu.arouter_compiler" />
|
||||
<module name="fuzhu.arouter_compiler.main" />
|
||||
</profile>
|
||||
</annotationProcessing>
|
||||
<bytecodeTargetLevel target="1.7">
|
||||
<bytecodeTargetLevel target="1.8">
|
||||
<module name="arouter_annotation" target="1.7" />
|
||||
<module name="arouter_compiler" target="1.7" />
|
||||
<module name="fuzhu.app" target="1.8" />
|
||||
<module name="fuzhu.arouter_api" target="1.8" />
|
||||
<module name="fuzhu.common" target="1.8" />
|
||||
<module name="fuzhu.app" target="21" />
|
||||
<module name="fuzhu.arouter_api" target="21" />
|
||||
<module name="fuzhu.common" target="21" />
|
||||
<module name="fuzhu.network" target="1.8" />
|
||||
<module name="fuzhu.order" target="1.8" />
|
||||
<module name="fuzhu.personal" target="1.8" />
|
||||
<module name="fuzhu.wechat" target="1.8" />
|
||||
<module name="fuzhu.order" target="21" />
|
||||
<module name="fuzhu.personal" target="21" />
|
||||
<module name="fuzhu.wechat" target="21" />
|
||||
<module name="New_Modular_CustomARouter.app" target="1.8" />
|
||||
<module name="New_Modular_CustomARouter.arouter_api" target="1.8" />
|
||||
<module name="New_Modular_CustomARouter.common" target="1.8" />
|
||||
|
||||
9
.idea/gradle.xml
generated
9
.idea/gradle.xml
generated
@@ -4,11 +4,9 @@
|
||||
<component name="GradleSettings">
|
||||
<option name="linkedExternalProjectsSettings">
|
||||
<GradleProjectSettings>
|
||||
<option name="testRunner" value="PLATFORM" />
|
||||
<option name="disableWrapperSourceDistributionNotification" value="true" />
|
||||
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
||||
<option name="testRunner" value="CHOOSE_PER_TEST" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="gradleJvm" value="11" />
|
||||
<option name="gradleJvm" value="jbr-21" />
|
||||
<option name="modules">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
@@ -22,8 +20,7 @@
|
||||
<option value="$PROJECT_DIR$/wechat" />
|
||||
</set>
|
||||
</option>
|
||||
<option name="resolveModulePerSourceSet" value="false" />
|
||||
<option name="useQualifiedModuleNames" value="true" />
|
||||
<option name="resolveExternalAnnotations" value="false" />
|
||||
</GradleProjectSettings>
|
||||
</option>
|
||||
</component>
|
||||
|
||||
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@@ -29,7 +29,7 @@
|
||||
<option name="priority" value="Medium" />
|
||||
<option name="excludeFilter" value="" />
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="false" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="jbr-21" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
<component name="SuppressionsComponent">
|
||||
|
||||
@@ -5,16 +5,21 @@ def app_android = this.getRootProject().ext.app_android;
|
||||
def app_dependencies = this.rootProject.ext.app_dependencies;
|
||||
|
||||
android {
|
||||
namespace 'com.fisherbone.fuzhu'
|
||||
// compileOptions.encoding = "GBK"
|
||||
compileSdk app_android.compileSdkVersion
|
||||
compileSdkVersion app_android.compileSdkVersion
|
||||
buildToolsVersion app_android.buildToolsVersion
|
||||
defaultConfig {
|
||||
applicationId app_android.applicationId
|
||||
minSdk app_android.minSdkVersion
|
||||
minSdkVersion app_android.minSdkVersion
|
||||
targetSdk app_android.targetSdkVersion
|
||||
targetSdkVersion app_android.targetSdkVersion
|
||||
versionCode app_android.versionCode
|
||||
versionName app_android.versionName
|
||||
testInstrumentationRunner app_android.testInstrumentationRunner
|
||||
multiDexEnabled true //突破应用方法数65535的一个限制
|
||||
|
||||
// 这个方法接收三个非空的参数,第一个:确定值的类型,第二个:指定key的名字,第三个:传值(必须是String)
|
||||
// 为什么需要定义这个?因为src代码中有可能需要用到跨模块交互,如果是组件化模块显然不行
|
||||
@@ -43,8 +48,6 @@ android {
|
||||
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
aaptOptions.cruncherEnabled = false
|
||||
aaptOptions.useNewCruncher = false
|
||||
applicationVariants.all { variant ->
|
||||
variant.outputs.all {
|
||||
// 输出apk名称为dc_v1.0_wandoujia.apk
|
||||
@@ -69,12 +72,20 @@ android {
|
||||
}
|
||||
|
||||
}
|
||||
dataBinding {
|
||||
enabled = true
|
||||
buildFeatures {
|
||||
buildConfig true
|
||||
dataBinding true
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
packagingOptions {
|
||||
jniLibs {
|
||||
useLegacyPackaging = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,6 +95,11 @@ this.android.sourceSets {
|
||||
res.srcDirs = ['src/main/res', 'src/main/res_zxing']
|
||||
}
|
||||
}
|
||||
configurations.all {
|
||||
exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk7'
|
||||
exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||
|
||||
@@ -102,7 +118,7 @@ dependencies {
|
||||
implementation files('lib\\XposedBridgeApi-54.jar')
|
||||
androidTestImplementation 'androidx.test:runner:1.2.0'
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
|
||||
api 'com.blankj:utilcode:1.23.7'
|
||||
api 'com.blankj:utilcode:1.30.6'
|
||||
api 'com.tencent.bugly:crashreport:latest.release'
|
||||
// 公共基础库
|
||||
implementation project(":common")
|
||||
@@ -114,6 +130,9 @@ dependencies {
|
||||
// arouter 专用 注解处理器
|
||||
annotationProcessor project(':arouter_compiler')
|
||||
|
||||
// 将 Kotlin 标准库添加到注解处理器的 classpath(DataBinding 编译器需要)
|
||||
annotationProcessor 'org.jetbrains.kotlin:kotlin-stdlib:1.9.22'
|
||||
|
||||
// 如果是集成化模式,做发布版本时。各个模块都不能独立运行了
|
||||
if (isRelease) {
|
||||
// 进if,集成,融为一体(order,personal)
|
||||
@@ -129,5 +148,11 @@ dependencies {
|
||||
|
||||
}
|
||||
implementation 'com.github.gzu-liyujiang:Android_CN_OAID:4.0.0'
|
||||
|
||||
// Kotlin 标准库(DataBinding 在 AGP 8.x 中需要,版本需要与 AGP 兼容)
|
||||
// 使用 compileOnly 确保在编译时可用,但不会打包到 APK 中(如果项目不使用 Kotlin)
|
||||
compileOnly 'org.jetbrains.kotlin:kotlin-stdlib:1.9.22'
|
||||
// 同时添加到 implementation 以确保运行时可用(如果 DataBinding 生成的代码需要)
|
||||
implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.9.22'
|
||||
}
|
||||
|
||||
|
||||
Binary file not shown.
@@ -71,41 +71,66 @@
|
||||
android:roundIcon="@mipmap/atom_logo"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme">
|
||||
<activity android:name="com.fisherbone.fuzhu.Main2Activity"></activity>
|
||||
<activity android:name="com.fisherbone.fuzhu.MainActivityy">
|
||||
<activity android:name="com.fisherbone.fuzhu.Main2Activity"
|
||||
android:exported="false"></activity>
|
||||
<activity android:name="com.fisherbone.fuzhu.MainActivityy"
|
||||
android:exported="false">
|
||||
|
||||
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".activity.CancelThumbUpActivity"
|
||||
android:exported="false" />
|
||||
<activity android:name=".activity.HongBaoActivity"></activity>
|
||||
<activity android:name=".activity.AppointActivity" />
|
||||
<activity android:name=".LiveSuiJiActivity" />
|
||||
<activity android:name=".LiveActivity" />
|
||||
<activity android:name=".activity.ShouQuanActivity" />
|
||||
<activity android:name=".activity.CancleFollowActivity" />
|
||||
<activity android:name=".activity.KeyWordActivity" />
|
||||
<activity android:name=".activity.KeyWordShoActivity" />
|
||||
<activity android:name=".activity.KeyWordEditActivity" />
|
||||
<activity android:name=".activity.InteraActivity" />
|
||||
<activity android:name=".activity.DavActivity" />
|
||||
<activity android:name=".activity.ScriptSettingActivity" />
|
||||
<activity android:name=".activity.HongBaoActivity"
|
||||
android:exported="false"></activity>
|
||||
<activity android:name=".activity.AppointActivity"
|
||||
android:exported="false" />
|
||||
<activity android:name=".LiveSuiJiActivity"
|
||||
android:exported="false" />
|
||||
<activity android:name=".LiveActivity"
|
||||
android:exported="false" />
|
||||
<activity android:name=".activity.ShouQuanActivity"
|
||||
android:exported="false" />
|
||||
<activity android:name=".activity.CancleFollowActivity"
|
||||
android:exported="false" />
|
||||
<activity android:name=".activity.KeyWordActivity"
|
||||
android:exported="false" />
|
||||
<activity android:name=".activity.KeyWordShoActivity"
|
||||
android:exported="false" />
|
||||
<activity android:name=".activity.KeyWordEditActivity"
|
||||
android:exported="false" />
|
||||
<activity android:name=".activity.InteraActivity"
|
||||
android:exported="false" />
|
||||
<activity android:name=".activity.DavActivity"
|
||||
android:exported="false" />
|
||||
<activity android:name=".activity.ScriptSettingActivity"
|
||||
android:exported="false" />
|
||||
<activity
|
||||
android:name=".activity.RecFollowActivity"
|
||||
android:windowSoftInputMode="stateAlwaysHidden" />
|
||||
<activity android:name=".activity.ScrSetActivity" />
|
||||
<activity android:name=".activity.SettingActivity" />
|
||||
<activity android:name=".activity.PriLetActivity" />
|
||||
<activity android:name=".activity.noticeActivity" />
|
||||
<activity android:name=".activity.DakaActivity" />
|
||||
<activity android:name=".activity.PriLetEditActivity" />
|
||||
<activity android:name=".zxing.activity.CaptureActivity" /> <!-- TODO 更改状态activity,对话框样式 -->
|
||||
android:windowSoftInputMode="stateAlwaysHidden"
|
||||
android:exported="false" />
|
||||
<activity android:name=".activity.ScrSetActivity"
|
||||
android:exported="false" />
|
||||
<activity android:name=".activity.SettingActivity"
|
||||
android:exported="false" />
|
||||
<activity android:name=".activity.PriLetActivity"
|
||||
android:exported="false" />
|
||||
<activity android:name=".activity.noticeActivity"
|
||||
android:exported="false" />
|
||||
<activity android:name=".activity.DakaActivity"
|
||||
android:exported="false" />
|
||||
<activity android:name=".activity.PriLetEditActivity"
|
||||
android:exported="false" />
|
||||
<activity android:name=".zxing.activity.CaptureActivity"
|
||||
android:exported="false" /> <!-- TODO 更改状态activity,对话框样式 -->
|
||||
<activity
|
||||
android:name=".activity.PublishActivity"
|
||||
android:theme="@style/ActivityDialog" />
|
||||
<activity android:name=".PhoneActivity" />
|
||||
<activity android:name=".activity.MainActivity">
|
||||
android:theme="@style/ActivityDialog"
|
||||
android:exported="false" />
|
||||
<activity android:name=".PhoneActivity"
|
||||
android:exported="false" />
|
||||
<activity android:name=".activity.MainActivity"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
@@ -118,7 +143,8 @@
|
||||
android:authorities="com.fisherbone.fuzhu.hook.AppInfoProvider"
|
||||
android:exported="true" />
|
||||
|
||||
<receiver android:name=".BootBroadcastReceiver">
|
||||
<receiver android:name=".BootBroadcastReceiver"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
||||
|
||||
@@ -127,10 +153,12 @@
|
||||
</receiver>
|
||||
|
||||
|
||||
<service android:name=".TestTwoService" />
|
||||
<service android:name=".TestTwoService"
|
||||
android:exported="false" />
|
||||
<service
|
||||
android:name=".abllib.AblService"
|
||||
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
|
||||
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
|
||||
android:exported="true">
|
||||
<intent-filter android:priority="1000">
|
||||
<action android:name="android.accessibilityservice.AccessibilityService" />
|
||||
</intent-filter>
|
||||
|
||||
@@ -15,6 +15,7 @@ import com.lzy.okgo.https.HttpsUtils;
|
||||
import com.lzy.okgo.interceptor.HttpLoggingInterceptor;
|
||||
import com.lzy.okgo.model.HttpHeaders;
|
||||
import com.lzy.okgo.model.HttpParams;
|
||||
import com.blankj.utilcode.util.Utils;
|
||||
import com.tencent.bugly.crashreport.CrashReport;
|
||||
import com.xiangxue.common.network.base.NetworkApi;
|
||||
|
||||
@@ -57,6 +58,10 @@ public class FuzhuApplication extends Application {
|
||||
super.onCreate();
|
||||
baseApplication = this;
|
||||
mContext = this;
|
||||
|
||||
// 初始化 utilcode 工具库(必须在最前面,其他工具可能依赖它)
|
||||
// Utils.init(this);
|
||||
|
||||
CrashReport.initCrashReport(getApplicationContext(), "e940e41c92", false);
|
||||
//用户资料存储工具
|
||||
ProfileSpUtils.init(this);
|
||||
|
||||
@@ -265,15 +265,13 @@ public class PhoneActivity extends BaseActivity implements RadioGroup.OnCheckedC
|
||||
|
||||
@OnClick({R.id.iv_back, R.id.rl_city, R.id.but_begin, R.id.clean_phone, R.id.open_phone, R.id.import_phone, R.id.smash_phone})
|
||||
public void onViewClicked(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.iv_back: //返回按钮
|
||||
int id = view.getId();
|
||||
if (id == R.id.iv_back) { //返回按钮
|
||||
// outAnimation();
|
||||
break;
|
||||
case R.id.rl_city: //选择城市
|
||||
} else if (id == R.id.rl_city) { //选择城市
|
||||
// startActivityForResult(new Intent(PhoneActivity.this, CityPickerActivity.class), REQUEST_CODE_PICK_CITY);
|
||||
// overridePendingTransition(R.anim.anim_in, R.anim.anim_out);
|
||||
break;
|
||||
case R.id.but_begin: //生成号码段
|
||||
} else if (id == R.id.but_begin) { //生成号码段
|
||||
// phoneNumber.clear();
|
||||
// if (city == null) { // 判断有没有选择城市
|
||||
// MyToast.show(PhoneActivity.this, "未选择城市");
|
||||
@@ -292,9 +290,7 @@ public class PhoneActivity extends BaseActivity implements RadioGroup.OnCheckedC
|
||||
// mRvAdapter = new PhoneRvAdapter(PhoneActivity.this, phoneNumber);
|
||||
// mRvPhone.setAdapter(mRvAdapter);
|
||||
// }
|
||||
break;
|
||||
|
||||
case R.id.clean_phone: //导入通讯录
|
||||
} else if (id == R.id.clean_phone) { //导入通讯录
|
||||
phoneNumber.add("18133922190");
|
||||
phoneNumber.add("18133922188");
|
||||
|
||||
@@ -326,15 +322,11 @@ public class PhoneActivity extends BaseActivity implements RadioGroup.OnCheckedC
|
||||
mConfirmDialog.setCancelable(true);
|
||||
mConfirmDialog.show();
|
||||
}
|
||||
break;
|
||||
|
||||
case R.id.open_phone: // 打开联系人界面
|
||||
|
||||
Intent intent = new Intent();
|
||||
intent.setClassName("com.android.contacts", "com.android.contacts.activities.PeopleActivity");
|
||||
startActivity(intent);
|
||||
break;
|
||||
case R.id.import_phone: //清空号码段
|
||||
} else if (id == R.id.open_phone) { // 打开联系人界面
|
||||
Intent intent = new Intent();
|
||||
intent.setClassName("com.android.contacts", "com.android.contacts.activities.PeopleActivity");
|
||||
startActivity(intent);
|
||||
} else if (id == R.id.import_phone) { //清空号码段
|
||||
if (phoneNumber.size() == 0) {
|
||||
MyToast.show(PhoneActivity.this, "号码为空");
|
||||
} else {
|
||||
@@ -354,8 +346,7 @@ public class PhoneActivity extends BaseActivity implements RadioGroup.OnCheckedC
|
||||
mConfirmDialog.setCancelable(true);
|
||||
mConfirmDialog.show();
|
||||
}
|
||||
break;
|
||||
case R.id.smash_phone: //清空通讯录
|
||||
} else if (id == R.id.smash_phone) { //清空通讯录
|
||||
mConfirmDialog = new ConfirmDialog(PhoneActivity.this, new Callback() {
|
||||
@Override
|
||||
public void Positive() {
|
||||
@@ -378,10 +369,7 @@ public class PhoneActivity extends BaseActivity implements RadioGroup.OnCheckedC
|
||||
mConfirmDialog.setContent("提示:" + "\n是否清空通讯录");
|
||||
mConfirmDialog.setCancelable(true);
|
||||
mConfirmDialog.show();
|
||||
break;
|
||||
default:
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// @Override
|
||||
@@ -397,19 +385,12 @@ public class PhoneActivity extends BaseActivity implements RadioGroup.OnCheckedC
|
||||
//
|
||||
@Override
|
||||
public void onCheckedChanged(RadioGroup group, int checkedId) {
|
||||
switch (checkedId) {
|
||||
case R.id.mobile:
|
||||
PrefUtils.putString(PhoneActivity.this, "phone_opera", "移动");
|
||||
break;
|
||||
|
||||
case R.id.telecom:
|
||||
PrefUtils.putString(PhoneActivity.this, "phone_opera", "电信");
|
||||
break;
|
||||
|
||||
case R.id.unicom:
|
||||
PrefUtils.putString(PhoneActivity.this, "phone_opera", "联通");
|
||||
break;
|
||||
default:
|
||||
if (checkedId == R.id.mobile) {
|
||||
PrefUtils.putString(PhoneActivity.this, "phone_opera", "移动");
|
||||
} else if (checkedId == R.id.telecom) {
|
||||
PrefUtils.putString(PhoneActivity.this, "phone_opera", "电信");
|
||||
} else if (checkedId == R.id.unicom) {
|
||||
PrefUtils.putString(PhoneActivity.this, "phone_opera", "联通");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -60,7 +60,8 @@ public class AblUtil {
|
||||
}
|
||||
|
||||
} else {
|
||||
ToastUtils.showShort("请先开启允许显示在其他应用上权限");
|
||||
// 使用原生 Toast 替代 blankj 的 ToastUtils,避免在 Activity 未完全初始化时崩溃
|
||||
Toast.makeText(context, "请先开启允许显示在其他应用上权限", Toast.LENGTH_SHORT).show();
|
||||
AblUtil.openDrawOverlaysAnth(context);
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -22,8 +22,10 @@ import android.view.View;
|
||||
import android.view.accessibility.AccessibilityManager;
|
||||
import android.widget.PopupWindow;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.blankj.utilcode.util.ToastUtils;
|
||||
import com.fisherbone.fuzhu.utils.SafeToastUtils;
|
||||
import com.fisherbone.fuzhu.BaseActivity;
|
||||
import com.derry.wechat.debug.BuildConfig;
|
||||
import com.fisherbone.fuzhu.ChangLiang;
|
||||
@@ -205,16 +207,23 @@ public class MainActivity extends BaseActivity implements InfoMessage {
|
||||
AblUtil.getPermissions(MainActivity.this);
|
||||
|
||||
//adb shell pm grant com.fisherbone.fuzhu android.permission.WRITE_SECURE_SETTINGS
|
||||
Settings.Secure.putString(getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.fisherbone.fuzhu/com.fisherbone.fuzhu.abllib.AblService");
|
||||
Settings.Secure.putString(getContentResolver(), Settings.Secure.ACCESSIBILITY_ENABLED, "1");//1表示开启
|
||||
if (AblUtil.isAccessibilityServiceOpen(MainActivity.this)) {
|
||||
// Log.e("TIAOSHI###", "无障碍服务正常");
|
||||
ToastUtils.showShort( "无障碍服务正常");
|
||||
}else {
|
||||
ToastUtils.showShort( "无障碍服务异常");
|
||||
Settings.Secure.putString(getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.fisherbone.fuzhu/com.fisherbone.fuzhu.abllib.AblService");
|
||||
Settings.Secure.putString(getContentResolver(), Settings.Secure.ACCESSIBILITY_ENABLED, "0");//1表示开启
|
||||
}
|
||||
// Settings.Secure.putString(getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.fisherbone.fuzhu/com.fisherbone.fuzhu.abllib.AblService");
|
||||
// Settings.Secure.putString(getContentResolver(), Settings.Secure.ACCESSIBILITY_ENABLED, "1");//1表示开启
|
||||
|
||||
// 延迟 Toast 显示,确保 Activity 完全初始化后再显示,使用原生 Toast 避免 blankj ToastUtils 的崩溃问题
|
||||
getWindow().getDecorView().post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (AblUtil.isAccessibilityServiceOpen(MainActivity.this)) {
|
||||
// Log.e("TIAOSHI###", "无障碍服务正常");
|
||||
Toast.makeText(MainActivity.this, "无障碍服务正常", Toast.LENGTH_SHORT).show();
|
||||
}else {
|
||||
Toast.makeText(MainActivity.this, "无障碍服务异常", Toast.LENGTH_SHORT).show();
|
||||
// Settings.Secure.putString(getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.fisherbone.fuzhu/com.fisherbone.fuzhu.abllib.AblService");
|
||||
// Settings.Secure.putString(getContentResolver(), Settings.Secure.ACCESSIBILITY_ENABLED, "0");//1表示开启
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
ChangLiang.task_id = "";//当前执行任务id
|
||||
ChangLiang.id = "";//当前执行任务功能id
|
||||
@@ -295,7 +304,7 @@ public class MainActivity extends BaseActivity implements InfoMessage {
|
||||
commentDao = new CommentDao(MainActivity.this);
|
||||
redenvDao = new RedenvDao(MainActivity.this);
|
||||
startTask = new StartTask(MainActivity.this, controlWindow, zhanghaoDao);
|
||||
madeData();
|
||||
// madeData();
|
||||
EventBus.getDefault().register(this);
|
||||
displayBriefMemory();
|
||||
//设置公共参数
|
||||
@@ -360,51 +369,39 @@ public class MainActivity extends BaseActivity implements InfoMessage {
|
||||
|
||||
}
|
||||
|
||||
@OnClickk({R.id.rl_05, R.id.rl_12, R.id.rl_011, R.id.rl_10, R.id.rl_09, R.id.rl_08, R.id.rl_07, R.id.rl_06, R.id.rl_04, R.id.rl_03, R.id.rl_01, R.id.rl_02 ,R.id.rl_16})
|
||||
@OnClickk({R.id.rl_05, R.id.rl_12, R.id.rl_011, R.id.rl_10, R.id.rl_09, R.id.rl_08, R.id.rl_07, R.id.rl_06, R.id.rl_04, R.id.rl_03, R.id.rl_01, R.id.rl_02, R.id.rl_16})
|
||||
public void click(View view) {
|
||||
if(ProfileSpUtils.getInstance().getSetBean().isRedswitchone()){
|
||||
ToastUtils.showShort( "请关闭云端控制");
|
||||
SafeToastUtils.showShort(MainActivity.this, "请关闭云端控制");
|
||||
return;
|
||||
}
|
||||
switch (view.getId()) {
|
||||
case R.id.rl_05:
|
||||
JumpUtils.gotoActivity(MainActivity.this, DavActivity.class, false, "", "");
|
||||
break;
|
||||
case R.id.rl_12:
|
||||
JumpUtils.gotoActivity(MainActivity.this, HongBaoActivity.class, false, "", "");
|
||||
break;
|
||||
case R.id.rl_011:
|
||||
JumpUtils.gotoActivity(MainActivity.this, AppointActivity.class, false, "", "");
|
||||
break;
|
||||
case R.id.rl_10:
|
||||
JumpUtils.gotoActivity(MainActivity.this, LiveSuiJiActivity.class, false, "", "");
|
||||
break;
|
||||
case R.id.rl_09:
|
||||
JumpUtils.gotoActivity(MainActivity.this, LiveActivity.class, false, "", "");
|
||||
break;
|
||||
case R.id.rl_08:
|
||||
JumpUtils.gotoActivity(MainActivity.this, noticeActivity.class, false, "", "");
|
||||
break;
|
||||
case R.id.rl_07:
|
||||
JumpUtils.gotoActivity(MainActivity.this, KeyWordActivity.class, false, "", "");
|
||||
break;
|
||||
case R.id.rl_06:
|
||||
JumpUtils.gotoActivity(MainActivity.this, InteraActivity.class, false, "", "");
|
||||
break;
|
||||
case R.id.rl_04:
|
||||
JumpUtils.gotoActivity(MainActivity.this, CancleFollowActivity.class, false, "", "");
|
||||
break;
|
||||
case R.id.rl_03:
|
||||
JumpUtils.gotoActivity(MainActivity.this, KeyWordActivity.class, false, "", "");
|
||||
break;
|
||||
case R.id.rl_01:
|
||||
JumpUtils.gotoActivity(MainActivity.this, RecFollowActivity.class, false, "", "");
|
||||
// JumpUtils.gotoActivity(MainActivity.this, MainActivityy.class, false, "", "");
|
||||
break;
|
||||
case R.id.rl_16:
|
||||
JumpUtils.gotoActivity(MainActivity.this,CancelThumbUpActivity.class, false, "", "");
|
||||
break;
|
||||
case R.id.rl_02:
|
||||
int id = view.getId();
|
||||
if (id == R.id.rl_05) {
|
||||
JumpUtils.gotoActivity(MainActivity.this, DavActivity.class, false, "", "");
|
||||
} else if (id == R.id.rl_12) {
|
||||
JumpUtils.gotoActivity(MainActivity.this, HongBaoActivity.class, false, "", "");
|
||||
} else if (id == R.id.rl_011) {
|
||||
JumpUtils.gotoActivity(MainActivity.this, AppointActivity.class, false, "", "");
|
||||
} else if (id == R.id.rl_10) {
|
||||
JumpUtils.gotoActivity(MainActivity.this, LiveSuiJiActivity.class, false, "", "");
|
||||
} else if (id == R.id.rl_09) {
|
||||
JumpUtils.gotoActivity(MainActivity.this, LiveActivity.class, false, "", "");
|
||||
} else if (id == R.id.rl_08) {
|
||||
JumpUtils.gotoActivity(MainActivity.this, noticeActivity.class, false, "", "");
|
||||
} else if (id == R.id.rl_07) {
|
||||
JumpUtils.gotoActivity(MainActivity.this, KeyWordActivity.class, false, "", "");
|
||||
} else if (id == R.id.rl_06) {
|
||||
JumpUtils.gotoActivity(MainActivity.this, InteraActivity.class, false, "", "");
|
||||
} else if (id == R.id.rl_04) {
|
||||
JumpUtils.gotoActivity(MainActivity.this, CancleFollowActivity.class, false, "", "");
|
||||
} else if (id == R.id.rl_03) {
|
||||
JumpUtils.gotoActivity(MainActivity.this, KeyWordActivity.class, false, "", "");
|
||||
} else if (id == R.id.rl_01) {
|
||||
JumpUtils.gotoActivity(MainActivity.this, RecFollowActivity.class, false, "", "");
|
||||
// JumpUtils.gotoActivity(MainActivity.this, MainActivityy.class, false, "", "");
|
||||
} else if (id == R.id.rl_16) {
|
||||
JumpUtils.gotoActivity(MainActivity.this,CancelThumbUpActivity.class, false, "", "");
|
||||
} else if (id == R.id.rl_02) {
|
||||
// service.stopSelf();
|
||||
|
||||
// CrashReport.testJavaCrash();
|
||||
@@ -419,8 +416,6 @@ public class MainActivity extends BaseActivity implements InfoMessage {
|
||||
.build("/wechat/W_MainActivity")
|
||||
.withString("name", "杜子腾")
|
||||
.navigation(this); // 组件和组件通信
|
||||
break;
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
@@ -456,7 +451,7 @@ public class MainActivity extends BaseActivity implements InfoMessage {
|
||||
@Override
|
||||
public void run() throws Exception {
|
||||
Log.e("TIAOSHI###", "运行时间已到,停止自动加关");
|
||||
ToastUtils.showLong("运行时间已到,停止自动加关");
|
||||
SafeToastUtils.showLong(MainActivity.this, "运行时间已到,停止自动加关");
|
||||
AblStepHandler.getInstance().setStop(true);
|
||||
AblViewUtil.onMessage("停止");
|
||||
|
||||
@@ -550,7 +545,9 @@ public class MainActivity extends BaseActivity implements InfoMessage {
|
||||
break;
|
||||
case "11":
|
||||
execute("16");
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -560,8 +557,8 @@ public class MainActivity extends BaseActivity implements InfoMessage {
|
||||
if (AblUtil.isAccessibilityServiceOpen(MainActivity.this)) {
|
||||
AblUtil.addSuspensionWindowView(MainActivity.this, controlWindow.initWindowView(s));
|
||||
} else {
|
||||
ToastUtils.showShort("点到了");
|
||||
ToastUtils.showShort("请先开启辅助服务");
|
||||
SafeToastUtils.showShort(MainActivity.this, "点到了");
|
||||
SafeToastUtils.showShort(MainActivity.this, "请先开启辅助服务");
|
||||
AblUtil.openAccessibilitySettings();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,13 +100,13 @@ public class SettingActivity extends BaseActivity {
|
||||
douyinDao = new DouyinDao(SettingActivity.this);
|
||||
InjectUtils.injectEvent(this);
|
||||
if (ChangLiang.control_status.equals("1") && ProfileSpUtils.getInstance().getSetBean().isRedswitchone()) {
|
||||
binding.setSwitch1.setChecked(true);
|
||||
binding.switchMsgNotification.setChecked(true);
|
||||
} else {
|
||||
binding.setSwitch1.setChecked(false);
|
||||
binding.switchMsgNotification.setChecked(false);
|
||||
}
|
||||
binding.tvVewsion.setText("v." + getVersionn());
|
||||
// 添加监听
|
||||
binding.setSwitch1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
binding.switchMsgNotification.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||
if (isChecked) {
|
||||
@@ -270,8 +270,8 @@ public class SettingActivity extends BaseActivity {
|
||||
|
||||
@OnClickk({R.id.rl_env})
|
||||
public void click(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.rl_env:
|
||||
int id = view.getId();
|
||||
if (id == R.id.rl_env) {
|
||||
ArrayList<DouyinBean> douyinBeans = douyinDao.queryAll();
|
||||
douyinDao.delete(douyinBeans);
|
||||
if (AblUtil.isAccessibilityServiceOpen(SettingActivity.this)) {
|
||||
@@ -280,9 +280,6 @@ public class SettingActivity extends BaseActivity {
|
||||
} else {
|
||||
ToastUtils.showShort("请先开启辅助服务)))))))");
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -189,7 +189,7 @@ public class TestAblStep2 extends BaseAblStep {
|
||||
Rect rect = new Rect();
|
||||
if (child2 != null) {
|
||||
child2.getBoundsInScreen(rect);
|
||||
if (rect.top >= 253 && rect.bottom <= 404) {
|
||||
if (rect.top >= 253 && rect.bottom <= 409) {
|
||||
Log.e("TIAOSHI###", "----fourNode:" + child2.getClassName() + ":" + child2.getText() + ":" + child2.getContentDescription());
|
||||
if ("android.widget.TextView".equals(child2.getClassName())) {
|
||||
if (child2.getText() != null) {
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.fisherbone.fuzhu.utils;
|
||||
|
||||
import android.content.Context;
|
||||
import android.widget.Toast;
|
||||
|
||||
/**
|
||||
* 安全的 Toast 工具类,用于替代 blankj 的 ToastUtils
|
||||
* 避免在 Application 上下文中使用 Toast 时出现 NullPointerException
|
||||
*/
|
||||
public class SafeToastUtils {
|
||||
|
||||
private static Toast lastToast;
|
||||
|
||||
/**
|
||||
* 显示短时 Toast
|
||||
*/
|
||||
public static void showShort(Context context, CharSequence text) {
|
||||
if (context == null || text == null) {
|
||||
return;
|
||||
}
|
||||
// 取消之前的 Toast
|
||||
if (lastToast != null) {
|
||||
lastToast.cancel();
|
||||
}
|
||||
// 使用原生 Toast,确保使用 Activity 上下文
|
||||
lastToast = Toast.makeText(context.getApplicationContext(), text, Toast.LENGTH_SHORT);
|
||||
lastToast.show();
|
||||
}
|
||||
|
||||
/**
|
||||
* 显示短时 Toast(使用字符串资源 ID)
|
||||
*/
|
||||
public static void showShort(Context context, int resId) {
|
||||
if (context == null) {
|
||||
return;
|
||||
}
|
||||
showShort(context, context.getString(resId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 显示长时 Toast
|
||||
*/
|
||||
public static void showLong(Context context, CharSequence text) {
|
||||
if (context == null || text == null) {
|
||||
return;
|
||||
}
|
||||
// 取消之前的 Toast
|
||||
if (lastToast != null) {
|
||||
lastToast.cancel();
|
||||
}
|
||||
// 使用原生 Toast,确保使用 Activity 上下文
|
||||
lastToast = Toast.makeText(context.getApplicationContext(), text, Toast.LENGTH_LONG);
|
||||
lastToast.show();
|
||||
}
|
||||
|
||||
/**
|
||||
* 显示长时 Toast(使用字符串资源 ID)
|
||||
*/
|
||||
public static void showLong(Context context, int resId) {
|
||||
if (context == null) {
|
||||
return;
|
||||
}
|
||||
showLong(context, context.getString(resId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消当前显示的 Toast
|
||||
*/
|
||||
public static void cancel() {
|
||||
if (lastToast != null) {
|
||||
lastToast.cancel();
|
||||
lastToast = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,17 +53,13 @@ public class ConfirmDialog extends Dialog implements View.OnClickListener {
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
switch (v.getId()) {
|
||||
case R.id.dialog_confirm_cancle:
|
||||
callback.Negative();
|
||||
this.cancel();
|
||||
break;
|
||||
|
||||
case R.id.dialog_confirm_sure:
|
||||
callback.Positive();
|
||||
this.cancel();
|
||||
break;
|
||||
default:
|
||||
int id = v.getId();
|
||||
if (id == R.id.dialog_confirm_cancle) {
|
||||
callback.Negative();
|
||||
this.cancel();
|
||||
} else if (id == R.id.dialog_confirm_sure) {
|
||||
callback.Positive();
|
||||
this.cancel();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -109,32 +109,28 @@ public class TitleBar extends RelativeLayout implements View.OnClickListener {
|
||||
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
switch (view.getId()) {
|
||||
//左边按钮
|
||||
case R.id.iv_left_btn:
|
||||
if (null != mListener) {
|
||||
mListener.onLeftButtonClick(view);
|
||||
}
|
||||
if (null != mAllClickListener) {
|
||||
mAllClickListener.onLeftButtonClick(view);
|
||||
}
|
||||
break;
|
||||
int id = view.getId();
|
||||
//左边按钮
|
||||
if (id == R.id.iv_left_btn) {
|
||||
if (null != mListener) {
|
||||
mListener.onLeftButtonClick(view);
|
||||
}
|
||||
if (null != mAllClickListener) {
|
||||
mAllClickListener.onLeftButtonClick(view);
|
||||
}
|
||||
} else if (id == R.id.iv_right_btn) {
|
||||
//右边按钮
|
||||
case R.id.iv_right_btn:
|
||||
if (null != mListener) {
|
||||
mListener.onRightButtonClick(view);
|
||||
}
|
||||
if (null != mAllClickListener) {
|
||||
mAllClickListener.onRightButtonClick(view);
|
||||
}
|
||||
break;
|
||||
if (null != mListener) {
|
||||
mListener.onRightButtonClick(view);
|
||||
}
|
||||
if (null != mAllClickListener) {
|
||||
mAllClickListener.onRightButtonClick(view);
|
||||
}
|
||||
} else if (id == R.id.tv_right_text) {
|
||||
//右边文本按钮
|
||||
case R.id.tv_right_text:
|
||||
if (null != mAllClickListener) {
|
||||
mAllClickListener.onRightTextButtonClick(view);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (null != mAllClickListener) {
|
||||
mAllClickListener.onRightTextButtonClick(view);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -347,12 +347,9 @@ public class CaptureActivity extends BaseActivity implements Callback, View.OnCl
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
switch (v.getId()) {
|
||||
default:
|
||||
break;
|
||||
case R.id.btn_back:
|
||||
finish();
|
||||
break;
|
||||
int id = v.getId();
|
||||
if (id == R.id.btn_back) {
|
||||
finish();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -66,20 +66,18 @@ public final class CaptureActivityHandler extends Handler {
|
||||
|
||||
@Override
|
||||
public void handleMessage(Message message) {
|
||||
switch (message.what) {
|
||||
case R.id.auto_focus:
|
||||
int what = message.what;
|
||||
if (what == R.id.auto_focus) {
|
||||
//Log.d(TAG, "Got auto-focus message");
|
||||
// When one auto focus pass finishes, start another. This is the closest thing to
|
||||
// continuous AF. It does seem to hunt a bit, but I'm not sure what else to do.
|
||||
if (state == State.PREVIEW) {
|
||||
CameraManager.get().requestAutoFocus(this, R.id.auto_focus);
|
||||
}
|
||||
break;
|
||||
case R.id.restart_preview:
|
||||
} else if (what == R.id.restart_preview) {
|
||||
Log.d(TAG, "Got restart preview message");
|
||||
restartPreviewAndDecode();
|
||||
break;
|
||||
case R.id.decode_succeeded:
|
||||
} else if (what == R.id.decode_succeeded) {
|
||||
Log.d(TAG, "Got decode succeeded message");
|
||||
state = State.SUCCESS;
|
||||
Bundle bundle = message.getData();
|
||||
@@ -90,25 +88,20 @@ public final class CaptureActivityHandler extends Handler {
|
||||
|
||||
activity.handleDecode((Result) message.obj, barcode);//<2F><><EFBFBD>ؽ<EFBFBD><D8BD>
|
||||
/***********************************************************************/
|
||||
break;
|
||||
case R.id.decode_failed:
|
||||
} else if (what == R.id.decode_failed) {
|
||||
// We're decoding as fast as possible, so when one decode fails, start another.
|
||||
state = State.PREVIEW;
|
||||
CameraManager.get().requestPreviewFrame(decodeThread.getHandler(), R.id.decode);
|
||||
break;
|
||||
case R.id.return_scan_result:
|
||||
} else if (what == R.id.return_scan_result) {
|
||||
Log.d(TAG, "Got return scan result message");
|
||||
activity.setResult(Activity.RESULT_OK, (Intent) message.obj);
|
||||
activity.finish();
|
||||
break;
|
||||
case R.id.launch_product_query:
|
||||
} else if (what == R.id.launch_product_query) {
|
||||
Log.d(TAG, "Got product query message");
|
||||
String url = (String) message.obj;
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
|
||||
activity.startActivity(intent);
|
||||
break;
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -51,15 +51,12 @@ final class DecodeHandler extends Handler {
|
||||
|
||||
@Override
|
||||
public void handleMessage(Message message) {
|
||||
switch (message.what) {
|
||||
case R.id.decode:
|
||||
int what = message.what;
|
||||
if (what == R.id.decode) {
|
||||
//Log.d(TAG, "Got decode message");
|
||||
decode((byte[]) message.obj, message.arg1, message.arg2);
|
||||
break;
|
||||
case R.id.quit:
|
||||
} else if (what == R.id.quit) {
|
||||
Looper.myLooper().quit();
|
||||
break;
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -53,14 +53,13 @@
|
||||
|
||||
|
||||
<Switch
|
||||
android:id="@+id/set_switch1"
|
||||
android:id="@+id/switchMsgNotification"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_marginEnd="26dp"
|
||||
android:layout_marginBottom="7dp"
|
||||
|
||||
android:switchMinWidth="20dp"
|
||||
android:textOff="off"
|
||||
android:textOn="on"
|
||||
|
||||
@@ -7,11 +7,11 @@ ext {
|
||||
packageNameForAPT = "com.fisherbone.fuzhu";
|
||||
|
||||
app_android = [
|
||||
compileSdkVersion : 29,
|
||||
buildToolsVersion : "29.0.3",
|
||||
compileSdkVersion : 34,
|
||||
buildToolsVersion : "30.0.2",
|
||||
applicationId : "com.fisherbone.fuzhu",
|
||||
minSdkVersion : 24,
|
||||
targetSdkVersion : 29,
|
||||
minSdkVersion : 26,
|
||||
targetSdkVersion : 34,
|
||||
versionCode : 182,
|
||||
versionName : "1.8.2",
|
||||
testInstrumentationRunner: "androidx.test.runner.AndroidJUnitRunner"
|
||||
|
||||
@@ -10,5 +10,5 @@ tasks.withType(JavaCompile) {
|
||||
}
|
||||
|
||||
|
||||
sourceCompatibility = "7"
|
||||
targetCompatibility = "7"
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
|
||||
@@ -1,18 +1,27 @@
|
||||
apply plugin: 'com.android.library'
|
||||
|
||||
android {
|
||||
compileSdkVersion 29
|
||||
buildToolsVersion "29.0.3"
|
||||
namespace 'com.xiangxue.arouter_api'
|
||||
compileSdk 34
|
||||
compileSdkVersion 34
|
||||
buildToolsVersion "30.0.2"
|
||||
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion 15
|
||||
targetSdkVersion 29
|
||||
minSdk 26
|
||||
minSdkVersion 26
|
||||
targetSdk 34
|
||||
targetSdkVersion 34
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
|
||||
@@ -20,5 +20,5 @@ tasks.withType(JavaCompile) {
|
||||
options.encoding = "UTF-8"
|
||||
}
|
||||
|
||||
sourceCompatibility = "7"
|
||||
targetCompatibility = "7"
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
o/jetified-arouter_compiler.jar
|
||||
Binary file not shown.
@@ -1 +0,0 @@
|
||||
i/
|
||||
@@ -1 +0,0 @@
|
||||
i/
|
||||
@@ -1 +0,0 @@
|
||||
i/
|
||||
@@ -1 +0,0 @@
|
||||
i/
|
||||
@@ -1 +0,0 @@
|
||||
i/
|
||||
@@ -1 +0,0 @@
|
||||
i/
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,12 +0,0 @@
|
||||
com/xiangxue/arouter_compiler/utils/ProcessorConfig.java
|
||||
com.xiangxue.arouter_compiler.utils.ProcessorConfig
|
||||
com/xiangxue/arouter_compiler/ARouterProcessor.java
|
||||
com.xiangxue.arouter_compiler.ARouterProcessor
|
||||
com/xiangxue/arouter_compiler/ParameterProcessor.java
|
||||
com.xiangxue.arouter_compiler.ParameterProcessor
|
||||
com/xiangxue/arouter_compiler/utils/ProcessorUtils.java
|
||||
com.xiangxue.arouter_compiler.utils.ProcessorUtils
|
||||
com/xiangxue/arouter_compiler/ParameterFactory.java
|
||||
com.xiangxue.arouter_compiler.ParameterFactory
|
||||
com.xiangxue.arouter_compiler.ParameterFactory$1
|
||||
com.xiangxue.arouter_compiler.ParameterFactory$Builder
|
||||
44
build.gradle
44
build.gradle
@@ -4,25 +4,57 @@
|
||||
apply from : "app_config.gradle"
|
||||
|
||||
buildscript {
|
||||
ext.kotlin_version = '1.3.72'
|
||||
|
||||
ext {
|
||||
agp_version = '8.7.3'
|
||||
}
|
||||
repositories {
|
||||
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
|
||||
maven { url 'https://maven.aliyun.com/repository/public' }//jcenter
|
||||
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }//gradle-plugin
|
||||
maven { url 'https://maven.aliyun.com/repository/central' }//central
|
||||
maven { url 'https://maven.aliyun.com/repository/google' }//google
|
||||
google()
|
||||
jcenter()
|
||||
mavenCentral()
|
||||
|
||||
maven { url "https://jitpack.io" }
|
||||
|
||||
maven {
|
||||
url "https://plugins.gradle.org/m2/"
|
||||
}
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:4.1.0'
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
|
||||
classpath "com.android.tools.build:gradle:$agp_version"
|
||||
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
|
||||
classpath "net.ltgt.gradle:gradle-errorprone-plugin:0.6"
|
||||
// Kotlin 标准库(DataBinding 编译器在 AGP 8.x 中需要)
|
||||
classpath 'org.jetbrains.kotlin:kotlin-stdlib:1.9.22'
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
allprojects {
|
||||
repositories {
|
||||
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
|
||||
maven { url 'https://maven.aliyun.com/repository/public' }//jcenter
|
||||
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }//gradle-plugin
|
||||
maven { url 'https://maven.aliyun.com/repository/central' }//central
|
||||
maven { url 'https://maven.aliyun.com/repository/google' }//google
|
||||
flatDir {
|
||||
dirs 'libs'
|
||||
}
|
||||
|
||||
|
||||
google()
|
||||
jcenter()
|
||||
maven { url 'https://jitpack.io' }
|
||||
maven { url "https://jitpack.io"}
|
||||
maven { url "https://www.jitpack.io" }
|
||||
// maven { url 'https://dl.bintray.com/aweme-open-sdk-team/public' }
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,14 +1,23 @@
|
||||
apply plugin: 'com.android.library'
|
||||
|
||||
android {
|
||||
namespace 'com.xiangxue.common'
|
||||
compileSdk app_android.compileSdkVersion
|
||||
compileSdkVersion app_android.compileSdkVersion
|
||||
buildToolsVersion app_android.buildToolsVersion
|
||||
defaultConfig {
|
||||
minSdk app_android.minSdkVersion
|
||||
minSdkVersion app_android.minSdkVersion
|
||||
targetSdk app_android.targetSdkVersion
|
||||
targetSdkVersion app_android.targetSdkVersion
|
||||
consumerProguardFiles 'consumer-rules.pro'
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
@@ -39,7 +48,11 @@ dependencies {
|
||||
androidTestImplementation 'androidx.test:runner:1.2.0'
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
|
||||
|
||||
// 因为每一个 “子Module”都依赖了 common,所有当我们在 common中依赖 arouter_api(柱状)
|
||||
// 因为每一个 "子Module"都依赖了 common,所有当我们在 common中依赖 arouter_api(柱状)
|
||||
// 就等于 全部都依赖了 arouter_api
|
||||
api project(":arouter_api")
|
||||
|
||||
// Kotlin 标准库(DataBinding 在 AGP 8.x 中需要,参考 android-im 的做法)
|
||||
// 使用 api 让所有依赖 common 的模块都能获得 Kotlin 标准库
|
||||
api 'org.jetbrains.kotlin:kotlin-stdlib:1.9.22'
|
||||
}
|
||||
|
||||
@@ -17,4 +17,12 @@ org.gradle.jvmargs=-Xmx1536m
|
||||
android.useAndroidX=true
|
||||
# Automatically convert third-party libraries to use AndroidX
|
||||
android.enableJetifier=true
|
||||
android.nonTransitiveRClass=true
|
||||
# 使资源 ID 恢复为编译时常量(AGP 8.x 需要)
|
||||
android.nonFinalResIds=false
|
||||
# Suppress deprecation warnings for Java 8 source/target
|
||||
android.javaCompile.suppressSourceTargetDeprecationWarning=true
|
||||
# Use the JDK from Android Studio (uncomment and set path if needed)
|
||||
# org.gradle.java.home=C:/Program Files/Android/Android Studio/jbr
|
||||
|
||||
|
||||
|
||||
4
gradle/wrapper/gradle-wrapper.properties
vendored
4
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,6 +1,6 @@
|
||||
#Mon Dec 13 11:44:16 CST 2021
|
||||
#Tue Nov 11 10:04:16 CST 2025
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip
|
||||
|
||||
@@ -5,6 +5,8 @@ if (isRelease) { // 如果是发布版本时,各个模块都不能独立运行
|
||||
}
|
||||
|
||||
android {
|
||||
namespace 'com.fisherbone.fuzhu.order'
|
||||
compileSdk app_android.compileSdkVersion
|
||||
compileSdkVersion app_android.compileSdkVersion
|
||||
buildToolsVersion app_android.buildToolsVersion
|
||||
defaultConfig {
|
||||
@@ -13,7 +15,9 @@ android {
|
||||
applicationId app_appid.order // 组件化模式能独立运行才能有applicationId
|
||||
}
|
||||
|
||||
minSdk app_android.minSdkVersion
|
||||
minSdkVersion app_android.minSdkVersion
|
||||
targetSdk app_android.targetSdkVersion
|
||||
targetSdkVersion app_android.targetSdkVersion
|
||||
versionCode app_android.versionCode
|
||||
versionName app_android.versionName
|
||||
@@ -63,6 +67,15 @@ android {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
buildConfig true
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
||||
@@ -10,7 +10,8 @@
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme">
|
||||
|
||||
<activity android:name="com.fisherbone.fuzhu.order.Order_MainActivity">
|
||||
<activity android:name="com.fisherbone.fuzhu.order.Order_MainActivity"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
@@ -18,7 +19,8 @@
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:name="com.fisherbone.fuzhu.order.debug.Order_DebugActivity" />
|
||||
<activity android:name="com.fisherbone.fuzhu.order.debug.Order_DebugActivity"
|
||||
android:exported="false" />
|
||||
|
||||
</application>
|
||||
|
||||
|
||||
@@ -5,6 +5,8 @@ if (isRelease) { // 如果是发布版本时,各个模块都不能独立运行
|
||||
}
|
||||
|
||||
android {
|
||||
namespace 'com.fisherbone.fuzhu.personal'
|
||||
compileSdk app_android.compileSdkVersion
|
||||
compileSdkVersion app_android.compileSdkVersion
|
||||
buildToolsVersion app_android.buildToolsVersion
|
||||
defaultConfig {
|
||||
@@ -13,7 +15,9 @@ android {
|
||||
applicationId app_appid.personal // 组件化模式能独立运行才能有applicationId
|
||||
}
|
||||
|
||||
minSdk app_android.minSdkVersion
|
||||
minSdkVersion app_android.minSdkVersion
|
||||
targetSdk app_android.targetSdkVersion
|
||||
targetSdkVersion app_android.targetSdkVersion
|
||||
versionCode app_android.versionCode
|
||||
versionName app_android.versionName
|
||||
@@ -58,6 +62,15 @@ android {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
buildConfig true
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
||||
@@ -9,15 +9,18 @@
|
||||
android:roundIcon="@mipmap/atom_logo"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme">
|
||||
<activity android:name="com.fisherbone.fuzhu.personal.Personal_Main2Activity"></activity>
|
||||
<activity android:name="com.fisherbone.fuzhu.personal.Personal_MainActivity">
|
||||
<activity android:name="com.fisherbone.fuzhu.personal.Personal_Main2Activity"
|
||||
android:exported="false"></activity>
|
||||
<activity android:name="com.fisherbone.fuzhu.personal.Personal_MainActivity"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity android:name="com.fisherbone.fuzhu.personal.debug.Personal_DebugActivity" />
|
||||
<activity android:name="com.fisherbone.fuzhu.personal.debug.Personal_DebugActivity"
|
||||
android:exported="false" />
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
@@ -7,6 +7,8 @@ if (isRelease) { // 如果是发布版本时,各个模块都不能独立运行
|
||||
|
||||
// 完整的方式 性能
|
||||
android {
|
||||
namespace 'com.derry.wechat'
|
||||
compileSdk app_android.compileSdkVersion
|
||||
compileSdkVersion app_android.compileSdkVersion
|
||||
buildToolsVersion app_android.buildToolsVersion
|
||||
|
||||
@@ -16,7 +18,9 @@ android {
|
||||
applicationId app_appid.personal // 组件化模式能独立运行才能有applicationId
|
||||
}
|
||||
|
||||
minSdk app_android.minSdkVersion
|
||||
minSdkVersion app_android.minSdkVersion
|
||||
targetSdk app_android.targetSdkVersion
|
||||
targetSdkVersion app_android.targetSdkVersion
|
||||
versionCode app_android.versionCode
|
||||
versionName app_android.versionName
|
||||
@@ -59,6 +63,11 @@ android {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
buildConfig true
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
@@ -97,5 +106,5 @@ dependencies {
|
||||
implementation 'com.getbase:floatingactionbutton:1.9.0'
|
||||
//noinspection GradleCompatible
|
||||
implementation 'com.android.support:appcompat-v7:28.0.0'
|
||||
api 'com.blankj:utilcode:1.23.7'
|
||||
api 'com.blankj:utilcode:1.30.6'
|
||||
}
|
||||
|
||||
@@ -62,7 +62,6 @@
|
||||
tools:ignore="ProtectedPermissions" />
|
||||
|
||||
<application
|
||||
android:name="com.xiangxue.common.base.BaseApplication"
|
||||
android:allowBackup="true"
|
||||
android:icon="@mipmap/atom_logo"
|
||||
android:label="@string/app_name"
|
||||
@@ -71,19 +70,22 @@
|
||||
android:enabled="true"
|
||||
android:theme="@style/Theme.Design.NoActionBar">
|
||||
<activity android:name=".Activity.W_MainActivity"
|
||||
android:exported="true">
|
||||
android:exported="false">
|
||||
<!-- <intent-filter>-->
|
||||
<!-- <action android:name="android.intent.action.MAIN" />-->
|
||||
|
||||
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
|
||||
<!-- </intent-filter>-->
|
||||
</activity>
|
||||
<activity android:name=".Activity.WeChatPlate"/>
|
||||
<activity android:name=".Activity.WeChatChannelActivity"/>
|
||||
<activity android:name=".Activity.WeChatPlate"
|
||||
android:exported="false"/>
|
||||
<activity android:name=".Activity.WeChatChannelActivity"
|
||||
android:exported="false"/>
|
||||
<service
|
||||
android:name=".abllib.AblService"
|
||||
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
|
||||
android:enabled="true">
|
||||
android:enabled="true"
|
||||
android:exported="true">
|
||||
<intent-filter android:priority="1000">
|
||||
<action android:name="android.accessibilityservice.AccessibilityService" />
|
||||
</intent-filter>
|
||||
|
||||
@@ -54,17 +54,17 @@ public class Login_DebugActivity extends AppCompatActivity {
|
||||
AblUtil.getPermissions(Login_DebugActivity.this);
|
||||
|
||||
//adb shell pm grant com.derry.wechat.debug android.permission.WRITE_SECURE_SETTINGS
|
||||
Settings.Secure.putString(getContentResolver(),
|
||||
Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.derry.wechat.debug/com.derry.wechat.debug.abllib.AblService");
|
||||
Settings.Secure.putString(getContentResolver(),
|
||||
Settings.Secure.ACCESSIBILITY_ENABLED, "1");//1表示开启
|
||||
// Settings.Secure.putString(getContentResolver(),
|
||||
// Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.derry.wechat.debug/com.derry.wechat.debug.abllib.AblService");
|
||||
// Settings.Secure.putString(getContentResolver(),
|
||||
// Settings.Secure.ACCESSIBILITY_ENABLED, "1");//1表示开启
|
||||
if (AblUtil.isAccessibilityServiceOpen(Login_DebugActivity.this)) {
|
||||
// Log.e("TIAOSHI###", "无障碍服务正常");
|
||||
ToastUtils.showShort( "无障碍服务正常");
|
||||
}else {
|
||||
ToastUtils.showShort( "无障碍服务异常");
|
||||
Settings.Secure.putString(getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.derry.wechat.debug/com.derry.wechat.debug.abllib.AblService");
|
||||
Settings.Secure.putString(getContentResolver(), Settings.Secure.ACCESSIBILITY_ENABLED, "0");//1表示开启
|
||||
// Settings.Secure.putString(getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.derry.wechat.debug/com.derry.wechat.debug.abllib.AblService");
|
||||
// Settings.Secure.putString(getContentResolver(), Settings.Secure.ACCESSIBILITY_ENABLED, "0");//1表示开启
|
||||
}
|
||||
/**
|
||||
* 底部导航栏
|
||||
|
||||
Reference in New Issue
Block a user