build:重构项目并移除 Firebase 相关功能
-移除了 Firebase Analytics、Crashlytics 和 Performance Monitoring 的集成 - 删除了 EventRecord 类和相关的事件记录代码 - 更新了应用名称为"铁锈助手Lite" - 调整了应用图标和主题颜色 - 移除了不必要的权限请求和相关代码
|
@ -3,10 +3,6 @@ plugins {
|
|||
id 'kotlin-android'
|
||||
// id "androidx.navigation.safeargs.kotlin"
|
||||
id 'kotlin-kapt'
|
||||
id 'com.google.gms.google-services'
|
||||
id 'com.google.firebase.firebase-perf'
|
||||
id 'com.google.firebase.crashlytics'
|
||||
|
||||
}
|
||||
|
||||
android {
|
||||
|
@ -28,11 +24,11 @@ android {
|
|||
// buildToolsVersion "30.0.3"
|
||||
|
||||
defaultConfig {
|
||||
applicationId "com.coldmint.rust.pro"
|
||||
applicationId "com.coldmint.rust.lite"
|
||||
minSdkVersion 23
|
||||
targetSdkVersion 33
|
||||
versionCode 28
|
||||
versionName "2.3.0 Test(2025-One)"//第一季度 One 第二季度 Two 第三季度 Three 第四季度 Four
|
||||
versionName "1.0 Lite"
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
||||
|
@ -96,10 +92,6 @@ dependencies {
|
|||
implementation 'com.google.android.material:material:1.9.0'
|
||||
|
||||
//引发BUG的组件
|
||||
implementation platform('com.google.firebase:firebase-bom:31.3.0')
|
||||
implementation 'com.google.firebase:firebase-analytics-ktx'
|
||||
implementation 'com.google.firebase:firebase-crashlytics-ktx'
|
||||
implementation 'com.google.firebase:firebase-perf-ktx'
|
||||
implementation fileTree(dir: 'libs', include: ['*.aar', '*.jar'], exclude: [])
|
||||
implementation project(path: ':library')
|
||||
implementation project(':imageactivity')
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
{
|
||||
"project_info": {
|
||||
"project_number": "787078274450",
|
||||
"project_id": "rust-assistant-58ca5",
|
||||
"storage_bucket": "rust-assistant-58ca5.appspot.com"
|
||||
},
|
||||
"client": [
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:787078274450:android:e5a88cb9c74737a9b6754b",
|
||||
"android_client_info": {
|
||||
"package_name": "com.coldmint.rust.pro"
|
||||
}
|
||||
},
|
||||
"oauth_client": [
|
||||
{
|
||||
"client_id": "787078274450-uv7cj6beui62h4qpfqson6skek06u5sk.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyA5b4_azY4PMSnHDF3Qsu0cFwsFhWT413M"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": [
|
||||
{
|
||||
"client_id": "787078274450-uv7cj6beui62h4qpfqson6skek06u5sk.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"configuration_version": "1"
|
||||
}
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 15 KiB |
|
@ -17,7 +17,6 @@ import com.coldmint.rust.core.tool.FileOperator
|
|||
import com.coldmint.rust.core.tool.FileOperator.copyFile
|
||||
import com.coldmint.rust.pro.databinding.ActivityImporterBinding
|
||||
import com.coldmint.rust.pro.tool.AppSettings
|
||||
import com.coldmint.rust.pro.tool.EventRecord
|
||||
import com.coldmint.rust.pro.tool.GlobalMethod
|
||||
import com.coldmint.rust.pro.viewmodel.StartViewModel
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
|
@ -31,16 +30,12 @@ class ImporterActivity : BaseActivity<ActivityImporterBinding>() {
|
|||
private var uri: Uri? = null
|
||||
private var fileName: String? = null
|
||||
private var type: String? = null
|
||||
val startViewModel by lazy {
|
||||
ViewModelProvider(this).get(StartViewModel::class.java)
|
||||
private val startViewModel by lazy {
|
||||
ViewModelProvider(this)[StartViewModel::class.java]
|
||||
}
|
||||
|
||||
private fun initView() {
|
||||
setTitle(R.string.file_importer)
|
||||
val account = AppSettings.getValue(AppSettings.Setting.Account, "")
|
||||
if (account.isNotBlank()) {
|
||||
EventRecord.setUserId(account)
|
||||
}
|
||||
startViewModel.initAllData()
|
||||
GlobalMethod.requestStoragePermissions(this) {
|
||||
if (it) {
|
||||
|
|
|
@ -1,19 +1,15 @@
|
|||
package com.coldmint.rust.pro
|
||||
|
||||
import android.animation.ObjectAnimator
|
||||
import android.app.Service
|
||||
import android.content.Intent
|
||||
import android.graphics.Color
|
||||
import android.os.Bundle
|
||||
import android.os.VibrationEffect
|
||||
import android.os.Vibrator
|
||||
import android.text.Editable
|
||||
import android.text.SpannableString
|
||||
import android.text.TextPaint
|
||||
import android.text.TextWatcher
|
||||
import android.text.method.LinkMovementMethod
|
||||
import android.text.style.ClickableSpan
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import androidx.core.view.isVisible
|
||||
|
@ -30,10 +26,7 @@ import com.coldmint.rust.pro.base.BaseActivity
|
|||
import com.coldmint.rust.pro.databinding.ActivityLoginBinding
|
||||
import com.coldmint.rust.pro.tool.AppSettings
|
||||
import com.coldmint.rust.pro.tool.EmailAutoCompleteHelper
|
||||
import com.coldmint.rust.pro.tool.EventRecord
|
||||
import com.coldmint.rust.pro.tool.GlobalMethod
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.gyf.immersionbar.ktx.immersionBar
|
||||
|
||||
class LoginActivity : BaseActivity<ActivityLoginBinding>() {
|
||||
private var isLogin = false
|
||||
|
@ -124,9 +117,6 @@ class LoginActivity : BaseActivity<ActivityLoginBinding>() {
|
|||
isLogin = false
|
||||
viewBinding.button.setText(R.string.login)
|
||||
if (userData.code == ServerConfiguration.Success_Code) {
|
||||
//记录登录事件
|
||||
EventRecord.setUserId(account)
|
||||
EventRecord.login()
|
||||
AppSettings.forceSetValue(AppSettings.Setting.PassWord, passWord)
|
||||
AppSettings.forceSetValue(
|
||||
AppSettings.Setting.Account,
|
||||
|
|
|
@ -33,7 +33,6 @@ import com.coldmint.rust.pro.base.BaseActivity
|
|||
import com.coldmint.rust.pro.databinding.ActivityMainBinding
|
||||
import com.coldmint.rust.pro.databinding.HeadLayoutBinding
|
||||
import com.coldmint.rust.pro.tool.AppSettings
|
||||
import com.coldmint.rust.pro.tool.EventRecord
|
||||
import com.coldmint.rust.pro.tool.GlobalMethod
|
||||
import com.coldmint.rust.pro.viewmodel.StartViewModel
|
||||
import com.google.android.material.color.DynamicColors
|
||||
|
@ -692,7 +691,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
|
|||
opIntent.putExtra("userId", account)
|
||||
startActivity(opIntent)
|
||||
}
|
||||
EventRecord.setUserId(account)
|
||||
}
|
||||
|
||||
startViewModel.needLoginLiveData.observe(this) {
|
||||
|
|
|
@ -22,7 +22,6 @@ import com.coldmint.rust.core.interfaces.LineParserEvent
|
|||
import com.coldmint.rust.core.tool.FileFinder2
|
||||
import com.coldmint.rust.core.tool.FileOperator
|
||||
import com.coldmint.rust.pro.databinding.ActivityPackBinding
|
||||
import com.coldmint.rust.pro.tool.EventRecord
|
||||
import java.io.File
|
||||
import java.lang.StringBuilder
|
||||
import java.text.SimpleDateFormat
|
||||
|
@ -309,7 +308,6 @@ class PackActivity : BaseActivity<ActivityPackBinding>() {
|
|||
|
||||
override fun whenCompressionComplete(result: Boolean) {
|
||||
handler.post {
|
||||
EventRecord.packMod(targetFile.name)
|
||||
resetButton(result)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,16 +4,12 @@ import android.annotation.SuppressLint
|
|||
import android.app.Activity
|
||||
import android.app.Application
|
||||
import android.content.Context
|
||||
import android.content.pm.ActivityInfo
|
||||
import android.os.Bundle
|
||||
import cat.ereza.customactivityoncrash.config.CaocConfig
|
||||
import com.coldmint.rust.core.debug.LogCat
|
||||
import com.coldmint.rust.core.debug.LogCatObserver
|
||||
import com.coldmint.rust.pro.tool.AppSettings
|
||||
import com.google.android.material.color.DynamicColors
|
||||
import com.google.android.material.color.DynamicColorsOptions
|
||||
import com.google.firebase.crashlytics.ktx.crashlytics
|
||||
import com.google.firebase.ktx.Firebase
|
||||
import com.hjq.language.MultiLanguages
|
||||
import com.youth.banner.BuildConfig
|
||||
|
||||
|
@ -47,11 +43,6 @@ class RustApplication : Application() {
|
|||
)
|
||||
}.build()
|
||||
DynamicColors.applyToActivitiesIfAvailable(this, options)
|
||||
LogCat.attachObserver(object : LogCatObserver {
|
||||
override fun onReceiveLog(msg: String) {
|
||||
Firebase.crashlytics.log(msg)
|
||||
}
|
||||
})
|
||||
LogCat.setEnable(!BuildConfig.DEBUG)
|
||||
//程序崩溃
|
||||
CaocConfig.Builder.create()
|
||||
|
|
|
@ -13,7 +13,6 @@ import com.coldmint.rust.pro.base.BaseVh
|
|||
import com.coldmint.rust.pro.databinding.ActivityCodeTableBinding
|
||||
import com.coldmint.rust.pro.databinding.ItemCodetableBinding
|
||||
import com.coldmint.rust.pro.tool.GlobalMethod
|
||||
import com.google.android.gms.common.internal.Objects
|
||||
|
||||
class CodeTableAdapter(
|
||||
val context: Context,
|
||||
|
@ -24,19 +23,8 @@ class CodeTableAdapter(
|
|||
private var versionMap: HashMap<Int, String>? = null
|
||||
private var typeNameMap: HashMap<String, String>? = null
|
||||
private var sectionMap: HashMap<String, String>? = null
|
||||
|
||||
/* private val executorService by lazy {
|
||||
Executors.newSingleThreadExecutor()
|
||||
}*/
|
||||
private val lineParser = LineParser()
|
||||
|
||||
//Label点击事件
|
||||
// var labelFunction: ((Int, View, String) -> Unit)? = null
|
||||
/* private val developerMode by lazy {
|
||||
AppSettings
|
||||
.getValue(AppSettings.Setting.DeveloperMode, false)
|
||||
}*/
|
||||
|
||||
/**
|
||||
* 节名映射
|
||||
* @param sectionMap HashMap<String, String>
|
||||
|
@ -61,129 +49,17 @@ class CodeTableAdapter(
|
|||
this.versionMap = versionMap
|
||||
}
|
||||
|
||||
/* fun getChildView(
|
||||
groupPosition: Int,
|
||||
childPosition: Int,
|
||||
isLastChild: Boolean,
|
||||
convertView: View?,
|
||||
parent: ViewGroup
|
||||
): View {
|
||||
val resultView: CodeTableItemBinding =
|
||||
CodeTableItemBinding.inflate(layoutInflater, parent, false)
|
||||
val codeInfo = itemList[groupPosition][childPosition]
|
||||
|
||||
// resultView.belongStackLabelView.onLabelClickListener = OnLabelClickListener { index, v, s ->
|
||||
// }
|
||||
resultView.descriptionView.text = codeInfo.description
|
||||
resultView.descriptionView.setOnClickListener {
|
||||
GlobalMethod.copyText(context, codeInfo.description, it)
|
||||
}
|
||||
resultView.titleView.text = codeInfo.translate
|
||||
resultView.titleView.setOnClickListener {
|
||||
GlobalMethod.copyText(context, codeInfo.translate, it)
|
||||
}
|
||||
|
||||
val demo = codeInfo.demo
|
||||
resultView.imageView.isVisible = demo.isNotBlank()
|
||||
resultView.imageView.setOnClickListener {
|
||||
val dialog = MaterialAlertDialogBuilder(context);
|
||||
dialog.setTitle(R.string.code_demo)
|
||||
dialog.setMessage(demo)
|
||||
dialog.setPositiveButton(R.string.dialog_ok){
|
||||
v,a->
|
||||
}
|
||||
dialog.show()
|
||||
}
|
||||
|
||||
resultView.subTitleView.text = codeInfo.code
|
||||
resultView.subTitleView.setOnClickListener {
|
||||
GlobalMethod.copyText(context, codeInfo.code, it)
|
||||
}
|
||||
resultView.valueTypeView.text = typeNameMap?.get(codeInfo.type) ?: codeInfo.type
|
||||
lineParser.text = codeInfo.section
|
||||
resultView.chipGroup.removeAllViews()
|
||||
var isNotEmpty = false
|
||||
lineParser.analyse { lineNum, lineData, isEnd ->
|
||||
isNotEmpty = true
|
||||
val text = sectionMap?.get(lineData) ?: lineData
|
||||
val chip = Chip(context)
|
||||
chip.text = text
|
||||
chip.setOnClickListener {
|
||||
labelFunction?.invoke(lineNum, it, text)
|
||||
}
|
||||
resultView.chipGroup.addView(chip)
|
||||
true
|
||||
}
|
||||
|
||||
resultView.chipGroup.isVisible = isNotEmpty
|
||||
resultView.valueTypeView.setOnClickListener {
|
||||
val handler = Handler(Looper.getMainLooper())
|
||||
executorService.submit {
|
||||
val codeDataBase = CodeDataBase.getInstance(context)
|
||||
val typeInfo = codeDataBase.getValueTypeDao().findTypeByType(codeInfo.type)
|
||||
if (typeInfo == null) {
|
||||
handler.post {
|
||||
handler.post {
|
||||
MaterialDialog(context).show {
|
||||
title(text = codeInfo.type).message(
|
||||
text = String.format(
|
||||
context.getString(
|
||||
R.string.unknown_type
|
||||
), codeInfo.type
|
||||
override fun onCreateViewHolder(
|
||||
parent: ViewGroup,
|
||||
viewType: Int
|
||||
): BaseVh<ItemCodetableBinding> {
|
||||
return BaseVh(
|
||||
ItemCodetableBinding.inflate(
|
||||
LayoutInflater.from(parent.context),
|
||||
parent,
|
||||
false
|
||||
)
|
||||
)
|
||||
.positiveButton(R.string.dialog_ok)
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (developerMode) {
|
||||
val stringBuilder = StringBuilder()
|
||||
stringBuilder.append("介绍:")
|
||||
stringBuilder.append(typeInfo.describe)
|
||||
stringBuilder.append("\n附加信息:")
|
||||
stringBuilder.append(typeInfo.external)
|
||||
stringBuilder.append("\n关联的自动提示:")
|
||||
stringBuilder.append(typeInfo.list)
|
||||
stringBuilder.append("\n光标偏差:")
|
||||
stringBuilder.append(typeInfo.offset)
|
||||
stringBuilder.append("\n标签:")
|
||||
stringBuilder.append(typeInfo.tag)
|
||||
stringBuilder.append("\n数据规则:")
|
||||
stringBuilder.append(typeInfo.rule)
|
||||
handler.post {
|
||||
MaterialDialog(context).show {
|
||||
title(text = typeInfo.name + "(开发者模式)").message(text = stringBuilder.toString())
|
||||
.positiveButton(R.string.dialog_ok)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (typeInfo.describe == "@search(code)") {
|
||||
handler.post {
|
||||
MaterialDialog(context).show {
|
||||
title(text = typeInfo.name).message(text = codeInfo.description)
|
||||
.positiveButton(R.string.dialog_ok)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
handler.post {
|
||||
MaterialDialog(context).show {
|
||||
title(text = typeInfo.name).message(text = typeInfo.describe)
|
||||
.positiveButton(R.string.dialog_ok)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
resultView.versionView.text =
|
||||
versionMap?.get(codeInfo.addVersion) ?: codeInfo.addVersion.toString()
|
||||
return resultView.root
|
||||
}*/
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BaseVh<ItemCodetableBinding> {
|
||||
return BaseVh(ItemCodetableBinding.inflate(LayoutInflater.from(parent.context), parent, false))
|
||||
}
|
||||
|
||||
override fun getItemCount(): Int {
|
||||
|
@ -212,23 +88,33 @@ class CodeTableAdapter(
|
|||
)
|
||||
holder.binging.message.text = format
|
||||
holder.itemView.setOnClickListener {
|
||||
i = group[position].translate
|
||||
val finalPosition = holder.layoutPosition
|
||||
i = group[finalPosition].translate
|
||||
pick = 0
|
||||
pickString = ""
|
||||
picklist.clear()
|
||||
if (item != null) {
|
||||
item!!.list = itemList[position]
|
||||
binding.codeRecyclerB.adapter = item
|
||||
notifyDataSetChanged()
|
||||
}
|
||||
// notifyItemChanged(p)
|
||||
notifyItemChanged(finalPosition)
|
||||
}
|
||||
if (Objects.equal(group[position].translate, i)) {
|
||||
if (group[position].translate == i) {
|
||||
//背景高亮
|
||||
holder.binging.root.setCardBackgroundColor(GlobalMethod.getThemeColor(context, R.attr.colorPrimaryContainer))
|
||||
holder.binging.root.setCardBackgroundColor(
|
||||
GlobalMethod.getThemeColor(
|
||||
context,
|
||||
R.attr.colorPrimaryContainer
|
||||
)
|
||||
)
|
||||
} else {
|
||||
//背景恢复
|
||||
holder.binging.root.setCardBackgroundColor(GlobalMethod.getThemeColor(context, R.attr.colorSurface))
|
||||
holder.binging.root.setCardBackgroundColor(
|
||||
GlobalMethod.getThemeColor(
|
||||
context,
|
||||
R.attr.colorSurface
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -7,12 +7,8 @@ import android.view.ViewGroup
|
|||
import android.widget.Toast
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.viewbinding.ViewBinding
|
||||
import com.google.firebase.analytics.FirebaseAnalytics
|
||||
import com.google.firebase.analytics.ktx.analytics
|
||||
import com.google.firebase.ktx.Firebase
|
||||
|
||||
abstract class BaseFragment<T : ViewBinding> : Fragment() {
|
||||
protected lateinit var firebaseAnalytics: FirebaseAnalytics
|
||||
protected lateinit var viewBinding: T
|
||||
|
||||
|
||||
|
@ -54,11 +50,6 @@ abstract class BaseFragment<T : ViewBinding> : Fragment() {
|
|||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
try {
|
||||
firebaseAnalytics = Firebase.analytics
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
whenViewCreated(layoutInflater, savedInstanceState)
|
||||
}
|
||||
}
|
|
@ -19,7 +19,6 @@ import com.coldmint.rust.pro.base.BaseFragment
|
|||
import com.coldmint.rust.pro.databean.CommunityServiceInfo
|
||||
import com.coldmint.rust.pro.databinding.FragmentUserInfoBinding
|
||||
import com.coldmint.rust.pro.tool.AppSettings
|
||||
import com.coldmint.rust.pro.tool.EventRecord
|
||||
import com.coldmint.rust.pro.tool.GlobalMethod
|
||||
|
||||
class UserInfoFragment : BaseFragment<FragmentUserInfoBinding>() {
|
||||
|
@ -171,8 +170,6 @@ class UserInfoFragment : BaseFragment<FragmentUserInfoBinding>() {
|
|||
|
||||
override fun whenViewCreated(inflater: LayoutInflater, savedInstanceState: Bundle?) {
|
||||
viewBinding.logOutButton.setOnClickListener {
|
||||
EventRecord.logout()
|
||||
EventRecord.setUserId(null)
|
||||
AppSettings.setValue(AppSettings.Setting.LoginStatus, false)
|
||||
// GlobalMethod.isActive = false
|
||||
AppSettings.setValue(
|
||||
|
|
|
@ -1,56 +0,0 @@
|
|||
package com.coldmint.rust.pro.tool
|
||||
|
||||
import android.os.Bundle
|
||||
import com.google.firebase.analytics.ktx.analytics
|
||||
import com.google.firebase.ktx.Firebase
|
||||
|
||||
/**
|
||||
* 事件记录类
|
||||
*/
|
||||
object EventRecord {
|
||||
const val Event_LOGOUT = "logout"
|
||||
|
||||
//打包Mod
|
||||
const val Event_PACK_MOD = "pack_mod"
|
||||
const val Event_LOGIN = "login"
|
||||
|
||||
private val firebaseAnalytics = Firebase.analytics
|
||||
private var account: String? = null
|
||||
|
||||
/**
|
||||
* 设置用户id
|
||||
*/
|
||||
fun setUserId(userId: String?) {
|
||||
account = userId
|
||||
}
|
||||
|
||||
/**
|
||||
* 登录
|
||||
*/
|
||||
fun login() {
|
||||
val bundle = Bundle()
|
||||
bundle.putString("account", account)
|
||||
firebaseAnalytics.logEvent(Event_LOGIN, bundle)
|
||||
firebaseAnalytics.setUserId(account)
|
||||
}
|
||||
|
||||
/**
|
||||
* 登出
|
||||
*/
|
||||
fun logout() {
|
||||
val bundle = Bundle()
|
||||
bundle.putString("account", account)
|
||||
firebaseAnalytics.logEvent(Event_LOGOUT, bundle)
|
||||
}
|
||||
|
||||
/**
|
||||
* 打包模组
|
||||
*/
|
||||
fun packMod(targetFileName: String) {
|
||||
val bundle = Bundle()
|
||||
bundle.putString("account", account)
|
||||
bundle.putString("fileName", targetFileName)
|
||||
firebaseAnalytics.logEvent(Event_PACK_MOD, bundle)
|
||||
firebaseAnalytics.setUserId(account)
|
||||
}
|
||||
}
|
|
@ -14,8 +14,6 @@ import com.coldmint.rust.pro.livedata.OpenedSourceFileListLiveData
|
|||
import com.coldmint.rust.pro.tool.AppSettings
|
||||
import com.coldmint.rust.pro.tool.CompletionItemConverter
|
||||
import com.coldmint.rust.pro.tool.GlobalMethod
|
||||
import com.google.firebase.crashlytics.ktx.crashlytics
|
||||
import com.google.firebase.ktx.Firebase
|
||||
import java.io.File
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
|
@ -38,13 +36,7 @@ class EditViewModel(application: Application) : BaseAndroidViewModel(application
|
|||
var targetFile: File? = null
|
||||
|
||||
private val codeTranslate by lazy {
|
||||
val c = CodeTranslate(getApplication())
|
||||
c.setCompileErrorRecordFun {
|
||||
//将信息上传至FireBase
|
||||
Firebase.crashlytics.setCustomKey("type", "代码编译错误")
|
||||
Firebase.crashlytics.recordException(it)
|
||||
}
|
||||
c
|
||||
CodeTranslate(getApplication())
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,28 +1,15 @@
|
|||
package com.coldmint.rust.pro.viewmodel
|
||||
|
||||
import android.Manifest
|
||||
import android.app.Application
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.content.res.Configuration
|
||||
import android.net.Uri
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.os.CountDownTimer
|
||||
import android.os.Environment
|
||||
import android.provider.Settings
|
||||
import android.util.Log
|
||||
import androidx.appcompat.app.AppCompatDelegate
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.coldmint.rust.core.CompressionManager
|
||||
import com.coldmint.rust.core.DataSet
|
||||
import com.coldmint.rust.core.dataBean.LoginRequestData
|
||||
import com.coldmint.rust.core.dataBean.user.ActivationInfo
|
||||
import com.coldmint.rust.core.dataBean.user.SocialInfoData
|
||||
import com.coldmint.rust.core.dataBean.user.UserData
|
||||
import com.coldmint.rust.core.database.code.CodeDataBase
|
||||
import com.coldmint.rust.core.debug.LogCat
|
||||
import com.coldmint.rust.core.interfaces.ApiCallBack
|
||||
|
@ -39,12 +26,8 @@ import com.coldmint.rust.pro.tool.BookmarkManager
|
|||
import com.coldmint.rust.pro.tool.CompletionItemConverter
|
||||
import com.coldmint.rust.pro.tool.GlobalMethod
|
||||
import com.google.android.material.color.DynamicColors
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.google.firebase.crashlytics.ktx.crashlytics
|
||||
import com.google.firebase.ktx.Firebase
|
||||
import java.io.File
|
||||
import java.util.*
|
||||
import java.util.concurrent.Executors
|
||||
import java.util.zip.ZipEntry
|
||||
|
||||
|
||||
|
@ -134,14 +117,12 @@ class StartViewModel(application: Application) : BaseAndroidViewModel(applicatio
|
|||
val status = AppSettings.getValue(AppSettings.Setting.LoginStatus, false)
|
||||
if (!status) {
|
||||
needLoginLiveData.value = true
|
||||
Firebase.crashlytics.setUserId("")
|
||||
return
|
||||
}
|
||||
//验证登录
|
||||
val token = AppSettings.getValue(AppSettings.Setting.Token, "")
|
||||
if (token.isBlank()) {
|
||||
needLoginLiveData.value = true
|
||||
Firebase.crashlytics.setUserId("")
|
||||
} else {
|
||||
User.getUserActivationInfo(token, object : ApiCallBack<ActivationInfo> {
|
||||
override fun onFailure(e: Exception) {
|
||||
|
@ -151,7 +132,6 @@ class StartViewModel(application: Application) : BaseAndroidViewModel(applicatio
|
|||
)
|
||||
if (localTime == (-2).toLong()) {
|
||||
isActivationLiveData.value = true
|
||||
Firebase.crashlytics.setUserId("")
|
||||
} else {
|
||||
val nowTime = System.currentTimeMillis()
|
||||
//本地时间大于当前时间 激活
|
||||
|
@ -171,7 +151,6 @@ class StartViewModel(application: Application) : BaseAndroidViewModel(applicatio
|
|||
time
|
||||
)
|
||||
isActivationLiveData.value = activationInfo.data.activation
|
||||
Firebase.crashlytics.setUserId(activationInfo.data.account)
|
||||
} else {
|
||||
// 用户登录失败
|
||||
verifyErrorMsgLiveData.value = activationInfo.message
|
||||
|
@ -259,7 +238,10 @@ class StartViewModel(application: Application) : BaseAndroidViewModel(applicatio
|
|||
DynamicColors.isDynamicColorAvailable()
|
||||
)
|
||||
//如果是安卓12或更低,那么默认启用。安卓13默认关闭
|
||||
AppSettings.initSetting(AppSettings.Setting.ClipboardCue,Build.VERSION.SDK_INT <= Build.VERSION_CODES.S_V2)
|
||||
AppSettings.initSetting(
|
||||
AppSettings.Setting.ClipboardCue,
|
||||
Build.VERSION.SDK_INT <= Build.VERSION_CODES.S_V2
|
||||
)
|
||||
AppSettings.initSetting(AppSettings.Setting.KeywordColor, "#2196f3")
|
||||
AppSettings.initSetting(AppSettings.Setting.SectionColor, "#e91e63")
|
||||
AppSettings.initSetting(AppSettings.Setting.TextColor, "#212121")
|
||||
|
@ -324,7 +306,10 @@ class StartViewModel(application: Application) : BaseAndroidViewModel(applicatio
|
|||
DebugHelper.printLog("加载数据集", "无法二次加载" + databaseFolder)
|
||||
}
|
||||
} else {
|
||||
DebugHelper.printLog("加载数据集", "已解压" + databaseFolder + "但不使用。")
|
||||
DebugHelper.printLog(
|
||||
"加载数据集",
|
||||
"已解压" + databaseFolder + "但不使用。"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@drawable/ic_launcher_background" />
|
||||
<foreground android:drawable="@drawable/ic_launcher_foreground" />
|
||||
<background android:drawable="@color/ic_launcher_background"/>
|
||||
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
|
||||
</adaptive-icon>
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@drawable/ic_launcher_background" />
|
||||
<foreground android:drawable="@drawable/ic_launcher_foreground" />
|
||||
<monochrome android:drawable="@drawable/ic_launcher_foreground" />
|
||||
<background android:drawable="@color/ic_launcher_background"/>
|
||||
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
|
||||
</adaptive-icon>
|
Before Width: | Height: | Size: 3.7 KiB |
BIN
app/src/main/res/mipmap-hdpi/ic_launcher.webp
Normal file
After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 4.3 KiB |
BIN
app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
Normal file
After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 3.1 KiB |
BIN
app/src/main/res/mipmap-mdpi/ic_launcher.webp
Normal file
After Width: | Height: | Size: 794 B |
Before Width: | Height: | Size: 3.4 KiB |
BIN
app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
Normal file
After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 5.2 KiB |
BIN
app/src/main/res/mipmap-xhdpi/ic_launcher.webp
Normal file
After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 5.9 KiB |
BIN
app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
Normal file
After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 8.4 KiB |
BIN
app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
Normal file
After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 9.6 KiB |
BIN
app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
Normal file
After Width: | Height: | Size: 6.4 KiB |
Before Width: | Height: | Size: 13 KiB |
BIN
app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
Normal file
After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 15 KiB |
BIN
app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
Normal file
After Width: | Height: | Size: 8.9 KiB |
4
app/src/main/res/values/ic_launcher_background.xml
Normal file
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="ic_launcher_background">#3919CD</color>
|
||||
</resources>
|
|
@ -1,5 +1,5 @@
|
|||
<resources>
|
||||
<string name="app_name">铁锈助手</string>
|
||||
<string name="app_name">铁锈助手Lite</string>
|
||||
<string name="dialog_title">权限申请</string>
|
||||
<string name="dialog_msg29">我们需要文件管理权限,用于读取模组列表,编辑源文件,导入导出模组。</string>
|
||||
<string name="dialog_confirm">授权</string>
|
||||
|
|
|
@ -138,7 +138,7 @@ class CodeTranslate(val context: Context) {
|
|||
num++
|
||||
debugKey = "代码翻译器-任务${num}"
|
||||
DebugHelper.printLog(
|
||||
CodeTranslate.debugKey,
|
||||
debugKey,
|
||||
"开始执行(英文模式${englishMode} 翻译模式${translateMode})...",
|
||||
"代码翻译", isError = true
|
||||
)
|
||||
|
@ -146,7 +146,7 @@ class CodeTranslate(val context: Context) {
|
|||
if (englishMode) {
|
||||
//如果是英文模式,无论是翻译还是编译都返回其本身。
|
||||
DebugHelper.printLog(
|
||||
CodeTranslate.debugKey,
|
||||
debugKey,
|
||||
"是英文模式返回其本身。",
|
||||
"代码翻译", isError = true
|
||||
)
|
||||
|
@ -199,7 +199,7 @@ class CodeTranslate(val context: Context) {
|
|||
)
|
||||
}
|
||||
DebugHelper.printLog(
|
||||
CodeTranslate.debugKey,
|
||||
debugKey,
|
||||
"追加引用值[" + referenceValue + "]",
|
||||
"翻译行引用处理"
|
||||
)
|
||||
|
@ -235,7 +235,7 @@ class CodeTranslate(val context: Context) {
|
|||
} else if (codeBlockType == CodeBlockType.Reference) {
|
||||
//资源引用值应该被整体处理
|
||||
DebugHelper.printLog(
|
||||
CodeTranslate.debugKey,
|
||||
debugKey,
|
||||
"翻译添加引用值[" + code + "]",
|
||||
"翻译代码处理"
|
||||
)
|
||||
|
@ -356,7 +356,7 @@ class CodeTranslate(val context: Context) {
|
|||
}
|
||||
translationResult.append(codeResult.toString())
|
||||
DebugHelper.printLog(
|
||||
CodeTranslate.debugKey,
|
||||
debugKey,
|
||||
"代码[" + code + "]译文[" + codeResult.toString() + "]是否翻译[" + (code != codeResult.toString()) + "]",
|
||||
"翻译"
|
||||
)
|
||||
|
|