From 5f137e04694ddca63fbba0a09361a35d44c4ee15 Mon Sep 17 00:00:00 2001 From: Cold-Mint Date: Sun, 9 Feb 2025 10:03:27 +0800 Subject: [PATCH] =?UTF-8?q?refactor(app):=20=E4=BC=98=E5=8C=96=E5=B7=B2?= =?UTF-8?q?=E5=AE=89=E8=A3=85=E6=A8=A1=E6=9D=BF=E7=95=8C=E9=9D=A2=E5=92=8C?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除了冗余代码和未使用的导入 - 改进了模板加载逻辑,仅保留本地模板加载功能- 优化了长按菜单操作,移除了删除和订阅相关代码 - 调整了优化项目界面布局和逻辑 -修复了模组路径为空时的异常处理 --- .../com/coldmint/rust/pro/OptimizeActivity.kt | 9 +++- .../rust/pro/adapters/OptimizeAdapter.kt | 7 +-- .../fragments/InstalledTemplateFragment.kt | 49 +++---------------- .../rust/pro/fragments/ModFragment.kt | 5 -- .../viewmodel/InstalledTemplateViewModel.kt | 31 ++++++------ .../main/res/layout/optimization_group.xml | 2 +- 6 files changed, 32 insertions(+), 71 deletions(-) diff --git a/app/src/main/java/com/coldmint/rust/pro/OptimizeActivity.kt b/app/src/main/java/com/coldmint/rust/pro/OptimizeActivity.kt index 1ae4739..39e0239 100644 --- a/app/src/main/java/com/coldmint/rust/pro/OptimizeActivity.kt +++ b/app/src/main/java/com/coldmint/rust/pro/OptimizeActivity.kt @@ -179,7 +179,7 @@ class OptimizeActivity : BaseActivity() { when (type) { "ini", "txt" -> { val content = FileOperator.readFile(file) - if (content == null || content.isEmpty()) { + if (content.isNullOrEmpty()) { //文件为空 val group = mGroupNameMap[getString(R.string.empty_file)] if (group != null) { @@ -422,7 +422,7 @@ class OptimizeActivity : BaseActivity() { val optimizeGroups = mOptimizeGroups.toTypedArray() for (group in optimizeGroups) { val optimizeItemList: List> = mItemNameMap[group.groupName]!! - if (optimizeItemList.size > 0) { + if (optimizeItemList.isNotEmpty()) { mOptimizeItem.add(optimizeItemList) } else { mOptimizeGroups.remove(group) @@ -467,6 +467,11 @@ class OptimizeActivity : BaseActivity() { finish() } else { val modPath = bundle.getString("modPath") + if (modPath.isNullOrBlank()){ + Toast.makeText(this, "无效请求,缺少modPath", Toast.LENGTH_SHORT).show() + finish() + return + } val file = File(modPath) if (file.exists() && file.isDirectory) { val modClass = ModClass(File(modPath)) diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/OptimizeAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/OptimizeAdapter.kt index 408c779..0f80fb4 100644 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/OptimizeAdapter.kt +++ b/app/src/main/java/com/coldmint/rust/pro/adapters/OptimizeAdapter.kt @@ -61,12 +61,7 @@ class OptimizeAdapter( view: View?, parent: ViewGroup ): View { - var convertView: View - if (view == null) { - convertView = mInflater.inflate(R.layout.optimization_group, parent, false) - } else { - convertView = view - } + val convertView: View = view ?: mInflater.inflate(R.layout.optimization_group, parent, false) val nameView = convertView.findViewById(R.id.nameView) val numView = convertView.findViewById(R.id.numView) val groupCheckBox = convertView.findViewById(R.id.groupCheckBox) diff --git a/app/src/main/java/com/coldmint/rust/pro/fragments/InstalledTemplateFragment.kt b/app/src/main/java/com/coldmint/rust/pro/fragments/InstalledTemplateFragment.kt index 2b3f2a1..2305f11 100644 --- a/app/src/main/java/com/coldmint/rust/pro/fragments/InstalledTemplateFragment.kt +++ b/app/src/main/java/com/coldmint/rust/pro/fragments/InstalledTemplateFragment.kt @@ -4,9 +4,6 @@ import android.app.Activity import android.content.Intent import android.os.Bundle import android.os.Environment -import android.os.Handler -import android.os.Looper -import android.util.Log import android.view.LayoutInflater import android.widget.AdapterView import android.widget.ExpandableListView @@ -15,11 +12,7 @@ import android.widget.Toast import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContracts import androidx.appcompat.app.AppCompatActivity -import androidx.lifecycle.MutableLiveData import com.coldmint.dialog.CoreDialog -import com.coldmint.rust.core.LocalTemplatePackage -import com.coldmint.rust.core.dataBean.template.LocalTemplateFile -import com.coldmint.rust.core.dataBean.template.Template import com.coldmint.rust.core.dataBean.template.TemplatePackage import com.coldmint.rust.core.debug.LogCat import com.coldmint.rust.core.tool.FileOperator @@ -30,13 +23,6 @@ import com.coldmint.rust.pro.base.BaseFragment import com.coldmint.rust.pro.databinding.FragmentInstalledTemplateBinding import com.coldmint.rust.pro.tool.AppSettings import com.coldmint.rust.pro.viewmodel.InstalledTemplateViewModel -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Job -import kotlinx.coroutines.launch -import org.json.JSONException -import org.json.JSONObject -import java.io.File -import java.util.* class InstalledTemplateFragment : BaseFragment() { private val viewModel: InstalledTemplateViewModel by lazy { @@ -82,37 +68,15 @@ class InstalledTemplateFragment : BaseFragment val packedPos = (parent as ExpandableListView).getExpandableListPosition(flatPos) val groupPosition = ExpandableListView.getPackedPositionGroup(packedPos) val childPosition = ExpandableListView.getPackedPositionChild(packedPos) - if (childPosition == -1) { //长按的是父项 - //这里做关于父项的相关操作...... - val numView = view.findViewById(R.id.template_num) + if (childPosition == -1) { val templateClass = mTemplateAdapter.getGroup(groupPosition) as TemplatePackage CoreDialog(requireContext()).setTitle(R.string.template_info) .setMessage( templateClass.getDescription() ).setCancelable(false).setPositiveButton( - if (templateClass.isLocal()) { - R.string.delete_title - } else { - R.string.de_subscription - } + R.string.dialog_ok ) { - numView.setText(R.string.del_moding) - templateClass.delete( - "" - ) { - if (it) { - viewModel.loadTemplate(requireContext()) - } else { - Toast.makeText( - requireContext(), - R.string.delete_error, - Toast.LENGTH_SHORT - ).show() - } - } - }.setNegativeButton(R.string.dialog_cancel) { - }.show() } else { //长按的是子项 //这里做关于子项的相关操作....... @@ -121,7 +85,7 @@ class InstalledTemplateFragment : BaseFragment } viewBinding.swipeRefreshLayout.setOnRefreshListener { - viewModel.loadTemplate(requireContext()) + viewModel.loadLocalTemplate(requireContext()) viewBinding.swipeRefreshLayout.isRefreshing = false } } @@ -177,10 +141,9 @@ class InstalledTemplateFragment : BaseFragment val path = viewModel.createPathLiveData.value.toString() mTemplateAdapter.setCreatePath(path) LogCat.d("创建目录观察者", "模板适配器设置目录为${path}。") - viewModel.loadTemplate(requireContext()) + viewModel.loadLocalTemplate(requireContext()) } - override fun getViewBindingObject(layoutInflater: LayoutInflater): FragmentInstalledTemplateBinding { - return FragmentInstalledTemplateBinding.inflate(layoutInflater) - } + override fun getViewBindingObject(layoutInflater: LayoutInflater): FragmentInstalledTemplateBinding = + FragmentInstalledTemplateBinding.inflate(layoutInflater) } \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/fragments/ModFragment.kt b/app/src/main/java/com/coldmint/rust/pro/fragments/ModFragment.kt index c1c68fe..e631b33 100644 --- a/app/src/main/java/com/coldmint/rust/pro/fragments/ModFragment.kt +++ b/app/src/main/java/com/coldmint/rust/pro/fragments/ModFragment.kt @@ -249,10 +249,6 @@ class ModFragment : BaseFragment() { configurationManager?.readData() val works: MutableList = ArrayList() if (modClass.modFile.isDirectory) { -// val developerMode = AppSettings.getValue(AppSettings.Setting.DeveloperMode, false) -// if (developerMode) { -// works.add(getString(R.string.generate_error_report)) -// } if (GlobalMethod.isActive) { works.add(getString(R.string.mod_action1)) if (modClass.hasInfo()) { @@ -265,7 +261,6 @@ class ModFragment : BaseFragment() { works.add(getString(R.string.optimization)) works.add(getString(R.string.packmod)) } - works.add(getString(R.string.release)) if (configurationData != null) { val title = configurationData.updateTitle if (title.isNotEmpty()) { diff --git a/app/src/main/java/com/coldmint/rust/pro/viewmodel/InstalledTemplateViewModel.kt b/app/src/main/java/com/coldmint/rust/pro/viewmodel/InstalledTemplateViewModel.kt index ffea80b..471fac6 100644 --- a/app/src/main/java/com/coldmint/rust/pro/viewmodel/InstalledTemplateViewModel.kt +++ b/app/src/main/java/com/coldmint/rust/pro/viewmodel/InstalledTemplateViewModel.kt @@ -76,20 +76,11 @@ class InstalledTemplateViewModel : BaseViewModel() { return itemList } - /** - * 加载本地和网络模板 - * 如果设置了[InstalledTemplateViewModel.setLoadCallBack]回调,那么会调用接口. - * 请在回调内使用[InstalledTemplateViewModel.getGroupData]和[InstalledTemplateViewModel.getItemData]获取加载结果 - * @param context Context - */ - fun loadTemplate(context: Context) { - } - /** * 加载本地模板 * @param context Context */ - private fun loadLocalTemplate(context: Context) { + fun loadLocalTemplate(context: Context) { val templateDirectory = File( AppSettings.getValue( AppSettings.Setting.TemplateDirectory, @@ -123,16 +114,25 @@ class InstalledTemplateViewModel : BaseViewModel() { val s = jsonObject.getString("language") if (s == "ALL" || s == environmentLanguage) { temList.add(templateFile) - LogCat.d("加载本地模板", "已成功分配" + file.absolutePath) + LogCat.d( + "加载本地模板", + "已成功分配" + file.absolutePath + ) } else { - LogCat.w("加载本地模板", "不符合语言的项目" + file.absolutePath) + LogCat.w( + "加载本地模板", + "不符合语言的项目" + file.absolutePath + ) } } catch (exception: JSONException) { exception.printStackTrace() } } else { temList.add(templateFile) - LogCat.d("加载本地模板", "已成功分配" + file.absolutePath) + LogCat.d( + "加载本地模板", + "已成功分配" + file.absolutePath + ) } } else { LogCat.w("加载本地模板", "无法分配" + file.absolutePath) @@ -153,7 +153,10 @@ class InstalledTemplateViewModel : BaseViewModel() { } } } else { - LogCat.w("加载本地模板", "目录" + templateDirectory.absolutePath + "内,没有文件,无法加载。") + LogCat.w( + "加载本地模板", + "目录" + templateDirectory.absolutePath + "内,没有文件,无法加载。" + ) } } else { LogCat.e("加载本地模板", "模板目录不存在或不是文件夹" + templateDirectory.absolutePath) diff --git a/app/src/main/res/layout/optimization_group.xml b/app/src/main/res/layout/optimization_group.xml index d399ba2..3c64434 100644 --- a/app/src/main/res/layout/optimization_group.xml +++ b/app/src/main/res/layout/optimization_group.xml @@ -11,7 +11,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" - android:layout_marginStart="16dp" + android:layout_marginStart="24dp" style="@style/TextAppearance.Material3.TitleMedium" android:text="优化项目" />