界面优化

This commit is contained in:
coldmint 2022-07-17 21:51:14 +08:00
parent dc7d6882e7
commit 1ff0aae33b
93 changed files with 672 additions and 612 deletions

Binary file not shown.

View File

@ -28,7 +28,7 @@ android {
minSdkVersion 21
targetSdkVersion 32
versionCode 18
versionName "2.1 alpha(2022-7-6)"
versionName "2.1 alpha(2022-7-17)"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

Binary file not shown.

View File

@ -144,7 +144,7 @@ class ApplicationListActivity : BaseActivity<ActivityApplicationListBinding>() {
* 设置标题和活动栏
*/
private fun setTitleAndActionBar() {
viewBinding.toolbar.setTitle(R.string.select_game_pack)
title = getString(R.string.select_game_pack)
setReturnButton()
}

View File

@ -16,7 +16,7 @@ class CreationWizardActivity : BaseActivity<ActivityCreationWizardBinding>() {
lateinit var type: String
override fun whenCreateActivity(savedInstanceState: Bundle?, canUseView: Boolean) {
setReturnButton()
title = getString(R.string.creation_wizard)
title = getString(R.string.creation_assistant)
val temType = intent.getStringExtra("type")
if (temType.isNullOrBlank()) {
showToast("请传入类型")

View File

@ -29,6 +29,7 @@ import com.coldmint.rust.core.web.User
import com.coldmint.rust.pro.base.BaseActivity
import com.coldmint.rust.pro.databinding.ActivityEditModInfoBinding
import com.coldmint.rust.pro.databinding.ActivityEditUserInfoBinding
import com.coldmint.rust.pro.tool.AppSettings
import com.coldmint.rust.pro.tool.GlobalMethod
import com.google.android.material.snackbar.Snackbar
import com.yalantis.ucrop.UCrop
@ -52,7 +53,7 @@ class EditUserInfoActivity : BaseActivity<ActivityEditUserInfoBinding>() {
}
private fun initView() {
viewBinding.toolbar.title = getText(R.string.editData)
title = getText(R.string.editData)
setReturnButton()
val thisIntent = intent
val temUserId = thisIntent.getStringExtra("userId")
@ -254,8 +255,10 @@ class EditUserInfoActivity : BaseActivity<ActivityEditUserInfoBinding>() {
R.attr.colorPrimaryVariant
)
)
val token =
AppSettings.getInstance(this).getValue(AppSettings.Setting.Token, "")
User.updateSpaceInfo(
userId,
token,
userName,
introduce,
gender,

View File

@ -49,7 +49,7 @@ class FileManagerActivity : BaseActivity<ActivityFileBinding>() {
private val bookmarkManager: BookmarkManager by lazy { BookmarkManager(this) }
private var additionalData: String? = null
private fun initView() {
viewBinding.toolbar.setTitle(R.string.file_manager)
title = getString(R.string.file_manager)
setReturnButton()
viewBinding.fileList.layoutManager = LinearLayoutManager(this@FileManagerActivity)
val intent = intent

View File

@ -119,11 +119,11 @@ class LoginActivity : BaseActivity<ActivityLoginBinding>() {
isLogin = false
viewBinding.button.setText(R.string.login)
if (userData.code == ServerConfiguration.Success_Code) {
appSettings.forceSetValue(AppSettings.Setting.PassWord, passWord)
appSettings.forceSetValue(
AppSettings.Setting.Account,
account
userData.data.account
)
appSettings.forceSetValue(AppSettings.Setting.PassWord, passWord)
appSettings.forceSetValue(
AppSettings.Setting.Token,
userData.data.token

View File

@ -11,6 +11,7 @@ import com.google.android.material.snackbar.Snackbar
import android.os.*
import android.util.Log
import android.view.*
import androidx.appcompat.app.ActionBarDrawerToggle
import androidx.core.view.GravityCompat
import androidx.core.view.isVisible
import androidx.lifecycle.ViewModelProvider
@ -91,6 +92,10 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
setupActionBarWithNavController(navController, appBarConfiguration)
viewBinding.navaiagtion.setupWithNavController(navController)
viewBinding.navaiagtion.addHeaderView(headLayout.root)
//actionbar动画
val actionToggle = ActionBarDrawerToggle(this,viewBinding.drawerlayout,viewBinding.toolbar,R.string.app_name,R.string.app_name)
viewBinding.drawerlayout.addDrawerListener(actionToggle)
actionToggle.syncState()
}
/**
@ -426,50 +431,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
}
}
/**
* 初始化搜索项目事件
*/
// private fun initSearchItem(newSearchView: SearchView) {
// val navigationIcon = viewBinding.toolbar.navigationIcon
// var oldTile: CharSequence = viewBinding.toolbar.title
// val hideView: (collapsed: Boolean) -> Unit = {
// if (it) {
// newSearchView.onActionViewCollapsed()
// }
// viewBinding.toolbar.navigationIcon = navigationIcon
// viewBinding.toolbar.title = oldTile
// }
// newSearchView.queryHint = getString(R.string.search_hint)
// newSearchView.setOnCloseListener {
// hideView.invoke(false)
// return@setOnCloseListener false
// }
// newSearchView.setOnSearchClickListener {
// oldTile = viewBinding.toolbar.title
// viewBinding.toolbar.navigationIcon = null
// viewBinding.toolbar.title = getString(R.string.search)
// }
//
// newSearchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
// override fun onQueryTextSubmit(query: String?): Boolean {
// hideView.invoke(true)
// val key = query
// if (key != null) {
// val goIntent = Intent(this@MainActivity, SearchResultActivity::class.java)
// goIntent.putExtra("key", key)
// startActivity(goIntent)
// }
// return false
// }
//
// override fun onQueryTextChange(newText: String?): Boolean {
// return false
// }
//
// })
// searchView = newSearchView
// }
/**
* 导入模板
* @param formFile File 文件
@ -730,7 +691,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
initNav()
observeStartViewModel()
checkAppUpdate()
// CommentDialog(this).show()
} else {
startViewModel.initAllData()
}

View File

@ -38,7 +38,7 @@ class OrderListActivity : BaseActivity<ActivityOrderListBinding>() {
override fun whenCreateActivity(savedInstanceState: Bundle?, canUseView: Boolean) {
if (canUseView) {
viewBinding.toolbar.title = getText(R.string.order_list)
title = getText(R.string.order_list)
setReturnButton()
if (account.isBlank()) {
showError(getString(R.string.please_login_first))

View File

@ -889,10 +889,9 @@ class ReleaseModActivity : BaseActivity<ActivityReleaseModBinding>() {
//发布动态
val check = viewBinding.checkbox.isChecked
if (check) {
val appId = appSettings.getValue(AppSettings.Setting.AppID, "")
val token = appSettings.getValue(AppSettings.Setting.Token, "")
Dynamic.instance.send(
account,
appId,
token,
String.format(getString(R.string.auto_send), modId),
object : ApiCallBack<ApiResponse> {
override fun onResponse(t: ApiResponse) {
@ -1003,10 +1002,9 @@ class ReleaseModActivity : BaseActivity<ActivityReleaseModBinding>() {
//发布动态
val check = viewBinding.checkbox.isChecked
if (check) {
val appId = appSettings.getValue(AppSettings.Setting.AppID, "")
val token = appSettings.getValue(AppSettings.Setting.Token, "")
Dynamic.instance.send(
account,
appId,
token,
String.format(
getString(R.string.auto_send2),
modId,

View File

@ -22,7 +22,7 @@ import com.coldmint.rust.pro.tool.AppSettings
class ReportListActivity : BaseActivity<ActivityReportListBinding>() {
override fun whenCreateActivity(savedInstanceState: Bundle?, canUseView: Boolean) {
if (canUseView) {
viewBinding.toolbar.title = getText(R.string.report_to_deal)
title = getText(R.string.report_to_deal)
setReturnButton()
val account = appSettings.getValue(AppSettings.Setting.Account, "")
if (account.isBlank()) {

View File

@ -28,7 +28,7 @@ class ReviewModActivity : BaseActivity<ActivityReviewModBinding>() {
override fun whenCreateActivity(savedInstanceState: Bundle?, canUseView: Boolean) {
if (canUseView) {
viewBinding.toolbar.title = getText(R.string.review_mod)
title = getText(R.string.review_mod)
setReturnButton()
if (token.isBlank()) {
showInfoToView(resId = R.string.please_login_first)

View File

@ -189,18 +189,22 @@ class TemplateParserActivity() : BaseActivity<ActivityTemplateParserBinding>() {
working = true
val filename = viewBinding.fileNameInputView.text.toString()
var needFileType = true
val index = filename.lastIndexOf('.')
//文件夹名
var folderName = filename
if (filename.isBlank()) {
setErrorAndInput(
viewBinding.fileNameInputView,
getString(R.string.unit_name_error), viewBinding.fileNameInputLayout
)
return@submit
} else if (filename.contains(".")) {
} else if (index > -1) {
needFileType = false
folderName = filename.substring(0 until index)
}
//真实创建目录
val authenticallyCreateDirectory: String = if (mCreateIndependentFolder) {
"$mCreatePath/$filename"
"$mCreatePath/$folderName"
} else {
mCreatePath
}

View File

@ -225,7 +225,7 @@ class UnitsActivity : BaseActivity<ActivityUnitsBinding>() {
override fun whenCreateActivity(savedInstanceState: Bundle?, canUseView: Boolean) {
if (canUseView) {
viewBinding.toolbar.setTitle(R.string.mod_action1)
title = getString(R.string.mod_action1)
setReturnButton()
val intent = intent
val bundle = intent.getBundleExtra("data")

View File

@ -24,6 +24,7 @@ import com.coldmint.rust.core.web.*
import com.coldmint.rust.pro.adapters.UserHomeStateAdapter
import com.coldmint.rust.pro.base.BaseActivity
import com.coldmint.rust.pro.databinding.ActivityUserHomePageBinding
import com.coldmint.rust.pro.dialog.CommentDialog
import com.coldmint.rust.pro.tool.AppSettings
import com.coldmint.rust.pro.tool.GlobalMethod
import com.google.android.material.appbar.AppBarLayout
@ -45,19 +46,15 @@ class UserHomePageActivity : BaseActivity<ActivityUserHomePageBinding>() {
}
val appID by lazy {
appSettings.getValue(AppSettings.Setting.AppID, "")
}
//旧的备份数据
var oldSpaceInfoData: SpaceInfoData? = null
@SuppressLint("CheckResult")
private fun initView() {
immersionBar {
transparentStatusBar().statusBarDarkFont(true)
.navigationBarColor(R.color.white_200).navigationBarDarkIcon(true)
}
// immersionBar {
// transparentStatusBar().statusBarDarkFont(true)
// .navigationBarColor(R.color.white_200).navigationBarDarkIcon(true)
// }
val thisIntent = intent
val temUserId = thisIntent.getStringExtra("userId")
@ -77,9 +74,6 @@ class UserHomePageActivity : BaseActivity<ActivityUserHomePageBinding>() {
}
viewBinding.toolbar.title = ""
setReturnButton()
val params = viewBinding.toolbar.layoutParams as CollapsingToolbarLayout.LayoutParams
params.setMargins(0, statusBarHeight(this), 0, 0)
viewBinding.toolbar.layoutParams = params
viewBinding.followLayout.setOnClickListener {
openUserList(userId, true)
@ -92,7 +86,6 @@ class UserHomePageActivity : BaseActivity<ActivityUserHomePageBinding>() {
}
/**
* 打开用户列表
* @param account String 账号
@ -292,7 +285,6 @@ class UserHomePageActivity : BaseActivity<ActivityUserHomePageBinding>() {
super.onResume()
User.getSpaceInfo(userId, object : ApiCallBack<SpaceInfoData> {
override fun onResponse(t: SpaceInfoData) {
if (t.code == ServerConfiguration.Success_Code) {
showUserdataIfNeed(t)
} else {
@ -307,37 +299,35 @@ class UserHomePageActivity : BaseActivity<ActivityUserHomePageBinding>() {
})
}
/**
* 获取状态栏高度
* @param context Context
* @return Int
*/
fun statusBarHeight(context: Context): Int {
var height = 0
val res = context.resources
val resId = res.getIdentifier("status_bar_height", "dimen", "android")
if (resId > 0) {
height = res.getDimensionPixelSize(resId)
}
return height
}
// /**
// * 获取状态栏高度
// * @param context Context
// * @return Int
// */
// fun statusBarHeight(context: Context): Int {
// var height = 0
// val res = context.resources
// val resId = res.getIdentifier("status_bar_height", "dimen", "android")
// if (resId > 0) {
// height = res.getDimensionPixelSize(resId)
// }
// return height
// }
private fun initAction() {
viewBinding.fab.setOnClickListener {
MaterialDialog(this, BottomSheet(LayoutMode.WRAP_CONTENT)).show {
input(maxLength = 255).title(R.string.send_dynamic)
.positiveButton(R.string.dialog_ok)
.positiveButton {
val inputField: EditText = it.getInputField()
val text = inputField.text.toString()
if (!text.isBlank()) {
CommentDialog(this).setTitle(R.string.send_dynamic).setCancelable(false)
.setSubmitFun { button, textInputLayout, s, alertDialog ->
val token =
AppSettings.getInstance(this).getValue(AppSettings.Setting.Token, "")
if (!s.isBlank()) {
Dynamic.instance.send(
account,
appID,
text,
token,
s,
object : ApiCallBack<ApiResponse> {
override fun onResponse(t: ApiResponse) {
if (t.code == ServerConfiguration.Success_Code) {
alertDialog.dismiss()
Snackbar.make(
viewBinding.button,
R.string.release_ok,
@ -359,15 +349,24 @@ class UserHomePageActivity : BaseActivity<ActivityUserHomePageBinding>() {
})
}
}.negativeButton(R.string.dialog_cancel)
val editText = this.getInputField()
editText.inputType =
EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE
editText.minLines = 3
editText.gravity = Gravity.TOP
editText.isSingleLine = false
}
}.show()
// MaterialDialog(this, BottomSheet(LayoutMode.WRAP_CONTENT)).show {
// input(maxLength = 255).title()
// .positiveButton(R.string.dialog_ok)
// .positiveButton {
// val inputField: EditText = it.getInputField()
// val text = inputField.text.toString()
//
// }
// }.negativeButton(R.string.dialog_cancel)
//
// val editText = this.getInputField()
// editText.inputType =
// EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE
// editText.minLines = 3
// editText.gravity = Gravity.TOP
// editText.isSingleLine = false
// }
}
viewBinding.button.setOnClickListener {
when (val type = viewBinding.button.text.toString()) {
@ -393,7 +392,11 @@ class UserHomePageActivity : BaseActivity<ActivityUserHomePageBinding>() {
viewBinding.button.text = getString(R.string.followed)
} else {
viewBinding.button.text = type
Snackbar.make(viewBinding.button, t.message, Snackbar.LENGTH_SHORT)
Snackbar.make(
viewBinding.button,
t.message,
Snackbar.LENGTH_SHORT
)
.show()
}

View File

@ -14,6 +14,7 @@ import android.widget.EditText
import android.widget.Toast
import androidx.core.app.NotificationManagerCompat
import androidx.core.view.isVisible
import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.LinearLayoutManager
import com.afollestad.materialdialogs.LayoutMode
import com.afollestad.materialdialogs.MaterialDialog
@ -99,6 +100,9 @@ class WebModInfoActivity : BaseActivity<ActivityWebModInfoBinding>() {
}
viewBinding.modCommentRecyclerView.layoutManager =
LinearLayoutManager(this@WebModInfoActivity)
viewBinding.modCommentRecyclerView.addItemDecoration(
DividerItemDecoration(this@WebModInfoActivity, DividerItemDecoration.VERTICAL)
)
tip = getString(R.string.file_download_progress)
}
@ -473,7 +477,8 @@ class WebModInfoActivity : BaseActivity<ActivityWebModInfoBinding>() {
}
CommentDialog(this).setSubmitFun { button, textInputLayout, s, alertDialog ->
CommentDialog(this).setCancelable(false)
.setSubmitFun { button, textInputLayout, s, alertDialog ->
button.isEnabled = false
WebMod.instance.sendComment(
appSettings.getValue(AppSettings.Setting.Token, ""),

View File

@ -254,7 +254,7 @@ class WorkManagementActivity : BaseActivity<ActivityWorkmangementBinding>() {
override fun whenCreateActivity(savedInstanceState: Bundle?, canUseView: Boolean) {
if (canUseView) {
viewBinding.toolbar.setTitle(R.string.work_management)
title = getString(R.string.work_management)
setReturnButton()
viewBinding.recyclerView.layoutManager = LinearLayoutManager(this)
}

View File

@ -263,7 +263,7 @@ class TemplateListAdapter(
val exportFile = context.getString(R.string.export)
viewBinding.onTouchView.setOnClickListener {
val bottomSheetDialog =
BottomSheetDialog(context, R.style.BottomSheetDialog)
BottomSheetDialog(context)
val templateBottomDialogBinding =
TemplateBottomDialogBinding.inflate(LayoutInflater.from(context))
bottomSheetDialog.setContentView(templateBottomDialogBinding.root)

View File

@ -22,6 +22,7 @@ import android.text.style.ForegroundColorSpan
import android.text.style.StyleSpan
import androidx.appcompat.app.AlertDialog
import androidx.core.text.toSpannable
import com.coldmint.dialog.CoreDialog
import com.google.android.material.dialog.MaterialAlertDialogBuilder
@ -41,7 +42,6 @@ abstract class BaseAdapter<ViewBindingType : ViewBinding, DataType>(
private val bold = StyleSpan(Typeface.BOLD)
/**
* 建立搜索标题注意当[BaseAdapter.keyWord]为空时永远返回null
* @param title String 标题
@ -147,7 +147,6 @@ abstract class BaseAdapter<ViewBindingType : ViewBinding, DataType>(
* @param cancelable Boolean 是否可取消
* @param checkBoxPrompt 选择框显示的文本
*/
@Deprecated("已废弃")
fun showDeleteItemDialog(
name: String,
index: Int,
@ -155,6 +154,24 @@ abstract class BaseAdapter<ViewBindingType : ViewBinding, DataType>(
cancelable: Boolean = false,
checkBoxPrompt: String? = null
) {
val coreDialog = CoreDialog(context).setTitle(R.string.delete_title).setMessage(
String.format(
context.getString(R.string.delete_prompt),
name
)
).setNegativeButton(R.string.dialog_cancel) {}
coreDialog.setCancelable(cancelable)
coreDialog.setCheckboxBox(checkBoxPrompt)
coreDialog.setPositiveButton(R.string.dialog_ok) {
if (onClickPositiveButton == null) {
removeItem(index)
} else {
if (onClickPositiveButton.invoke(index, coreDialog.isChecked())) {
removeItem(index)
}
}
}.show()
// var checked = false
// val dialog = MaterialAlertDialogBuilder(context)
// if (checkBoxPrompt != null) {

View File

@ -111,6 +111,15 @@ class CommentDialog(context: Context) : BaseAppDialog<CommentDialog>(context) {
}
}
override fun setTitle(string: String): CommentDialog {
viewBinding.titleView.text = string
return this
}
override fun setTitle(stringRes: Int): CommentDialog {
viewBinding.titleView.setText(stringRes)
return this }
/**
* 设置提交函数
* 返回true则结束对话框

View File

@ -1,34 +1,39 @@
package com.coldmint.rust.pro.fragments
import com.coldmint.rust.core.ModClass
import android.view.LayoutInflater
import android.os.Bundle
import com.coldmint.rust.pro.R
import androidx.recyclerview.widget.LinearLayoutManager
import android.os.Looper
import com.coldmint.rust.pro.tool.GlobalMethod
import com.coldmint.rust.pro.tool.AppSettings
import com.google.android.material.snackbar.Snackbar
import com.google.android.material.bottomsheet.BottomSheetDialog
import com.coldmint.rust.core.dataBean.ModConfigurationData
import android.annotation.SuppressLint
import android.content.res.ColorStateList
import android.graphics.drawable.Drawable
import android.graphics.drawable.GradientDrawable
import android.os.Build
import android.os.Bundle
import android.os.Handler
import android.view.View
import android.widget.*
import android.os.Looper
import android.view.LayoutInflater
import android.view.Window
import androidx.core.view.ViewCompat
import androidx.core.view.isVisible
import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.LinearLayoutManager
import com.coldmint.rust.core.ModClass
import com.coldmint.rust.core.dataBean.ModConfigurationData
import com.coldmint.rust.core.tool.FileOperator
import com.coldmint.rust.pro.MainActivity
import com.coldmint.rust.pro.R
import com.coldmint.rust.pro.adapters.ModActionAdapter
import com.coldmint.rust.pro.adapters.ModAdapter
import com.coldmint.rust.pro.base.BaseFragment
import com.coldmint.rust.pro.databinding.ModDialogBinding
import com.coldmint.rust.pro.databinding.ModFragmentBinding
import com.coldmint.rust.pro.databinding.ModListItemBinding
import com.google.android.material.divider.MaterialDividerItemDecoration
import com.coldmint.rust.pro.tool.AppSettings
import com.coldmint.rust.pro.tool.GlobalMethod
import com.google.android.material.bottomsheet.BottomSheetDialog
import com.google.android.material.color.MaterialColors
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.android.material.dialog.MaterialDialogs
import com.google.android.material.shape.MaterialShapeDrawable
import com.google.android.material.snackbar.Snackbar
import java.io.File
import java.util.ArrayList
import java.util.concurrent.Executors
import kotlin.concurrent.thread
@ -248,12 +253,15 @@ class ModFragment : BaseFragment<ModFragmentBinding>() {
loadMods()
}
@SuppressLint("RestrictedApi")
fun onClickItemWork(viewBinding: ModListItemBinding, modClass: ModClass) {
val context = requireContext()
val modDialogBinding =
ModDialogBinding.inflate(LayoutInflater.from(context))
val bottomSheetDialog =
BottomSheetDialog(context, R.style.BottomSheetDialog)
BottomSheetDialog(context)
modDialogBinding.modNameView.text = viewBinding.modNameView.text
modDialogBinding.modNameDescription.text = viewBinding.modIntroductionView.text
val configurationManager = modClass.modConfigurationManager

View File

@ -21,7 +21,6 @@ import com.coldmint.rust.pro.tool.AppSettings
import com.coldmint.rust.pro.tool.GlobalMethod
class UserInfoFragment : BaseFragment<FragmentUserInfoBinding>() {
lateinit var token: String
lateinit var account: String
/**
@ -103,11 +102,10 @@ class UserInfoFragment : BaseFragment<FragmentUserInfoBinding>() {
override fun onResume() {
super.onResume()
val token = appSettings.getValue(AppSettings.Setting.Token, "")
if (token.isNotBlank()) {
User.getUserActivationInfo(token, object : ApiCallBack<ActivationInfo> {
override fun onFailure(e: Exception) {
viewBinding.nameView.text = account
loadRecyclerView(3)
@ -126,9 +124,11 @@ class UserInfoFragment : BaseFragment<FragmentUserInfoBinding>() {
.apply(GlobalMethod.getRequestOptions(true))
.into(viewBinding.headIconView)
}
viewBinding.emailView.text = t.data.email
loadRecyclerView(t.data.permission)
} else {
viewBinding.nameView.text = t.data.userName
// Toast.makeText(requireContext(), t.toString(), Toast.LENGTH_SHORT).show()
viewBinding.nameView.text = account
loadRecyclerView(3)
}
}
@ -138,7 +138,6 @@ class UserInfoFragment : BaseFragment<FragmentUserInfoBinding>() {
}
override fun whenViewCreated(inflater: LayoutInflater, savedInstanceState: Bundle?) {
token = appSettings.getValue(AppSettings.Setting.Token, "")
account = appSettings.getValue(AppSettings.Setting.Account, "")
viewBinding.myHomeView.setOnClickListener {
val intent = Intent(

View File

@ -313,7 +313,6 @@ class StartViewModel(application: Application) : BaseAndroidViewModel(applicatio
} catch (e: Exception) {
e.printStackTrace()
}
importingTemplatePackage("ling.rp")
importingTemplatePackage("baseTemplate.rp")
}

View File

@ -2,7 +2,8 @@
android:width="200dp"
android:height="200dp"
android:viewportWidth="1024"
android:viewportHeight="1024">
android:viewportHeight="1024"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="#FF000000"
android:pathData="M1002.67,484.27c0,-224 -219.73,-405.33 -490.67,-405.33s-490.67,181.33 -490.67,405.33c0,221.87 219.73,403.2 490.67,403.2 57.6,0 113.07,-8.53 168.53,-23.47l134.4,76.8c4.27,2.13 8.53,4.27 14.93,4.27 6.4,0 12.8,-2.13 17.07,-6.4 8.53,-6.4 12.8,-19.2 10.67,-32l-34.13,-110.93c113.07,-76.8 179.2,-189.87 179.2,-311.47zM772.27,759.47c-10.67,6.4 -17.07,21.33 -12.8,34.13l19.2,61.87 -81.07,-46.93c-4.27,-2.13 -8.53,-4.27 -14.93,-4.27 -2.13,0 -6.4,0 -8.53,2.13 -51.2,17.07 -106.67,25.6 -162.13,25.6 -238.93,0 -433.07,-155.73 -433.07,-345.6 0,-189.87 194.13,-345.6 433.07,-345.6 238.93,0 433.07,155.73 433.07,345.6 0,106.67 -61.87,206.93 -172.8,273.07z"/>

View File

@ -2,7 +2,8 @@
android:width="200dp"
android:height="200dp"
android:viewportWidth="1024"
android:viewportHeight="1024">
android:viewportHeight="1024"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="#FF000000"
android:pathData="M161.71,957.01h700.59a75.95,75.95 0,0 0,76.37 -76.37V453.97a75.52,75.52 0,0 0,-76.37 -75.95h-75.95v-103.68c0,-133.97 -116.05,-231.68 -274.35,-231.68s-274.35,97.71 -274.35,231.68v103.68h-75.95a75.52,75.52 0,0 0,-76.37 75.95V880.64a75.95,75.95 0,0 0,76.37 76.37zM328.96,274.35c0,-97.71 94.72,-140.37 183.04,-140.37s183.04,42.67 183.04,140.37v103.68H328.96zM176.64,469.33h670.72v396.37H176.64z"/>

View File

@ -2,7 +2,8 @@
android:width="207.22656dp"
android:height="200dp"
android:viewportWidth="1061"
android:viewportHeight="1024">
android:viewportHeight="1024"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="#FF000000"
android:pathData="M712.81,420.37l-54.83,0c0,70.66 -57.28,127.94 -127.93,127.94s-127.95,-57.28 -127.95,-127.94l-54.84,0c0,100.94 81.84,182.77 182.78,182.77S712.81,521.31 712.81,420.37z"/>

View File

@ -2,7 +2,8 @@
android:width="266.79688dp"
android:height="200dp"
android:viewportWidth="1366"
android:viewportHeight="1024">
android:viewportHeight="1024"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="#FF000000"
android:pathData="M1230.15,778.4 L1230.15,472.6 1364,420.86 1269.88,280.45 1353.17,294.26 1353.85,290.26 1360.33,280.62 1204.75,176.19 1202.7,179.17 1203.98,175.6 735.28,1.09 734,4.5 732.8,1 182.18,183.53 181.84,182.93 179.54,184.55 179.11,184.46 178.51,185.31 0,311.57 7.08,321.54 8.78,325.8 106.13,285.74 35.21,384.12 175.95,463.06 176.12,775.92 179.96,775.92 178.09,779.33 616.79,1023.91 616.87,1023.83 616.87,1024 632.3,1023.91 632.3,1024 632.55,1023.91 632.81,1023.91 632.81,1023.83 1230.24,778.57 1230.15,778.4 1230.15,778.4ZM1319.5,272.52 L1257.69,262.3 1219.59,205.43 1319.5,272.52 1319.5,272.52ZM742.44,20.78 L1180.88,184.03 742.44,348.31 742.44,20.78 742.44,20.78ZM1194.1,196.14 L1339.62,413.18 733.92,647.28 633.83,406.11 1194.1,196.14 1194.1,196.14ZM63.93,285.82 L149.78,225.12 123.79,261.27 63.93,285.82 63.93,285.82ZM58.65,379 L134.1,274.31 135.97,273.55 135.46,272.35 184.31,204.49 612.69,405.85 536.99,647.37 58.65,379 58.65,379ZM192.07,768.85 L191.9,472.09 546.28,670.89 614.91,451.97 616.69,1005.67 192.07,768.85 192.07,768.85ZM200.25,194.26 L726.5,19.84 726.5,354.28 623.18,393.07 200.25,194.26 200.25,194.26ZM1214.21,767.82 L632.73,1006.52 630.93,440.72 725.14,667.83 1214.21,478.83 1214.21,767.82 1214.21,767.82Z"/>

View File

@ -2,7 +2,8 @@
android:width="200dp"
android:height="200dp"
android:viewportWidth="1024"
android:viewportHeight="1024">
android:viewportHeight="1024"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="#FF000000"
android:pathData="M975.58,791.07c0,13.18 -10.73,23.86 -23.96,23.86a23.91,23.91 0,0 1,-23.96 -23.86c0,-113.25 -79.43,-207.58 -185.69,-232v-1.19c-14.2,-4.37 -24.71,-17.07 -24.71,-32.63 0,-16.98 12.48,-30.45 28.65,-33.45 50.38,-22.24 85.9,-71.82 85.9,-130.22 0,-79.09 -64.34,-143.19 -143.75,-143.19v-0.29A23.74,23.74 0,0 1,665.6 194.54c0,-12.66 9.97,-22.77 22.46,-23.57V170.67c0.34,0 0.65,0.1 0.99,0.1 0.17,0 0.34,-0.1 0.51,-0.1 0.51,0 0.97,0.27 1.48,0.31 104.45,1.62 188.69,86.19 188.69,190.58 0,68.71 -36.76,128.44 -91.48,162.07 109.19,40.62 187.32,144.55 187.32,267.45zM51.2,791.07c0,-122.88 78.13,-226.83 187.31,-267.45 -54.7,-33.62 -91.48,-93.35 -91.48,-162.07 0,-104.4 84.26,-188.96 188.71,-190.58 0.51,-0.03 0.96,-0.31 1.48,-0.31 0.17,0 0.34,0.1 0.51,0.1 0.34,0 0.65,-0.1 0.99,-0.1v0.31c12.49,0.8 22.46,10.91 22.46,23.55 0,12.65 -9.97,22.75 -22.46,23.55v0.31c-79.39,0 -143.75,64.1 -143.75,143.19 0,58.4 35.52,107.98 85.9,130.22 16.18,3 28.65,16.47 28.65,33.45 0,15.58 -10.51,28.26 -24.71,32.63v1.19c-106.26,24.42 -185.69,118.75 -185.69,232 0,13.18 -10.73,23.86 -23.96,23.86A23.91,23.91 0,0 1,51.2 791.07z"/>

View File

@ -1,5 +1,11 @@
<vector android:height="24dp" android:tint="#000000"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M10,6L8.59,7.41 13.17,12l-4.58,4.59L10,18l6,-6z"/>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M10,6L8.59,7.41 13.17,12l-4.58,4.59L10,18l6,-6z" />
</vector>

View File

@ -1,9 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M15.5,14h-0.79l-0.28,-0.27C15.41,12.59 16,11.11 16,9.5 16,5.91 13.09,3 9.5,3S3,5.91 3,9.5 5.91,16 9.5,16c1.61,0 3.09,-0.59 4.23,-1.57l0.27,0.28v0.79l5,4.99L20.49,19l-4.99,-5zM9.5,14C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z"/>
android:pathData="M15.5,14h-0.79l-0.28,-0.27C15.41,12.59 16,11.11 16,9.5 16,5.91 13.09,3 9.5,3S3,5.91 3,9.5 5.91,16 9.5,16c1.61,0 3.09,-0.59 4.23,-1.57l0.27,0.28v0.79l5,4.99L20.49,19l-4.99,-5zM9.5,14C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z" />
</vector>

View File

@ -1,9 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="200dp"
android:height="200dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="1024"
android:viewportHeight="1024">
<path
android:fillColor="#FF000000"
android:pathData="M913.94,113.33c-32.94,-32.95 -76.9,-51.09 -123.76,-51.09s-90.82,18.14 -123.76,51.09L416.74,363c-32.95,32.94 -51.09,76.9 -51.09,123.76s18.14,90.82 51.09,123.76c25.41,25.41 57.58,42.14 93.05,48.4 1.76,0.31 3.52,0.46 5.25,0.46 14.29,0 26.95,-10.24 29.52,-24.8 2.88,-16.32 -8.02,-31.89 -24.34,-34.77 -23.28,-4.11 -44.38,-15.08 -61.04,-31.74 -21.61,-21.61 -33.51,-50.49 -33.51,-81.32s11.9,-59.71 33.51,-81.32l15.86,-15.86c-0.27,1.12 -0.48,2.27 -0.62,3.44 -1.96,16.46 9.8,31.39 26.26,33.34 25.86,3.07 49.21,14.38 67.53,32.69 21.61,21.61 33.51,50.49 33.51,81.32s-11.9,59.71 -33.51,81.32L318.54,871.37c-21.61,21.61 -50.49,33.51 -81.32,33.51 -30.83,0 -59.71,-11.9 -81.32,-33.51 -21.61,-21.61 -33.51,-50.49 -33.51,-81.32s11.9,-59.71 33.51,-81.32l169.44,-169.44c11.72,-11.72 11.72,-30.72 0,-42.44 -11.72,-11.72 -30.72,-11.72 -42.44,0L113.45,666.28c-32.95,32.94 -51.09,76.9 -51.09,123.76 0,46.87 18.14,90.82 51.09,123.76 32.94,32.95 76.9,51.09 123.76,51.09s90.82,-18.15 123.76,-51.09l249.67,-249.67c32.95,-32.94 51.09,-76.9 51.09,-123.76 -0,-46.87 -18.15,-90.82 -51.09,-123.76 -27.53,-27.54 -64.07,-45.24 -102.89,-49.85 -3.62,-0.43 -7.16,-0.2 -10.51,0.6l211.59,-211.59c21.61,-21.61 50.49,-33.51 81.32,-33.51s59.71,11.9 81.32,33.51c21.61,21.61 33.51,50.49 33.51,81.32s-11.9,59.71 -33.51,81.32l-150.18,150.18c-11.72,11.72 -11.72,30.72 0,42.44 11.72,11.72 30.72,11.72 42.44,0l150.18,-150.18c32.95,-32.94 51.09,-76.9 51.09,-123.76C965.03,190.23 946.88,146.27 913.94,113.33z"/>
android:pathData="M913.94,113.33c-32.94,-32.95 -76.9,-51.09 -123.76,-51.09s-90.82,18.14 -123.76,51.09L416.74,363c-32.95,32.94 -51.09,76.9 -51.09,123.76s18.14,90.82 51.09,123.76c25.41,25.41 57.58,42.14 93.05,48.4 1.76,0.31 3.52,0.46 5.25,0.46 14.29,0 26.95,-10.24 29.52,-24.8 2.88,-16.32 -8.02,-31.89 -24.34,-34.77 -23.28,-4.11 -44.38,-15.08 -61.04,-31.74 -21.61,-21.61 -33.51,-50.49 -33.51,-81.32s11.9,-59.71 33.51,-81.32l15.86,-15.86c-0.27,1.12 -0.48,2.27 -0.62,3.44 -1.96,16.46 9.8,31.39 26.26,33.34 25.86,3.07 49.21,14.38 67.53,32.69 21.61,21.61 33.51,50.49 33.51,81.32s-11.9,59.71 -33.51,81.32L318.54,871.37c-21.61,21.61 -50.49,33.51 -81.32,33.51 -30.83,0 -59.71,-11.9 -81.32,-33.51 -21.61,-21.61 -33.51,-50.49 -33.51,-81.32s11.9,-59.71 33.51,-81.32l169.44,-169.44c11.72,-11.72 11.72,-30.72 0,-42.44 -11.72,-11.72 -30.72,-11.72 -42.44,0L113.45,666.28c-32.95,32.94 -51.09,76.9 -51.09,123.76 0,46.87 18.14,90.82 51.09,123.76 32.94,32.95 76.9,51.09 123.76,51.09s90.82,-18.15 123.76,-51.09l249.67,-249.67c32.95,-32.94 51.09,-76.9 51.09,-123.76 -0,-46.87 -18.15,-90.82 -51.09,-123.76 -27.53,-27.54 -64.07,-45.24 -102.89,-49.85 -3.62,-0.43 -7.16,-0.2 -10.51,0.6l211.59,-211.59c21.61,-21.61 50.49,-33.51 81.32,-33.51s59.71,11.9 81.32,33.51c21.61,21.61 33.51,50.49 33.51,81.32s-11.9,59.71 -33.51,81.32l-150.18,150.18c-11.72,11.72 -11.72,30.72 0,42.44 11.72,11.72 30.72,11.72 42.44,0l150.18,-150.18c32.95,-32.94 51.09,-76.9 51.09,-123.76C965.03,190.23 946.88,146.27 913.94,113.33z" />
</vector>

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:useLevel="true">
<corners
android:topLeftRadius="16dp"
android:topRightRadius="16dp" />
<solid android:color="?android:windowBackground" />
</shape>

View File

@ -4,13 +4,13 @@
android:id="@+id/drawerlayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true">
android:animateLayoutChanges="true"
android:fitsSystemWindows="false">
<com.google.android.material.circularreveal.coordinatorlayout.CircularRevealCoordinatorLayout
android:id="@+id/rootLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
@ -65,7 +65,8 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:elevation="2dp"
android:fitsSystemWindows="false"
app:menu="@menu/menu_drawer_left" />
</androidx.drawerlayout.widget.DrawerLayout>

View File

@ -2,7 +2,8 @@
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<com.google.android.material.appbar.AppBarLayout
@ -257,10 +258,9 @@
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_gravity="bottom|right"
android:layout_margin="16dp"
android:src="@drawable/add"
android:visibility="gone"
app:tint="@color/white" />
android:visibility="gone" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@ -239,7 +239,8 @@
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp" />
android:layout_marginTop="16dp"
app:dividerThickness="0.8dp" />
</LinearLayout>

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<merge>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
@ -21,11 +22,10 @@
app:cardElevation="2dp">
<TextView
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/compilation_prompt"
android:textColor="@color/black"
android:textSize="15dp" />
android:text="@string/compilation_prompt" />
</LinearLayout>
</androidx.cardview.widget.CardView>
@ -41,16 +41,17 @@
android:id="@+id/imageview"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/log" />
android:src="@drawable/log"
app:tint="?attr/colorControlNormal" />
<TextView
android:id="@+id/textview"
style="@style/TextAppearance.Material3.TitleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginTop="16dp"
android:gravity="center"
android:text="@string/compilation_prompt"
android:textSize="15dp" />
android:text="@string/compilation_prompt" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/logView"

View File

@ -23,11 +23,10 @@
app:cardElevation="2dp">
<TextView
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/file_manager"
android:textColor="@color/black"
android:textSize="15dp" />
android:text="@string/file_manager" />
</LinearLayout>
</androidx.cardview.widget.CardView>
@ -40,6 +39,7 @@
android:orientation="vertical">
<TextView
style="@style/TextAppearance.Material3.TitleSmall"
android:id="@+id/unableOpenView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -58,12 +58,11 @@
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_margin="16dp"
android:src="@drawable/add"
android:visibility="gone"
app:tint="@color/white" />
android:visibility="gone" />
</RelativeLayout>
</merge>

View File

@ -51,6 +51,7 @@
android:text="@string/name" />
<TextView
android:id="@+id/emailView"
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -66,7 +67,8 @@
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:src="@drawable/ic_baseline_chevron_right_24" />
android:src="@drawable/ic_baseline_chevron_right_24"
app:tint="?attr/colorControlNormal" />
</RelativeLayout>
</com.google.android.material.card.MaterialCardView>

View File

@ -1,33 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="24dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingBottom="16dp"
android:gravity="center_vertical"
android:fitsSystemWindows="false"
android:orientation="vertical">
<ImageView
android:layout_marginTop="32dp"
android:id="@+id/imageView"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_width="72dp"
android:layout_height="72dp"
android:layout_marginHorizontal="16dp"
android:src="@drawable/head_icon" />
<TextView
android:id="@+id/nameView"
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/user_name"
android:textSize="24sp" />
android:layout_marginHorizontal="16dp"
android:layout_marginTop="16dp"
android:text="@string/user_name" />
<TextView
android:id="@+id/emailView"
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="8dp"
android:text="@string/email" />
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="16dp"
app:dividerThickness="0.8dp" />
</LinearLayout>

View File

@ -5,9 +5,7 @@
style="@style/Widget.Material3.CardView.Filled"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
app:cardElevation="2dp"
card_view:cardCornerRadius="2dp">
android:layout_marginBottom="8dp">
<RelativeLayout
android:layout_width="match_parent"
@ -39,23 +37,23 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/name"
android:textSize="16sp" />
style="@style/TextAppearance.Material3.TitleMedium" />
<TextView
android:id="@+id/modInfo"
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/publisher_information"
android:textSize="14sp" />
android:text="@string/publisher_information" />
<TextView
style="@style/TextAppearance.Material3.BodySmall"
android:id="@+id/mod_introduction_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/describe"
android:textSize="14dp" />
android:text="@string/describe" />
</LinearLayout>
@ -65,23 +63,19 @@
android:layout_below="@id/infoLayout"
android:orientation="horizontal">
<TextView
<Button
style="@style/Widget.Material3.Button.OutlinedButton"
android:id="@+id/refusedView"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_weight="1"
android:gravity="center"
android:text="@string/refused"
android:textColor="?colorPrimary" />
android:text="@string/refused" />
<Button
android:id="@+id/consentView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_weight="1"
android:text="@string/consent" />

View File

@ -11,37 +11,38 @@
android:src="@drawable/head_icon" />
<LinearLayout
android:id="@+id/headLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignBottom="@id/iconView"
android:layout_marginLeft="8dp"
android:layout_toRightOf="@id/iconView"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_marginStart="8dp"
android:layout_toEndOf="@id/iconView"
android:gravity="center_vertical"
android:orientation="vertical">
<TextView
android:id="@+id/nameView"
style="@style/TextAppearance.Material3.TitleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/name"
android:textSize="13sp" />
android:text="@string/name" />
<TextView
android:id="@+id/timeView"
style="@style/TextAppearance.Material3.BodySmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/expiration_time_null"
android:textSize="10sp" />
android:text="@string/expiration_time_null" />
</LinearLayout>
<TextView
android:id="@+id/contentView"
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/iconView"
android:layout_below="@id/headLayout"
android:layout_marginTop="8dp"
android:text="@string/no_content" />

View File

@ -1,13 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
style="@style/Widget.Material3.CardView.Filled"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
app:cardElevation="2dp"
card_view:cardCornerRadius="2dp">
android:layout_marginBottom="8dp">
<RelativeLayout
android:layout_width="match_parent"

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp">
@ -10,11 +11,12 @@
android:layout_height="wrap_content">
<ImageView
android:padding="8dp"
android:id="@+id/iconView"
android:layout_width="75dp"
android:layout_height="75dp"
android:src="@drawable/image" />
android:padding="8dp"
android:src="@drawable/image"
app:tint="?attr/colorControlNormal" />
</com.google.android.material.circularreveal.cardview.CircularRevealCardView>
@ -32,16 +34,17 @@
<TextView
android:id="@+id/titleView"
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="标题"
android:textSize="16sp" />
android:text="标题" />
<TextView
android:id="@+id/describeView"
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:layout_marginTop="16dp"
android:text="描述" />
</LinearLayout>
@ -52,7 +55,8 @@
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:src="@drawable/ic_baseline_chevron_right_24" />
android:src="@drawable/ic_baseline_chevron_right_24"
app:tint="?attr/colorControlNormal" />
</RelativeLayout>

View File

@ -1,22 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="8dp">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
style="@style/TextAppearance.Material3.TitleMedium"
android:id="@+id/titleView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/mod_title"
android:textSize="16dp" />
android:text="@string/mod_title" />
<TextView
style="@style/TextAppearance.Material3.BodySmall"
android:id="@+id/descriptionView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/describe" />
</LinearLayout>
</LinearLayout>
<ImageView
android:layout_centerVertical="true"
android:layout_alignParentEnd="true"
android:src="@drawable/ic_baseline_chevron_right_24"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>

View File

@ -8,15 +8,15 @@
<TextView
android:id="@+id/titleView"
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="标题"
android:textColor="?colorPrimary"
android:textSize="16sp" />
android:text="标题" />
<TextView
android:id="@+id/descriptionView"
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/titleView"
@ -26,12 +26,12 @@
<TextView
android:id="@+id/agreementView"
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/descriptionView"
android:layout_marginTop="8dp"
android:text="开源协议"
android:textSize="13sp" />
android:text="开源协议" />
<ImageView
android:id="@+id/linkView"

View File

@ -14,18 +14,18 @@
android:src="@drawable/image" />
<LinearLayout
android:layout_marginStart="8dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="8dp"
android:gravity="center_vertical"
android:orientation="vertical">
<TextView
android:id="@+id/mapNameView"
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="模组名称"
android:textSize="16sp" />
android:text="模组名称" />
<!-- <TextView-->
<!-- android:visibility="gone"-->
@ -37,11 +37,11 @@
<TextView
android:id="@+id/mapUpTime"
style="@style/TextAppearance.Material3.BodySmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="更新时间"
android:textSize="14sp" />
android:text="更新时间" />
</LinearLayout>

View File

@ -1,14 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/Widget.Material3.CardView.Filled"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:orientation="vertical"
android:padding="8dp">
@ -26,6 +22,5 @@
android:layout_marginTop="8dp"
android:text="@string/describe" />
</LinearLayout>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>

View File

@ -1,17 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
style="@style/Widget.Material3.CardView.Filled"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
app:cardElevation="2dp"
card_view:cardCornerRadius="2dp">
android:layout_marginBottom="8dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp">
android:padding="16dp">
<ImageView
android:id="@+id/headIconView"
@ -20,86 +19,87 @@
android:src="@drawable/head_icon" />
<LinearLayout
android:id="@+id/headLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignTop="@id/headIconView"
android:layout_alignBottom="@id/headIconView"
android:layout_marginLeft="8dp"
android:layout_toLeftOf="@id/typeView"
android:layout_toRightOf="@id/headIconView"
android:layout_marginStart="8dp"
android:layout_toStartOf="@id/typeView"
android:layout_toEndOf="@id/headIconView"
android:gravity="center_vertical"
android:orientation="vertical">
<TextView
android:id="@+id/nameView"
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/user_name"
android:textSize="16sp" />
android:text="@string/user_name" />
<TextView
android:id="@+id/timeView"
style="@style/TextAppearance.Material3.BodySmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/time"
android:textSize="10sp" />
android:text="@string/time" />
</LinearLayout>
<TextView
android:id="@+id/typeView"
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:text="举报模组" />
<TextView
android:id="@+id/textview"
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/headIconView"
android:layout_below="@id/headLayout"
android:layout_marginTop="8dp"
android:text="@string/expiration_time_null"
android:textSize="16sp" />
android:text="@string/expiration_time_null" />
<TextView
android:id="@+id/describeView"
style="@style/TextAppearance.Material3.BodySmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/textview"
android:layout_marginTop="8dp"
android:text="@string/describe" />
<TextView
<Button
android:id="@+id/open_view"
style="@style/Widget.Material3.Button.OutlinedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/ignoreView"
android:layout_marginRight="8dp"
android:layout_toLeftOf="@id/ignoreView"
android:text="@string/view_the_report_object"
android:textColor="?attr/colorPrimary" />
android:layout_marginEnd="8dp"
android:layout_toStartOf="@id/ignoreView"
android:text="@string/view_the_report_object" />
<TextView
<Button
android:id="@+id/actionView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/open_view"
android:layout_marginRight="8dp"
android:layout_toLeftOf="@id/open_view"
android:text="@string/operation"
android:textColor="?attr/colorPrimary" />
android:layout_marginEnd="8dp"
android:layout_toStartOf="@id/open_view"
android:text="@string/operation" />
<TextView
<Button
android:id="@+id/ignoreView"
style="@style/Widget.Material3.Button.OutlinedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/describeView"
android:layout_alignParentEnd="true"
android:layout_marginTop="8dp"
android:text="@string/ignore"
android:textColor="?attr/colorPrimary" />
android:text="@string/ignore" />
</RelativeLayout>
</androidx.cardview.widget.CardView>
</com.google.android.material.card.MaterialCardView>

View File

@ -1,13 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
style="@style/Widget.Material3.CardView.Elevated"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp">
<RelativeLayout
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rootLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@ -21,7 +14,7 @@
<TextView
android:id="@+id/titleView"
style="@style/TextAppearance.Material3.BodyLarge"
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/imageView"
@ -40,6 +33,5 @@
android:layout_toEndOf="@id/imageView"
android:text="@string/no_content" />
</RelativeLayout>
</RelativeLayout>
</com.google.android.material.card.MaterialCardView>

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
@ -23,6 +24,7 @@
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_marginEnd="8dp"
android:src="@drawable/ic_baseline_chevron_right_24" />
android:src="@drawable/ic_baseline_chevron_right_24"
app:tint="?colorControlNormal" />
</RelativeLayout>

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
@ -7,13 +8,17 @@
android:padding="8dp">
<ImageView
android:src="@drawable/image"
android:id="@+id/iconView"
android:layout_width="50dp"
android:layout_height="50dp" />
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/image"
app:tint="?attr/colorControlNormal" />
<TextView
android:id="@+id/titleView"
android:singleLine="true"
android:ellipsize="end"
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"

View File

@ -15,7 +15,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginStart="8dp"
android:orientation="vertical">
<TextView
@ -23,9 +23,10 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/mod_title"
android:textSize="16sp" />
style="@style/TextAppearance.Material3.TitleMedium" />
<TextView
style="@style/TextAppearance.Material3.BodyMedium"
android:id="@+id/descriptionView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@ -17,7 +17,7 @@
android:layout_alignTop="@id/iconView"
android:layout_alignBottom="@id/iconView"
android:layout_marginStart="8dp"
android:layout_toLeftOf="@id/actionView"
android:layout_toStartOf="@id/actionView"
android:layout_toEndOf="@id/iconView"
android:gravity="center_vertical"
android:orientation="vertical">
@ -27,9 +27,12 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/name"
android:textSize="16sp" />
style="@style/TextAppearance.Material3.TitleMedium" />
<TextView
android:singleLine="true"
android:ellipsize="end"
style="@style/TextAppearance.Material3.BodySmall"
android:id="@+id/describeView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -37,8 +40,9 @@
android:text="@string/describe" />
</LinearLayout>
<TextView
<Button
android:id="@+id/actionView"
style="@style/Widget.Material3.Button.TonalButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"

View File

@ -7,13 +7,16 @@
<ImageView
android:id="@+id/headIconView"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_width="56dp"
android:layout_height="56dp"
android:src="@drawable/head_icon" />
<TextView
android:id="@+id/nameView"
android:layout_marginTop="8dp"
android:singleLine="true"
android:ellipsize="end"
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/name" />

View File

@ -15,49 +15,49 @@
android:src="@drawable/image" />
<LinearLayout
android:layout_toLeftOf="@id/more"
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@id/mod_icon"
android:layout_toStartOf="@id/more"
android:layout_toEndOf="@id/mod_icon"
android:gravity="center_vertical"
android:orientation="vertical">
<TextView
android:id="@+id/mod_name_View"
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="模组名称"
android:textSize="16sp" />
android:text="模组名称" />
<TextView
android:id="@+id/mod_introduction_view"
style="@style/TextAppearance.Material3.BodySmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="介绍"
android:textSize="14sp" />
android:text="介绍" />
</LinearLayout>
<!-- <TextView-->
<!-- android:id="@+id/soldOutModView"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_below="@id/linearLayout"-->
<!-- android:layout_alignParentEnd="true"-->
<!-- android:text="@string/sold_out_mod" />-->
<!-- <TextView-->
<!-- android:id="@+id/soldOutModView"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_below="@id/linearLayout"-->
<!-- android:layout_alignParentEnd="true"-->
<!-- android:text="@string/sold_out_mod" />-->
<ImageView
android:id="@+id/more"
android:layout_centerVertical="true"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:padding="12dp"
android:src="@drawable/more"
android:layout_alignParentRight="true"/>
android:src="@drawable/more" />
</RelativeLayout>

View File

@ -13,6 +13,7 @@
<TextView
android:id="@+id/tipView"
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"

View File

@ -13,8 +13,8 @@
android:id="@+id/titleView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginStart="8dp"
android:text="@string/loading_data"
android:textSize="16dp" />
style="@style/TextAppearance.Material3.TitleMedium" />
</LinearLayout>

View File

@ -16,11 +16,11 @@
<TextView
android:clickable="false"
android:id="@+id/logInfoView"
android:textSize="14sp"
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/imageView"
android:layout_toRightOf="@id/imageView"
android:layout_toEndOf="@id/imageView"
android:text="@string/compilation_prompt" />
</RelativeLayout>

View File

@ -4,6 +4,7 @@
android:layout_height="wrap_content">
<TextView
style="@style/TextAppearance.Material3.BodyMedium"
android:id="@+id/file_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@ -10,6 +10,7 @@
android:id="@+id/codeView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/TextAppearance.Material3.BodyMedium"
android:text="代码"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
@ -17,6 +18,7 @@
tools:ignore="MissingConstraints" />
<Button
style="@style/Widget.Material3.Button.TonalButton"
android:id="@+id/actionView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@ -6,9 +6,9 @@
<TextView
android:id="@+id/operation"
style="@style/TextAppearance.Material3.TitleSmall"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/mod_tags"
android:textSize="16dp" />
android:text="@string/mod_tags" />
</LinearLayout>

View File

@ -1,23 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/round_angle"
android:orientation="vertical"
android:padding="5dp">
android:padding="8dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.card.MaterialCardView
style="@style/Widget.Material3.CardView.Filled"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp">
<ImageView
android:id="@+id/mod_icon"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_margin="8dp"
android:src="@drawable/image" />
</com.google.android.material.card.MaterialCardView>
<LinearLayout
android:id="@+id/mod_linearlayout"
android:layout_width="match_parent"
@ -27,19 +35,19 @@
<TextView
android:id="@+id/mod_name_View"
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:text="模组名称"
android:textSize="16dp" />
android:text="模组名称" />
<TextView
android:id="@+id/modNameDescription"
style="@style/TextAppearance.Material3.BodySmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:text="介绍"
android:textSize="14dp" />
android:text="介绍" />
</LinearLayout>
@ -53,3 +61,5 @@
</LinearLayout>

View File

@ -27,7 +27,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/not_find_mod"
android:textSize="16sp"
style="@style/TextAppearance.Material3.TitleLarge"
android:visibility="gone" />
<androidx.recyclerview.widget.RecyclerView

View File

@ -31,27 +31,27 @@
android:orientation="vertical">
<TextView
style="@style/TextAppearance.Material3.TitleMedium"
android:id="@+id/mod_name_View"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="模组名称"
android:textSize="16sp" />
android:text="模组名称" />
<TextView
style="@style/TextAppearance.Material3.BodyMedium"
android:id="@+id/mod_introduction_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="介绍"
android:textSize="14sp" />
android:text="介绍" />
<TextView
style="@style/TextAppearance.Material3.BodySmall"
android:id="@+id/mod_up_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="更新时间"
android:textSize="14sp" />
android:text="更新时间" />
</LinearLayout>

View File

@ -11,24 +11,25 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="16dp"
android:text="优化项目"
android:textSize="16dp" />
android:layout_marginStart="16dp"
style="@style/TextAppearance.Material3.TitleMedium"
android:text="优化项目" />
<TextView
android:id="@+id/numView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@id/groupCheckBox"
style="@style/TextAppearance.Material3.BodySmall"
android:layout_toStartOf="@id/groupCheckBox"
android:text="@string/filenum" />
<CheckBox
android:id="@+id/groupCheckBox"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentRight="true"
android:layout_marginLeft="8dp"
android:layout_alignParentEnd="true"
android:layout_marginStart="8dp"
android:checked="false"
android:focusable="false"/>

View File

@ -10,25 +10,26 @@
android:id="@+id/nameView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:text="优化项目"
android:textSize="16dp" />
android:layout_marginStart="16dp"
style="@style/TextAppearance.Material3.TitleMedium"
android:text="优化项目" />
<TextView
android:id="@+id/descriptionView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/nameView"
android:layout_alignLeft="@id/nameView"
android:layout_alignStart="@id/nameView"
android:layout_marginTop="5dp"
android:layout_toLeftOf="@id/itemCheckBox"
style="@style/TextAppearance.Material3.BodySmall"
android:layout_toStartOf="@id/itemCheckBox"
android:text="描述" />
<CheckBox
android:id="@+id/itemCheckBox"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:checked="true" />

View File

@ -2,9 +2,8 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/round_angle"
android:orientation="vertical"
android:padding="5dp">
android:padding="8dp">
<androidx.recyclerview.widget.RecyclerView

View File

@ -19,8 +19,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/not_find_template"
android:textSize="16sp" />
style="@style/TextAppearance.Material3.TitleLarge"
android:text="@string/not_find_template" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/templateList"

View File

@ -6,17 +6,17 @@
<TextView
android:id="@+id/template_name"
android:textSize="16dp"
android:layout_alignParentLeft="true"
android:layout_marginLeft="16dp"
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_alignParentStart="true"
android:layout_marginStart="24dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="模板名"/>
<TextView
style="@style/TextAppearance.Material3.BodySmall"
android:id="@+id/template_num"
android:textSize="14dp"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="项目数"/>

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp">
@ -8,17 +9,18 @@
android:id="@+id/template_icon_view"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:src="@drawable/image" />
android:layout_alignParentStart="true"
android:src="@drawable/image"
app:tint="?attr/colorControlNormal" />
<TextView
android:id="@+id/name_view"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:layout_centerVertical="true"
android:layout_toRightOf="@id/template_icon_view"
android:layout_toEndOf="@id/template_icon_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="14dp"
style="@style/TextAppearance.Material3.TitleMedium"
android:text="模板名称" />
</RelativeLayout>

View File

@ -8,15 +8,16 @@
<TextView
style="@style/TextAppearance.Material3.TitleMedium"
android:id="@+id/nameView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="模板名称"
android:textSize="15dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
style="@style/TextAppearance.Material3.BodyMedium"
android:id="@+id/developerView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -30,6 +31,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
style="@style/TextAppearance.Material3.BodySmall"
android:text="描述(错误信息)"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/developerView" />

View File

@ -10,24 +10,25 @@
<ImageView
android:id="@+id/iconView"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_width="56dp"
android:layout_height="56dp"
android:src="@drawable/image" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginStart="8dp"
android:orientation="vertical">
<TextView
style="@style/TextAppearance.Material3.TitleMedium"
android:id="@+id/unitNameView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="单位名称"
android:textSize="16dp" />
android:text="单位名称" />
<TextView
style="@style/TextAppearance.Material3.BodyMedium"
android:id="@+id/unitDescribeView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -35,6 +36,7 @@
android:text="单位描述" />
<TextView
style="@style/TextAppearance.Material3.BodySmall"
android:id="@+id/unitTimeView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@ -12,17 +12,17 @@
<TextView
android:id="@+id/titleView"
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="标题"
android:textSize="16dp" />
android:layout_alignParentStart="true"
android:text="标题" />
<androidx.cardview.widget.CardView
android:id="@+id/cardView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
app:cardBackgroundColor="@color/blue_500"
app:cardCornerRadius="3dp">
@ -30,15 +30,15 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="1dp">
android:padding="4dp">
<TextView
android:id="@+id/scopeView"
style="@style/TextAppearance.Material3.BodySmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="作用域"
android:textColor="@color/white"
android:textSize="13dp" />
android:textColor="@color/white" />
</LinearLayout>
@ -47,33 +47,33 @@
<TextView
android:id="@+id/descriptionView"
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginTop="8dp"
android:text="描述" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp">
android:layout_marginTop="8dp">
<TextView
<Button
android:id="@+id/editView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:layout_toLeftOf="@id/removeView"
android:text="@string/edit"
android:textColor="?colorPrimary" />
android:layout_marginEnd="8dp"
android:layout_toStartOf="@id/removeView"
android:text="@string/edit" />
<TextView
<Button
android:id="@+id/removeView"
style="@style/Widget.Material3.Button.OutlinedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="@string/remove"
android:textColor="?colorPrimary" />
android:layout_alignParentEnd="true"
android:text="@string/remove" />
</RelativeLayout>

View File

@ -3,18 +3,18 @@
<string name="dialog_title">Access Request</string>
<string name="dialog_msg29">We need file management permissions to read the mod list, edit source files, import and export mods.</string>
<string name="dialog_confirm">Authorize</string>
<string name="dialog_close">quit</string>
<string name="dialog_close">Quit</string>
<string name="dialog_close2">Backstage</string>
<string name="verification">Device verification</string>
<string name="dialog_close_tip">It has been decompressed in the background.</string>
<string name="open_type">open way</string>
<string name="open_type">Open With</string>
<string name="parse_file_exception">file parsing exception</string>
<string name="select_directents">select directory</string>
<string name="select_file">Select the file</string>
<string name="select_file_ok">Selected\\"%1$s\\"</string>
<string name="select_image">select image</string>
<string name="change_image">change image</string>
<string name="del_image">remove image</string>
<string name="select_directents">Select Directory</string>
<string name="select_file">Select File</string>
<string name="select_file_ok">Selected\"%1$s\"</string>
<string name="select_image">Select Image</string>
<string name="change_image">Change Image</string>
<string name="del_image">Remove Image</string>
<string name="remove">remove</string>
<string name="remove_image_item">Remove image at \\"%1$s\\"\?</string>
<string name="open">Open</string>
@ -31,7 +31,7 @@
<string name="always_allow">always allow</string>
<string name="pay_yes">Yes, did receive</string>
<string name="pay_no">no, no</string>
<string name="creation_wizard">Create wizard</string>
<string name="creation_assistant">Create Assistant</string>
<string name="dialog_cancel">Cancel</string>
<string name="no_longer_prompt">Do not remind again</string>
<string name="navigation_tip">A total of %1$d items support quick navigation.</string>
@ -51,7 +51,7 @@
<string name="repair_complete">Repair done</string>
<string name="dialog_unziping">Extracting %1$s…</string>
<string name="not_find_mod">no mods</string>
<string name="menu_title1">module</string>
<string name="menu_title1">Mod</string>
<string name="file_name">file name:</string>
<string name="file">document</string>
<string name="menu_title3">data set</string>
@ -81,7 +81,7 @@
<string name="mod_tags">Label</string>
<string name="tags_error">Please enter a label.</string>
<string name="mod_tags_help">Please use \\",\\" to separate tags, works with the same tag will be classified into one category.</string>
<string name="create_mod_lable">Create mods</string>
<string name="create_mod_lable">Create mod</string>
<string name="create_mod_describe">Create a new mod.</string>
<string name="filter">filter</string>
<string name="activate_the_account">Activate account</string>
@ -94,7 +94,7 @@
<string name="enter_bookmark_name">Please enter a bookmark name.</string>
<string name="enter_file_path">Please enter a file path.</string>
<string name="create_bookmark">Create bookmarks</string>
<string name="name_error">Please enter a module name.</string>
<string name="name_error">Please enter a mod name.</string>
<string name="unit_name_error">Please enter a unit name.</string>
<string name="action_name_error">Please enter an event name.</string>
<string name="database_null">This dataset could not be loaded, error: %1$s.</string>
@ -109,7 +109,7 @@
<string name="cannot_be_accessed_this_directory">You do not have permission to access this directory.</string>
<string name="unable_to_open_this_directory">This directory cannot be opened.</string>
<string name="select_game_pack">Choose a game pack</string>
<string name="sold_out_mod">Remove the module</string>
<string name="sold_out_mod">Remove the mod</string>
<string name="set_game_pack">Set up game packs</string>
<string name="mod_action1">Editing unit</string>
<string name="mod_action2">Edit information</string>
@ -120,12 +120,12 @@
<string name="import_template">Importing a Template Package</string>
<string name="import_template_describe">Import the template package from file management.</string>
<string name="import_mod">The import module,</string>
<string name="import_mod_from_file_manager_describe">Import modules from file management.</string>
<string name="import_mod_from_recycle_bin">The recycle bin</string>
<string name="import_mod_from_recycle_bin_describe">Restore modules from the recycle bin.</string>
<string name="import_mod">Import mod</string>
<string name="import_mod_from_file_manager_describe">Import mods from file management.</string>
<string name="import_mod_from_recycle_bin">Recycle bin</string>
<string name="import_mod_from_recycle_bin_describe">Restore mods from the recycle bin.</string>
<string name="import_mod_from_package_directory">Package directory</string>
<string name="import_mod_from_package_directory_describe">Import the previously packaged modules.</string>
<string name="import_mod_from_package_directory_describe">Import the previously packaged mods.</string>
<string name="open_action3">Unzip the files</string>
<string name="open_action4">The default mode is enabled</string>
<string name="not_find_units">No unit found</string>
@ -168,7 +168,7 @@
<string name="copy_file_name">Copy file name</string>
<string name="copy_file_path">Copy file path</string>
<string name="error">error</string>
<string name="load_mod_file">Module file at \\"%1$s\\" has been read.</string>
<string name="load_mod_file">Mod file at \\"%1$s\\" has been read.</string>
<string name="file_operation">File operations</string>
<string name="operation">operation</string>
<string name="copy_file_absolutely_path">Copy the absolute path (starting with ROOT)</string>
@ -176,7 +176,7 @@
<string name="unexpected_error">An unexpected error occurred and the soft keyboard recall failed</string>
<string name="create_folder">Creating a folder</string>
<string name="photo_album">Photo album</string>
<string name="unable_load_mod_info">Unable to load module information, please %1$s.</string>
<string name="unable_load_mod_info">Unable to load mod information, please %1$s.</string>
<string name="unit_and_downloadnum">Unit number: % 1 $d | downloads | version name: % 2 $d % 3 $s</string>
<string name="unit_num">Unit number: % 1 $d</string>
<string name="system_file_manager">file manager</string>
@ -247,7 +247,7 @@
<string name="import_failed">%1$s import failed.</string>
<string name="app_version_error">%1$s was developed for advanced assistant and cannot be imported.</string>
<string name="import_failed2">Unable to read message file.</string>
<string name="import_tip2">Import this module (%1$s)\?</string>
<string name="import_tip2">Import this mod (%1$s)\?</string>
<string name="import_tip3">Import this template package (%1$s)\?</string>
<string name="editer_show_line_num">Show line Numbers</string>
<string name="empty_file">Empty file</string>
@ -276,7 +276,7 @@
<!-- Preference Titles -->
<string name="sync_header">Developer options</string>
<string name="mod_title">module</string>
<string name="mod_title">Mods</string>
<string name="edit_title">The code editor</string>
<string name="template_title">The template package</string>
<string name="close">Shut down</string>
@ -315,11 +315,11 @@
<string name="plain_text_tip">Plain text works under Android 7.0.</string>
<string name="html_text_error">Your system does not support displaying Html.</string>
<string name="icon_tip">Template icon:</string>
<string name="mod_icon">Module icon:</string>
<string name="mod_icon">Mod icon:</string>
<string name="background_music">The background music</string>
<string name="map">The map</string>
<string name="map">Maps</string>
<string name="add">add</string>
<string name="play_exclusively">Play exclusively when using this module</string>
<string name="play_exclusively">Play exclusively when using this mod</string>
<string name="add_extra_maps">Add additional maps for paths</string>
<string name="disabled">disable</string>
<string name="enabled">To enable the</string>
@ -330,7 +330,7 @@
<string name="compilation_prompt">Compile the log</string>
<string name="compilationing">Compile...</string>
<string name="section">section</string>
<string name="update_database">Update the dataset using existing module data.</string>
<string name="update_database">Update the dataset using existing mod data.</string>
<string name="update_off">update</string>
<string name="update_on">Update in the...</string>
<string name="update_num">%1$s records have been updated.</string>
@ -361,17 +361,17 @@
<string name="choose_color">Choose a color</string>
<string name="game_pack">The game package</string>
<string name="select_the_game_pack">Choose a game pack</string>
<string name="enable_the_recovery_station">Module recycle bin</string>
<string name="enable_the_recovery_station">Mod recycle bin</string>
<string name="manage_the_recovery_station">Manage the recycle bin</string>
<string name="manages_files">Manage files</string>
<string name="description_of_manage_the_recovery_station">Manage your recycle bin files.</string>
<string name="description_of_the_recovery_station">When you delete a module, it is backed up to the recycle bin.</string>
<string name="description_of_the_recovery_station">When you delete a mod, it is backed up to the recycle bin.</string>
<string name="select_the_game_package_description">Set up the game pack in your app list.</string>
<string name="recovery_station_file_save_days">Retention days</string>
<string name="recovery_station_folder">Recycle bin directory</string>
<string name="donation">donation</string>
<string name="optimization">To optimize the</string>
<string name="keep_rwmod_file_description">When unpacking the module, keep the source files.</string>
<string name="keep_rwmod_file_description">When unpacking the mod, keep the source files.</string>
<string name="keep_rwmod_file">Keep source files</string>
<string name="clear_recovery_station">Empty the recycle bin</string>
<string name="setting_database_path" translatable="false">DatabasePath</string>
@ -398,8 +398,8 @@
<string name="recovery_prompt">\\"%1$s\\" has been moved to the recycle bin.</string>
<string name="recoverying_prompt">Moving \\"%1$s\\"...</string>
<string name="open_directory_of_file">Open the file directory</string>
<string name="unable_to_detect">Your modules may not be checked by the game.</string>
<string name="failed_to_check_descripiton">For 1.15 and later, set the storage to Internal(read/write) and External. The game reads and writes internal modules, while external modules are managed by assistants.</string>
<string name="unable_to_detect">Your mods may not be checked by the game.</string>
<string name="failed_to_check_descripiton">For 1.15 and later, set the storage to Internal(read/write) and External. The game reads and writes internal mods, while external mods are managed by assistants.</string>
<string name="start_game">Start the game</string>
<string name="complete_settings">Setup complete</string>
<string name="open_in_foolfactory">Use the idiot factory editor</string>
@ -409,7 +409,7 @@
<string name="restore_all">All reduction</string>
<string name="all_saves_are_completed">%1$D files saved.</string>
<string name="copyright" translatable="false">Copyright ©coldmint 2020-%1$d All Rights Reserved.</string>
<string name="about">about</string>
<string name="about">About</string>
<string name="libs">Open source license</string>
<string name="additional_selection">Additional items</string>
<string name="delete_source_file">Delete the source file after the package is complete</string>
@ -439,7 +439,7 @@
<string name="unit_directory">The unit directory</string>
<string name="setting_user_name" translatable="false">UserName</string>
<string name="user_name">The user name</string>
<string name="report_mod">Report module</string>
<string name="report_mod">Report mod</string>
<string name="report_user">To report the user</string>
<string name="view_the_report_object">Check (% 1 $s)</string>
<string name="bookmark_already_exists">The book label already exists. Please change the path.</string>
@ -462,7 +462,7 @@
<string name="value_type_manager_describe">Customize the value type and add it to the prompt.</string>
<string name="value_type_manager">Value type manager</string>
<string name="share_tip">The sharing function uses the normal packaging mode. To use the advanced packaging function (such as automatically adding Chinese annotations, removing empty files, etc.), please click \\" packaging \".</string>
<string name="packaged_mod">Packaged modules</string>
<string name="packaged_mod">Packaged mods</string>
<string name="loading_data">Loading in...</string>
<string name="advanced_search">Advanced search</string>
<string name="remove_empty_file_and_folder">Remove empty files and folders</string>
@ -500,7 +500,7 @@
<string name="scope_global">global</string>
<string name="scope_filePath">directory</string>
<string name="scope_thisfile">document</string>
<string name="scope_global_describe">Global scoped values that can be prompted anywhere in the module.</string>
<string name="scope_global_describe">Global scoped values that can be prompted anywhere in the mod.</string>
<string name="scope_filePath_describe">Directory scope, the location under the subdirectory is prompted.</string>
<string name="scope_thisfile_describe">The file scope can only be prompted within its files.</string>
<string name="scope">Scope:</string>
@ -531,16 +531,15 @@
<string name="file_type_define">Ini files are created by default.</string>
<string name="file_type_tip2">You might want to type \\"%1$s\\"\?</string>
<string name="is_building">Unit data is being loaded. Try using this feature after loading.</string>
<string name="setting_english_editing_mode">EnglishEditingMode</string>
<string name="english_editing_mode_describe">Write your modules in English, with Chinese tips and syntax highlighting.</string>
<string name="english_editing_mode_describe">Write your mods in English, with Chinese tips and syntax highlighting.</string>
<string name="english_editing_mode">Native development model</string>
<string name="mt_installed">Do you use English as your development language\? Instead of working on \\"MT manager \\", the assistant has English code hints, as well as intelligent hints for the module environment.</string>
<string name="mt_installed">Do you use English as your development language\? Instead of working on \\"MT manager \\", the assistant has English code hints, as well as intelligent hints for the mod environment.</string>
<string name="expiration_time_null">Unknown activation duration</string>
<string name="expiration_time_tip">Due time :%1$s</string>
<string name="community">community</string>
<string name="recommended">recommended</string>
<string name="ranking">ranking</string>
<string name="my">my</string>
<string name="recommended">Recommend</string>
<string name="ranking">Ranking</string>
<string name="my">My</string>
<string name="latest_release">The latest release</string>
<string name="describe_tip">Too long content displayed in the list will be truncated.</string>
<string name="describe_tip2">\\"%1$s\\" will be truncated as the list subheading.</string>
@ -553,18 +552,18 @@
<string name="from_url">From the url to add</string>
<string name="sign_error">Security verification</string>
<string name="sign_error_message">The assistant has been tampered with by a third party. To protect your device, the process has been terminated. You are recommended to install the official version, mint long-term support, research and development of new functions.</string>
<string name="id_tip">Used to identify your module and cannot be modified after publication.</string>
<string name="mod_id">Module Id</string>
<string name="auto_send">I uploaded a new module \@mod{%1$s}, check it out</string>
<string name="auto_send2">Module \@mod{%1$s}, %2$s Update log \n:%3$s</string>
<string name="id_tip">Used to identify your mod and cannot be modified after publication.</string>
<string name="mod_id">Mod Id</string>
<string name="auto_send">I uploaded a new mod \@mod{%1$s}, check it out</string>
<string name="auto_send2">Mod \@mod{%1$s}, %2$s Update log \n:%3$s</string>
<string name="default_tags">Assistant exclusive,%1$S creation</string>
<string name="mod_id_error2">The module Id can contain only letters and digits and underscores (_).</string>
<string name="mod_id_error2">The mod Id can contain only letters and digits and underscores (_).</string>
<string name="installation">The installation</string>
<string name="installation_ing">In the installation...</string>
<string name="installated">Has been installed</string>
<string name="work_of_home_page">Check the work</string>
<string name="audit">This module is hidden from the outside and only visible to you and your administrator.</string>
<string name="follow">Focus on</string>
<string name="audit">This mod is hidden from the outside and only visible to you and your administrator.</string>
<string name="follow">Follow</string>
<string name="infinite">infinite</string>
<string name="transition_cover">cover</string>
<string name="fans">fans</string>
@ -601,10 +600,10 @@
<string name="user_name_error">The user name has been occupied.</string>
<string name="email_error2">The mailbox is occupied.</string>
<string name="mod_id_error3">ModID has been occupied.</string>
<string name="mod_name_error">The module name is in use.</string>
<string name="mod_name_error">The mod name is in use.</string>
<string name="account_error3">The user cannot be found. Please check if the account is correct.</string>
<string name="password_error2">The password is incorrect.</string>
<string name="mod_package">Module package</string>
<string name="mod_package">Mod package</string>
<string name="restart_to_take_effect">I found that you have changed the image. Due to Glide cache mechanism, the assistant needs to restart to display the new image. Sorry for the inconvenience.</string>
<string name="extension">extension</string>
<string name="use_adm">Adm Multithreaded download</string>
@ -642,16 +641,15 @@
<string name="file_download_progress">Downloading %1$S %%</string>
<string name="data_transfer">The data transfer</string>
<string name="using_mobile_networks">Data network is allowed</string>
<string name="using_mobile_networks_tip">Uploading and downloading modules over a mobile network may incur additional data charges.</string>
<string name="using_mobile_networks_msg">Uploading and downloading modules over a mobile network may incur additional data charges. Still going\?</string>
<string name="setting_use_mobile_network" translatable="false">usingMobileNetwork</string>
<string name="using_mobile_networks_tip">Uploading and downloading mods over a mobile network may incur additional data charges.</string>
<string name="using_mobile_networks_msg">Uploading and downloading mods over a mobile network may incur additional data charges. Still going\?</string>
<string name="no_followers">Please follow your favorite author first</string>
<string name="my_follow">My attention</string>
<string name="no_dynamic">There is no dynamic</string>
<string name="send_dynamic">Release the dynamic</string>
<string name="time">time</string>
<string name="download_progress">Download progress</string>
<string name="download_progress_tip">Push notifications when you download modules</string>
<string name="download_progress_tip">Push notifications when you download mods</string>
<string name="share_to_dynamic">Share to dynamic</string>
<string name="all_dynamic">All of the dynamic</string>
<string name="pay_attention_new">Pay attention to new</string>
@ -662,14 +660,11 @@
<string name="warehouse">warehouse</string>
<string name="not_find_map">No map found</string>
<string name="del_map">delete</string>
<string name="setting_map_folder" translatable="false">MapFolder</string>
<string name="map_folder">Map directory</string>
<string name="setting_mod_folder" translatable="false">ModFolder</string>
<string name="mod_folder">Module directory</string>
<string name="mod_folder">Mod directory</string>
<string name="edit_map">Map editor</string>
<string name="edit_map_tip">We recommend NotTiled as a map editing tool.</string>
<string name="downlod_nottiled">Download NotTiled</string>
<string name="setting_use_the_community_as_the_launch_page">UseTheCommunityAsTheLaunchPage</string>
<string name="use_the_community_as_the_launch_page">Use the community as the launch page</string>
<string name="use_the_community_as_the_launch_page_tip">Enabled by default</string>
<string name="renewal">renewal</string>
@ -680,22 +675,22 @@
<string name="report">To report</string>
<string name="report_t">Report - % 1 $s</string>
<string name="why">The reason:</string>
<string name="picture_of_infringement">Stealing material from other modules</string>
<string name="picture_of_infringement">Stealing material from other mods</string>
<string name="erotic_elements">Contains pornographic content</string>
<string name="bloody_elements">Gory content</string>
<string name="unauthorized_handling">Unauthorized handling</string>
<string name="describe_the_indecent">Module description contains indecent language</string>
<string name="describe_the_indecent">Mod description contains indecent language</string>
<string name="others">other</string>
<string name="boy">male</string>
<string name="girl">female</string>
<string name="search_hint">Please enter your search content</string>
<string name="report_to_deal">To report to deal with</string>
<string name="banned_mod">Because of the report, was removed by the administrator.</string>
<string name="unable_to_report">This module is hidden and cannot be reported.</string>
<string name="unable_to_report2">You cannot report your own modules. If you want to remove a module, please go to \"Work Management\".</string>
<string name="unable_to_report">This mod is hidden and cannot be reported.</string>
<string name="unable_to_report2">You cannot report your own mods. If you want to remove a mod, please go to \"Work Management\".</string>
<string name="admin">The administrator</string>
<string name="super_admin">Super administrator</string>
<string name="review_mod">Review the module</string>
<string name="review_mod">Review the mod</string>
<string name="refused">Refused to</string>
<string name="remove_fans">Remove the fan</string>
<string name="coupon">coupons</string>
@ -722,7 +717,6 @@
<string name="delete_source_file_check">Deleting source Files</string>
<string name="init_all_units">Initialize the unit list...</string>
<string name="clear_cache">Clear the cache</string>
<string name="setting_clear_cache">ClearCache</string>
<string name="clear_cache_description">The cache is generated during application use and the helper is accelerated by reading the cache.</string>
<string name="cache">Cache and storage space</string>
<string name="history_cache">File opening record</string>
@ -736,7 +730,6 @@
<string name="search_unit_name">You want to search by name</string>
<string name="auto_save_describe">Automatically save the code when you switch to another program.</string>
<string name="auto_save">Automatically saved</string>
<string name="setting_auto_save">AutoSave</string>
<string name="auto_save_toast">It has been automatically saved.</string>
<string name="is_code">Is the code</string>
<string name="search_tip">Cancel the search</string>
@ -756,13 +749,11 @@
<string name="synchronous_ok">The synchronization succeeded. Procedure</string>
<string name="synchronous_failure">Synchronization failed. Procedure</string>
<string name="synchronous_ing">Synchronizing...</string>
<string name="setting_server_address">ServerAddress</string>
<string name="server_address_configuration">Server Address Configuration</string>
<string name="associated_tip">Correlation hint from %1$s</string>
<string name="login_tip">After login, you can :\n- upload, download modules. \n- Chatting with friends in the community. \n- Edit your modules in Chinese! \n- Follow your favorite creators</string>
<string name="login_tip">After login, you can :\n- upload, download mods. \n- Chatting with friends in the community. \n- Edit your mods in Chinese! \n- Follow your favorite creators</string>
<string name="error_description">What were you doing at that time\?</string>
<string name="no_error">There is no error</string>
<string name="setting_see_error_info">SeeErrorInfo</string>
<string name="see_error_info">Crash logs</string>
<string name="see_error_info_tip">View crash logs on this device.</string>
<string name="can_not_tip_value">Sorry, cannot prompt value at present.</string>
@ -826,8 +817,6 @@
<string name="experience_the_plan">User Experience Plan</string>
<string name="experience_the_plan_describe">Send software crash message anonymously .</string>
<string name="update_and_iteration">Version update and user experience planning</string>
<string name="setting_experience_the_plan" translatable="false">experiencePlan</string>
<string name="order_timeout" translatable="false">订单超时,无法支付。</string>
<string name="is_paid">Have you paid yet\? (Unpaid orders will expire and can no longer be paid for).</string>
<string name="paid_yes">Yes, I did</string>
<string name="paid_no">Give up the order</string>
@ -841,8 +830,15 @@
<string name="confirm_password_error">The passwords are inconsistent.</string>
<string name="display_source_code">Display source code</string>
<string name="dynamic_color">Dynamic color</string>
<string name="setting_dynamic_color" translatable="false">DynamicColor</string>
<string name="dynamic_color_tip">Follow the device wallpaper to change the theme color.</string>
<string name="dynamic_color_disabled">Dynamic colors are not supported on this device.</string>
<string name="title">The title</string>
<string name="hotSearch">Top Searches</string>
<string name="search_type_mod_all">All</string>
<string name="search_type_purchase_plan">plan</string>
<string name="search_type_mod_versions">Mod update log</string>
<string name="search_type_mod_comments">Mod comments</string>
<string name="search_type_dynamic">Dynamics</string>
<string name="search_type_user">Users</string>
<string name="search_type_mod">Mods</string>
</resources>

View File

@ -31,7 +31,6 @@
<string name="always_allow">あくまでも許可する</string>
<string name="pay_yes">はい,確かに受け取りました</string>
<string name="pay_no">いや、ない</string>
<string name="creation_wizard">ガイド作成</string>
<string name="dialog_cancel">キャンセル</string>
<string name="no_longer_prompt">もう提示しない</string>
<string name="navigation_tip">全%1$d項目でクイックナビゲーションに対応。</string>
@ -531,7 +530,6 @@
<string name="file_type_define">iniファイルをデフォルトで作成する。</string>
<string name="file_type_tip2">「%1$s\」と入力したいかもしれません。</string>
<string name="is_building">単位データをロードしているので、ロードしてからこの机能を使ってみてください。</string>
<string name="setting_english_editing_mode">英語編集モード</string>
<string name="english_editing_mode_describe">英語を使用してあなたのモジュールを書いて、そして中国語のヒントを持って、文法はすばらしいです。</string>
<string name="english_editing_mode">ネイティブ開発モデル</string>
<string name="mt_installed">開発言語として英語を使用していますか\?\\"MTマネージャ\\"上で仕事をするより、ヘルパーは英文コードのヒント机能と、モジュール環境のインテリジェントなヒントがあります。</string>
@ -644,7 +642,6 @@
<string name="using_mobile_networks">データネットワークを使って</string>
<string name="using_mobile_networks_tip">モバイルネットワークを使用してモジュールをアップロードすると、追加の通信料金が発生する可能性があります。</string>
<string name="using_mobile_networks_msg">モバイルネットワークを使用してモジュールをアップロードすると、追加の通信料金が発生する可能性があります。続けますか\?</string>
<string name="setting_use_mobile_network" translatable="false">usingMobileNetwork</string>
<string name="no_followers">まずは好きな著者に注目してください</string>
<string name="my_follow">私の関心は</string>
<string name="no_dynamic">動きがない</string>
@ -662,14 +659,11 @@
<string name="warehouse">倉庫</string>
<string name="not_find_map">地図が見つからない</string>
<string name="del_map">削除</string>
<string name="setting_map_folder" translatable="false">MapFolder</string>
<string name="map_folder">地図目次</string>
<string name="setting_mod_folder" translatable="false">ModFolder</string>
<string name="mod_folder">モジュールカタログ</string>
<string name="edit_map">地図を編集する</string>
<string name="edit_map_tip">地図編集ツールとしてNotTiledをお勧めします。</string>
<string name="downlod_nottiled">NotTiledをダウンロードする</string>
<string name="setting_use_the_community_as_the_launch_page">UseTheCommunityAsTheLaunchPage</string>
<string name="use_the_community_as_the_launch_page">コミュニティを立ち上げページとして使う</string>
<string name="use_the_community_as_the_launch_page_tip">デフォルトの有効化</string>
<string name="renewal">続料</string>
@ -722,7 +716,6 @@
<string name="delete_source_file_check">ソースファイルを削除する</string>
<string name="init_all_units">初期化ユニットの一覧</string>
<string name="clear_cache">キャッシュの清算</string>
<string name="setting_clear_cache">キャッシュのクリア</string>
<string name="clear_cache_description">キャッシュはアプリケーションの使用中に生成され、ヘルパーはキャッシュを読み取って加速する。</string>
<string name="cache">キャッシュとストレージ</string>
<string name="history_cache">ファイル開封記録</string>
@ -736,7 +729,6 @@
<string name="search_unit_name">単位名を検索したい</string>
<string name="auto_save_describe">他のプログラムに切り替えると、自動的にコードが保存されます。</string>
<string name="auto_save">自動保存</string>
<string name="setting_auto_save">自動保存機能</string>
<string name="auto_save_toast">自動保存されています。</string>
<string name="is_code">コードだ</string>
<string name="search_tip">検索を取り消す</string>
@ -756,13 +748,11 @@
<string name="synchronous_ok">シンクロ成功。</string>
<string name="synchronous_failure">シンクロ失敗。</string>
<string name="synchronous_ing">シンクロしてる…</string>
<string name="setting_server_address">ServerAddress</string>
<string name="server_address_configuration">サーバアドレス構成</string>
<string name="associated_tip">%1$sからの関連性のヒント</string>
<string name="login_tip">ログイン后、あなたは:\n-アップロード、モジュールをダウンロードすることができます。\n-コミュニティ内で友達とおしゃべりをする。\n-使用中文編集你的模組!\n-好きなクリエイターに注目</string>
<string name="error_description">何をなさっていたのですか。</string>
<string name="no_error">まちがいはない</string>
<string name="setting_see_error_info">エラー情報を参照してください。</string>
<string name="see_error_info">クラッシュログ</string>
<string name="see_error_info_tip">このデバイスのクラッシュ記録を確認します。</string>
<string name="can_not_tip_value">申し訳ありませんが、現時点で値を提示できません。</string>
@ -826,8 +816,6 @@
<string name="experience_the_plan">ユーザー体験プログラム</string>
<string name="experience_the_plan_describe">匿名送信ソフト奔砕情報。</string>
<string name="update_and_iteration">アップデートとユーザー体験プログラム</string>
<string name="setting_experience_the_plan" translatable="false">experiencePlan</string>
<string name="order_timeout" translatable="false">订单超时,无法支付。</string>
<string name="is_paid">お支払いはされましたか\?未払いの注文は期限が切れ、支払いができなくなります。</string>
<string name="paid_yes">はい、支払いました</string>
<string name="paid_no">注文を放棄する</string>
@ -841,7 +829,6 @@
<string name="confirm_password_error">パスワードが二度一致しなかった。</string>
<string name="display_source_code">ソースコードを表示する</string>
<string name="dynamic_color">ダイナミックカラー</string>
<string name="setting_dynamic_color" translatable="false">DynamicColor</string>
<string name="dynamic_color_tip">壁紙に合わせてテーマカラーを変更します。</string>
<string name="dynamic_color_disabled">この装置は動的色をサポートしない。</string>
<string name="title">タイトル</string>

View File

@ -31,7 +31,6 @@
<string name="always_allow">Всегда.</string>
<string name="pay_yes">Да, получил</string>
<string name="pay_no">Нет.</string>
<string name="creation_wizard">Создание проводника</string>
<string name="dialog_cancel">отмен</string>
<string name="no_longer_prompt">Никаких подсказок.</string>
<string name="navigation_tip">В общей сложности 1 % проектов поддерживают быструю навигацию.</string>
@ -531,7 +530,6 @@
<string name="file_type_define">По умолчанию создаётся файл ini.</string>
<string name="file_type_tip2">Вы, наверное, хотите напечатать \"% $\"\?</string>
<string name="is_building">Загружаю единицу данных, пожалуйста, попробуйте использовать эту функцию после загрузки.</string>
<string name="setting_english_editing_mode">АнглийскийРедактированиеРежим</string>
<string name="english_editing_mode_describe">Напишите свою моду на английском языке, с китайской подсказок и грамматикой.</string>
<string name="english_editing_mode">Модель развития прототипа</string>
<string name="mt_installed">Вы используете английский в качестве языка разработки\? В отличие от работы в \ \\"MT management \", ассистенты имеют возможность давать советы по английскому коду, а также умные советы, направленные на окружающую среду модуля.</string>
@ -644,7 +642,6 @@
<string name="using_mobile_networks">Разрешите использовать сеть данных</string>
<string name="using_mobile_networks_tip">Использование мобильной сети для загрузки модулей может привести к дополнительным расходам.</string>
<string name="using_mobile_networks_msg">Использование мобильной сети для загрузки модулей может привести к дополнительным расходам. Все еще\?</string>
<string name="setting_use_mobile_network" translatable="false">usingMobileNetwork</string>
<string name="no_followers">Сосредоточьтесь на авторе, который вам нравится</string>
<string name="my_follow">Мое внимание.</string>
<string name="no_dynamic">Ничего.</string>
@ -662,14 +659,11 @@
<string name="warehouse">склад</string>
<string name="not_find_map">Карты нет.</string>
<string name="del_map">удал</string>
<string name="setting_map_folder" translatable="false">MapFolder</string>
<string name="map_folder">Каталог карт</string>
<string name="setting_mod_folder" translatable="false">ModFolder</string>
<string name="mod_folder">Групповой каталог</string>
<string name="edit_map">Редактировать карту</string>
<string name="edit_map_tip">Мы рекомендуем NotTiled в качестве инструмента редактирования карт.</string>
<string name="downlod_nottiled">загрузка</string>
<string name="setting_use_the_community_as_the_launch_page">Использование межэтнической общности</string>
<string name="use_the_community_as_the_launch_page">Используйте сообщество в качестве стартовой страницы</string>
<string name="use_the_community_as_the_launch_page_tip">По умолчанию.</string>
<string name="renewal">продлен</string>
@ -722,7 +716,6 @@
<string name="delete_source_file_check">Удаление исходного файла</string>
<string name="init_all_units">Инициализированный список единиц...</string>
<string name="clear_cache">Очистка кэша</string>
<string name="setting_clear_cache">КлирКэш</string>
<string name="clear_cache_description">Возникает при медленном использовании приложений, а помощник ускоряется, читая кэш.</string>
<string name="cache">Кэш и место хранения</string>
<string name="history_cache">Открыть файл</string>
@ -736,7 +729,6 @@
<string name="search_unit_name">Поиск названия</string>
<string name="auto_save_describe">Автоматическое сохранение кода при переключении на другие программы.</string>
<string name="auto_save">Автоматическое сохранение</string>
<string name="setting_auto_save">3. Автосаве</string>
<string name="auto_save_toast">Автоматическое сохранение.</string>
<string name="is_code">Это код.</string>
<string name="search_tip">Прекратить поиск</string>
@ -756,13 +748,11 @@
<string name="synchronous_ok">Синхронизация завершена.</string>
<string name="synchronous_failure">Синхронизация не работает.</string>
<string name="synchronous_ing">Синхронизирую...</string>
<string name="setting_server_address">Адрес сервера</string>
<string name="server_address_configuration">Размещение адреса сервера</string>
<string name="associated_tip">Контактный совет от $1 %</string>
<string name="login_tip">После логина вы можете: загрузка, загрузка модульной группы. · плавно разговаривая с друзьями внутри сообщества. Редактировать вашу моду на китайском языке! Обрати внимание на своего любимого создателя</string>
<string name="error_description">Что вы делали в это время\?</string>
<string name="no_error">Никаких ошибок.</string>
<string name="setting_see_error_info">См. ОшибкаИнфо</string>
<string name="see_error_info">Журнал аварии</string>
<string name="see_error_info_tip">Проверьте записи о авариях на этом устройстве.</string>
<string name="can_not_tip_value">Извините, сейчас не могу сказать.</string>
@ -826,8 +816,6 @@
<string name="experience_the_plan">Программа пользовательского опыта</string>
<string name="experience_the_plan_describe">Анонимная отправка программного обеспечения для уничтожения информации.</string>
<string name="update_and_iteration">Обновление версии с программой пользовательского опыта</string>
<string name="setting_experience_the_plan" translatable="false">experiencePlan</string>
<string name="order_timeout" translatable="false">订单超时,无法支付。</string>
<string name="is_paid">Вы заплатили\? (неоплаченный заказ будет просрочен и не сможет больше платить за него).</string>
<string name="paid_yes">Да, я заплатил за него</string>
<string name="paid_no">Отставить приказ.</string>
@ -841,7 +829,6 @@
<string name="confirm_password_error">Два разных пароля.</string>
<string name="display_source_code">Покажи исходный код.</string>
<string name="dynamic_color">Динамический цвет</string>
<string name="setting_dynamic_color" translatable="false">DynamicColor</string>
<string name="dynamic_color_tip">Следуйте за обоями устройства для замены тематического цвета.</string>
<string name="dynamic_color_disabled">Это устройство не поддерживает динамические цвета.</string>
<string name="title">заголовк</string>

View File

@ -31,7 +31,7 @@
<string name="always_allow">始终允许</string>
<string name="pay_yes">是的,确实收到了</string>
<string name="pay_no">不,没有</string>
<string name="creation_wizard">创建向导</string>
<string name="creation_assistant">创建助理</string>
<string name="dialog_cancel">取消</string>
<string name="no_longer_prompt">不再提示</string>
<string name="navigation_tip">共%1$d个项目支持快速导航。</string>

View File

@ -26,15 +26,6 @@
<item name="textAllCaps">false</item>
</style>
<!--实现BottomSheetDialog圆角效果-->
<style name="BottomSheetDialog" parent="Theme.Design.Light.BottomSheetDialog">
<item name="bottomSheetStyle">@style/bottomSheetStyleWrapper</item>
</style>
<!--实现BottomSheetDialog圆角效果-组件-->
<style name="bottomSheetStyleWrapper" parent="Widget.Design.BottomSheet.Modal">
<item name="android:background">@android:color/transparent</item>
</style>
</resources>

View File

@ -3,6 +3,13 @@ package com.coldmint.rust.core.dataBean.user
import com.google.gson.annotations.SerializedName
/**
* 用户激活信息
* @property code Int
* @property `data` Data
* @property message String
* @constructor
*/
data class ActivationInfo(
@SerializedName("code")
val code: Int,

View File

@ -17,6 +17,8 @@ data class UserData(
@SerializedName("expirationTime")
val expirationTime: String,
@SerializedName("token")
val token: String
val token: String,
@SerializedName("account")
val account:String
)
}

View File

@ -172,18 +172,17 @@ class Dynamic private constructor() {
/**
* 发布动态
* @param account String 账号
* @param token String 令牌
* @param context String 内容
*/
fun send(
account: String,
appId: String,
token: String,
context: String,
apiCallBack: ApiCallBack<ApiResponse>
) {
val okHttpClient = ServerConfiguration.initOkHttpClient()
val requestBodyBuilder: FormBody.Builder =
FormBody.Builder().add("account", account).add("context", context).add("appId", appId)
FormBody.Builder().add("token", token).add("context", context)
val requestBody = requestBodyBuilder.build()
val request = Request.Builder()
.url(ServerConfiguration.website + "php/dynamic.php?action=send")

View File

@ -189,9 +189,13 @@ object ServerConfiguration {
"/data/"
)
) {
if (string.startsWith("http://") || string.startsWith("https://")) {
return string
} else {
//如果不是源文件目录的子目录话,设置为上级目录
path = "../" + path
}
}
return path
}

View File

@ -180,7 +180,7 @@ object User {
/**
* 更新用户资料
* @param account String 账号
* @param token String 令牌
* @param userName String 用户名
* @param introduce String 介绍
* @param gender Int 性别(1为男生-1为女生)
@ -189,7 +189,7 @@ object User {
* @param coverLink String? 封面链接内部自行转换文件
*/
fun updateSpaceInfo(
account: String,
token: String,
userName: String,
introduce: String,
gender: Int, apiCallBack: ApiCallBack<ApiResponse>,
@ -199,7 +199,7 @@ object User {
val okHttpClient = ServerConfiguration.initOkHttpClient()
val requestBuilder =
MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("account", account).addFormDataPart("userName", userName)
.addFormDataPart("token", token).addFormDataPart("userName", userName)
.addFormDataPart("introduce", introduce)
.addFormDataPart("gender", gender.toString())
if (iconLink != null) {

View File

@ -38,6 +38,27 @@ class CoreDialog(context: Context) : BaseAppDialog<CoreDialog>(context) {
return this
}
/**
* 设置选择按钮
* @param title String?
* @return CoreDialog
*/
fun setCheckboxBox(title: String? = null): CoreDialog {
dialogCoreBinding.checkbox.isVisible = title != null
if (title != null) {
dialogCoreBinding.checkbox.text = title
}
return this
}
/**
* 是否选择了
* @return Boolean
*/
fun isChecked():Boolean{
return dialogCoreBinding.checkbox.isChecked
}
override fun setTitle(stringRes: Int): CoreDialog {
dialogCoreBinding.titleView.isVisible = true
dialogCoreBinding.titleView.setText(stringRes)

View File

@ -17,6 +17,7 @@
android:text="@string/title"
android:visibility="gone" />
<TextView
android:id="@+id/messageView"
style="@style/MaterialAlertDialog.Material3.Body.Text"
@ -26,6 +27,15 @@
android:text="@string/title"
android:visibility="gone" />
<CheckBox
android:id="@+id/checkbox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/title"
android:visibility="gone" />
<RelativeLayout
android:id="@+id/buttonContainer"
android:layout_width="match_parent"
@ -43,12 +53,12 @@
android:visibility="gone" />
<Button
android:layout_marginLeft="8dp"
android:id="@+id/positiveButton"
style="@style/Widget.Material3.Button.TextButton.Dialog.Flush"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_marginLeft="8dp"
android:text="@string/title"
android:visibility="gone" />