mirror of
https://github.com/pppscn/SmsForwarder
synced 2024-11-17 21:25:31 +00:00
parent
d3fc481d0c
commit
2b4468b669
@ -173,6 +173,12 @@ android {
|
||||
}
|
||||
}
|
||||
|
||||
bundle {
|
||||
language {
|
||||
enableSplit = false
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
jniLibs.srcDirs = ['libs']
|
||||
@ -278,6 +284,8 @@ dependencies {
|
||||
|
||||
//权限请求框架:https://github.com/getActivity/XXPermissions
|
||||
implementation 'com.github.getActivity:XXPermissions:18.5'
|
||||
//语种切换框架:https://github.com/getActivity/MultiLanguages
|
||||
implementation 'com.github.getActivity:MultiLanguages:9.3'
|
||||
|
||||
def mail_version = '1.6.7'
|
||||
implementation "com.sun.mail:android-mail:$mail_version"
|
||||
@ -307,9 +315,9 @@ dependencies {
|
||||
//Java Parser For Cron Expressions: https://github.com/grahamar/cron-parser
|
||||
implementation 'net.redhogs.cronparser:cron-parser-core:3.5'
|
||||
|
||||
// 侧边栏菜单:https://github.com/yarolegovich/SlidingRootNav
|
||||
//侧边栏菜单:https://github.com/yarolegovich/SlidingRootNav
|
||||
implementation 'com.yarolegovich:sliding-root-nav:1.1.1'
|
||||
// TabBar:https://github.com/xuexiangjys/JPTabBar
|
||||
//TabBar:https://github.com/xuexiangjys/JPTabBar
|
||||
// implementation 'com.github.xuexiangjys:JPTabBar:1.0.1'
|
||||
}
|
||||
//自动添加X-Library依赖
|
||||
|
3
app/proguard-rules.pro
vendored
3
app/proguard-rules.pro
vendored
@ -302,3 +302,6 @@
|
||||
# This is generated automatically by the Android Gradle plugin.
|
||||
-dontwarn org.joda.convert.**
|
||||
-dontwarn org.slf4j.impl.**
|
||||
|
||||
# MultiLanguages
|
||||
-keep class com.hjq.language.** {*;}
|
||||
|
@ -17,6 +17,8 @@ import androidx.work.Configuration
|
||||
import com.gyf.cactus.Cactus
|
||||
import com.gyf.cactus.callback.CactusCallback
|
||||
import com.gyf.cactus.ext.cactus
|
||||
import com.hjq.language.MultiLanguages
|
||||
import com.hjq.language.OnLanguageListener
|
||||
import com.idormy.sms.forwarder.activity.MainActivity
|
||||
import com.idormy.sms.forwarder.core.Core
|
||||
import com.idormy.sms.forwarder.database.AppDatabase
|
||||
@ -90,7 +92,9 @@ class App : Application(), CactusCallback, Configuration.Provider by Core {
|
||||
}
|
||||
|
||||
override fun attachBaseContext(base: Context) {
|
||||
super.attachBaseContext(base)
|
||||
//super.attachBaseContext(base)
|
||||
// 绑定语种
|
||||
super.attachBaseContext(MultiLanguages.attach(base))
|
||||
//解决4.x运行崩溃的问题
|
||||
MultiDex.install(this)
|
||||
}
|
||||
@ -230,6 +234,18 @@ class App : Application(), CactusCallback, Configuration.Provider by Core {
|
||||
XUpdateInit.init(this)
|
||||
// 运营统计数据
|
||||
UMengInit.init(this)
|
||||
// 初始化语种切换框架
|
||||
MultiLanguages.init(this)
|
||||
// 设置语种变化监听器
|
||||
MultiLanguages.setOnLanguageListener(object : OnLanguageListener {
|
||||
override fun onAppLocaleChange(oldLocale: Locale, newLocale: Locale) {
|
||||
Log.i(TAG, "监听到应用切换了语种,旧语种:$oldLocale,新语种:$newLocale")
|
||||
}
|
||||
|
||||
override fun onSystemLocaleChange(oldLocale: Locale, newLocale: Locale) {
|
||||
Log.i(TAG, "监听到系统切换了语种,旧语种:" + oldLocale + ",新语种:" + newLocale + ",是否跟随系统:" + MultiLanguages.isSystemLanguage(this@App))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
|
@ -67,10 +67,6 @@ import java.io.File
|
||||
class MainActivity : BaseActivity<ActivityMainBinding?>(), DrawerAdapter.OnItemSelectedListener {
|
||||
|
||||
private val TAG: String = MainActivity::class.java.simpleName
|
||||
//private lateinit var mTitles: Array<String>
|
||||
//private var logsType: String = "sms"
|
||||
//private var ruleType: String = "sms"
|
||||
|
||||
private val POS_LOG = 0
|
||||
private val POS_RULE = 1
|
||||
private val POS_SENDER = 2
|
||||
|
@ -5,6 +5,7 @@ import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import androidx.viewbinding.ViewBinding
|
||||
import com.hjq.language.MultiLanguages
|
||||
import com.idormy.sms.forwarder.utils.EVENT_TOAST_ERROR
|
||||
import com.idormy.sms.forwarder.utils.EVENT_TOAST_INFO
|
||||
import com.idormy.sms.forwarder.utils.EVENT_TOAST_SUCCESS
|
||||
@ -18,7 +19,6 @@ import com.xuexiang.xrouter.facade.service.SerializationService
|
||||
import com.xuexiang.xrouter.launcher.XRouter
|
||||
import com.xuexiang.xui.utils.ResUtils
|
||||
import com.xuexiang.xui.widget.slideback.SlideBack
|
||||
import io.github.inflationx.viewpump.ViewPumpContextWrapper
|
||||
|
||||
/**
|
||||
* 基础容器Activity
|
||||
@ -41,7 +41,10 @@ open class BaseActivity<Binding : ViewBinding?> : XPageActivity() {
|
||||
|
||||
override fun attachBaseContext(newBase: Context) {
|
||||
//注入字体
|
||||
super.attachBaseContext(ViewPumpContextWrapper.wrap(newBase))
|
||||
//super.attachBaseContext(ViewPumpContextWrapper.wrap(newBase))
|
||||
// 绑定语种
|
||||
//super.attachBaseContext(ViewPumpContextWrapper.wrap(MultiLanguages.attach(newBase)))
|
||||
super.attachBaseContext(MultiLanguages.attach(newBase))
|
||||
}
|
||||
|
||||
override fun getCustomRootView(): View? {
|
||||
|
@ -21,11 +21,9 @@ import com.idormy.sms.forwarder.database.entity.Rule
|
||||
import com.idormy.sms.forwarder.database.viewmodel.BaseViewModelFactory
|
||||
import com.idormy.sms.forwarder.database.viewmodel.MsgViewModel
|
||||
import com.idormy.sms.forwarder.databinding.FragmentLogsBinding
|
||||
import com.idormy.sms.forwarder.utils.EVENT_UPDATE_LOGS_TYPE
|
||||
import com.idormy.sms.forwarder.utils.FORWARD_STATUS_MAP
|
||||
import com.idormy.sms.forwarder.utils.SendUtils
|
||||
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||
import com.jeremyliao.liveeventbus.LiveEventBus
|
||||
import com.scwang.smartrefresh.layout.api.RefreshLayout
|
||||
import com.xuexiang.xaop.annotation.SingleClick
|
||||
import com.xuexiang.xpage.annotation.Page
|
||||
@ -125,7 +123,6 @@ class LogsFragment : BaseFragment<FragmentLogsBinding?>(), MsgPagingAdapter.OnIt
|
||||
else -> "sms"
|
||||
}
|
||||
viewModel.setType(currentType)
|
||||
LiveEventBus.get(EVENT_UPDATE_LOGS_TYPE, String::class.java).post(currentType)
|
||||
adapter.refresh()
|
||||
binding!!.recyclerView.scrollToPosition(0)
|
||||
}
|
||||
|
@ -15,12 +15,10 @@ import com.idormy.sms.forwarder.database.entity.Rule
|
||||
import com.idormy.sms.forwarder.database.viewmodel.BaseViewModelFactory
|
||||
import com.idormy.sms.forwarder.database.viewmodel.RuleViewModel
|
||||
import com.idormy.sms.forwarder.databinding.FragmentRulesBinding
|
||||
import com.idormy.sms.forwarder.utils.EVENT_UPDATE_RULE_TYPE
|
||||
import com.idormy.sms.forwarder.utils.KEY_RULE_CLONE
|
||||
import com.idormy.sms.forwarder.utils.KEY_RULE_ID
|
||||
import com.idormy.sms.forwarder.utils.KEY_RULE_TYPE
|
||||
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||
import com.jeremyliao.liveeventbus.LiveEventBus
|
||||
import com.scwang.smartrefresh.layout.api.RefreshLayout
|
||||
import com.xuexiang.xaop.annotation.SingleClick
|
||||
import com.xuexiang.xpage.annotation.Page
|
||||
@ -90,7 +88,6 @@ class RulesFragment : BaseFragment<FragmentRulesBinding?>(), RulePagingAdapter.O
|
||||
else -> "sms"
|
||||
}
|
||||
viewModel.setType(currentType)
|
||||
LiveEventBus.get(EVENT_UPDATE_RULE_TYPE, String::class.java).post(currentType)
|
||||
adapter.refresh()
|
||||
binding!!.recyclerView.scrollToPosition(0)
|
||||
}
|
||||
|
@ -23,6 +23,8 @@ import androidx.core.content.ContextCompat
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.work.OneTimeWorkRequestBuilder
|
||||
import androidx.work.WorkManager
|
||||
import com.hjq.language.LocaleContract
|
||||
import com.hjq.language.MultiLanguages
|
||||
import com.hjq.permissions.OnPermissionCallback
|
||||
import com.hjq.permissions.Permission
|
||||
import com.hjq.permissions.XXPermissions
|
||||
@ -167,6 +169,9 @@ class SettingsFragment : BaseFragment<FragmentSettingsBinding?>(), View.OnClickL
|
||||
//纯自动任务模式
|
||||
switchDirectlyToTask(binding!!.sbDirectlyToTask)
|
||||
|
||||
//多语言设置
|
||||
switchLanguage(binding!!.rgMainLanguages)
|
||||
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
@ -982,6 +987,58 @@ class SettingsFragment : BaseFragment<FragmentSettingsBinding?>(), View.OnClickL
|
||||
}
|
||||
}
|
||||
|
||||
//多语言设置
|
||||
private fun switchLanguage(rgMainLanguages: RadioGroup) {
|
||||
rgMainLanguages.check(
|
||||
if (MultiLanguages.isSystemLanguage(requireContext())) {
|
||||
R.id.rb_main_language_auto
|
||||
} else {
|
||||
when (MultiLanguages.getAppLanguage(requireContext())) {
|
||||
LocaleContract.getSimplifiedChineseLocale() -> R.id.rb_main_language_cn
|
||||
LocaleContract.getTraditionalChineseLocale() -> R.id.rb_main_language_tw
|
||||
LocaleContract.getEnglishLocale() -> R.id.rb_main_language_en
|
||||
else -> R.id.rb_main_language_auto
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
rgMainLanguages.setOnCheckedChangeListener { _, checkedId ->
|
||||
// 是否需要重启
|
||||
val restart = when (checkedId) {
|
||||
R.id.rb_main_language_auto -> {
|
||||
// 跟随系统
|
||||
MultiLanguages.clearAppLanguage(requireContext())
|
||||
}
|
||||
|
||||
R.id.rb_main_language_cn -> {
|
||||
// 简体中文
|
||||
MultiLanguages.setAppLanguage(requireContext(), LocaleContract.getSimplifiedChineseLocale())
|
||||
}
|
||||
|
||||
R.id.rb_main_language_tw -> {
|
||||
// 繁体中文
|
||||
MultiLanguages.setAppLanguage(requireContext(), LocaleContract.getTraditionalChineseLocale())
|
||||
}
|
||||
|
||||
R.id.rb_main_language_en -> {
|
||||
// 英语
|
||||
MultiLanguages.setAppLanguage(requireContext(), LocaleContract.getEnglishLocale())
|
||||
}
|
||||
|
||||
else -> false
|
||||
}
|
||||
|
||||
// 重启应用
|
||||
if (restart) {
|
||||
XToastUtils.toast(R.string.multi_languages_toast)
|
||||
val intent = requireActivity().baseContext.packageManager.getLaunchIntentForPackage(requireActivity().baseContext.packageName)
|
||||
intent!!.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
|
||||
startActivity(intent)
|
||||
requireActivity().finish()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//获取当前手机品牌
|
||||
private fun getAutoStartTips(): String {
|
||||
return when (Build.BRAND.lowercase(Locale.ROOT)) {
|
||||
|
@ -15,11 +15,9 @@ import com.idormy.sms.forwarder.database.entity.Task
|
||||
import com.idormy.sms.forwarder.database.viewmodel.BaseViewModelFactory
|
||||
import com.idormy.sms.forwarder.database.viewmodel.TaskViewModel
|
||||
import com.idormy.sms.forwarder.databinding.FragmentTasksBinding
|
||||
import com.idormy.sms.forwarder.utils.EVENT_UPDATE_TASK_TYPE
|
||||
import com.idormy.sms.forwarder.utils.KEY_TASK_CLONE
|
||||
import com.idormy.sms.forwarder.utils.KEY_TASK_ID
|
||||
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||
import com.jeremyliao.liveeventbus.LiveEventBus
|
||||
import com.scwang.smartrefresh.layout.api.RefreshLayout
|
||||
import com.xuexiang.xaop.annotation.SingleClick
|
||||
import com.xuexiang.xpage.annotation.Page
|
||||
@ -80,7 +78,6 @@ class TasksFragment : BaseFragment<FragmentTasksBinding?>(), TaskPagingAdapter.O
|
||||
else -> "mine"
|
||||
}
|
||||
viewModel.setType(currentType)
|
||||
LiveEventBus.get(EVENT_UPDATE_TASK_TYPE, String::class.java).post(currentType)
|
||||
adapter.refresh()
|
||||
binding!!.recyclerView.scrollToPosition(0)
|
||||
}
|
||||
|
@ -358,11 +358,6 @@ const val EVENT_TOAST_ERROR = "key_toast_error"
|
||||
const val EVENT_TOAST_INFO = "key_toast_info"
|
||||
const val EVENT_TOAST_WARNING = "key_toast_warning"
|
||||
|
||||
//主页监听时间
|
||||
const val EVENT_UPDATE_LOGS_TYPE = "key_logs_type"
|
||||
const val EVENT_UPDATE_RULE_TYPE = "key_rules_type"
|
||||
const val EVENT_UPDATE_TASK_TYPE = "key_tasks_type"
|
||||
|
||||
const val KEY_SENDER_ID = "key_sender_id"
|
||||
const val KEY_SENDER_TYPE = "key_sender_type"
|
||||
const val KEY_SENDER_CLONE = "key_sender_clone"
|
||||
|
@ -1306,6 +1306,7 @@
|
||||
style="@style/settingBarStyle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingEnd="15dp"
|
||||
tools:ignore="RtlSymmetry">
|
||||
|
||||
@ -1377,6 +1378,7 @@
|
||||
style="@style/settingBarStyle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingEnd="15dp"
|
||||
tools:ignore="RtlSymmetry">
|
||||
|
||||
@ -1650,6 +1652,68 @@
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
style="@style/settingBarStyle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:baselineAligned="false"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="vertical"
|
||||
android:paddingEnd="15dp"
|
||||
tools:ignore="RtlSymmetry">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/multi_languages"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/multi_languages_tips"
|
||||
android:textSize="@dimen/text_size_mini"
|
||||
tools:ignore="SmallSp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<RadioGroup
|
||||
android:id="@+id/rg_main_languages"
|
||||
style="@style/rg_style"
|
||||
android:gravity="center_horizontal"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rb_main_language_auto"
|
||||
style="@style/rg_rb_style"
|
||||
android:checked="true"
|
||||
android:text="@string/follow_system" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rb_main_language_cn"
|
||||
style="@style/rg_rb_style"
|
||||
android:text="@string/simplified_chinese" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rb_main_language_tw"
|
||||
style="@style/rg_rb_style"
|
||||
android:text="@string/traditional_chinese" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rb_main_language_en"
|
||||
style="@style/rg_rb_style"
|
||||
android:text="@string/english" />
|
||||
|
||||
</RadioGroup>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
@ -57,7 +57,7 @@
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:gravity="bottom"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
@ -71,8 +71,9 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="15dp"
|
||||
android:text="@string/task_conditions_tips"
|
||||
android:textSize="@dimen/text_size_small"
|
||||
android:textSize="@dimen/text_size_mini"
|
||||
tools:ignore="SmallSp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
@ -142,7 +143,7 @@
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:gravity="bottom"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
@ -156,8 +157,9 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:text="@string/task_actions_tips"
|
||||
android:textSize="@dimen/text_size_small"
|
||||
android:textSize="@dimen/text_size_mini"
|
||||
tools:ignore="SmallSp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
|
@ -1,21 +1,21 @@
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<string name="type_param_sms">短信</string>
|
||||
<string name="type_param_call">通话</string>
|
||||
<string name="type_param_app">应用</string>
|
||||
<string name="status_param_option_enabled">已启用</string>
|
||||
<string name="status_param_option_disabled">已禁用</string>
|
||||
<string name="sms_type_option_receive">接收</string>
|
||||
<string name="sms_type_option_send">发送</string>
|
||||
<string name="call_type_option_missed">未接来电</string>
|
||||
<string name="call_type_option_call_out">本机去电</string>
|
||||
<string name="call_type_option_received">已接来电</string>
|
||||
<string name="clone_type_option_network">网络模式</string>
|
||||
<string name="clone_type_option_offline">离线模式</string>
|
||||
<string name="app_type_option_user">用户应用</string>
|
||||
<string name="app_type_option_system">系统应用</string>
|
||||
<string name="task_type_option_mine">我的任务</string>
|
||||
<string name="task_type_option_fixed">任务中心</string>
|
||||
<string name="type_param_sms">Sms</string>
|
||||
<string name="type_param_call">Call</string>
|
||||
<string name="type_param_app">App</string>
|
||||
<string name="status_param_option_enabled">Enabled</string>
|
||||
<string name="status_param_option_disabled">Disabled</string>
|
||||
<string name="sms_type_option_receive">Receive</string>
|
||||
<string name="sms_type_option_send">Send</string>
|
||||
<string name="call_type_option_missed">Missed</string>
|
||||
<string name="call_type_option_call_out">Call Out</string>
|
||||
<string name="call_type_option_received">Received</string>
|
||||
<string name="clone_type_option_network">Network</string>
|
||||
<string name="clone_type_option_offline">Offline</string>
|
||||
<string name="app_type_option_user">User App</string>
|
||||
<string name="app_type_option_system">System App</string>
|
||||
<string name="task_type_option_mine">Mine</string>
|
||||
<string name="task_type_option_fixed">Fixed</string>
|
||||
|
||||
<string name="app_browser_name">Universal Browser</string>
|
||||
<string name="description_navigation_main">navigation</string>
|
||||
@ -552,19 +552,19 @@
|
||||
<string name="step_4">Logs</string>
|
||||
<string name="todo">TODO</string>
|
||||
<string name="forwarding_function">Forwarding Function</string>
|
||||
<string name="forwarding_function_tips">Main switch: Enable the forwarding function as required</string>
|
||||
<string name="forwarding_function_tips">Main switch: Enable the function as required</string>
|
||||
<string name="extra_function">Extra Function</string>
|
||||
<string name="extra_function_tips">Enable the extra function as required</string>
|
||||
<string name="call_date">Call date: </string>
|
||||
<string name="call_duration">Call duration: </string>
|
||||
<string name="ring_duration">Ring duration: </string>
|
||||
<string name="type">Type: </string>
|
||||
<string name="mandatory_type">Call type: </string>
|
||||
<string name="incoming_call_received">Incoming Received</string>
|
||||
<string name="incoming_call_answered">Incoming Answered</string>
|
||||
<string name="incoming_call_ended">Incoming Ended</string>
|
||||
<string name="outgoing_call_started">Outgoing Started</string>
|
||||
<string name="outgoing_call_ended">Outgoing Ended</string>
|
||||
<string name="mandatory_type">Call Type: </string>
|
||||
<string name="incoming_call_received">In Received</string>
|
||||
<string name="incoming_call_answered">In Answered</string>
|
||||
<string name="incoming_call_ended">In Ended</string>
|
||||
<string name="outgoing_call_started">Out Started</string>
|
||||
<string name="outgoing_call_ended">Out Ended</string>
|
||||
<string name="missed_call">Missed</string>
|
||||
<string name="unknown_call">Unknown</string>
|
||||
<string name="optional_action">Optional: </string>
|
||||
@ -693,7 +693,6 @@
|
||||
<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" 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>
|
||||
@ -1011,22 +1010,22 @@
|
||||
<string name="service_address_hint">E.g: http://127.0.0.1:5000</string>
|
||||
<string name="features_list">Features List</string>
|
||||
<string name="pure_client_mode">Directly To Client</string>
|
||||
<string name="pure_client_mode_tips">When starting the APP, it will directly enter the active control client</string>
|
||||
<string name="pure_client_mode_tips">When starting, it will directly enter the control client</string>
|
||||
<string name="exit_pure_client_mode">Exit pure client mode</string>
|
||||
<string name="enabling_pure_client_mode">Do you want to quit the app immediately and start it manually to take effect in pure client mode?</string>
|
||||
<string name="pure_task_mode">Directly To Task</string>
|
||||
<string name="pure_task_mode_tips">When starting the APP, it will directly enter the task center</string>
|
||||
<string name="pure_task_mode_tips">When starting, it will directly enter the task center</string>
|
||||
<string name="exit_pure_task_mode">Exit pure task mode</string>
|
||||
<string name="enabling_pure_task_mode">Do you want to quit the app immediately and start it manually to take effect in pure task mode?</string>
|
||||
<string name="optional_components">Optional:</string>
|
||||
<string name="enable_cactus">Enable Cactus Keep Alive</string>
|
||||
<string name="enabe_cactus_tips">Dual process foreground service/JobScheduler/WorkManager/1px/silent music</string>
|
||||
<string name="enabe_cactus_tips">Dual foreground service/JobScheduler/WorkManager/1px/silent music</string>
|
||||
<string name="load_app_list">Get installed app info async at startup</string>
|
||||
<string name="load_app_list_tips">Used to speed up entering the application list/editing forwarding rules drop-down selection/replacement {{APP_NAME}}</string>
|
||||
<string name="load_app_list_toast">A type must be selected when enabling asynchronous loading of the list of installed apps</string>
|
||||
<string name="no_server_history">There is no history record, it will be added automatically after the interface test is passed</string>
|
||||
<string name="select_time_period">Select Time Period</string>
|
||||
<string name="silent_time_period">Disable forwarding period</string>
|
||||
<string name="silent_time_period">Disable FW. Period</string>
|
||||
<string name="silent_time_period_tips">If the end time is less than the start time, it will span days; if it is equal, it will be disabled</string>
|
||||
<string name="download_frpc_tips">Do you want to download and restart to load!</string>
|
||||
<string name="download_frpc_tips2">Download successful, do you want to restart the loading now?</string>
|
||||
@ -1114,8 +1113,8 @@
|
||||
<string name="accuracy">Accuracy</string>
|
||||
<string name="accuracy_fine">Fine</string>
|
||||
<string name="accuracy_coarse">Coarse</string>
|
||||
<string name="no_requirement">No Requirement</string>
|
||||
<string name="power_requirement">Power Requirement</string>
|
||||
<string name="no_requirement">No Req.</string>
|
||||
<string name="power_requirement">Power Needs</string>
|
||||
<string name="power_requirement_low">Low</string>
|
||||
<string name="power_requirement_medium">Medium</string>
|
||||
<string name="power_requirement_high">High</string>
|
||||
@ -1127,9 +1126,9 @@
|
||||
<string name="task_name_status">Name/Status</string>
|
||||
<string name="task_name">Task Name</string>
|
||||
<string name="task_description">Description</string>
|
||||
<string name="task_conditions">If</string>
|
||||
<string name="task_conditions_tips">Influenced by the first condition, the others serve as determinants.</string>
|
||||
<string name="task_actions">then execute.</string>
|
||||
<string name="task_conditions">IF</string>
|
||||
<string name="task_conditions_tips">Influenced by the first condition, the other condition as determinants.</string>
|
||||
<string name="task_actions">THEN</string>
|
||||
<string name="task_actions_tips">Allow multiple execution actions, with each execution result being independent of the others.</string>
|
||||
<string name="task_last_exec_time">Last Exec Time</string>
|
||||
<string name="task_next_exec_time">Next Exec Time</string>
|
||||
@ -1139,12 +1138,12 @@
|
||||
<string name="delete_task_title">Delete confirmation</string>
|
||||
<string name="delete_task_tips">Are you sure to delete this task?</string>
|
||||
<string name="delete_task_toast">The task has deleted.</string>
|
||||
<string name="add_condition">添加条件</string>
|
||||
<string name="add_condition_tips">例如:如果电量低于20%时</string>
|
||||
<string name="add_condition_continue">继续添加条件</string>
|
||||
<string name="add_action">添加动作</string>
|
||||
<string name="add_action_tips">例如:禁用所有转发通道</string>
|
||||
<string name="add_action_continue">继续添加动作</string>
|
||||
<string name="add_condition">Add Condition</string>
|
||||
<string name="add_condition_tips">Example: Below 20% battery</string>
|
||||
<string name="add_condition_continue">Continue to add condition</string>
|
||||
<string name="add_action">Add Action</string>
|
||||
<string name="add_action_tips">Example: Disable all forwarding</string>
|
||||
<string name="add_action_continue">Continue to add Action</string>
|
||||
|
||||
<string name="select_task_trigger">Please select trigger condition</string>
|
||||
<string name="select_task_condition">Please select additional condition</string>
|
||||
@ -1278,4 +1277,16 @@
|
||||
|
||||
<string name="specified_uid">Specified Uid</string>
|
||||
<string name="specified_uid_hint">Enter FRPC config UIDs, separate with commas.</string>
|
||||
|
||||
<string name="current_language">English</string>
|
||||
<string name="current_activity_language">Current Activity language: </string>
|
||||
<string name="current_application_language">Current Application language: </string>
|
||||
<string name="current_system_language">Current System language: </string>
|
||||
<string name="multi_languages">Multilingual</string>
|
||||
<string name="multi_languages_tips">Default language shown on SmsF\'s interface at startup.</string>
|
||||
<string name="multi_languages_toast">Need to restart the app to switch to your selected language.</string>
|
||||
<string name="follow_system">Follow Sys.</string>
|
||||
<string name="simplified_chinese">简体中文</string>
|
||||
<string name="traditional_chinese">繁體中文</string>
|
||||
<string name="english">English</string>
|
||||
</resources>
|
||||
|
1293
app/src/main/res/values-zh-rCN/strings.xml
Normal file
1293
app/src/main/res/values-zh-rCN/strings.xml
Normal file
File diff suppressed because it is too large
Load Diff
85
app/src/main/res/values-zh-rTW-v21/styles.xml
Normal file
85
app/src/main/res/values-zh-rTW-v21/styles.xml
Normal file
@ -0,0 +1,85 @@
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<!-- 拓展主题 theme. -->
|
||||
<style name="XUITheme" parent="XUIBaseTheme" tools:ignore="PrivateResource">
|
||||
<!--设置默认窗口的动画样式-->
|
||||
<item name="android:windowAnimationStyle">@style/WindowAnimStyle</item>
|
||||
</style>
|
||||
|
||||
<!-- Base application theme. -->
|
||||
<style name="AppTheme" parent="XUITheme.Phone">
|
||||
<!-- Customize your theme here. -->
|
||||
<item name="colorPrimary">@color/colorPrimary</item>
|
||||
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
|
||||
<item name="colorAccent">@color/colorAccent</item>
|
||||
<item name="xui_actionbar_height">?actionBarSize</item>
|
||||
<!-- 解决 Android 5.1 及以上版本 Button 英文字符串自动变大写的问题 -->
|
||||
<item name="android:textAllCaps">false</item>
|
||||
</style>
|
||||
|
||||
<style name="AppTheme.Launch">
|
||||
<item name="xui_config_color_splash_bg">@color/xui_config_color_white</item>
|
||||
<item name="xui_config_app_logo_bottom" tools:ignore="PrivateResource">
|
||||
@dimen/xui_config_app_logo_bottom
|
||||
</item>
|
||||
<item name="xui_config_company_logo_bottom" tools:ignore="PrivateResource">
|
||||
@dimen/xui_config_company_logo_bottom
|
||||
</item>
|
||||
<item name="android:windowBackground">@drawable/xui_config_bg_splash</item>
|
||||
<item name="android:windowFullscreen">true</item>
|
||||
</style>
|
||||
|
||||
<!--窗体背景,这个背景能在第一时间显示, 避免启动时白屏,黑屏问题-->
|
||||
<style name="AppTheme.Launch.App">
|
||||
<!--注意修改图标-->
|
||||
<item name="xui_config_splash_app_logo">@drawable/ic_splash_app_logo</item>
|
||||
<item name="xui_config_splash_company_logo">@drawable/ic_splash_company_logo</item>
|
||||
</style>
|
||||
|
||||
<!--DialogTheme,用于将Activity作为Dialog的主题-->
|
||||
<style name="DialogTheme" parent="XUITheme.Phone">
|
||||
<!--设置dialog的背景,此处为系统给定的透明值-->
|
||||
<item name="android:windowBackground">@android:color/transparent</item>
|
||||
<!--Dialog的windowFrame框为无-->
|
||||
<item name="android:windowFrame">@null</item>
|
||||
<!--无标题-->
|
||||
<item name="android:windowNoTitle">true</item>
|
||||
<!--是否浮现在activity之上-->
|
||||
<item name="android:windowIsFloating" tools:ignore="TranslucentOrientation">true</item>
|
||||
<!--是否半透明-->
|
||||
<item name="android:windowIsTranslucent">true</item>
|
||||
<!--是否有覆盖-->
|
||||
<item name="android:windowContentOverlay">@null</item>
|
||||
<!--设置Activity出现方式-->
|
||||
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
|
||||
<!--背景是否模糊显示-->
|
||||
<item name="android:backgroundDimEnabled">true</item>
|
||||
</style>
|
||||
|
||||
<style name="SuperButton.Gray.Icon.Spacing">
|
||||
<item name="android:paddingStart">15dp</item>
|
||||
<item name="android:textColor">@color/white</item>
|
||||
<item name="android:textSize">@dimen/text_size_medium</item>
|
||||
<item name="android:drawablePadding">0dp</item>
|
||||
<item name="android:letterSpacing">0.8</item>
|
||||
</style>
|
||||
|
||||
<style name="SuperButton.Blue.Icon.Spacing">
|
||||
<item name="android:layout_marginStart">10dp</item>
|
||||
<item name="android:paddingStart">15dp</item>
|
||||
<item name="android:textColor">@color/white</item>
|
||||
<item name="android:textSize">@dimen/text_size_medium</item>
|
||||
<item name="android:drawablePadding">0dp</item>
|
||||
<item name="android:letterSpacing">0.8</item>
|
||||
</style>
|
||||
|
||||
<style name="SuperButton.Green.Icon.Spacing">
|
||||
<item name="android:layout_marginStart">10dp</item>
|
||||
<item name="android:paddingStart">15dp</item>
|
||||
<item name="android:textColor">@color/white</item>
|
||||
<item name="android:textSize">@dimen/text_size_medium</item>
|
||||
<item name="android:drawablePadding">0dp</item>
|
||||
<item name="android:letterSpacing">0.8</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
1293
app/src/main/res/values-zh-rTW/strings.xml
Normal file
1293
app/src/main/res/values-zh-rTW/strings.xml
Normal file
File diff suppressed because it is too large
Load Diff
@ -694,7 +694,6 @@
|
||||
<string name="toast_granted_part">获取部分权限成功,但部分权限未正常授予,APP部分功能可能受限!</string>
|
||||
<string name="toast_denied_never">被永久拒绝授权,前往系统设置手动授予权限?</string>
|
||||
<string name="toast_denied">获取必需的权限失败,APP功能可能受限!</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>
|
||||
@ -1279,4 +1278,16 @@
|
||||
|
||||
<string name="specified_uid">指定配置</string>
|
||||
<string name="specified_uid_hint">填写frpc的uid,多个以半角逗号分隔</string>
|
||||
|
||||
<string name="current_language">跟随系统</string>
|
||||
<string name="current_activity_language">当前 Activity 语种:</string>
|
||||
<string name="current_application_language">当前 Application 语种:</string>
|
||||
<string name="current_system_language">当前 System 语种:</string>
|
||||
<string name="multi_languages">多语言设置</string>
|
||||
<string name="multi_languages_tips">SmsForwarder启动时界面默认显示的语言</string>
|
||||
<string name="multi_languages_toast">需要重启App以便切换到您选择的语言</string>
|
||||
<string name="follow_system">跟随系统</string>
|
||||
<string name="simplified_chinese">简体中文</string>
|
||||
<string name="traditional_chinese">繁體中文</string>
|
||||
<string name="english">English</string>
|
||||
</resources>
|
||||
|
Loading…
Reference in New Issue
Block a user