mirror of
https://github.com/pppscn/SmsForwarder
synced 2024-11-04 06:00:11 +00:00
升级:gradle及依赖版本
This commit is contained in:
parent
a21e604571
commit
fc45b7fc5b
@ -162,15 +162,16 @@ android {
|
||||
}
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
jniLibs.srcDirs = ['libs']
|
||||
}
|
||||
}
|
||||
lint {
|
||||
abortOnError false
|
||||
}
|
||||
namespace 'com.idormy.sms.forwarder'
|
||||
|
||||
}
|
||||
|
||||
@ -183,11 +184,11 @@ dependencies {
|
||||
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
|
||||
androidTestImplementation deps.espresso.core
|
||||
|
||||
implementation 'androidx.core:core-ktx:1.8.0'
|
||||
implementation 'androidx.core:core-ktx:1.9.0'
|
||||
implementation "androidx.activity:activity-ktx:1.5.1"
|
||||
implementation "androidx.fragment:fragment-ktx:1.5.1"
|
||||
implementation "androidx.fragment:fragment-ktx:1.5.2"
|
||||
implementation "androidx.cardview:cardview:1.0.0"
|
||||
implementation 'androidx.appcompat:appcompat:1.4.2'
|
||||
implementation 'androidx.appcompat:appcompat:1.5.1'
|
||||
implementation 'androidx.preference:preference-ktx:1.2.0'
|
||||
|
||||
//分包
|
||||
|
7
app/proguard-rules.pro
vendored
7
app/proguard-rules.pro
vendored
@ -286,3 +286,10 @@
|
||||
-keep class javax.activation.** { *;}
|
||||
-keep class com.smailnet.emailkit.** { *;}
|
||||
-keep class com.idormy.sms.forwarder.utils.mail.** {*;}
|
||||
|
||||
-keep public class com.xuexiang.xrouter.routes.**{*;}
|
||||
-keep class * implements com.xuexiang.xrouter.facade.template.ISyringe{*;}
|
||||
# 如果使用了 byType 的方式获取 Service,需添加下面规则,保护接口
|
||||
-keep interface * implements com.xuexiang.xrouter.facade.template.IProvider
|
||||
# 如果使用了 单类注入,即不定义接口实现 IProvider,需添加下面规则,保护实现
|
||||
-keep class * implements com.xuexiang.xrouter.facade.template.IProvider
|
||||
|
@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="com.idormy.sms.forwarder"
|
||||
android:installLocation="internalOnly">
|
||||
|
||||
<uses-permission
|
||||
@ -56,7 +55,6 @@
|
||||
|
||||
<application
|
||||
android:name=".App"
|
||||
android:allowBackup="true"
|
||||
android:configChanges="screenSize|keyboardHidden|orientation|keyboard"
|
||||
android:fullBackupContent="@xml/backup_descriptor"
|
||||
android:hardwareAccelerated="true"
|
||||
@ -70,8 +68,7 @@
|
||||
android:theme="@style/AppTheme"
|
||||
android:usesCleartextTraffic="true"
|
||||
android:windowSoftInputMode="adjustPan|stateHidden"
|
||||
tools:ignore="DataExtractionRules,LockedOrientationActivity,UnusedAttribute"
|
||||
tools:replace="android:allowBackup">
|
||||
tools:ignore="DataExtractionRules,LockedOrientationActivity,UnusedAttribute">
|
||||
|
||||
<meta-data
|
||||
android:name="ScopedStorage"
|
||||
|
@ -146,7 +146,12 @@ class MainActivity : BaseActivity<ActivityMainBinding?>(),
|
||||
R.id.nav_frpc -> {
|
||||
if (!FileUtils.isFileExists(filesDir.absolutePath + "/libs/libgojni.so")) {
|
||||
MaterialDialog.Builder(this)
|
||||
.title(String.format(getString(R.string.frpclib_download_title), FRPC_LIB_VERSION))
|
||||
.title(
|
||||
String.format(
|
||||
getString(R.string.frpclib_download_title),
|
||||
FRPC_LIB_VERSION
|
||||
)
|
||||
)
|
||||
.content(R.string.download_frpc_tips)
|
||||
.positiveText(R.string.lab_yes)
|
||||
.negativeText(R.string.lab_no)
|
||||
@ -196,9 +201,15 @@ class MainActivity : BaseActivity<ActivityMainBinding?>(),
|
||||
binding!!.includeMain.toolbar.title = item.title
|
||||
binding!!.includeMain.toolbar.menu.clear()
|
||||
when {
|
||||
item.title.equals(getString(R.string.menu_rules)) -> binding!!.includeMain.toolbar.inflateMenu(R.menu.menu_rules)
|
||||
item.title.equals(getString(R.string.menu_senders)) -> binding!!.includeMain.toolbar.inflateMenu(R.menu.menu_senders)
|
||||
item.title.equals(getString(R.string.menu_settings)) -> binding!!.includeMain.toolbar.inflateMenu(R.menu.menu_settings)
|
||||
getString(R.string.menu_rules) == item.title -> binding!!.includeMain.toolbar.inflateMenu(
|
||||
R.menu.menu_rules
|
||||
)
|
||||
getString(R.string.menu_rules) == item.title -> binding!!.includeMain.toolbar.inflateMenu(
|
||||
R.menu.menu_senders
|
||||
)
|
||||
getString(R.string.menu_rules) == item.title -> binding!!.includeMain.toolbar.inflateMenu(
|
||||
R.menu.menu_settings
|
||||
)
|
||||
else -> binding!!.includeMain.toolbar.inflateMenu(R.menu.menu_logs)
|
||||
}
|
||||
item.isChecked = true
|
||||
@ -232,11 +243,12 @@ class MainActivity : BaseActivity<ActivityMainBinding?>(),
|
||||
* @return
|
||||
*/
|
||||
private fun handleNavigationItemSelected(menuItem: MenuItem): Boolean {
|
||||
val index = CollectionUtils.arrayIndexOf(mTitles, menuItem.title)
|
||||
if (index != -1) {
|
||||
binding!!.includeMain.toolbar.title = menuItem.title
|
||||
binding!!.includeMain.viewPager.setCurrentItem(index, false)
|
||||
return true
|
||||
for (index in mTitles.indices) {
|
||||
if (mTitles[index] == menuItem.title) {
|
||||
binding!!.includeMain.toolbar.title = menuItem.title
|
||||
binding!!.includeMain.viewPager.setCurrentItem(index, false)
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
@ -273,7 +285,8 @@ class MainActivity : BaseActivity<ActivityMainBinding?>(),
|
||||
}
|
||||
R.id.action_add_sender -> {
|
||||
val dialog = BottomSheetDialog(this)
|
||||
val view: View = LayoutInflater.from(this).inflate(R.layout.dialog_sender_bottom_sheet, null)
|
||||
val view: View =
|
||||
LayoutInflater.from(this).inflate(R.layout.dialog_sender_bottom_sheet, null)
|
||||
val recyclerView: RecyclerView = view.findViewById(R.id.recyclerView)
|
||||
|
||||
WidgetUtils.initGridRecyclerView(recyclerView, 4, DensityUtils.dp2px(1f))
|
||||
@ -312,12 +325,13 @@ class MainActivity : BaseActivity<ActivityMainBinding?>(),
|
||||
* @return
|
||||
*/
|
||||
override fun onNavigationItemSelected(menuItem: MenuItem): Boolean {
|
||||
val index = CollectionUtils.arrayIndexOf(mTitles, menuItem.title)
|
||||
if (index != -1) {
|
||||
binding!!.includeMain.toolbar.title = menuItem.title
|
||||
binding!!.includeMain.viewPager.setCurrentItem(index, false)
|
||||
updateSideNavStatus(menuItem)
|
||||
return true
|
||||
for (index in mTitles.indices) {
|
||||
if (mTitles[index] == menuItem.title) {
|
||||
binding!!.includeMain.toolbar.title = menuItem.title
|
||||
binding!!.includeMain.viewPager.setCurrentItem(index, false)
|
||||
updateSideNavStatus(menuItem)
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
@ -616,7 +616,7 @@
|
||||
<string name="toast_granted_part">Some permissions are successfully obtained, but some permissions are not granted normally, and some functions of the APP may be limited!</string>
|
||||
<string name="toast_denied_never">Permanently denied authorization, go to system settings to manually grant permissions?</string>
|
||||
<string name="toast_denied">Failed to obtain necessary permissions, APP function may be limited!</string>
|
||||
<string name="tips_first_time">\n    首次使用请按照1234步骤顺序设置,数字点亮表示该步骤已设置(4点亮表示有成功日志)!\n\n    根据以往用户反馈,90%的新用户最终排查结果都是手机权限设置问题,5%的用户是APP保活问题,其他问题排查参考Wiki中的常见问题(APP右上角使用帮助入口)\n\n    强烈建议: 手动排查一下系统设置: 自启动、电源策略、APP的权限,把所有权限打开(始终允许,不要“使用中允许”,MIUI系统就全部变绿),特别是一些国产定制系统加入隐私保护、验证码保护等(例如: MIUI 系统的 空白通行证)\n\n    请选择是否立即“前往系统设置”检查,或“稍后自行处理”?</string>
|
||||
<string name="tips_first_time" formatted="false">\n    首次使用请按照1234步骤顺序设置,数字点亮表示该步骤已设置(4点亮表示有成功日志)!\n\n    根据以往用户反馈,90%的新用户最终排查结果都是手机权限设置问题,5%的用户是APP保活问题,其他问题排查参考Wiki中的常见问题(APP右上角使用帮助入口)\n\n    强烈建议: 手动排查一下系统设置: 自启动、电源策略、APP的权限,把所有权限打开(始终允许,不要“使用中允许”,MIUI系统就全部变绿),特别是一些国产定制系统加入隐私保护、验证码保护等(例如: MIUI 系统的 空白通行证)\n\n    请选择是否立即“前往系统设置”检查,或“稍后自行处理”?</string>
|
||||
<string name="play_silence_music">Play Silent Music</string>
|
||||
<string name="play_silence_music_tips">Play silent music to keep running in the background, which may consume more power, enable it on demand</string>
|
||||
<string name="one_pixel">One Pixel</string>
|
||||
@ -684,7 +684,7 @@
|
||||
<string name="bark_level_active">Immediately display notifications</string>
|
||||
<string name="bark_level_timeSensitive">Time-sensitive notifications that can be displayed in a focused state</string>
|
||||
<string name="bark_level_passive">Only added to the notification list, no screen reminder</string>
|
||||
<string name="bark_url_regex" tools:ignore="TypographyDashes"><![CDATA[^(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]]]></string>
|
||||
<string name="bark_url_regex" tools:ignore="TypographyDashes" formatted="false"><![CDATA[^(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]]]></string>
|
||||
<string name="bark_url_error">Url format error</string>
|
||||
|
||||
<string name="from_email_hint">Fill in the username before @</string>
|
||||
@ -699,7 +699,7 @@
|
||||
<string name="webhook_server">Webhook Server</string>
|
||||
<string name="webhook_server_tips">For example: https://a.b.com/msg?token=xyz</string>
|
||||
<string name="webhook_params">Params</string>
|
||||
<string name="webhook_params_tips">For example: payload=%7B%22text%22%3A%22[msg]%22%7D [msg] will be replaced with SMS content.\nJson format is supported, for example: {\"text\":\"[msg]\"}.\nNote: msg is automatically UTF-8 encoded except in JSON format</string>
|
||||
<string name="webhook_params_tips" formatted="false">For example: payload=%7B%22text%22%3A%22[msg]%22%7D [msg] will be replaced with SMS content.\nJson format is supported, for example: {\"text\":\"[msg]\"}.\nNote: msg is automatically UTF-8 encoded except in JSON format</string>
|
||||
<string name="webhook_secret">Secret: If it is empty, the sign will not be calculated</string>
|
||||
<string name="headers">Headers</string>
|
||||
<string name="header_key">Key</string>
|
||||
@ -839,7 +839,7 @@
|
||||
<string name="remote_sms">Remote SMS:</string>
|
||||
<string name="clear">Clear</string>
|
||||
<string name="storage_permission_tips">Unauthorized storage permission, this function cannot be used!</string>
|
||||
<string name="contact_info">Name:%s\nPhone:%s</string>
|
||||
<string name="contact_info" formatted="false">Name:%s\nPhone:%s</string>
|
||||
<string name="card_slot_does_not_match">Card slot does not match the rule</string>
|
||||
<string name="unmatched_rule">Unmatched rule</string>
|
||||
<string name="copied_to_clipboard">Copied to clipboard:\n%s</string>
|
||||
@ -864,7 +864,7 @@
|
||||
<string name="sign_verify_failed">Sign verify failed</string>
|
||||
<string name="version_code_required">version_code required</string>
|
||||
<string name="inconsistent_version">The app versions of the client and server are inconsistent</string>
|
||||
<string name="timestamp_verify_failed">The timestamp verification failed, and the difference with the server time (%s) cannot exceed 1 hour (diffTime=%s)</string>
|
||||
<string name="timestamp_verify_failed" formatted="false">The timestamp verification failed, and the difference with the server time (%s) cannot exceed 1 hour (diffTime=%s)</string>
|
||||
|
||||
<string name="main_title">Main title</string>
|
||||
<string name="subtitle">Subtitle</string>
|
||||
|
@ -617,7 +617,7 @@
|
||||
<string name="toast_granted_part">获取部分权限成功,但部分权限未正常授予,APP部分功能可能受限!</string>
|
||||
<string name="toast_denied_never">被永久拒绝授权,前往系统设置手动授予权限?</string>
|
||||
<string name="toast_denied">获取必需的权限失败,APP功能可能受限!</string>
|
||||
<string name="tips_first_time">\n    首次使用请按照1234步骤顺序设置,数字点亮表示该步骤已设置(4点亮表示有成功日志)!\n\n    根据以往用户反馈,90%的新用户最终排查结果都是手机权限设置问题,5%的用户是APP保活问题,其他问题排查参考Wiki中的常见问题(APP右上角使用帮助入口)\n\n    强烈建议:手动排查一下系统设置:自启动、电源策略、APP的权限,把所有权限打开(始终允许,不要“使用中允许”,MIUI系统就全部变绿),特别是一些国产定制系统加入隐私保护、验证码保护等(例如:MIUI 系统的 空白通行证)\n\n    请选择是否立即“前往系统设置”检查,或“稍后自行处理”?</string>
|
||||
<string name="tips_first_time" formatted="false">\n    首次使用请按照1234步骤顺序设置,数字点亮表示该步骤已设置(4点亮表示有成功日志)!\n\n    根据以往用户反馈,90%的新用户最终排查结果都是手机权限设置问题,5%的用户是APP保活问题,其他问题排查参考Wiki中的常见问题(APP右上角使用帮助入口)\n\n    强烈建议:手动排查一下系统设置:自启动、电源策略、APP的权限,把所有权限打开(始终允许,不要“使用中允许”,MIUI系统就全部变绿),特别是一些国产定制系统加入隐私保护、验证码保护等(例如:MIUI 系统的 空白通行证)\n\n    请选择是否立即“前往系统设置”检查,或“稍后自行处理”?</string>
|
||||
<string name="play_silence_music">后台播放无声音乐</string>
|
||||
<string name="play_silence_music_tips">【按需启用】播放无声音乐让后台一直运行,可能比较耗电</string>
|
||||
<string name="one_pixel">1像素</string>
|
||||
@ -685,7 +685,7 @@
|
||||
<string name="bark_level_active">立即亮屏显示通知</string>
|
||||
<string name="bark_level_timeSensitive">时效性通知,可在专注状态下显示通知</string>
|
||||
<string name="bark_level_passive">仅添加到通知列表,不会亮屏提醒</string>
|
||||
<string name="bark_url_regex" tools:ignore="TypographyDashes"><![CDATA[^(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]]]></string>
|
||||
<string name="bark_url_regex" tools:ignore="TypographyDashes" formatted="false"><![CDATA[^(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]]]></string>
|
||||
<string name="bark_url_error">Url格式错误</string>
|
||||
|
||||
<string name="from_email_hint">填写 @ 前面的用户名</string>
|
||||
@ -700,7 +700,7 @@
|
||||
<string name="webhook_server">Webhook Server</string>
|
||||
<string name="webhook_server_tips">例如:https://a.b.com/msg?token=xyz</string>
|
||||
<string name="webhook_params">Params</string>
|
||||
<string name="webhook_params_tips">例如:payload=%7B%22text%22%3A%22[msg]%22%7D [msg]将被替换成短信内容。\n支持Json格式,例如:{\"text\":\"[msg]\"}。\n注意:除JSON格式外,msg会自动进行UTF-8编码</string>
|
||||
<string name="webhook_params_tips" formatted="false">例如:payload=%7B%22text%22%3A%22[msg]%22%7D [msg]将被替换成短信内容。\n支持Json格式,例如:{\"text\":\"[msg]\"}。\n注意:除JSON格式外,msg会自动进行UTF-8编码</string>
|
||||
<string name="webhook_secret">Secret:置空则不计算sign</string>
|
||||
<string name="headers">Headers</string>
|
||||
<string name="header_key">Key</string>
|
||||
@ -840,7 +840,7 @@
|
||||
<string name="remote_sms">远程发短信:</string>
|
||||
<string name="clear">清除</string>
|
||||
<string name="storage_permission_tips">未授权储存权限,该功能无法使用!</string>
|
||||
<string name="contact_info">姓名:%s\n号码:%s</string>
|
||||
<string name="contact_info" formatted="false">姓名:%s\n号码:%s</string>
|
||||
<string name="card_slot_does_not_match">卡槽未匹配中规则</string>
|
||||
<string name="unmatched_rule">未匹配中规则</string>
|
||||
<string name="copied_to_clipboard">已复制到剪贴板:\n%s</string>
|
||||
@ -865,7 +865,7 @@
|
||||
<string name="sign_verify_failed">签名校验失败</string>
|
||||
<string name="version_code_required">version_code节点必传</string>
|
||||
<string name="inconsistent_version">客户端与服务端的App版本不一致</string>
|
||||
<string name="timestamp_verify_failed">timestamp校验失败,与服务器时间(%s)误差不能超过1小时(diffTime=%s)</string>
|
||||
<string name="timestamp_verify_failed" formatted="false">timestamp校验失败,与服务器时间(%s)误差不能超过1小时(diffTime=%s)</string>
|
||||
|
||||
<string name="main_title">主标题</string>
|
||||
<string name="subtitle">副标题</string>
|
||||
|
@ -1,6 +1,6 @@
|
||||
apply plugin: 'com.xuexiang.xrouter'
|
||||
apply plugin: 'kotlin-kapt'
|
||||
apply plugin: 'android-aspectjx'
|
||||
//apply plugin: 'android-aspectjx'
|
||||
apply plugin: 'com.xuexiang.xaop'
|
||||
|
||||
//自动添加依赖
|
||||
@ -53,6 +53,6 @@ configurations.all {
|
||||
}
|
||||
|
||||
// 这里需要修改包名
|
||||
aspectjx {
|
||||
include 'com.idormy.sms.forwarder'
|
||||
}
|
||||
//aspectjx {
|
||||
// include 'com.idormy.sms.forwarder'
|
||||
//}
|
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
|
||||
|
@ -5,13 +5,13 @@ def build_versions = [:]
|
||||
build_versions.version_code = 47
|
||||
build_versions.version_name = "3.0.9"
|
||||
build_versions.min_sdk = 19
|
||||
build_versions.target_sdk = 32
|
||||
build_versions.build_tools = "32.0.0"
|
||||
build_versions.target_sdk = 33
|
||||
build_versions.build_tools = "33.0.0"
|
||||
ext.build_versions = build_versions
|
||||
|
||||
ext.deps = [:]
|
||||
def versions = [:]
|
||||
versions.android_gradle_plugin = '7.1.3'
|
||||
versions.android_gradle_plugin = '7.3.0'
|
||||
versions.android_maven_gradle_plugin = "2.1"
|
||||
versions.gradle_bintray_plugin = "1.8.0"
|
||||
versions.booster = "3.1.0"
|
||||
@ -215,7 +215,7 @@ project.buildscript.configurations.each { configuration ->
|
||||
//XRouter插件
|
||||
configuration.dependencies.add(dependencies.create(deps.xlibrary.xrouter_plugin))
|
||||
//AspectJX
|
||||
configuration.dependencies.add(dependencies.create('com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.10'))
|
||||
//configuration.dependencies.add(dependencies.create('com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.10'))
|
||||
//kotlin插件
|
||||
configuration.dependencies.add(dependencies.create("org.jetbrains.kotlin:kotlin-gradle-plugin:$versions.kotlin"))
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user