diff --git a/app/src/main/java/com/coldmint/rust/pro/ErrorActivity.kt b/app/src/main/java/com/coldmint/rust/pro/ErrorActivity.kt index 8e12465..809574d 100644 --- a/app/src/main/java/com/coldmint/rust/pro/ErrorActivity.kt +++ b/app/src/main/java/com/coldmint/rust/pro/ErrorActivity.kt @@ -5,22 +5,16 @@ import android.os.Bundle import android.view.KeyEvent import android.view.LayoutInflater import android.view.MenuItem -import android.view.View import cat.ereza.customactivityoncrash.CustomActivityOnCrash -import com.coldmint.rust.core.dataBean.ApiResponse import com.coldmint.rust.core.debug.LogCat -import com.coldmint.rust.core.interfaces.ApiCallBack import com.coldmint.rust.core.tool.FileOperator -import com.coldmint.rust.core.web.ErrorReport -import com.coldmint.rust.core.web.ServerConfiguration import com.coldmint.rust.pro.base.BaseActivity import com.coldmint.rust.pro.databean.ErrorInfo import com.coldmint.rust.pro.databinding.ActivityErrorBinding -import com.coldmint.rust.pro.tool.AppSettings import com.coldmint.rust.pro.tool.GlobalMethod import com.google.android.material.snackbar.Snackbar -class ErrorActivity() : BaseActivity() { +class ErrorActivity : BaseActivity() { private val errorInfo by lazy { ErrorInfo() } @@ -44,31 +38,6 @@ class ErrorActivity() : BaseActivity() { } viewBinding.errorInfo.text = errorInfo.allErrorDetails LogCat.e("错误日志", errorInfo.allErrorDetails) - if (AppSettings.getValue(AppSettings.Setting.ExperiencePlan, true)) { - val info = packageManager.getPackageInfo(packageName, 0) - ErrorReport.instance.send( - errorInfo.allErrorDetails, - info.versionName, - info.versionCode, - object : ApiCallBack { - override fun onResponse(t: ApiResponse) { - if (t.code == ServerConfiguration.Success_Code) { - viewBinding.shareLogButton.isEnabled = false - viewBinding.shareLogButton.text = getString(R.string.anonymous_send_completed) - } - } - - override fun onFailure(e: Exception) { - e.printStackTrace() - } - - }, - AppSettings.getValue( - AppSettings.Setting.ServerAddress, - ServerConfiguration.website - ) - ) - } saveLog() } } @@ -99,7 +68,7 @@ class ErrorActivity() : BaseActivity() { /** * 创建错误日志 */ - fun saveLog(): Boolean { + private fun saveLog(): Boolean { return errorInfo.save() } diff --git a/app/src/main/java/com/coldmint/rust/pro/LoginActivity.kt b/app/src/main/java/com/coldmint/rust/pro/LoginActivity.kt deleted file mode 100644 index 08ec984..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/LoginActivity.kt +++ /dev/null @@ -1,469 +0,0 @@ -package com.coldmint.rust.pro - -import android.animation.ObjectAnimator -import android.content.Intent -import android.graphics.Color -import android.os.Bundle -import android.text.Editable -import android.text.SpannableString -import android.text.TextPaint -import android.text.TextWatcher -import android.text.method.LinkMovementMethod -import android.text.style.ClickableSpan -import android.view.LayoutInflater -import android.view.View -import androidx.core.view.isVisible -import com.coldmint.dialog.InputDialog -import com.coldmint.rust.core.dataBean.ApiResponse -import com.coldmint.rust.core.dataBean.LoginRequestData -import com.coldmint.rust.core.dataBean.user.UserData -import com.coldmint.rust.core.debug.LogCat -import com.coldmint.rust.core.interfaces.ApiCallBack -import com.coldmint.rust.core.web.ServerConfiguration -import com.coldmint.rust.core.web.User -import com.coldmint.rust.core.web.User.verification -import com.coldmint.rust.pro.base.BaseActivity -import com.coldmint.rust.pro.databinding.ActivityLoginBinding -import com.coldmint.rust.pro.tool.AppSettings -import com.coldmint.rust.pro.tool.EmailAutoCompleteHelper -import com.google.android.material.snackbar.Snackbar - -class LoginActivity : BaseActivity() { - private var isLogin = false - - private fun initAction() { -// immersionBar { -// transparentStatusBar().statusBarDarkFont(true) -// .transparentNavigationBar().navigationBarDarkIcon(true) -// } - LogCat.d("应用识别码", AppSettings.getValue(AppSettings.Setting.AppID, "无")) - viewBinding.changeServerView.isVisible = BuildConfig.DEBUG - viewBinding.changePasswordView.setOnClickListener { - val intent = Intent(this, ChangePasswordActivity::class.java) - startActivity(intent) - } - viewBinding.accountView.addTextChangedListener(object : TextWatcher { - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - - } - - override fun afterTextChanged(s: Editable?) { - val account = s.toString() - checkAccount(account) - //设置背景 - if (account == "kano") { - viewBinding.titleView.text = "喜欢,鹿乃!!!" - viewBinding.root.setBackgroundResource(R.drawable.kano) - ObjectAnimator.ofFloat(viewBinding.root, "alpha", 0.4f, 1.0f) - .setDuration(375).start() - } else { - viewBinding.titleView.text = getString(R.string.login) - viewBinding.root.setBackgroundResource(0) - } - setLoginButtonEnable() - } - - }) - - val emailAutoCompleteHelper = EmailAutoCompleteHelper(this) - emailAutoCompleteHelper.onBindAutoCompleteTextView(viewBinding.accountView) - - viewBinding.passwordView.addTextChangedListener(object : TextWatcher { - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - - } - - override fun afterTextChanged(s: Editable?) { - val passWord = s.toString() - checkPassword(passWord) - setLoginButtonEnable() - } - - }) - - viewBinding.button.setOnClickListener(View.OnClickListener { v -> - if (!viewBinding.checkbox.isChecked) { - Snackbar.make( - viewBinding.button, - R.string.please_agree_the_agreement_first, - Snackbar.LENGTH_SHORT - ).show() - return@OnClickListener - } - inputMethodManager.hideSoftInputFromWindow(v.windowToken, 0) - if (!isLogin) { - val account = viewBinding.accountView.text.toString() - val passWord = viewBinding.passwordView.text.toString() - if (!checkAccount(account)) { - return@OnClickListener - } - if (!checkPassword(passWord)) { - return@OnClickListener - } - val appId = AppSettings.getValue(AppSettings.Setting.AppID, ""); - isLogin = true - viewBinding.button.setText(R.string.request_data) - User.login(LoginRequestData(account, passWord, appId), - object : ApiCallBack { - override fun onResponse(userData: UserData) { - 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, - userData.data.account - ) - AppSettings.forceSetValue( - AppSettings.Setting.Token, - userData.data.token - ) - //从服务器获取用户的激活信息。 -// GlobalMethod.isActive = userData.data.activation - //更新本地激活时间 - val expirationTime = userData.data.expirationTime - val time = ServerConfiguration.toLongTime(expirationTime) - AppSettings.forceSetValue(AppSettings.Setting.LoginStatus, true) - startActivity(Intent(this@LoginActivity, MainActivity::class.java)) - finish() - } else { - when (userData.message) { - "请先激活您的账户" -> { - InputDialog(this@LoginActivity).setTitle(R.string.activate_the_account) - .setMessage(R.string.activate_the_account_tip) - .setHint(R.string.verification_code) - .setCancelable(false).setMaxNumber(6) - .setPositiveButton(R.string.dialog_ok) { text -> - User.activateAccount(account, - text, - object : ApiCallBack { - override fun onResponse(t: ApiResponse) { - if (t.code == ServerConfiguration.Success_Code) { - Snackbar.make( - viewBinding.button, - R.string.activate_the_account_ok, - Snackbar.LENGTH_SHORT - ).show() - } else { - Snackbar.make( - viewBinding.button, - t.message, - Snackbar.LENGTH_SHORT - ).show() - } - } - - override fun onFailure(e: Exception) { - showInternetError(viewBinding.button, e) - } - - }) - true - }.setNegativeButton(R.string.dialog_close) { - - }.show() - } - - "找不到用户" -> { - setErrorAndInput( - viewBinding.accountView, - getString(R.string.account_error3), - viewBinding.accountInputLayout - ) - - } - - "找不到邮箱" -> { - setErrorAndInput( - viewBinding.accountView, - getString(R.string.account_error4), - viewBinding.accountInputLayout - ) - - } - - "密码错误" -> { - setErrorAndInput( - viewBinding.passwordView, - getString(R.string.password_error2), - viewBinding.passwordInputLayout - ) - } - - "请更改登录设备" -> { - viewBinding.button.isEnabled = false - verification( - account, - passWord, - appId, - object : ApiCallBack { - override fun onResponse(t: ApiResponse) { - viewBinding.button.isEnabled = true - if (t.code == ServerConfiguration.Success_Code) { - InputDialog(this@LoginActivity).setMaxNumber( - 6 - ).setHint(R.string.verification_code) - .setInputCanBeEmpty(false) - .setTitle(R.string.verification) - .setMessage(R.string.activate_the_account_tip) - .setCancelable(false) - .setPositiveButton(R.string.dialog_ok) { it -> - User.changeAppId(account, - it, - appId, - object : - ApiCallBack { - override fun onResponse(t: ApiResponse) { - if (t.code == ServerConfiguration.Success_Code) { - Snackbar.make( - viewBinding.button, - R.string.activate_the_account_ok, - Snackbar.LENGTH_SHORT - ).show() - } else { - Snackbar.make( - viewBinding.button, - t.message, - Snackbar.LENGTH_SHORT - ).show() - } - } - - override fun onFailure(e: Exception) { - showInternetError( - viewBinding.button, - e - ) - } - - }) - true - } - .setNegativeButton(R.string.dialog_close) { - - }.show() - } else { - Snackbar.make( - viewBinding.button, - t.message, - Snackbar.LENGTH_SHORT - ).show() - } - } - - override fun onFailure(e: Exception) { - viewBinding.button.isEnabled = true - isLogin = false - viewBinding.button.setText(R.string.login) - showInternetError(viewBinding.button, e) - } - - }) - } - - else -> { - Snackbar.make( - viewBinding.button, - userData.message, - Snackbar.LENGTH_SHORT - ).show() - } - } - } - } - - override fun onFailure(e: Exception) { - isLogin = false - viewBinding.button.setText(R.string.login) - showInternetError(viewBinding.button, e) - } - }) - } - }) - - val agreementAgreed = getString(R.string.agreement_agreed) - val spannableString = SpannableString(agreementAgreed) - val serviceAgreement = "1" - val privacyPolicy = "2" - val start = agreementAgreed.indexOf(serviceAgreement) - val start2 = agreementAgreed.indexOf(privacyPolicy) - if (start > -1 && start2 > -1) { - spannableString.setSpan(object : ClickableSpan() { - override fun onClick(p0: View) { - val link = - ServerConfiguration.getRealLink("/resources/agreement/service_agreement.html") - val thisIntent = Intent(this@LoginActivity, BrowserActivity::class.java) - thisIntent.putExtra("link", link) - startActivity(thisIntent) - } - - override fun updateDrawState(ds: TextPaint) { - ds.isUnderlineText = false - super.updateDrawState(ds) - } - }, start, start + serviceAgreement.length, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE) - spannableString.setSpan(object : ClickableSpan() { - override fun onClick(p0: View) { - val link = - ServerConfiguration.getRealLink("/resources/agreement/privacy_policy.html") - val thisIntent = Intent(this@LoginActivity, BrowserActivity::class.java) - thisIntent.putExtra("link", link) - startActivity(thisIntent) - } - - override fun updateDrawState(ds: TextPaint) { - ds.isUnderlineText = false - super.updateDrawState(ds) - } - }, start2, start2 + privacyPolicy.length, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE) - viewBinding.checkbox.text = spannableString - viewBinding.checkbox.setHintTextColor(Color.TRANSPARENT) - viewBinding.checkbox.movementMethod = LinkMovementMethod.getInstance(); - } - val agree = AppSettings.getValue(AppSettings.Setting.AgreePolicy, false) - viewBinding.checkbox.isChecked = agree - viewBinding.checkbox.setOnCheckedChangeListener { p0, p1 -> - setLoginButtonEnable() - AppSettings.setValue(AppSettings.Setting.AgreePolicy, p1) - } - - viewBinding.registerView.setOnClickListener { - startActivity( - Intent( - this@LoginActivity, - RegisterActivity::class.java - ) - ) - } - viewBinding.changeServerView.setOnClickListener { - InputDialog(this).setTitle(R.string.changing_the_server) - .setMessage(R.string.changing_the_server_tip).setMaxNumber(255).setText( - AppSettings.getValue( - AppSettings.Setting.ServerAddress, - ServerConfiguration.website - ) - ).setHint(R.string.server_address_configuration).setErrorTip { s, textInputLayout -> - textInputLayout.isErrorEnabled = - !(s.startsWith("http://") || s.startsWith("https://")) - }.setPositiveButton(R.string.dialog_ok) { input -> - if (input.isNotBlank()) { - AppSettings.setValue(AppSettings.Setting.ServerAddress, input) - ServerConfiguration.website = input - Snackbar.make( - viewBinding.button, - R.string.change_server_complete, - Snackbar.LENGTH_SHORT - ).show() - return@setPositiveButton true - } else { - return@setPositiveButton false - } - }.setNegativeButton(R.string.dialog_close) { - }.show() - } - } - - /** - * 检查账号 - * @param account String - * @param updateView Boolean - * @return Boolean - */ - fun checkAccount(account: String, updateView: Boolean = true): Boolean { - return if (account.isBlank()) { - if (updateView) { - setErrorAndInput( - viewBinding.accountView, - getString(R.string.please_enter_your_account_or_email), - viewBinding.accountInputLayout - ) - } - false - } else { - if (updateView) { - viewBinding.accountInputLayout.isErrorEnabled = false - } - true - } - } - - /** - * 设置登录按钮 - */ - fun setLoginButtonEnable() { - viewBinding.button.isEnabled = - checkAccount(viewBinding.accountView.text.toString(), false) && checkPassword( - viewBinding.passwordView.text.toString(), - false - ) && viewBinding.checkbox.isChecked - } - - - /** - * 检查密码 - * @param passWord String - * @param updateView Boolean - * @return Boolean - */ - fun checkPassword(passWord: String, updateView: Boolean = true): Boolean { - return if (passWord.isBlank()) { - if (updateView) { - setErrorAndInput( - viewBinding.passwordView, - getString(R.string.please_enter_your_password), - viewBinding.passwordInputLayout - ) - } - false - } else { - if (passWord.matches(Regex("^[a-zA-Z0-9_]{6,20}\$"))) { - if (updateView) { - viewBinding.passwordInputLayout.isErrorEnabled = false - } - true - } else { - if (updateView) { - setErrorAndInput( - viewBinding.passwordView, - getString(R.string.password_error), - viewBinding.passwordInputLayout, false - ) - } - false - } - } - } - - - override fun onResume() { - val account = AppSettings.getValue(AppSettings.Setting.Account, "") - val passWord = AppSettings.getValue(AppSettings.Setting.PassWord, "") - val inputAccount = viewBinding.accountView.text.toString() - val inputPassWord = viewBinding.passwordView.text.toString() - if (account.isNotBlank() && inputAccount.isEmpty()) { - viewBinding.accountView.setText(account) - } - if (passWord.isNotBlank() && inputPassWord.isEmpty()) { - viewBinding.passwordView.setText(passWord) - } - super.onResume() - } - - override fun getViewBindingObject(layoutInflater: LayoutInflater): ActivityLoginBinding { - return ActivityLoginBinding.inflate(layoutInflater) - } - - override fun whenCreateActivity(savedInstanceState: Bundle?, canUseView: Boolean) { - if (canUseView) { - initAction() - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/MainActivity.kt b/app/src/main/java/com/coldmint/rust/pro/MainActivity.kt index c6c8be9..e0c68a9 100644 --- a/app/src/main/java/com/coldmint/rust/pro/MainActivity.kt +++ b/app/src/main/java/com/coldmint/rust/pro/MainActivity.kt @@ -7,8 +7,6 @@ import android.os.Bundle import android.os.Handler import android.os.Looper import android.view.LayoutInflater -import android.view.Menu -import android.view.MenuItem import androidx.appcompat.app.ActionBarDrawerToggle import androidx.core.view.GravityCompat import androidx.lifecycle.ViewModelProvider @@ -62,7 +60,6 @@ class MainActivity : BaseActivity() { companion object { //仓库和社区碎片链接TabLayout间隔 const val hideViewDelay: Long = 150 -// private var time:Long=0; } /** @@ -75,15 +72,8 @@ class MainActivity : BaseActivity() { ) val navController = findNavController(R.id.baseFragment) navController.navInflater.inflate(R.navigation.main_nav).apply { - val use = - AppSettings.getValue(AppSettings.Setting.UseTheCommunityAsTheLaunchPage, true) this.setStartDestination( - if (use) { -// viewBinding.mainButton.hide() - R.id.community_item - } else { - R.id.mod_item - } + R.id.mod_item ) navController.graph = this } @@ -620,34 +610,6 @@ class MainActivity : BaseActivity() { finish() } } - /* - override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean { - if (keyCode == KeyEvent.KEYCODE_BACK && event.action == KeyEvent.ACTION_DOWN) { - return true - } - return super.onKeyDown(keyCode, event) - }*/ - - override fun onCreateOptionsMenu(menu: Menu): Boolean { - val inflater = menuInflater - inflater.inflate(R.menu.menu_main, menu) - return true - } - - /*不知道干什么的代码 - override fun onSupportNavigateUp(): Boolean { - val navController = findNavController(R.id.baseFragment) - return navController.navigateUp(appBarConfiguration) - || super.onSupportNavigateUp() - } - */ - - override fun onOptionsItemSelected(item: MenuItem): Boolean { - if (item.itemId == R.id.search) { - startActivity(Intent(this, SearchActivity::class.java)) - } - return false - } override fun getViewBindingObject(layoutInflater: LayoutInflater): ActivityMainBinding { return ActivityMainBinding.inflate(layoutInflater) @@ -666,30 +628,6 @@ class MainActivity : BaseActivity() { .apply(GlobalMethod.getRequestOptions(true, !it.data.activation)) .into(headLayout.imageView) } - val account = it.data.account - headLayout.imageView.setOnClickListener { - val opIntent = Intent(this, UserHomePageActivity::class.java) - opIntent.putExtra("userId", account) - startActivity(opIntent) - } - } - - startViewModel.needLoginLiveData.observe(this) { - if (it) { - headLayout.imageView.setImageResource(R.drawable.head_icon) - headLayout.nameView.text = getString(R.string.click_profile_picture_login) - headLayout.emailView.text = "" - headLayout.imageView.setOnClickListener { - startActivity( - Intent( - this, - LoginActivity::class.java - ) - ) - } - } else { - showGameConfiguredDialog() - } } startViewModel.dataSetMsgLiveData.observe(this) { @@ -710,26 +648,9 @@ class MainActivity : BaseActivity() { } startViewModel.isActivationLiveData.observe(this) { -// GlobalMethod.isActive = it initNavigationMenu(GlobalMethod.isActive) } - startViewModel.verifyErrorMsgLiveData.observe(this) { - if (it.isNotBlank()) { - CoreDialog(this).setTitle(R.string.login).setMessage(it) - .setCancelable(false).setPositiveButton(R.string.login) { - startActivity( - Intent( - this, - LoginActivity::class.java - ) - ) - }.setNegativeButton(R.string.close) { - finish() - }.show() - } - } - } diff --git a/app/src/main/java/com/coldmint/rust/pro/OrderListActivity.kt b/app/src/main/java/com/coldmint/rust/pro/OrderListActivity.kt index c36475f..4759d11 100644 --- a/app/src/main/java/com/coldmint/rust/pro/OrderListActivity.kt +++ b/app/src/main/java/com/coldmint/rust/pro/OrderListActivity.kt @@ -29,7 +29,7 @@ import com.google.android.material.snackbar.Snackbar * @date 2022/1/12 17:52 */ class OrderListActivity : BaseActivity() { - var loadAll = false + private var loadAll = false val account by lazy { AppSettings.getValue(AppSettings.Setting.Account, "") } @@ -92,14 +92,6 @@ class OrderListActivity : BaseActivity() { } } } - "查看用户资料" -> { - val thisIntent = Intent( - this@OrderListActivity, - UserHomePageActivity::class.java - ) - thisIntent.putExtra("userId", data.account) - startActivity(thisIntent) - } } true } diff --git a/app/src/main/java/com/coldmint/rust/pro/ReleaseModActivity.kt b/app/src/main/java/com/coldmint/rust/pro/ReleaseModActivity.kt deleted file mode 100644 index c6f24a9..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/ReleaseModActivity.kt +++ /dev/null @@ -1,1258 +0,0 @@ -package com.coldmint.rust.pro - -import android.annotation.SuppressLint -import android.content.Intent -import android.content.res.ColorStateList -import android.graphics.BitmapFactory -import android.net.Uri -import android.os.Bundle -import android.text.Editable -import android.text.TextWatcher -import android.util.Log -import android.view.LayoutInflater -import android.view.View -import android.widget.PopupMenu -import android.widget.Toast -import androidx.core.view.isVisible -import androidx.recyclerview.widget.LinearLayoutManager -import androidx.recyclerview.widget.RecyclerView -import com.bumptech.glide.Glide -import com.coldmint.dialog.CoreDialog -import com.coldmint.dialog.InputDialog -import com.coldmint.rust.core.CompressionManager -import com.coldmint.rust.core.ModClass -import com.coldmint.rust.core.ModConfigurationManager -import com.coldmint.rust.core.dataBean.ApiResponse -import com.coldmint.rust.core.dataBean.mod.WebModInfoData -import com.coldmint.rust.core.interfaces.ApiCallBack -import com.coldmint.rust.core.interfaces.ProgressListener -import com.coldmint.rust.core.interfaces.UnzipListener -import com.coldmint.rust.core.tool.AppOperator -import com.coldmint.rust.core.tool.FileOperator -import com.coldmint.rust.core.tool.LineParser -import com.coldmint.rust.core.web.Dynamic -import com.coldmint.rust.core.web.ServerConfiguration -import com.coldmint.rust.core.web.WebMod -import com.coldmint.rust.pro.adapters.ScreenshotAdapter -import com.coldmint.rust.pro.databinding.ActivityReleaseModBinding -import com.coldmint.rust.pro.tool.AppSettings -import com.coldmint.rust.pro.tool.GlobalMethod -import com.coldmint.rust.pro.base.BaseActivity -import com.coldmint.rust.pro.databinding.LoadFileLayoutBinding -import com.coldmint.rust.pro.ui.StableLinearLayoutManager -import com.github.promeg.pinyinhelper.Pinyin -import com.google.android.material.chip.Chip -import com.google.android.material.dialog.MaterialAlertDialogBuilder -import com.google.android.material.snackbar.Snackbar -import com.gyf.immersionbar.ktx.fitsStatusBarView -import com.yalantis.ucrop.UCrop -import java.io.File -import java.text.NumberFormat -import java.util.* -import java.util.concurrent.Executors -import java.util.zip.ZipEntry -import kotlin.collections.ArrayList -import kotlin.text.StringBuilder - -class ReleaseModActivity : BaseActivity() { - private val lineParser by lazy { - LineParser() - } - private val list by lazy { - ArrayList() - } - - // private val tags by lazy { -// ArrayList() -// } - lateinit var screenshotAdapter: ScreenshotAdapter - private var modClass: ModClass? = null - private var iconLink: String? = null - private var unitnum = 0 - private var modFile: File? = null - lateinit var tip: String - var needIcon = false - lateinit var iconCacheFile: File - lateinit var mode: String - - - override fun whenCreateActivity(savedInstanceState: Bundle?, canUseView: Boolean) { - if (canUseView) { - title = getText(R.string.release) - setReturnButton() - val layoutManager = StableLinearLayoutManager(this) - layoutManager.orientation = RecyclerView.HORIZONTAL - viewBinding.screenshotRecyclerView.layoutManager = layoutManager - screenshotAdapter = ScreenshotAdapter(this, list) - viewBinding.screenshotRecyclerView.adapter = screenshotAdapter - initData() - } - } - - /** - * 加载默认图像 - */ - fun loadDefaultImage() { - val drawable = getDrawable(R.drawable.image) - viewBinding.iconView.setImageDrawable( - GlobalMethod.tintDrawable( - drawable, - ColorStateList.valueOf(GlobalMethod.getColorPrimary(this)) - ) - ) - } - - - private fun initData() { - lineParser.symbol = "," - val intent = intent - val bundle = intent.getBundleExtra("data") - if (bundle == null) { - showError("参数不合法") - } else { - val temMode = bundle.getString("mode") - if (temMode == null) { - showError("请传入启动模式") - return - } - val modPath = bundle.getString("modPath") - mode = temMode - when (temMode) { - "loadMode" -> { - //如果提交了模组路径 - if (modPath != null) { - val file = File(modPath) - if (file.exists() && file.isDirectory) { - modClass = ModClass(file) - } else { - showError("文件不存在,或不是目录。") - return - } - } - val modId = bundle.getString("modId") - if (modId == null) { - showError("模组id为空") - return - } - val token = AppSettings.getValue(AppSettings.Setting.Token, "") - if (token.isBlank()) { - showError(getString(R.string.please_login_first)) - return - } - WebMod.instance.getInfo(token, modId, object : ApiCallBack { - override fun onResponse(t: WebModInfoData) { - if (t.code == ServerConfiguration.Success_Code) { - loadLoadModeAction(t) - } else { - showError(t.message) - } - } - - override fun onFailure(e: Exception) { - showInternetError(exception = e) - } - - }) - } - "firstReleaseMode" -> { - //首次发布必须提交mod路径 - if (modPath == null) { - showError("模组路径为空") - return - } - val file = File(modPath) - if (file.exists() && file.isDirectory) { - modClass = ModClass(file) - } else { - showError("文件不存在,或不是目录。") - return - } - loadFirstReleaseModeAction() - } - } - val temMod = modClass - val type = if (temMod == null) { - getString(R.string.select_file) - } else { - getString(R.string.packmod) - } - viewBinding.packModButton.text = type - viewBinding.modPathView.text = - String.format(getString(R.string.unable_load_mod_info), type) - tip = getString(R.string.file_upload_progress) - } - } - - /** - * 加载首次发布活动 - */ - private fun loadFirstReleaseModeAction() { - loadConventionalAction() - val temModClass = modClass - if (temModClass != null) { - viewBinding.modIdEdit.setText( - Pinyin.toPinyin(temModClass.modName, "_").lowercase(Locale.getDefault()) - ) - viewBinding.versionNameEdit.setText("1.0") - viewBinding.modNameEdit.setText(temModClass.modName) - val description = temModClass.readValueFromInfoSection("description", "mod") - if (description != null) { - viewBinding.modDescribeEdit.setText(description) - } - val finalLink = temModClass.readResourceFromInfo("thumbnail")?.absolutePath - if (finalLink == null) { - loadDefaultImage() - } else { - loadIcon(finalLink) - } - } - } - - /** - * 加载“加载模式”活动 - * @param t WebModInfoData - */ - private fun loadLoadModeAction(t: WebModInfoData) { - loadConventionalAction() - viewBinding.modNameEdit.setText(t.data.name) - viewBinding.modIdEdit.setText(t.data.id) - viewBinding.modIdEdit.isEnabled = false - viewBinding.modUpdateInputLayout.isVisible = true - viewBinding.versionNameEdit.setText(t.data.versionName) - viewBinding.modDescribeEdit.setText(t.data.describe) - viewBinding.minVersionEdit.setText(t.data.minVersion) - val outputTags: StringBuilder = StringBuilder() - lineParser.text = t.data.tags - lineParser.parserSymbol = true - lineParser.analyse { lineNum, lineData, isEnd -> - if (lineData == lineParser.symbol) { - outputTags.append(lineData) - } else { - outputTags.append( - lineData.substring( - 1, - lineData.length - 1 - ) - ) - } - true - } - lineParser.parserSymbol = false - viewBinding.modTagEdit.setText(outputTags.toString()) - val icon = t.data.icon - if (icon != null && icon.isNotBlank()) { - loadIcon(ServerConfiguration.getRealLink(icon)) - } else { - loadDefaultImage() - } - - val screenshots = t.data.screenshots - if (screenshots != null && screenshots.isNotBlank()) { - lineParser.text = screenshots - lineParser.analyse { lineNum, lineData, isEnd -> - screenshotAdapter.addItem(ServerConfiguration.getRealLink(lineData)) - true - } - - } - } - - /** - * 加载常规活动 - */ - private fun loadConventionalAction() { - viewBinding.modIdEdit.addTextChangedListener(object : TextWatcher { - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - - } - - override fun afterTextChanged(s: Editable?) { - val modId = s.toString() - checkModId(modId) - } - - }) - - viewBinding.modNameEdit.addTextChangedListener(object : TextWatcher { - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - - } - - override fun afterTextChanged(s: Editable?) { - val name = s.toString() - checkModName(name) - } - - }) - - initIconView() - - viewBinding.versionNameEdit.addTextChangedListener(object : TextWatcher { - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - - } - - override fun afterTextChanged(s: Editable?) { - val name = s.toString() - checkVersionName(name) - } - - }) - - viewBinding.addScreenshotButton.setOnClickListener { - val fromUrl = getString(R.string.from_url) - val selectImage = getString(R.string.select_image) - val array = resources.getStringArray(R.array.screenshot_addType) - MaterialAlertDialogBuilder(this).setTitle(R.string.add).setItems(array) { i, i2 -> - val text = array[i2] - when (text) { - fromUrl -> { - InputDialog(this).setTitle(R.string.from_url) - .setMessage(R.string.from_url_tip).setErrorTip { s, textInputLayout -> - if (s.matches(Regex("^http://([\\w-]+\\.)+[\\w-]+(/[\\w-./?%&=]*)?$|^https://([\\w-]+\\.)+[\\w-]+(/[\\w-./?%&=]*)?$"))) { - textInputLayout.error = getString(R.string.from_url_tip) - } else { - textInputLayout.isErrorEnabled = false - } - }.setPositiveButton(R.string.dialog_ok) { input -> - screenshotAdapter.addItem(input) - true - }.setNegativeButton(R.string.dialog_close) { - - }.show() - } - selectImage -> { - val startIntent = - Intent(this@ReleaseModActivity, FileManagerActivity::class.java) - val fileBundle = Bundle() - if (modClass != null) { - fileBundle.putString("path", modClass!!.modFile.absolutePath) - } - fileBundle.putString("type", "selectFile") - startIntent.putExtra("data", fileBundle) - startActivityForResult(startIntent, 2) - } - else -> { - Toast.makeText(this@ReleaseModActivity, "未知的操作", Toast.LENGTH_SHORT) - .show() - } - - } - }.setPositiveButton(R.string.dialog_cancel) { i1, i2 -> - }.show() - } - - - viewBinding.packModButton.setOnClickListener { - val type = viewBinding.packModButton.text - when (type) { - getString(R.string.packmod) -> { - packModAction() - } - getString(R.string.select_file) -> { - selectModFile() - } - } - - } - - viewBinding.releaseButton.setOnClickListener { - if (mode == "loadMode") { - uploadAction(true) - } else { - uploadAction(false) - } - } - - - viewBinding.modTagEdit.addTextChangedListener( - object : TextWatcher { - override fun beforeTextChanged( - s: CharSequence?, - start: Int, - count: Int, - after: Int - ) { - - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - - } - - override fun afterTextChanged(s: Editable?) { - val tag = s.toString() - checkModTag(tag) - lineParser.text = tag - var isNotEmpty = false -// tags.clear() - viewBinding.chipGroup.removeAllViews() - lineParser.analyse { lineNum, lineData, isEnd -> - isNotEmpty = true - if (lineData.isNotBlank()) { -// tags.add(lineData) - val chip = Chip(this@ReleaseModActivity) - chip.text = lineData - chip.setOnClickListener { - val bundle = Bundle() - bundle.putString("tag", lineData) - bundle.putString( - "title", - String.format(getString(R.string.tag_title), lineData) - ) - bundle.putString("action", "tag") - val thisIntent = - Intent(this@ReleaseModActivity, TagActivity::class.java) - thisIntent.putExtra("data", bundle) - startActivity(thisIntent) - } - viewBinding.chipGroup.addView(chip) - } - true - } - viewBinding.chipGroup.isVisible = isNotEmpty - } - - }) - - viewBinding.modDescribeEdit.addTextChangedListener( - object : TextWatcher { - override fun beforeTextChanged( - s: CharSequence?, - start: Int, - count: Int, - after: Int - ) { - - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - - } - - override fun afterTextChanged(s: Editable?) { - val text = s.toString() - checkModDescribe(text) - } - - }) - - viewBinding.modTagEdit.setText( - String.format( - getString(R.string.default_tags), - AppSettings.getValue(AppSettings.Setting.Account, "未知用户") - ) - ) - - } - - private fun selectModFile() { - val startIntent = - Intent(this@ReleaseModActivity, FileManagerActivity::class.java) - val fileBundle = Bundle() - if (modClass != null) { - fileBundle.putString("path", modClass!!.modFile.absolutePath) - } - fileBundle.putString("type", "selectFile") - startIntent.putExtra("data", fileBundle) - startActivityForResult(startIntent, 4) - } - - - private fun initIconView() { - viewBinding.iconView.setOnClickListener { - val popupMenu = GlobalMethod.createPopMenu(it) - popupMenu.menu.add(R.string.from_url) - if (needIcon) { - popupMenu.menu.add(R.string.change_image) - popupMenu.menu.add(R.string.del_image) - } else { - popupMenu.menu.add(R.string.select_image) - } - popupMenu.setOnMenuItemClickListener { item -> - val title = item.title.toString() - if (title == getString(R.string.change_image) || title == getString(R.string.select_image)) { - //选择文件 - val startIntent = - Intent(this, FileManagerActivity::class.java) - val fileBundle = Bundle() - fileBundle.putString("type", "selectFile") - startIntent.putExtra("data", fileBundle) - startActivityForResult(startIntent, 3) - } else if (title == getString(R.string.from_url)) { - InputDialog(this).setTitle(R.string.from_url).setMessage(R.string.from_url_tip) - .setErrorTip { s, textInputLayout -> - if (s.matches(Regex("^http://([\\w-]+\\.)+[\\w-]+(/[\\w-./?%&=]*)?$|^https://([\\w-]+\\.)+[\\w-]+(/[\\w-./?%&=]*)?$"))) { - textInputLayout.error = getString(R.string.from_url_tip) - } else { - textInputLayout.isErrorEnabled = false - } - }.setPositiveButton(R.string.dialog_ok) { input -> - loadIcon(input) - true - }.setNegativeButton(R.string.dialog_close) { - - }.show() - } else { - val link = iconLink - if (link != null) { - needIcon = false - } - loadDefaultImage() - } - false - } - popupMenu.show() - } - } - - - /** - * 加载图像 - * @param iconPath String - */ - fun loadIcon(iconPath: String) { - needIcon = true - iconLink = iconPath - Glide.with(this).load(iconPath).apply(GlobalMethod.getRequestOptions()) - .into(viewBinding.iconView) - } - - /** - * 打包活动 - */ - private fun packModAction() { - val temModeClass = modClass - if (temModeClass == null) { - showToast("无法打包模组路径为空") - } else { - val packIntent = Intent(this, PackActivity::class.java) - val packData = Bundle() - packIntent.putExtra("data", packData) - packData.putString("modPath", temModeClass.modFile.absolutePath) - packData.putBoolean("needReturn", true) - this.startActivityForResult(packIntent, 1) - } - } - - - /** - * 检查模组Id - */ - fun checkModId(modId: String): Boolean { - if (modId.isBlank()) { - setErrorAndInput( - viewBinding.modIdEdit, - String.format( - getString(R.string.please_input_value), - viewBinding.modIdInputLayout.hint.toString() - ), - viewBinding.modIdInputLayout - ) - return false - } else if (modId.matches(Regex("^[A-Za-z0-9_]+\$"))) { - viewBinding.modIdInputLayout.isErrorEnabled = false - return true - } else { - setErrorAndInput( - viewBinding.modIdEdit, - getString(R.string.mod_id_error2), - viewBinding.modIdInputLayout, false - ) - return false - } - } - - fun checkVersionName(versionName: String): Boolean { - return if (versionName.isBlank()) { - setErrorAndInput( - viewBinding.versionNameEdit, - String.format( - getString(R.string.please_input_value), - viewBinding.versionNameInputLayout.hint.toString() - ), - viewBinding.versionNameInputLayout - ) - false - } else { - viewBinding.versionNameInputLayout.isErrorEnabled = false - true - } - } - - fun checkModDescribe(modDescribe: String): Boolean { - if (modDescribe.isBlank()) { - setErrorAndInput( - viewBinding.modDescribeEdit, - getString(R.string.describe_error), - viewBinding.modDescribeInputLayout - ) - return false - } else { - viewBinding.modDescribeInputLayout.isErrorEnabled = false - val index = modDescribe.indexOf('\n') - if (index > -1) { - val show = modDescribe.subSequence(0, index) - if (show.length > WebMod.maxDescribeLength) { - viewBinding.modDescribeInputLayout.helperText = - String.format( - getString(R.string.describe_tip2), - show.subSequence(0, WebMod.maxDescribeLength) - ) - } else { - viewBinding.modDescribeInputLayout.helperText = - String.format(getString(R.string.describe_tip2), show) - } - } else { - if (modDescribe.length > WebMod.maxDescribeLength) { - viewBinding.modDescribeInputLayout.helperText = - String.format( - getString(R.string.describe_tip2), - modDescribe.subSequence(0, WebMod.maxDescribeLength) - ) - } else { - viewBinding.modDescribeInputLayout.helperText = - getString(R.string.describe_tip) - } - - } - return true - } - } - - /** - * 检查更新日志 - * @param updateLog String - * @return Boolean - */ - fun checkUpdateLog(updateLog: String): Boolean { - return if (updateLog.isBlank()) { - setErrorAndInput( - viewBinding.modUpdateEdit, - String.format( - getString(R.string.please_input_value), - viewBinding.modUpdateInputLayout.hint.toString() - ), viewBinding.modUpdateInputLayout - ) - false - } else { - viewBinding.modUpdateInputLayout.isErrorEnabled = false - true - } - } - - /** - * 检查模组标签 - * @param tags String - * @return Boolean - */ - fun checkModTag(tags: String): Boolean { - return if (tags.isBlank()) { - setErrorAndInput( - viewBinding.modTagEdit, - getString(R.string.tags_error), - viewBinding.modTagInputLayout - ) - false - } else { - viewBinding.modTagInputLayout.isErrorEnabled = false - true - } - } - - /** - * 检查模组名 - * @param modName String - * @return Boolean - */ - fun checkModName(modName: String): Boolean { - if (modName.isBlank()) { - setErrorAndInput( - viewBinding.modNameEdit, - getString(R.string.name_error), - viewBinding.modNameInputLayout - ) - return false - } else { - viewBinding.modNameInputLayout.isErrorEnabled = false - return true - } - } - - /** - * 数据上传活动 - */ - private fun uploadAction(isUpdateMode: Boolean) { - val modId = viewBinding.modIdEdit.text.toString() - if (!checkModId(modId)) { - return - } - - val modName = viewBinding.modNameEdit.text.toString() - if (!checkModName(modName)) { - return - } - - val modDescribe = viewBinding.modDescribeEdit.text.toString() - if (!checkModDescribe(modDescribe)) { - return - } - - val tags = viewBinding.modTagEdit.text.toString() - if (!checkModTag(tags)) { - return - } - - val versionName = viewBinding.versionNameEdit.text.toString() - if (!checkVersionName(versionName)) { - return - } - var updateLog: String = viewBinding.modUpdateEdit.text.toString() - if (isUpdateMode) { - if (!checkUpdateLog(updateLog)) { - return - } - } - val minVersion: String = viewBinding.minVersionEdit.text.toString() - val tagsBuilder = StringBuilder() - val lineParser = LineParser(tags) - lineParser.symbol = "," - lineParser.parserSymbol = true - lineParser.analyse { lineNum, lineData, isEnd -> - if (lineData == lineParser.symbol) { - tagsBuilder.append(lineParser.symbol) - } else { - tagsBuilder.append("[") - tagsBuilder.append(lineData) - tagsBuilder.append("]") - } - true - } - - - val account = AppSettings.getValue(AppSettings.Setting.Account, "") - if (account.isBlank()) { - Snackbar.make( - viewBinding.releaseButton, - R.string.please_login_first, - Snackbar.LENGTH_SHORT - ).setAction(R.string.login) { - startActivity( - Intent( - this, - LoginActivity::class.java - ) - ) - }.show() - return - } - val file = modFile - if (file == null) { - if (modClass == null) { - selectModFile() - } else { - packModAction() - } - } else { - when (AppOperator.getNetworkType(this)) { - AppOperator.NetWorkType.NetWorkType_Moble -> { - val useMobileNetWork = - AppSettings.getValue(AppSettings.Setting.UseMobileNetwork, false) - if (useMobileNetWork) { - if (isUpdateMode) { - updateModWork( - modId, - AppSettings.getValue(AppSettings.Setting.Token, ""), - modName, - modDescribe, - updateLog, - versionName, - tagsBuilder, - file - ) - } else { - releaseModWork( - modId, modName, modDescribe, versionName, - minVersion, tagsBuilder, file - ) - } - } else { - CoreDialog(this).setTitle(R.string.using_mobile_networks) - .setMessage(R.string.using_mobile_networks_msg) - .setPositiveButton(R.string.only_one) { - if (isUpdateMode) { - updateModWork( - modId, - AppSettings.getValue(AppSettings.Setting.Token, ""), - modName, - modDescribe, - updateLog, - versionName, - tagsBuilder, - file - ) - } else { - releaseModWork( - modId, modName, modDescribe, versionName, - minVersion, tagsBuilder, file - ) - } - }.setNegativeButton(R.string.always_allow) { - AppSettings.setValue(AppSettings.Setting.UseMobileNetwork, true) - if (isUpdateMode) { - updateModWork( - modId, - AppSettings.getValue(AppSettings.Setting.Token, ""), - modName, - modDescribe, - updateLog, - versionName, - tagsBuilder, - file - ) - } else { - releaseModWork( - modId, modName, modDescribe, versionName, - minVersion, tagsBuilder, file - ) - } - }.setNeutralButton(R.string.dialog_cancel) { - - }.show() - } - } - AppOperator.NetWorkType.NetWorkType_Wifi -> { - if (isUpdateMode) { - updateModWork( - modId, - AppSettings.getValue(AppSettings.Setting.Token, ""), - modName, - modDescribe, - updateLog, - versionName, - tagsBuilder, - file - ) - } else { - releaseModWork( - modId, modName, modDescribe, versionName, - minVersion, tagsBuilder, file - ) - } - } - else -> {} - } - } - } - - /** - * 发布模组任务 - * @param modId String - * @param account String - * @param modName String - * @param modDescribe String - * @param tagsBuilder StringBuilder - */ - fun releaseModWork( - modId: String, - modName: String, - modDescribe: String, - versionName: String, - minVersion: String?, - tagsBuilder: StringBuilder, file: File - ) { - val loadFileLayoutBinding = LoadFileLayoutBinding.inflate(layoutInflater) - loadFileLayoutBinding.LinearProgressIndicator.max = 100 - val dialog = MaterialAlertDialogBuilder(this).setTitle(R.string.release) - .setView(loadFileLayoutBinding.root).setPositiveButton(R.string.dialog_ok) { i1, i2 -> - }.setCancelable(false).show() - - WebMod.instance.releaseMod(AppSettings.getValue(AppSettings.Setting.AppID, ""), modId, - AppSettings.getValue(AppSettings.Setting.Token, ""), - modName, - modDescribe, - tagsBuilder.toString(), - unitnum, minVersion = minVersion, - iconLink = iconLink, file = file, screenshotList = list, versionName = versionName, - apiCallBack = object : ApiCallBack { - override fun onResponse(t: ApiResponse) { - dialog.dismiss() - if (t.code == ServerConfiguration.Success_Code) { - val temModClass = modClass - if (temModClass != null) { - val manager = temModClass.modConfigurationManager - if (manager != null) { - val configurationData = manager.readData() - configurationData?.modId = modId - manager.saveData(configurationData) - } - } - //发布动态 - val check = viewBinding.checkbox.isChecked - if (check) { - val token = AppSettings.getValue(AppSettings.Setting.Token, "") - Dynamic.instance.send( - token, - String.format(getString(R.string.auto_send), modId), - object : ApiCallBack { - override fun onResponse(t: ApiResponse) { - - } - - override fun onFailure(e: Exception) { - - } - - }) - } - CoreDialog(this@ReleaseModActivity).setTitle(R.string.release) - .setMessage(t.message).setCancelable(false) - .setPositiveButton(R.string.dialog_ok) { - finish() - }.show() - } else { - handleEvent(t) - } - } - - override fun onFailure(e: Exception) { - dialog.dismiss() - showInternetError(viewBinding.releaseButton, e) - } - - }, progressListener = object : ProgressListener { - override fun onProgress(totalLength: Long, currentLength: Long) { - val numberFormat = NumberFormat.getNumberInstance() - numberFormat.maximumFractionDigits = 2 - val progress = - numberFormat.format(currentLength.toDouble() / totalLength.toDouble() * 100) - val processNum = progress.toFloat().toInt() - runOnUiThread { - loadFileLayoutBinding.LinearProgressIndicator.progress = processNum - if (processNum == 100) { - loadFileLayoutBinding.tipView.setText(R.string.file_upload_ok) - } else { - loadFileLayoutBinding.tipView.text = String.format(tip, progress) - } - } - - } - - }) - } - - - /** - * 更新模组任务 - * @param modId String - * @param account String - * @param modName String - * @param modDescribe String - * @param tagsBuilder StringBuilder - */ - fun updateModWork( - modId: String, - token: String, - modName: String, - modDescribe: String, - updateLog: String, - versionName: String, - tagsBuilder: StringBuilder, file: File - ) { - val loadFileLayoutBinding = LoadFileLayoutBinding.inflate(layoutInflater) - loadFileLayoutBinding.LinearProgressIndicator.max = 100 - - val dialog = MaterialAlertDialogBuilder(this).setTitle(R.string.release) - .setView(loadFileLayoutBinding.root).setPositiveButton(R.string.dialog_ok) { i1, i2 -> - }.setCancelable(false).show() - - - WebMod.instance.updateMod(AppSettings.getValue(AppSettings.Setting.AppID, ""), modId, - token, - modName, - modDescribe, - updateLog, - tagsBuilder.toString(), - unitnum, - iconLink = iconLink, file = file, screenshotList = list, versionName = versionName, - apiCallBack = object : ApiCallBack { - override fun onResponse(t: ApiResponse) { - dialog.dismiss() - if (t.code == ServerConfiguration.Success_Code) { - val temModClass = modClass - if (temModClass != null) { - val manager = temModClass.modConfigurationManager - if (manager != null) { - val configurationData = manager.readData() - configurationData?.modId = modId - manager.saveData(configurationData) - } - } - //发布动态 - val check = viewBinding.checkbox.isChecked - if (check) { - val token = AppSettings.getValue(AppSettings.Setting.Token, "") - Dynamic.instance.send( - token, - String.format( - getString(R.string.auto_send2), - modId, - versionName, - updateLog - ), - object : ApiCallBack { - override fun onResponse(t: ApiResponse) { - - } - - override fun onFailure(e: Exception) { - - } - - }) - } - - CoreDialog(this@ReleaseModActivity).setTitle(R.string.release).setMessage( - t.message - ).setPositiveButton(R.string.dialog_ok) { - finish() - }.setCancelable(false).show() - } else { - handleEvent(t) - } - } - - override fun onFailure(e: Exception) { - dialog.dismiss() - showInternetError(viewBinding.releaseButton, e) - } - - }, progressListener = object : ProgressListener { - override fun onProgress(totalLength: Long, currentLength: Long) { - val numberFormat = NumberFormat.getNumberInstance() - numberFormat.maximumFractionDigits = 2 - val progress = - numberFormat.format(currentLength.toDouble() / totalLength.toDouble() * 100) - val processNum = progress.toFloat().toInt() - runOnUiThread { - loadFileLayoutBinding.LinearProgressIndicator.progress = processNum - if (processNum == 100) { - loadFileLayoutBinding.tipView.setText(R.string.file_upload_ok) - } else { - loadFileLayoutBinding.tipView.text = String.format(tip, progress) - } - } - - } - - }) - } - - /** - * 处理错误事件 - * @param t ApiResponse - */ - fun handleEvent(t: ApiResponse) { - val data = t.data - if (data != null && ServerConfiguration.isEvent(data)) { - when (data) { - "@event:模组名占用" -> { - setErrorAndInput( - viewBinding.modNameEdit, - getString(R.string.mod_name_error), - viewBinding.modNameInputLayout - ) - } - "@event:Id占用" -> { - setErrorAndInput( - viewBinding.modIdEdit, - getString(R.string.mod_id_error3), - viewBinding.modIdInputLayout - ) - } - "@event:版本名占用" -> { - setErrorAndInput( - viewBinding.versionNameEdit, - String.format( - getString(R.string.version_name_error2), - viewBinding.versionNameEdit.text.toString(), - viewBinding.versionNameInputLayout - ) - ) - } - else -> { - Snackbar.make( - viewBinding.releaseButton, - t.message, - Snackbar.LENGTH_SHORT - ).show() - } - } - } else { - Snackbar.make( - viewBinding.releaseButton, - t.message, - Snackbar.LENGTH_SHORT - ).show() - } - } - - - override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { - super.onActivityResult(requestCode, resultCode, data) - if (data == null) { - return - } - if (resultCode == RESULT_OK) { - //打包返回 - when (requestCode) { - 1 -> { - val path = data.getStringExtra("path") - val num = data.getIntExtra("num", 0) - unitnum = num - modFile = File(path) - val pathTip = String.format(getString(R.string.load_mod_file), path) - val numTip = String.format(getString(R.string.unit_num), num) - viewBinding.modPathView.text = pathTip - viewBinding.unitNumberView.isVisible = true - viewBinding.unitNumberView.text = numTip - viewBinding.packModButton.isVisible = false - } - 2 -> { - //选择截图返回 - val path = data.getStringExtra("File") - if (path != null) { - val file = File(path) - when (FileOperator.getFileType(file)) { - "png", "jpg" -> { - screenshotAdapter.addItem(path) - } - else -> { - Snackbar.make( - viewBinding.releaseButton, - R.string.bad_file_type, - Snackbar.LENGTH_SHORT - ).show() - } - } - } - } - 3 -> { - //选择图标返回 - val filePath = data.getStringExtra("File") ?: return - val newIconFile = File(filePath) - val type = FileOperator.getFileType(newIconFile) - if (type == "png" || type == "jpg") { - val bitmap = BitmapFactory.decodeFile(newIconFile.absolutePath) - if (bitmap.height == bitmap.width) { - loadIcon(filePath) - } else { - val cacheFolder = File(cacheDir.absolutePath + "/System/Images") - if (!cacheFolder.exists()) { - cacheFolder.mkdirs() - } - iconCacheFile = File(cacheFolder.absolutePath + "/" + newIconFile.name) - UCrop.of( - Uri.parse(newIconFile.toURI().toString()), - Uri.parse(iconCacheFile.toURI().toString()) - ).withAspectRatio(1f, 1f).start(this) - } - } else { - Snackbar.make( - viewBinding.releaseButton, - getString(R.string.bad_file_type), - Snackbar.LENGTH_SHORT - ).show() - } - } - 4 -> { -//选择压缩文件返回 - val executorService = Executors.newSingleThreadExecutor() - executorService.submit { - val filePath = data.getStringExtra("File") ?: return@submit - val file = File(filePath) - val type = FileOperator.getFileType(file) - if (type == "zip" || type == "rwmod") { - val cacheFolder = - File(cacheDir.toString() + "/mod/" + FileOperator.getPrefixName(file)) - if (!cacheFolder.exists()) { - cacheFolder.mkdirs() - } - var num = 0 - runOnUiThread { - viewBinding.modPathView.text = getString(R.string.calculating) - viewBinding.packModButton.isVisible = false - } - val compressionManager = CompressionManager.instance - compressionManager.unzip(file, cacheFolder, object : UnzipListener { - override fun whenUnzipFile( - zipEntry: ZipEntry, - file: File - ): Boolean { - if (file.name.matches(Regex(".+\\.ini|.+\\.template"))) { - num++ - } - return true - } - - override fun whenUnzipFolder( - zipEntry: ZipEntry, - folder: File - ): Boolean { - return true - } - - override fun whenUnzipComplete(result: Boolean) { - runOnUiThread { - unitnum = num - modFile = file - val pathTip = String.format( - getString(R.string.load_mod_file), - filePath - ) - val numTip = - String.format(getString(R.string.unit_num), num) - viewBinding.modPathView.text = pathTip - viewBinding.unitNumberView.isVisible = true - viewBinding.unitNumberView.text = numTip - } - } - - }) - } else { - runOnUiThread { - Snackbar.make( - viewBinding.releaseButton, - getString(R.string.bad_file_type), - Snackbar.LENGTH_SHORT - ).show() - } - } - } - } - UCrop.REQUEST_CROP -> { - //val resultUri = UCrop.getOutput(data) - loadIcon(iconCacheFile.absolutePath) - } - } - } - } - - override fun getViewBindingObject(layoutInflater: LayoutInflater): ActivityReleaseModBinding { - return ActivityReleaseModBinding.inflate(layoutInflater) - } - - -} \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/ReviewModActivity.kt b/app/src/main/java/com/coldmint/rust/pro/ReviewModActivity.kt deleted file mode 100644 index d9fb7c8..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/ReviewModActivity.kt +++ /dev/null @@ -1,161 +0,0 @@ -package com.coldmint.rust.pro - -import android.content.Intent -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.widget.Toast -import androidx.core.view.isVisible -import androidx.recyclerview.widget.LinearLayoutManager -import com.coldmint.rust.core.dataBean.ApiResponse -import com.coldmint.rust.core.dataBean.mod.WebModListData -import com.coldmint.rust.core.interfaces.ApiCallBack -import com.coldmint.rust.core.web.ServerConfiguration -import com.coldmint.rust.core.web.WebMod -import com.coldmint.rust.pro.adapters.AuditModAdapter -import com.coldmint.rust.pro.base.BaseActivity -import com.coldmint.rust.pro.databinding.ActivityReviewModBinding -import com.coldmint.rust.pro.tool.AppSettings -import com.coldmint.rust.pro.ui.StableLinearLayoutManager -import com.google.android.material.snackbar.Snackbar - -/** - * @author Cold Mint - * @date 2022/1/9 16:50 - */ -class ReviewModActivity : BaseActivity() { - val token by lazy { - AppSettings.getValue(AppSettings.Setting.Token, "") - } - - override fun whenCreateActivity(savedInstanceState: Bundle?, canUseView: Boolean) { - if (canUseView) { - title = getText(R.string.review_mod) - setReturnButton() - if (token.isBlank()) { - showInfoToView(resId = R.string.please_login_first) - return - } - viewBinding.recyclerView.layoutManager = StableLinearLayoutManager(this) - loadList() - } - } - - /** - * 加载列表 - */ - fun loadList() { - WebMod.instance.getAuditList(object : ApiCallBack { - override fun onResponse(t: WebModListData) { - val temData = t.data - if (t.code == ServerConfiguration.Success_Code && temData != null) { - val mutableList = temData.toMutableList() - viewBinding.progressBar.isVisible = false - viewBinding.tipView.isVisible = false - viewBinding.recyclerView.isVisible = true - val adapter = AuditModAdapter(this@ReviewModActivity, mutableList) - adapter.setItemEvent { i, itemAuditModBinding, viewHolder, data -> - itemAuditModBinding.root.setOnClickListener { - val intent = - Intent(this@ReviewModActivity, WebModInfoActivity::class.java) - val target = data.id - val bundle = Bundle() - bundle.putString("modName", target) - bundle.putString("modId", target) - intent.putExtra("data", bundle) - startActivity(intent) - } - itemAuditModBinding.consentView.setOnClickListener { - WebMod.instance.auditMod( - token, - data.id, - true, - object : ApiCallBack { - override fun onResponse(t: ApiResponse) { - if (t.code == ServerConfiguration.Success_Code) { - val index = mutableList.indexOf(data) - mutableList.removeAt(index) - adapter.notifyItemRemoved(index) - if (mutableList.isEmpty()) { - loadList() - } - } else { - Snackbar.make( - viewBinding.tipView, - t.message, - Snackbar.LENGTH_SHORT - ).show() - } - } - - override fun onFailure(e: Exception) { - showInternetError(viewBinding.tipView, e) - } - - }) - } - itemAuditModBinding.refusedView.setOnClickListener { - - WebMod.instance.auditMod( - token, - data.id, - false, - object : ApiCallBack { - override fun onResponse(t: ApiResponse) { - if (t.code == ServerConfiguration.Success_Code) { - val index = mutableList.indexOf(data) - mutableList.removeAt(index) - adapter.notifyItemRemoved(index) - if (mutableList.isEmpty()) { - loadList() - } - } else { - Snackbar.make( - viewBinding.tipView, - t.message, - Snackbar.LENGTH_SHORT - ).show() - } - } - - override fun onFailure(e: Exception) { - showInternetError(viewBinding.tipView, e) - } - - }) - } - } - viewBinding.recyclerView.adapter = adapter - } else { - showInfoToView(str = t.message) - } - } - - override fun onFailure(e: Exception) { - showInfoToView(resId = R.string.network_error) - } - - }, sortMode = WebMod.SortMode.Latest_Time) - } - - /** - * 显示信息在视图上 - * @param str String? - * @param resId Int? - */ - fun showInfoToView(str: String? = null, resId: Int? = null) { - viewBinding.progressBar.isVisible = false - viewBinding.recyclerView.isVisible = false - viewBinding.tipView.isVisible = true - if (str != null) { - viewBinding.tipView.text = str - } - if (resId != null) { - viewBinding.tipView.setText(resId) - } - } - - override fun getViewBindingObject(layoutInflater: LayoutInflater): ActivityReviewModBinding { - return ActivityReviewModBinding.inflate(layoutInflater) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/SearchActivity.kt b/app/src/main/java/com/coldmint/rust/pro/SearchActivity.kt deleted file mode 100644 index 134d455..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/SearchActivity.kt +++ /dev/null @@ -1,248 +0,0 @@ -package com.coldmint.rust.pro - -import android.annotation.SuppressLint -import android.content.Context -import android.content.Intent -import android.os.Bundle -import android.view.LayoutInflater -import android.view.Menu -import android.view.MenuItem -import android.view.ViewGroup -import android.widget.Button -import androidx.appcompat.widget.SearchView -import androidx.core.view.isVisible -import androidx.recyclerview.widget.RecyclerView -import com.coldmint.rust.core.dataBean.HotSearchData -import com.coldmint.rust.core.dataBean.SearchSuggestionsData -import com.coldmint.rust.core.interfaces.ApiCallBack -import com.coldmint.rust.core.web.Search -import com.coldmint.rust.pro.adapters.HotSearchAdapter -import com.coldmint.rust.pro.adapters.SearchSuggestionsAdapter -import com.coldmint.rust.pro.base.BaseActivity -import com.coldmint.rust.pro.databinding.ActivitySearchBinding -import com.coldmint.rust.pro.databinding.ItemStringBinding -import com.coldmint.rust.pro.ui.StableLinearLayoutManager -import com.google.android.flexbox.FlexboxLayoutManager -import com.google.android.material.dialog.MaterialAlertDialogBuilder - -/** - * 搜索界面 - */ -class SearchActivity : BaseActivity() { - lateinit var list: MutableList - val sharedPreferencesKey = "search_history" - - @SuppressLint("CommitPrefEdits", "NotifyDataSetChanged") - override fun whenCreateActivity(savedInstanceState: Bundle?, canUseView: Boolean) { - title = getString(R.string.search) - setReturnButton() - viewBinding.recyclerView.layoutManager = StableLinearLayoutManager(this) - viewBinding.hotSearchView.layoutManager = StableLinearLayoutManager(this) - loadSearchView() - loadHotSearch() - list = getSharedPreferences(sharedPreferencesKey, Context.MODE_PRIVATE) - .getStringSet("data", mutableSetOf()) - ?.toMutableList() ?: mutableListOf() - viewBinding.hotSearchView2.layoutManager = FlexboxLayoutManager(this) - viewBinding.hotSearchView2.adapter = adapter - viewBinding.deleat.setOnClickListener { - val dialog = MaterialAlertDialogBuilder(this@SearchActivity) - dialog.setTitle(R.string.search_history) - dialog.setMessage(R.string.clear_all_history) - dialog.setPositiveButton(R.string.dialog_ok) { _, _ -> - while (list.isNotEmpty()) { - val index = 0 - list.removeAt(index) - adapter.notifyItemRemoved(index) - } - getSharedPreferences(sharedPreferencesKey, - Context.MODE_PRIVATE).edit().putStringSet( - "data", list.toSet()).apply() - } - dialog.setNegativeButton(R.string.dialog_cancel, null) - dialog.show() - } - viewBinding.searchView.onActionViewExpanded() - } - - private fun additem(string: String) { - // 检查列表中是否已经存在该数据 - val existingIndex = list.indexOf(string) - if (existingIndex != -1) { - // 如果已存在,移动到列表最前面 - list.removeAt(existingIndex) - list.add(0, string) - adapter.notifyItemMoved(existingIndex, 0) - } else { - // 如果不存在,添加到列表最前面 - list.add(0, string) - adapter.notifyItemInserted(0) - } - // 滚动到顶部 -// viewBinding.hotSearchView2.scrollToPosition(0) - // 限制历史记录数量为10 - if (list.size > 10) { - list.removeAt(list.lastIndex) - } - val editor = getSharedPreferences(sharedPreferencesKey, Context.MODE_PRIVATE).edit() - editor.putStringSet("data", list.toSet()) - editor.apply() - if (!viewBinding.searchView.isVisible) { - viewBinding.searchLayout.isVisible = true - } - } - - fun search(string: String) { - val intent = Intent(this@SearchActivity, SearchResultActivity::class.java) - intent.putExtra("key", string) - startActivity(intent) - additem(string) - - } - - //TODO:将适配器继承自BaseAdapter,使其不再过度依赖SearchActivity。 - val adapter: RecyclerView.Adapter = object : RecyclerView.Adapter() { - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): VH { - return VH(ItemStringBinding.bind( - LayoutInflater.from(viewBinding.root.context) - .inflate(R.layout.item_string, parent, false))) - - } - - override fun onBindViewHolder(holder: VH, position: Int) { - holder.binding.button.text = list[position] - - holder.binding.button.setOnClickListener { - val a: Button = it as Button - search(a.text.toString()) - } - holder.binding.button.setOnLongClickListener { - val str = list[holder.bindingAdapterPosition] - MaterialAlertDialogBuilder(it.context).setTitle("确定要删除此记录:$str") - .setPositiveButton("确定") { _, _ -> - list.remove(str) - notifyItemRemoved(holder.bindingAdapterPosition) - }.setNegativeButton("取消", null) - .show() - false - } - } - - override fun getItemCount(): Int { - val empty = list.isEmpty() - viewBinding.searchLayout.isVisible = !empty - viewBinding.deleat.isVisible = !empty - return list.size - } - } - - class VH(itemView: ItemStringBinding) : RecyclerView.ViewHolder(itemView.root) { - var binding: ItemStringBinding = itemView - } - - - private fun loadHotSearch() { - Search.instance.hotSearch(object : ApiCallBack { - override fun onResponse(t: HotSearchData) { - val adapter = HotSearchAdapter(this@SearchActivity, t.data) - adapter.setItemEvent { _, itemHotSearchBinding, _, data -> - itemHotSearchBinding.root.setOnClickListener { - search(data.keyword) - } - } - viewBinding.hotSearchView.adapter = adapter - } - - override fun onFailure(e: Exception) { - - } - - }) - } - - private fun loadSearchView() { - viewBinding.searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener, - android.widget.SearchView.OnQueryTextListener { - override fun onQueryTextSubmit(query: String?): Boolean { - if (!query.isNullOrBlank()) { - search(query) - } - return true - } - - override fun onQueryTextChange(newText: String?): Boolean { - if (!newText.isNullOrBlank()) { -// viewBinding.searchSuggestionsView.setText(R.string.search_suggestions_loading) - Search.instance.suggestions(newText, - object : ApiCallBack { - override fun onResponse(t: SearchSuggestionsData) { - val dataList = t.data - if (dataList.isEmpty()) { - viewBinding.recyclerView.isVisible = false -// viewBinding.searchSuggestionsView.setText(R.string.search_suggestions_null) - } else { - val adapter = - SearchSuggestionsAdapter( - this@SearchActivity, - newText, - dataList - ) - adapter.setItemEvent { _, itemSearchSuggestionsBinding, _, s -> - itemSearchSuggestionsBinding.root.setOnClickListener { - search(s) - } - } - viewBinding.recyclerView.adapter = adapter - viewBinding.recyclerView.isVisible = true -// val s = String.format(getString(R.string.search_suggestions_number),dataList.size) -// viewBinding.searchSuggestionsView.text = s - } - } - - override fun onFailure(e: Exception) { - - viewBinding.recyclerView.isVisible = false -// viewBinding.searchSuggestionsView.setText(R.string.search_suggestions_null) - } - - }) - } else { -// viewBinding.searchSuggestionsView.setText(R.string.search_suggestions_null) - viewBinding.recyclerView.isVisible = false - } - return true - } - - }) - } - - override fun onCreateOptionsMenu(menu: Menu): Boolean { - val add = menu.add("搜索") - add.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM) - return super.onCreateOptionsMenu(menu) - } - - override fun onOptionsItemSelected(item: MenuItem): Boolean { - if (item.itemId == 0) { - if (!viewBinding.searchView.query.isNullOrBlank()) { - search(viewBinding.searchView.query.toString()) - } - } - return super.onOptionsItemSelected(item) - } - - - override fun getViewBindingObject(layoutInflater: LayoutInflater): ActivitySearchBinding { - return ActivitySearchBinding.inflate(layoutInflater) - } - - override fun onBackPressed() { - if (viewBinding.recyclerView.isVisible) { - viewBinding.recyclerView.isVisible = false - return - } - super.onBackPressed() - } - -} \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/SearchResultActivity.kt b/app/src/main/java/com/coldmint/rust/pro/SearchResultActivity.kt deleted file mode 100644 index 5612681..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/SearchResultActivity.kt +++ /dev/null @@ -1,111 +0,0 @@ -package com.coldmint.rust.pro - -import android.os.Bundle -import android.view.LayoutInflater -import androidx.core.view.isVisible -import com.coldmint.rust.core.dataBean.user.SearchResultDataBean -import com.coldmint.rust.core.interfaces.ApiCallBack -import com.coldmint.rust.core.web.Search -import com.coldmint.rust.core.web.ServerConfiguration -import com.coldmint.rust.pro.adapters.SearchPageAdapter -import com.coldmint.rust.pro.base.BaseActivity -import com.coldmint.rust.pro.databinding.ActivitySearchResultBinding -import com.google.android.material.tabs.TabLayoutMediator - -/** - * 搜索activity - */ -class SearchResultActivity : BaseActivity() { - lateinit var keyWord: String - val typeMap by lazy { - val map = HashMap() - map["mod"] = R.string.search_type_mod - map["user"] = R.string.search_type_user - map["dynamic"] = R.string.search_type_dynamic - map["mod_comments"] = R.string.search_type_mod_comments - map["mod_versions"] = R.string.search_type_mod_versions - map["purchase_plan"] = R.string.search_type_purchase_plan - map["template_package"] = R.string.search_type_template_package - map - } - - override fun whenCreateActivity(savedInstanceState: Bundle?, canUseView: Boolean) { - if (canUseView) { - setReturnButton() - loadData(keyWord) - title = String.format(getString(R.string.search_mod_key), keyWord) - } else { - val thisIntent = intent - val key = thisIntent.getStringExtra("key") - if (key == null) { - showError("key为null") - return - } - keyWord = key - } - } - - /** - * 加载数据 - * @param keyWord String - */ - fun loadData(keyWord: String) { - Search.instance.searchAll(keyWord, object : ApiCallBack { - override fun onResponse(t: SearchResultDataBean) { - if (t.code == ServerConfiguration.Success_Code) { - val list = t.data.total - if (list.isNotEmpty()) { - val adapter = SearchPageAdapter(this@SearchResultActivity, keyWord, t.data) - viewBinding.viewPager2.adapter = adapter - TabLayoutMediator(viewBinding.tabLayout, viewBinding.viewPager2) { tab, i -> - tab.text = if (i == 0) { - getString(R.string.search_type_mod_all) + "(" + t.data.total.size + ")" - } else { - val typeData = t.data.type[i - 1] - val id = typeMap[typeData.typeName] ?: -1 - val name = if (id == -1) { - typeData.typeName - } else { - getString(id) - } - name + "(" + typeData.num + ")" - } - }.attach() - viewBinding.progressBar.isVisible = false - viewBinding.tipView.isVisible = false - viewBinding.contentLayout.isVisible = true - title = String.format( - getString(R.string.search_mod_key), - keyWord - ) - } else { - showInfoToView(t.message) - } - } else { - showInfoToView(t.message) - } - } - - override fun onFailure(e: Exception) { - showInfoToView(this@SearchResultActivity.getString(R.string.network_error)) - } - - }) - } - - /** - * 显示信息到视图 - * @param text String - */ - fun showInfoToView(text: String) { - viewBinding.tipView.isVisible = true - viewBinding.tipView.text = text - viewBinding.progressBar.isVisible = false - viewBinding.contentLayout.isVisible = false - } - - - override fun getViewBindingObject(layoutInflater: LayoutInflater): ActivitySearchResultBinding { - return ActivitySearchResultBinding.inflate(layoutInflater) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/SettingsActivity.kt b/app/src/main/java/com/coldmint/rust/pro/SettingsActivity.kt index 46261ff..fa58cc0 100644 --- a/app/src/main/java/com/coldmint/rust/pro/SettingsActivity.kt +++ b/app/src/main/java/com/coldmint/rust/pro/SettingsActivity.kt @@ -17,7 +17,6 @@ import com.coldmint.rust.core.tool.FileOperator import com.coldmint.rust.pro.base.BaseActivity import com.coldmint.rust.pro.databinding.ActivitySettingsBinding import com.coldmint.rust.pro.tool.AppSettings -import com.coldmint.rust.pro.tool.GlobalMethod import com.google.android.material.color.DynamicColors import com.google.android.material.dialog.MaterialAlertDialogBuilder import kotlinx.coroutines.CoroutineScope @@ -35,7 +34,7 @@ class SettingsActivity : BaseActivity() { val listPreference = manager.findPreference(getString(R.string.setting_app_language)) as ListPreference? listPreference!!.onPreferenceChangeListener = - Preference.OnPreferenceChangeListener { preference, newValue -> + Preference.OnPreferenceChangeListener { _, newValue -> val oldLanguage = AppSettings.getValue( AppSettings.Setting.AppLanguage, @@ -51,11 +50,6 @@ class SettingsActivity : BaseActivity() { true } -/* - val english_editing_mode = - manager.findPreference(requireContext().getString(R.string.setting_english_editing_mode)) -*/ - val customizeEdit = manager.findPreference("customize_edit") customizeEdit!!.onPreferenceClickListener = Preference.OnPreferenceClickListener { val intent = Intent(requireContext(), CustomizeEditTextActivity::class.java) @@ -77,9 +71,13 @@ class SettingsActivity : BaseActivity() { dynamicColor?.summary = getString(R.string.dynamic_color_disabled) dynamicColor?.isEnabled = false } - dynamicColor?.setOnPreferenceChangeListener { preference, newValue -> + dynamicColor?.setOnPreferenceChangeListener { _, newValue -> if (newValue is Boolean) { - if (AppSettings.getValue(AppSettings.Setting.DynamicColor, DynamicColors.isDynamicColorAvailable()) != newValue) { + if (AppSettings.getValue( + AppSettings.Setting.DynamicColor, + DynamicColors.isDynamicColorAvailable() + ) != newValue + ) { activity?.recreate() } } @@ -93,12 +91,6 @@ class SettingsActivity : BaseActivity() { true } -// val obtainSourceCode = manager.findPreference(requireContext().getString(R.string.setting_obtain_source_code)) -// obtainSourceCode!!.onPreferenceClickListener = Preference.OnPreferenceClickListener { -// AppOperator.useBrowserAccessWebPage(requireContext(),"https://github.com/Cold-Mint/RustAssistant") -// true -// } - val game = manager.findPreference("set_game_pack") game!!.onPreferenceClickListener = Preference.OnPreferenceClickListener { startActivity(Intent(context, ApplicationListActivity::class.java)) @@ -125,13 +117,13 @@ class SettingsActivity : BaseActivity() { clearCache!!.onPreferenceClickListener = Preference.OnPreferenceClickListener { val items = ArrayList() - val listData = listOf( + val listData = listOf( getString(R.string.history_cache), getString(R.string.code_cache), getString(R.string.glide_cache) ) MaterialAlertDialogBuilder(requireContext()).setTitle(R.string.clear_cache) - .setMultiChoiceItems(listData.toTypedArray(), null) { dialog, index, bool -> + .setMultiChoiceItems(listData.toTypedArray(), null) { _, index, bool -> val string = listData[index] if (bool) { items.add(string) @@ -139,7 +131,7 @@ class SettingsActivity : BaseActivity() { items.remove(string) } } - .setPositiveButton(R.string.dialog_ok) { i, i2 -> + .setPositiveButton(R.string.dialog_ok) { _, _ -> val handler = Handler(Looper.getMainLooper()) val job = Job() val scope = CoroutineScope(job) @@ -185,15 +177,15 @@ class SettingsActivity : BaseActivity() { } } - }.setNegativeButton(R.string.dialog_cancel) { i, i2 -> + }.setNegativeButton(R.string.dialog_cancel) { _, _ -> }.show() true } val nightMode: MaterialSwitchPreference? = - manager.findPreference(getString(R.string.setting_night_mode)) - nightMode?.setOnPreferenceChangeListener { preference, newValue -> + manager.findPreference(getString(R.string.setting_night_mode)) + nightMode?.setOnPreferenceChangeListener { _, newValue -> val booleanValue = newValue as Boolean if (booleanValue) { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES) @@ -205,8 +197,8 @@ class SettingsActivity : BaseActivity() { val nightModeFollowSystem: MaterialSwitchPreference? = - manager.findPreference(getString(R.string.setting_night_mode_follow_system)) - nightModeFollowSystem?.setOnPreferenceChangeListener { preference, newValue -> + manager.findPreference(getString(R.string.setting_night_mode_follow_system)) + nightModeFollowSystem?.setOnPreferenceChangeListener { _, newValue -> if (nightMode != null) { val useValue = newValue as Boolean nightMode.isEnabled = !useValue @@ -218,41 +210,33 @@ class SettingsActivity : BaseActivity() { if (nightMode != null && nightModeFollowSystem != null) { nightMode.isEnabled = !nightModeFollowSystem.isChecked } - if (!GlobalMethod.isActive) { - val editGroup = manager.findPreference("editGroup") - if (editGroup != null) { - editGroup.isVisible = false - } - val gamePackGroup = manager.findPreference("gamePackGroup") - if (gamePackGroup != null) { - gamePackGroup.isVisible = false - } - val modGroup = manager.findPreference("modGroup") - if (modGroup != null) { - modGroup.isVisible = false - } + val editGroup = manager.findPreference("editGroup") + if (editGroup != null) { + editGroup.isVisible = false + } + val gamePackGroup = manager.findPreference("gamePackGroup") + if (gamePackGroup != null) { + gamePackGroup.isVisible = false + } - val templateGroup = manager.findPreference("templateGroup") - if (templateGroup != null) { - templateGroup.isVisible = false - } - val developerModeGroup = - manager.findPreference("developerModeGroup") - if (developerModeGroup != null) { - developerModeGroup.isVisible = false - } + val modGroup = manager.findPreference("modGroup") + if (modGroup != null) { + modGroup.isVisible = false + } - val useCommunity = - manager.findPreference(getString(R.string.setting_use_the_community_as_the_launch_page)) - if (useCommunity != null) { - useCommunity.isVisible = false - } - - val mapGroup = manager.findPreference("mapGroup") - if (mapGroup != null) { - mapGroup.isVisible = false - } + val templateGroup = manager.findPreference("templateGroup") + if (templateGroup != null) { + templateGroup.isVisible = false + } + val developerModeGroup = + manager.findPreference("developerModeGroup") + if (developerModeGroup != null) { + developerModeGroup.isVisible = false + } + val mapGroup = manager.findPreference("mapGroup") + if (mapGroup != null) { + mapGroup.isVisible = false } } @@ -264,17 +248,17 @@ class SettingsActivity : BaseActivity() { override fun whenCreateActivity(savedInstanceState: Bundle?, canUseView: Boolean) { if (canUseView) { - this.getTheme().applyStyle( + this.theme.applyStyle( rikka.material.preference.R.style.ThemeOverlay_Rikka_Material3_Preference, true ) title = getString(R.string.set_up) setReturnButton() - val settingsFragment = SettingsFragment() - supportFragmentManager - .beginTransaction() - .replace(R.id.settings, settingsFragment) - .commit() + supportFragmentManager.beginTransaction().apply { + val settingsFragment = SettingsFragment() + replace(R.id.settings, settingsFragment) + commit() + } } } diff --git a/app/src/main/java/com/coldmint/rust/pro/UserHomePageActivity.kt b/app/src/main/java/com/coldmint/rust/pro/UserHomePageActivity.kt deleted file mode 100644 index f17b581..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/UserHomePageActivity.kt +++ /dev/null @@ -1,523 +0,0 @@ -package com.coldmint.rust.pro - -import android.annotation.SuppressLint -import android.content.Intent -import android.graphics.Color -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import androidx.coordinatorlayout.widget.CoordinatorLayout -import androidx.core.view.isVisible -import com.bumptech.glide.Glide -import com.coldmint.dialog.CoreDialog -import com.coldmint.rust.core.dataBean.ApiResponse -import com.coldmint.rust.core.dataBean.user.SpaceInfoData -import com.coldmint.rust.core.interfaces.ApiCallBack -import com.coldmint.rust.core.tool.DebugHelper -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.AnimUtil -import com.coldmint.rust.pro.tool.AppSettings -import com.coldmint.rust.pro.tool.GlobalMethod -import com.google.android.material.appbar.CollapsingToolbarLayout -import com.google.android.material.snackbar.Snackbar -import com.google.android.material.tabs.TabLayout -import com.google.android.material.tabs.TabLayoutMediator -import com.gyf.immersionbar.ImmersionBar -import kotlin.math.abs - - -class UserHomePageActivity : BaseActivity() { - - lateinit var userId: String - var account: String? = null - var userName: String? = null - var fans: Int = 0 - val userHomeStateAdapter by lazy { - UserHomeStateAdapter(this, userId) - } - var needShowFab = false - - //旧的备份数据 - var oldSpaceInfoData: SpaceInfoData? = null - - @SuppressLint("CheckResult") - private fun initView() { - if (ImmersionBar.hasNavigationBar(this)) { - val layoutParams = - viewBinding.fab.layoutParams as CoordinatorLayout.LayoutParams - layoutParams.setMargins( - GlobalMethod.dp2px(16), - GlobalMethod.dp2px(16), - GlobalMethod.dp2px(16), - ImmersionBar.getNavigationBarHeight(this) + GlobalMethod.dp2px(16) - ) - DebugHelper.printLog("导航适配", "已调整fab按钮的位置。") - } - val s = ImmersionBar.getStatusBarHeight(this) - val layoutParams = - viewBinding.toolbar.layoutParams as CollapsingToolbarLayout.LayoutParams - layoutParams.setMargins( - 0, - s, - 0, - 0 - ) - - val thisIntent = intent - val temUserId = thisIntent.getStringExtra("userId") - if (temUserId == null) { - showError("请传入用户id") - return - } else { - userId = temUserId - } - - val temAccount = AppSettings.getValue(AppSettings.Setting.Account, "") - if (temAccount.isNotBlank()) { - account = temAccount - } - viewBinding.toolbar.title = "" - setReturnButton() - viewBinding.followLayout.setOnClickListener { - openUserList(userId, true) - - } - viewBinding.fansLayout.setOnClickListener { - openUserList(userId, false) - } - initButton() - } - - - /** - * 打开用户列表 - * @param account String 账号 - * @param isFollowMode Boolean 是否加载偶像 - */ - fun openUserList(account: String, isFollowMode: Boolean) { - val bundle = Bundle() - bundle.putString("account", account) - bundle.putBoolean("isFollowMode", isFollowMode) - val intent = Intent(this, UserListActivity::class.java) - intent.putExtra("data", bundle) - startActivity(intent) - } - - /** - * 初始化按钮 - */ - private fun initButton() { - if (account == null) { - viewBinding.button.text = getString(R.string.please_login_first) - viewBinding.button.isEnabled = false - } else { - if (account == userId) { - viewBinding.button.text = getString(R.string.editData) - } else { - Community.getFollowState(account!!, userId, object : ApiCallBack { - override fun onResponse(t: ApiResponse) { - if (t.code == ServerConfiguration.Success_Code) { - val data = t.data - if (data != null && ServerConfiguration.isEvent(data)) { - when (data) { - "@event:已互粉" -> { - viewBinding.button.text = - getString(R.string.each_other_follow) - } - "@event:已关注" -> { - viewBinding.button.text = getString(R.string.followed) - } - "@event:关注" -> { - viewBinding.button.text = getString(R.string.follow) - } - "@event:拒绝关注" -> { - viewBinding.button.text = getString(R.string.reject_follow) - viewBinding.button.isEnabled = false - } - } - } - } else { - - } - } - - override fun onFailure(e: Exception) { - - } - - }) - } - } - } - - /** - * 展示用户数据到视图 - * @param spaceInfoData SpaceInfoData - */ - fun showUserdataIfNeed(spaceInfoData: SpaceInfoData) { - var isFirst = false - if (oldSpaceInfoData == null) { - isFirst = true - oldSpaceInfoData = spaceInfoData - } else { - if (oldSpaceInfoData == spaceInfoData) { - return - } - } - userName = spaceInfoData.data.userName - - viewBinding.appBar.addOnOffsetChangedListener { appBarLayout, verticalOffset -> - viewBinding.toolbar.title = - if ((abs(verticalOffset) >= appBarLayout.totalScrollRange)) { - spaceInfoData.data.userName - } else { - "" - } - } - viewBinding.nameView.text = spaceInfoData.data.userName - viewBinding.describeView.text = - spaceInfoData.data.introduce ?: getString(R.string.defaultIntroduced) - viewBinding.loginTimeView.text = String.format( - getString(R.string.user_info), - spaceInfoData.data.loginTime, - spaceInfoData.data.location - ) - - viewBinding.fab.isVisible = true - - val gender = spaceInfoData.data.gender - if (gender > 0) { - Glide.with(application).load(R.drawable.boy).apply(GlobalMethod.getRequestOptions()) - .into(viewBinding.genderView) - } else { - Glide.with(application).load(R.drawable.girl).apply(GlobalMethod.getRequestOptions()) - .into(viewBinding.genderView) - } - - when (spaceInfoData.data.permission) { - 1 -> { - viewBinding.cardView.isVisible = true - viewBinding.cardView.setCardBackgroundColor(Color.parseColor("#f47920")) - viewBinding.positionView.setText(R.string.super_admin) - } - 2 -> { - viewBinding.cardView.isVisible = true - viewBinding.cardView.setCardBackgroundColor(Color.parseColor("#ffd400")) - viewBinding.positionView.setText(R.string.admin) - } - else -> { - if (spaceInfoData.data.expirationTime == ServerConfiguration.ForeverTime) { - viewBinding.cardView.isVisible = true - viewBinding.cardView.setCardBackgroundColor(Color.parseColor("#33a3dc")) - } - } - } - - val icon = spaceInfoData.data.headIcon - if (icon != null) { - val iconLink = ServerConfiguration.getRealLink(icon) - Glide.with(this@UserHomePageActivity).load(iconLink) - .apply(GlobalMethod.getRequestOptions(true)) - .into(viewBinding.headIconView) - } - - val cover = spaceInfoData.data.cover - if (cover != null) { - Glide.with(this).load(ServerConfiguration.getRealLink(cover)) - .into(viewBinding.coverView) - Glide.with(this).load(ServerConfiguration.getRealLink(cover)) - .into(viewBinding.fullCoverView) - } - - viewBinding.viewPager.adapter = userHomeStateAdapter - - - viewBinding.coverView.setOnClickListener { - if (cover == null) { - return@setOnClickListener - } - viewBinding.coverView.visibility = View.INVISIBLE - AnimUtil.doAnim( - this, - R.anim.overall_drop, - listOf(viewBinding.appBar, viewBinding.viewPager) - ) { views -> - views.forEach { - it.isVisible = false - } - needShowFab = viewBinding.fab.isShown - if (needShowFab) { - viewBinding.fab.hide() - } - viewBinding.fullCoverView.isVisible = true - } - } - - viewBinding.fullCoverView.setOnClickListener { - if (cover == null) { - return@setOnClickListener - } - viewBinding.fullCoverView.isVisible = false - AnimUtil.doAnim( - this, - R.anim.overall_up, - listOf(viewBinding.appBar, viewBinding.viewPager) - ) { views -> - views.forEach { - it.isVisible = true - } - if (needShowFab) { - viewBinding.fab.show() - } - viewBinding.coverView.isVisible = true - } - - } - - fans = spaceInfoData.data.fans - viewBinding.fansNumView.text = ServerConfiguration.numberToString(spaceInfoData.data.fans) - viewBinding.followNumView.text = - ServerConfiguration.numberToString(spaceInfoData.data.follower) - viewBinding.praiseNumView.text = - ServerConfiguration.numberToString(spaceInfoData.data.praise) - - if (isFirst) { - TabLayoutMediator(viewBinding.tabLayout, viewBinding.viewPager) { tab, position -> - when (position) { - 0 -> - tab.text = getString(R.string.homepage) - else -> { - tab.text = getString(R.string.dynamic) - } - } - }.attach() - viewBinding.fab.hide() - viewBinding.tabLayout.addOnTabSelectedListener(object : - TabLayout.OnTabSelectedListener { - override fun onTabSelected(tab: TabLayout.Tab?) { - if (tab != null) { - val tiltle = tab.text - val dynamic = getString(R.string.dynamic) - if (dynamic == tiltle && userId == account) { - viewBinding.fab.show() - } else { - viewBinding.fab.hide() - } - } - } - - override fun onTabUnselected(tab: TabLayout.Tab?) { - - } - - override fun onTabReselected(tab: TabLayout.Tab?) { - - } - - }) - } - } - - override fun onResume() { - super.onResume() - User.getSpaceInfo(userId, object : ApiCallBack { - override fun onResponse(t: SpaceInfoData) { - if (t.code == ServerConfiguration.Success_Code) { - showUserdataIfNeed(t) - } else { - showError(t.message) - } - } - - override fun onFailure(e: Exception) { - showInternetError(null, e) - } - - }) - } - -// /** -// * 获取状态栏高度 -// * @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 { - CommentDialog(this).setTitle(R.string.send_dynamic).setCancelable(false) - .setSubmitFun { button, textInputLayout, s, alertDialog -> - val token = - AppSettings.getValue(AppSettings.Setting.Token, "") - if (!s.isBlank()) { - Dynamic.instance.send( - token, - s, - object : ApiCallBack { - override fun onResponse(t: ApiResponse) { - if (t.code == ServerConfiguration.Success_Code) { - alertDialog.dismiss() - Snackbar.make( - viewBinding.button, - R.string.release_ok, - Snackbar.LENGTH_SHORT - ).show() - userHomeStateAdapter.updataDynamicList() - } else { - Snackbar.make( - viewBinding.button, - t.message, - Snackbar.LENGTH_SHORT - ).show() - } - } - - override fun onFailure(e: Exception) { - showInternetError(viewBinding.button, e) - } - - }) - } - }.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()) { - getString(R.string.follow) -> { - viewBinding.button.setBackgroundColor( - GlobalMethod.getThemeColor( - this, - R.attr.colorPrimaryVariant - ) - ) - viewBinding.button.setText(R.string.request_data) - Community.follow(account!!, userId, object : ApiCallBack { - override fun onResponse(t: ApiResponse) { - viewBinding.button.setBackgroundColor( - GlobalMethod.getColorPrimary( - this@UserHomePageActivity - ) - ) - if (t.code == ServerConfiguration.Success_Code) { - fans++ - viewBinding.fansNumView.text = - ServerConfiguration.numberToString(fans) - viewBinding.button.text = getString(R.string.followed) - } else { - viewBinding.button.text = type - Snackbar.make( - viewBinding.button, - t.message, - Snackbar.LENGTH_SHORT - ) - .show() - - } - } - - override fun onFailure(e: Exception) { - showInternetError(viewBinding.button, e) - viewBinding.button.setBackgroundColor( - GlobalMethod.getColorPrimary( - this@UserHomePageActivity - ) - ) - viewBinding.button.text = type - } - - }) - } - getString(R.string.followed), getString(R.string.each_other_follow) -> { - val de = String.format(getString(R.string.defollow_tip), userName ?: userId) - CoreDialog(this).setTitle(R.string.defollow).setMessage(de) - .setPositiveButton(R.string.dialog_ok) { - viewBinding.button.setBackgroundColor( - GlobalMethod.getThemeColor( - this@UserHomePageActivity, - R.attr.colorPrimaryVariant - ) - ) - viewBinding.button.setText(R.string.request_data) - Community.deFollow( - account!!, - userId, - object : ApiCallBack { - override fun onResponse(t: ApiResponse) { - viewBinding.button.setBackgroundColor( - GlobalMethod.getColorPrimary( - this@UserHomePageActivity - ) - ) - if (t.code == ServerConfiguration.Success_Code) { - fans-- - viewBinding.fansNumView.text = - ServerConfiguration.numberToString(fans) - viewBinding.button.text = - getString(R.string.follow) - } else { - Snackbar.make( - viewBinding.button, - t.message, - Snackbar.LENGTH_SHORT - ).show() - viewBinding.button.text = type - } - } - - override fun onFailure(e: Exception) { - showInternetError(viewBinding.button, e) - } - - }) - }.setNegativeButton(R.string.dialog_cancel) { - - }.show() - } - getString(R.string.editData) -> { - val intent = Intent(this, EditUserInfoActivity::class.java) - intent.putExtra("userId", userId) - startActivity(intent) - } - } - } - } - - override fun getViewBindingObject(layoutInflater: LayoutInflater): ActivityUserHomePageBinding { - return ActivityUserHomePageBinding.inflate(layoutInflater) - } - - override fun whenCreateActivity(savedInstanceState: Bundle?, canUseView: Boolean) { - if (canUseView) { - initView() - initAction() - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/UserListActivity.kt b/app/src/main/java/com/coldmint/rust/pro/UserListActivity.kt index 9c43b16..1ffcb99 100644 --- a/app/src/main/java/com/coldmint/rust/pro/UserListActivity.kt +++ b/app/src/main/java/com/coldmint/rust/pro/UserListActivity.kt @@ -100,14 +100,6 @@ class UserListActivity : BaseActivity() { adapter.setItemEvent { i, itemUserBinding, viewHolder, data -> itemUserBinding.root.setOnClickListener { - val intent = Intent( - this@UserListActivity, - UserHomePageActivity::class.java - ) - intent.putExtra("userId", data.account) - startActivity( - intent - ) } if (canRemoveFans) { itemUserBinding.actionView.isVisible = true diff --git a/app/src/main/java/com/coldmint/rust/pro/WebModInfoActivity.kt b/app/src/main/java/com/coldmint/rust/pro/WebModInfoActivity.kt index 607e71a..8bfa4a3 100644 --- a/app/src/main/java/com/coldmint/rust/pro/WebModInfoActivity.kt +++ b/app/src/main/java/com/coldmint/rust/pro/WebModInfoActivity.kt @@ -44,7 +44,7 @@ class WebModInfoActivity : BaseActivity() { File(modFilePath) } val token by lazy { - AppSettings.getValue(AppSettings.Setting.Token, "") + "" } lateinit var adapter: ModPageDetailsAdapter @@ -214,7 +214,7 @@ class WebModInfoActivity : BaseActivity() { } R.id.share_item -> { - val link = AppSettings.getValue(AppSettings.Setting.ServerAddress, "") + val link = "" val updateData = AppSettings.getValue(AppSettings.Setting.UpdateData, "") var appUpdateLink = "" if (updateData.isNotBlank()) { @@ -357,20 +357,6 @@ class WebModInfoActivity : BaseActivity() { // } - /** - * 打开用户主页 - * @param userId String - */ - fun gotoUserPage(userId: String) { - val intent = Intent( - this@WebModInfoActivity, - UserHomePageActivity::class.java - ) - intent.putExtra("userId", userId) - startActivity( - intent - ) - } // private fun initAction() { // viewBinding.sendDiscussion.setOnClickListener { diff --git a/app/src/main/java/com/coldmint/rust/pro/WorkManagementActivity.kt b/app/src/main/java/com/coldmint/rust/pro/WorkManagementActivity.kt index e8a3860..7dbce36 100644 --- a/app/src/main/java/com/coldmint/rust/pro/WorkManagementActivity.kt +++ b/app/src/main/java/com/coldmint/rust/pro/WorkManagementActivity.kt @@ -89,6 +89,7 @@ class WorkManagementActivity : BaseActivity() { popupMenu.menu.add(R.string.work_of_home_page) } + else -> { } @@ -109,23 +110,17 @@ class WorkManagementActivity : BaseActivity() { intent.putExtra("data", bundle) startActivity(intent) } + getString(R.string.update_record) -> { GlobalMethod.showUpdateLog( this@WorkManagementActivity, data.id ) } + getString(R.string.submit_the_update) -> { - val intent = Intent( - this@WorkManagementActivity, - ReleaseModActivity::class.java - ) - val bundle = Bundle() - bundle.putString("mode", "loadMode") - bundle.putString("modId", data.id) - intent.putExtra("data", bundle) - startActivity(intent) } + getString(R.string.sold_out_mod) -> { CoreDialog(this@WorkManagementActivity).setTitle( R.string.sold_out_mod @@ -141,7 +136,9 @@ class WorkManagementActivity : BaseActivity() { ) { if (t.code == ServerConfiguration.Success_Code) { data.hidden = -1 - adapter.notifyItemChanged(i) + adapter.notifyItemChanged( + i + ) } else { Snackbar.make( viewBinding.recyclerView, @@ -165,6 +162,7 @@ class WorkManagementActivity : BaseActivity() { } .setCancelable(false).show() } + getString(R.string.review_audit) -> { CoreDialog(this@WorkManagementActivity).setTitle( R.string.review_audit @@ -174,38 +172,7 @@ class WorkManagementActivity : BaseActivity() { data.name ) ).setPositiveButton(R.string.dialog_ok) { - WebMod.instance.afreshAuditMod( - AppSettings - .getValue( - AppSettings.Setting.Token, - "" - ), - data.id, - object : - ApiCallBack { - override fun onResponse( - t: ApiResponse - ) { - if (t.code == ServerConfiguration.Success_Code) { - data.hidden = 1 - adapter.notifyItemChanged(i) - } else { - Snackbar.make( - viewBinding.recyclerView, - t.message, - Snackbar.LENGTH_SHORT - ).show() - } - } - override fun onFailure(e: Exception) { - showInternetError( - view = viewBinding.recyclerView, - exception = e - ) - } - - }) }.setNegativeButton(R.string.dialog_cancel) { }.setCancelable(false).show() diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/ModActionAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/ModActionAdapter.kt index f47cd7e..69b5932 100644 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/ModActionAdapter.kt +++ b/app/src/main/java/com/coldmint/rust/pro/adapters/ModActionAdapter.kt @@ -208,18 +208,7 @@ class ModActionAdapter( * 点击了发布 */ private fun releaseItem() { - val releaseBundle = Bundle() - val modId = modConfigurationData?.modId - releaseBundle.putString("modPath", mModpath) - if (modId == null) { - releaseBundle.putString("mode", "firstReleaseMode") - } else { - releaseBundle.putString("mode", "loadMode") - releaseBundle.putString("modId", modId) - } - val intent = Intent(mContext, ReleaseModActivity::class.java) - intent.putExtra("data", releaseBundle) - mContext.startActivity(intent) + } /** diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/ReportAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/ReportAdapter.kt index 0bf3812..9f5c674 100644 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/ReportAdapter.kt +++ b/app/src/main/java/com/coldmint/rust/pro/adapters/ReportAdapter.kt @@ -15,7 +15,6 @@ import com.coldmint.rust.core.interfaces.ApiCallBack import com.coldmint.rust.core.web.Report import com.coldmint.rust.core.web.ServerConfiguration import com.coldmint.rust.pro.R -import com.coldmint.rust.pro.UserHomePageActivity import com.coldmint.rust.pro.WebModInfoActivity import com.coldmint.rust.pro.base.BaseAdapter import com.coldmint.rust.pro.databinding.ItemReportBinding @@ -71,12 +70,6 @@ class ReportAdapter( } "user" -> { viewBinding.typeView.setText(R.string.report_user) - viewBinding.openView.setOnClickListener { - val intent = Intent(context, UserHomePageActivity::class.java) - intent.putExtra("userId", data.target) - context.startActivity(intent) - - } } } viewBinding.textview.text = data.why diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/SearchPageAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/SearchPageAdapter.kt deleted file mode 100644 index 7a78521..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/SearchPageAdapter.kt +++ /dev/null @@ -1,29 +0,0 @@ -package com.coldmint.rust.pro.adapters - -import androidx.fragment.app.Fragment -import androidx.fragment.app.FragmentActivity -import androidx.viewpager2.adapter.FragmentStateAdapter -import com.coldmint.rust.core.dataBean.user.SearchResultDataBean -import com.coldmint.rust.pro.fragments.SearchResultFragment - -class SearchPageAdapter( - fragmentActivity: FragmentActivity, val keyword: String, - val data: SearchResultDataBean.Data -) : FragmentStateAdapter(fragmentActivity) { - - - override fun getItemCount(): Int { - return data.type.size + 1 - } - - override fun createFragment(position: Int): Fragment { - val typeName = if (position == 0) { - "all" - } else { - data.type[position - 1].typeName - } - return SearchResultFragment(keyword, data, typeName) - } - - -} \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/SearchResultAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/SearchResultAdapter.kt deleted file mode 100644 index 9296c1e..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/SearchResultAdapter.kt +++ /dev/null @@ -1,104 +0,0 @@ -package com.coldmint.rust.pro.adapters - -import android.content.Context -import android.content.Intent -import android.os.Bundle -import android.view.LayoutInflater -import android.view.ViewGroup -import androidx.core.view.isVisible -import com.bumptech.glide.Glide -import com.coldmint.rust.core.dataBean.user.SearchResultDataBean -import com.coldmint.rust.core.web.ServerConfiguration -import com.coldmint.rust.pro.R -import com.coldmint.rust.pro.UserHomePageActivity -import com.coldmint.rust.pro.WebModInfoActivity -import com.coldmint.rust.pro.base.BaseAdapter -import com.coldmint.rust.pro.databinding.ItemSearchResultBinding -import com.coldmint.rust.pro.tool.GlobalMethod -import com.coldmint.rust.pro.tool.TextStyleMaker -import java.util.* - -/** - * 搜索结果适配器 - * @property context Context - * @property iconOptions RequestOptions - * @constructor - */ -class SearchResultAdapter( - context: Context, - val keyWord: String, - dataList: MutableList -) : - BaseAdapter(context, dataList) { - - - override fun getViewBindingObject( - layoutInflater: LayoutInflater, - parent: ViewGroup, - viewType: Int - ): ItemSearchResultBinding { - return ItemSearchResultBinding.inflate(layoutInflater, parent, false) - } - - override fun onBingView( - data: SearchResultDataBean.Data.Total, - viewBinding: ItemSearchResultBinding, - viewHolder: ViewHolder, - position: Int - ) { - val finalIcon = data.icon - viewBinding.imageView.isVisible = true - if (finalIcon != null && finalIcon.isNotBlank()) { - if (data.type == "user") { - Glide.with(context).load(ServerConfiguration.getRealLink(finalIcon)) - .apply(GlobalMethod.getRequestOptions(true)).into(viewBinding.imageView) - } else { - Glide.with(context).load(ServerConfiguration.getRealLink(finalIcon)).apply(GlobalMethod.getRequestOptions()) - .into(viewBinding.imageView) - } - } else { - if (data.type == "user"){ - viewBinding.imageView.setImageResource(R.drawable.head_icon) - }else if (data.type == "mod"){ - viewBinding.imageView.setImageResource(R.drawable.image) - }else{ - viewBinding.imageView.isVisible = false - } - } - viewBinding.titleView.text = data.title - val index = data.content.indexOf('\n') - val thisContext = if (index > -1 && data.type == "mod") { - data.content.subSequence(0, index) - } else { - data.content - }.toString() - TextStyleMaker.instance.load(viewBinding.contentView, thisContext) { type, da -> - TextStyleMaker.instance.clickEvent(context, type, da) - } - viewBinding.root.setOnClickListener { - val type = data.type - when (type) { - "mod", "mod_comments", "mod_versions" -> { - val bundle = Bundle() - bundle.putString("modId", data.id) - val intent = Intent( - context, - WebModInfoActivity::class.java - ) - intent.putExtra("data", bundle) - context.startActivity(intent) - } - "user", "dynamic" -> { - val intent = Intent( - context, - UserHomePageActivity::class.java - ) - intent.putExtra("userId", data.id) - context.startActivity( - intent - ) - } - } - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/SearchSuggestionsAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/SearchSuggestionsAdapter.kt deleted file mode 100644 index 77c7e5b..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/SearchSuggestionsAdapter.kt +++ /dev/null @@ -1,35 +0,0 @@ -package com.coldmint.rust.pro.adapters - -import android.content.Context -import android.view.LayoutInflater -import android.view.ViewGroup -import com.coldmint.rust.pro.base.BaseAdapter -import com.coldmint.rust.pro.databinding.ItemSearchSuggestionsBinding - -/** - * 搜索建议适配器 - * @constructor - */ -class SearchSuggestionsAdapter( - context: Context, - val keyword: String, - dataList: MutableList -) : - BaseAdapter(context, dataList) { - override fun getViewBindingObject( - layoutInflater: LayoutInflater, - parent: ViewGroup, - viewType: Int - ): ItemSearchSuggestionsBinding { - return ItemSearchSuggestionsBinding.inflate(layoutInflater, parent, false) - } - - override fun onBingView( - data: String, - viewBinding: ItemSearchSuggestionsBinding, - viewHolder: ViewHolder, - position: Int - ) { - viewBinding.titleView.text = createSpannableString(data,keyword) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/TemplateListAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/TemplateListAdapter.kt index 5efeb69..e4adfba 100644 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/TemplateListAdapter.kt +++ b/app/src/main/java/com/coldmint/rust/pro/adapters/TemplateListAdapter.kt @@ -1,17 +1,13 @@ package com.coldmint.rust.pro.adapters -import android.view.ViewGroup -import android.view.LayoutInflater -import com.coldmint.rust.pro.R import android.content.Context import android.content.Intent import android.os.Bundle import android.os.Handler import android.os.Looper -import androidx.core.content.ContentProviderCompat.requireContext +import android.view.LayoutInflater +import android.view.ViewGroup import androidx.core.view.isVisible -import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager import com.afollestad.materialdialogs.MaterialDialog import com.coldmint.dialog.CoreDialog import com.coldmint.rust.core.CompressionManager @@ -19,8 +15,8 @@ import com.coldmint.rust.core.LocalTemplatePackage import com.coldmint.rust.core.interfaces.CompressionListener import com.coldmint.rust.core.tool.AppOperator import com.coldmint.rust.core.tool.FileOperator -import com.coldmint.rust.pro.CreateTemplateActivity import com.coldmint.rust.pro.FileManagerActivity +import com.coldmint.rust.pro.R import com.coldmint.rust.pro.base.BaseAdapter import com.coldmint.rust.pro.databinding.TemplateBottomDialogBinding import com.coldmint.rust.pro.databinding.TemplateListItemBinding @@ -48,12 +44,12 @@ class TemplateListAdapter( * @param localTemplatePackage LocalTemplatePackage */ private fun editInfo(context: Context, localTemplatePackage: LocalTemplatePackage) { - val bundle = Bundle() - bundle.putString("json", FileOperator.readFile(localTemplatePackage.infoFile)) - bundle.putString("path", localTemplatePackage.infoFile.absolutePath) - val intent = Intent(context, CreateTemplateActivity::class.java) - intent.putExtra("data", bundle) - context.startActivity(intent) +// val bundle = Bundle() +// bundle.putString("json", FileOperator.readFile(localTemplatePackage.infoFile)) +// bundle.putString("path", localTemplatePackage.infoFile.absolutePath) +// val intent = Intent(context, CreateTemplateActivity::class.java) +// intent.putExtra("data", bundle) +// context.startActivity(intent) } /** diff --git a/app/src/main/java/com/coldmint/rust/pro/fragments/FollowFragment.kt b/app/src/main/java/com/coldmint/rust/pro/fragments/FollowFragment.kt index 032d947..2fd7c13 100644 --- a/app/src/main/java/com/coldmint/rust/pro/fragments/FollowFragment.kt +++ b/app/src/main/java/com/coldmint/rust/pro/fragments/FollowFragment.kt @@ -13,7 +13,6 @@ import com.coldmint.rust.core.web.Community import com.coldmint.rust.core.web.Dynamic import com.coldmint.rust.core.web.ServerConfiguration import com.coldmint.rust.pro.R -import com.coldmint.rust.pro.UserHomePageActivity import com.coldmint.rust.pro.adapters.DynamicAdapter import com.coldmint.rust.pro.adapters.UserHeadAdapter import com.coldmint.rust.pro.base.BaseFragment @@ -118,10 +117,6 @@ class FollowFragment : BaseFragment() { * @param account String */ fun openHomePage(account: String) { - val goIntent = - Intent(requireContext(), UserHomePageActivity::class.java) - goIntent.putExtra("userId", account) - startActivity(goIntent) } /** diff --git a/app/src/main/java/com/coldmint/rust/pro/fragments/InsertCoinsDialog.kt b/app/src/main/java/com/coldmint/rust/pro/fragments/InsertCoinsDialog.kt index 5167b42..64959fe 100644 --- a/app/src/main/java/com/coldmint/rust/pro/fragments/InsertCoinsDialog.kt +++ b/app/src/main/java/com/coldmint/rust/pro/fragments/InsertCoinsDialog.kt @@ -20,7 +20,7 @@ class InsertCoinsDialog(context: Context, val modId: String) : BaseAppDialog(context) { private val token by lazy { - AppSettings.getValue(AppSettings.Setting.Token, "") + "" } private val viewBinding by lazy { diff --git a/app/src/main/java/com/coldmint/rust/pro/fragments/InsertCoinsFragment.kt b/app/src/main/java/com/coldmint/rust/pro/fragments/InsertCoinsFragment.kt index 33207b3..72d147a 100644 --- a/app/src/main/java/com/coldmint/rust/pro/fragments/InsertCoinsFragment.kt +++ b/app/src/main/java/com/coldmint/rust/pro/fragments/InsertCoinsFragment.kt @@ -3,24 +3,15 @@ package com.coldmint.rust.pro.fragments import android.content.Intent import android.os.Bundle import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup import androidx.core.view.isVisible -import androidx.fragment.app.Fragment -import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager -import com.coldmint.dialog.CoreDialog -import com.coldmint.dialog.InputDialog import com.coldmint.rust.core.dataBean.mod.CoinStatusData import com.coldmint.rust.core.dataBean.mod.InsertCoinHistoryData import com.coldmint.rust.core.interfaces.ApiCallBack import com.coldmint.rust.core.web.WebMod import com.coldmint.rust.pro.R -import com.coldmint.rust.pro.UserHomePageActivity import com.coldmint.rust.pro.adapters.InsertCoinsAdapter import com.coldmint.rust.pro.base.BaseFragment import com.coldmint.rust.pro.databinding.FragmentInsertCoinsBinding -import com.coldmint.rust.pro.tool.AppSettings import com.coldmint.rust.pro.ui.StableLinearLayoutManager import com.google.android.material.divider.MaterialDividerItemDecoration @@ -29,7 +20,7 @@ import com.google.android.material.divider.MaterialDividerItemDecoration */ class InsertCoinsFragment(val modId: String) : BaseFragment() { private val token by lazy { - AppSettings.getValue(AppSettings.Setting.Token, "") + "" } override fun whenViewCreated(inflater: LayoutInflater, savedInstanceState: Bundle?) { @@ -121,14 +112,7 @@ class InsertCoinsFragment(val modId: String) : BaseFragment ) { numView.setText(R.string.del_moding) templateClass.delete( - AppSettings.getValue( - AppSettings.Setting.Token, - "" - ) + "" ) { if (it) { viewModel.loadTemplate(requireContext()) diff --git a/app/src/main/java/com/coldmint/rust/pro/fragments/ModCommentsFragment.kt b/app/src/main/java/com/coldmint/rust/pro/fragments/ModCommentsFragment.kt index 43cfd2b..fa721fc 100644 --- a/app/src/main/java/com/coldmint/rust/pro/fragments/ModCommentsFragment.kt +++ b/app/src/main/java/com/coldmint/rust/pro/fragments/ModCommentsFragment.kt @@ -2,15 +2,9 @@ package com.coldmint.rust.pro.fragments import android.content.Intent import android.os.Bundle -import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View -import android.view.ViewGroup -import android.widget.Toast 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.ApiResponse import com.coldmint.rust.core.dataBean.mod.WebModCommentData import com.coldmint.rust.core.interfaces.ApiCallBack @@ -18,7 +12,6 @@ import com.coldmint.rust.core.tool.DebugHelper import com.coldmint.rust.core.web.ServerConfiguration import com.coldmint.rust.core.web.WebMod import com.coldmint.rust.pro.R -import com.coldmint.rust.pro.UserHomePageActivity import com.coldmint.rust.pro.adapters.CommentAdapter import com.coldmint.rust.pro.base.BaseFragment import com.coldmint.rust.pro.databinding.FragmentModCommentsBinding @@ -48,7 +41,7 @@ class ModCommentsFragment(val modId: String) : BaseFragment() { } fun loadList() { - val token = AppSettings.getValue(AppSettings.Setting.Token, "") + val token = "" TemplatePhp.instance.getTemplatePackageList(token, object : ApiCallBack { override fun onResponse(t: WebTemplatePackageListData) { @@ -37,8 +37,11 @@ class NetworkTemplateFragment : BaseFragment() { MyWebTemplateAdapter(requireContext(), t.data) adapter.setItemEvent { i, itemMyWebTemplateBinding, viewHolder, data -> itemMyWebTemplateBinding.root.setOnClickListener { - val intent = Intent(requireContext(),NetworkTemplatePackageDetailsActivity::class.java) - intent.putExtra("id",data.id) + val intent = Intent( + requireContext(), + NetworkTemplatePackageDetailsActivity::class.java + ) + intent.putExtra("id", data.id) startActivity(intent) } } diff --git a/app/src/main/java/com/coldmint/rust/pro/fragments/SaveTemplateFragment.kt b/app/src/main/java/com/coldmint/rust/pro/fragments/SaveTemplateFragment.kt index f6174ad..f7dda27 100644 --- a/app/src/main/java/com/coldmint/rust/pro/fragments/SaveTemplateFragment.kt +++ b/app/src/main/java/com/coldmint/rust/pro/fragments/SaveTemplateFragment.kt @@ -79,9 +79,8 @@ class SaveTemplateFragment(val name: String, val json: JSONObject) : BottomSheet val newFile = File(id + "/" + name + ".json") FileOperator.writeFile(newFile, json.toString(4)) } else { - val token = AppSettings.getValue(AppSettings.Setting.Token, "") TemplatePhp.instance.addTemplate(name, - token, + "", name, json.toString(4), id, @@ -120,10 +119,7 @@ class SaveTemplateFragment(val name: String, val json: JSONObject) : BottomSheet */ fun loadWebTemplate(func: (() -> Unit)) { TemplatePhp.instance.getTemplatePackageList( - AppSettings.getValue( - AppSettings.Setting.Token, - "" - ), object : ApiCallBack { + "", object : ApiCallBack { override fun onResponse(t: WebTemplatePackageListData) { if (t.data != null) { t.data.forEach { diff --git a/app/src/main/java/com/coldmint/rust/pro/fragments/SearchResultFragment.kt b/app/src/main/java/com/coldmint/rust/pro/fragments/SearchResultFragment.kt deleted file mode 100644 index bfa2a10..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/fragments/SearchResultFragment.kt +++ /dev/null @@ -1,57 +0,0 @@ -package com.coldmint.rust.pro.fragments - -import android.os.Bundle -import android.view.LayoutInflater -import androidx.recyclerview.widget.LinearLayoutManager -import com.coldmint.rust.core.dataBean.user.SearchResultDataBean -import com.coldmint.rust.pro.adapters.SearchResultAdapter -import com.coldmint.rust.pro.base.BaseFragment -import com.coldmint.rust.pro.databinding.FragmentSearchResultBinding -import com.coldmint.rust.pro.ui.StableLinearLayoutManager -import com.google.android.material.divider.MaterialDividerItemDecoration - -/** - * 搜索结果碎片 - * @property keyword String - * @property dataList MutableList - * @constructor - */ -class SearchResultFragment( - val keyword: String, - val data: SearchResultDataBean.Data, - val typeName: String -) : - BaseFragment() { - override fun whenViewCreated(inflater: LayoutInflater, savedInstanceState: Bundle?) { - - val adapter = SearchResultAdapter(requireContext(), keyword, filterList()) - viewBinding.recyclerView.adapter = adapter - val divider = MaterialDividerItemDecoration( - requireContext(), - MaterialDividerItemDecoration.VERTICAL - ) - viewBinding.recyclerView.addItemDecoration(divider) - viewBinding.recyclerView.layoutManager = StableLinearLayoutManager(requireContext()) - } - - /** - * 过滤列表(为all返回所有) - * @return MutableList - */ - fun filterList(): MutableList { - if (typeName == "all") { - return data.total - } - val list = ArrayList() - data.total.forEach { - if (it.type == typeName) { - list.add(it) - } - } - return list - } - - override fun getViewBindingObject(layoutInflater: LayoutInflater): FragmentSearchResultBinding { - return FragmentSearchResultBinding.inflate(layoutInflater) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/fragments/UserInfoFragment.kt b/app/src/main/java/com/coldmint/rust/pro/fragments/UserInfoFragment.kt index bd5d79a..b6874b9 100644 --- a/app/src/main/java/com/coldmint/rust/pro/fragments/UserInfoFragment.kt +++ b/app/src/main/java/com/coldmint/rust/pro/fragments/UserInfoFragment.kt @@ -170,13 +170,8 @@ class UserInfoFragment : BaseFragment() { override fun whenViewCreated(inflater: LayoutInflater, savedInstanceState: Bundle?) { viewBinding.logOutButton.setOnClickListener { - AppSettings.setValue(AppSettings.Setting.LoginStatus, false) -// GlobalMethod.isActive = false - (requireActivity() as MainActivity).startViewModel.isActivationLiveData.value = false - startActivity(Intent(requireContext(), LoginActivity::class.java)) } viewBinding.loginLayout.logView.setOnClickListener { - startActivity(Intent(requireContext(), LoginActivity::class.java)) } } } \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/fragments/WebModDetailsFragment.kt b/app/src/main/java/com/coldmint/rust/pro/fragments/WebModDetailsFragment.kt index 55db3d7..9da968f 100644 --- a/app/src/main/java/com/coldmint/rust/pro/fragments/WebModDetailsFragment.kt +++ b/app/src/main/java/com/coldmint/rust/pro/fragments/WebModDetailsFragment.kt @@ -18,7 +18,6 @@ import com.coldmint.rust.core.web.User import com.coldmint.rust.core.web.WebMod import com.coldmint.rust.pro.R import com.coldmint.rust.pro.TagActivity -import com.coldmint.rust.pro.UserHomePageActivity import com.coldmint.rust.pro.base.BaseFragment import com.coldmint.rust.pro.databinding.FragmentWebModDetailsBinding import com.coldmint.rust.pro.tool.AppSettings diff --git a/app/src/main/java/com/coldmint/rust/pro/viewmodel/StartViewModel.kt b/app/src/main/java/com/coldmint/rust/pro/viewmodel/StartViewModel.kt index 4e63b74..0bfe2dd 100644 --- a/app/src/main/java/com/coldmint/rust/pro/viewmodel/StartViewModel.kt +++ b/app/src/main/java/com/coldmint/rust/pro/viewmodel/StartViewModel.kt @@ -41,7 +41,7 @@ class StartViewModel(application: Application) : BaseAndroidViewModel(applicatio * 签名错误的LiveData */ val signatureErrorLiveData by lazy { - MutableLiveData(false) + MutableLiveData(false) } /** diff --git a/app/src/main/res/layout/fragment_search_result.xml b/app/src/main/res/layout/fragment_search_result.xml deleted file mode 100644 index f6f2229..0000000 --- a/app/src/main/res/layout/fragment_search_result.xml +++ /dev/null @@ -1,6 +0,0 @@ - - \ No newline at end of file diff --git a/app/src/main/res/layout/item_search_result.xml b/app/src/main/res/layout/item_search_result.xml deleted file mode 100644 index 0951e2d..0000000 --- a/app/src/main/res/layout/item_search_result.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - diff --git a/app/src/main/res/layout/item_search_suggestions.xml b/app/src/main/res/layout/item_search_suggestions.xml deleted file mode 100644 index 1761804..0000000 --- a/app/src/main/res/layout/item_search_suggestions.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml deleted file mode 100644 index e8f963e..0000000 --- a/app/src/main/res/menu/menu_main.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/xml/root_preferences.xml b/app/src/main/res/xml/root_preferences.xml index f8d6052..1dd9e89 100644 --- a/app/src/main/res/xml/root_preferences.xml +++ b/app/src/main/res/xml/root_preferences.xml @@ -44,12 +44,6 @@ app:key="@string/setting_night_mode" app:summary="@string/night_mode_auto" app:useSimpleSummaryProvider="true" /> - - @@ -61,31 +55,14 @@ app:useSimpleSummaryProvider="true" /> - - - - - - - - - - + android:summary="@string/simple_display_of_auto_complete_menu_describe" + android:title="@string/simple_display_of_auto_complete_menu" /> + app:summary="@string/customize_edit_text_description" + app:title="@string/customize_edit_text" /> @@ -240,23 +217,6 @@ - - - - - - - @@ -272,11 +232,6 @@ app:key="developerModeGroup" app:title="@string/sync_header"> - - - - -