diff --git a/app/src/main/java/com/coldmint/rust/pro/CreateUnitActivity.kt b/app/src/main/java/com/coldmint/rust/pro/CreateUnitActivity.kt index 9eeb5bc..bf690aa 100644 --- a/app/src/main/java/com/coldmint/rust/pro/CreateUnitActivity.kt +++ b/app/src/main/java/com/coldmint/rust/pro/CreateUnitActivity.kt @@ -2,18 +2,14 @@ package com.coldmint.rust.pro import android.os.Bundle import android.view.LayoutInflater -import android.view.Menu -import android.view.MenuItem import android.widget.Toast -import com.coldmint.dialog.CoreDialog -import com.coldmint.rust.pro.adapters.CreateUnitPageAdapter +import androidx.fragment.app.commit import com.coldmint.rust.pro.base.BaseActivity import com.coldmint.rust.pro.databinding.ActivityCreateUnitBinding -import com.google.android.material.tabs.TabLayoutMediator +import com.coldmint.rust.pro.fragments.InstalledTemplateFragment class CreateUnitActivity : BaseActivity() { - private lateinit var createUnitPageAdapter: CreateUnitPageAdapter override fun whenCreateActivity(savedInstanceState: Bundle?, canUseView: Boolean) { if (canUseView) { setTitle(R.string.create_unit) @@ -22,61 +18,22 @@ class CreateUnitActivity : BaseActivity() { } } - override fun onCreateOptionsMenu(menu: Menu): Boolean { - menuInflater.inflate(R.menu.menu_create_unit, menu) - return true - } - - override fun onOptionsItemSelected(item: MenuItem): Boolean { - if (item.itemId == R.id.help) { - val dialog = - CoreDialog(this).setTitle(R.string.help).setMessage(R.string.template_help_message) - dialog.setPositiveButton(R.string.dialog_ok) { - - } - dialog.show() - } - return super.onOptionsItemSelected(item) - } - fun initView() { val intent = intent val bundle = intent.getBundleExtra("data") if (bundle == null) { Toast.makeText(this, "无效的请求", Toast.LENGTH_SHORT).show() finish() - } else { - createUnitPageAdapter = CreateUnitPageAdapter(this) - viewBinding.viewPager2.adapter = createUnitPageAdapter - TabLayoutMediator(viewBinding.tabLayout, viewBinding.viewPager2) { tab, i -> - tab.text = if (i == 0) { - getString(R.string.installated) - } else { - getString(R.string.template_community) - } - }.attach() - val root = bundle.getString("modPath") - createUnitPageAdapter.setRootPath(root) - createUnitPageAdapter.setCreatePath(bundle.getString("createPath", root)) -// registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { -// val resultCode = it.resultCode -// when (requestCode) { -// 1 -> if (resultCode == RESULT_OK) { -// val directents = data!!.getStringExtra("Directents") -// if (directents != null) { -// createUnitPageAdapter.setCreatePath(directents) -// } -// } -// 2 -> if (resultCode == RESULT_OK) { -// val path = data!!.getStringExtra("File") -// val intent = Intent() -// intent.putExtra("File", path) -// setResult(RESULT_OK, intent) -// finish() -// } -// } -// } + return } + supportFragmentManager.commit { + add(viewBinding.fragmentContainerView.id, InstalledTemplateFragment().apply { + val root = bundle.getString("modPath") + this.setRootPath(root) + this.setCreatePath(bundle.getString("createPath", root)) + }) + } + } 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 8bef9a1..7698cbe 100644 --- a/app/src/main/java/com/coldmint/rust/pro/MainActivity.kt +++ b/app/src/main/java/com/coldmint/rust/pro/MainActivity.kt @@ -6,7 +6,9 @@ import android.content.pm.PackageManager import android.os.Bundle import android.os.Handler import android.os.Looper +import android.view.KeyEvent import android.view.LayoutInflater +import android.view.MenuItem import androidx.appcompat.app.ActionBarDrawerToggle import androidx.core.view.GravityCompat import androidx.lifecycle.ViewModelProvider @@ -321,20 +323,6 @@ class MainActivity : BaseActivity() { } }*/ } - - /* mod.setOnMenuItemClickListener { - GlobalMethod.requestStoragePermissions(this) { - if (it) { - viewBinding.mainButton.postOnAnimationDelayed({ - // viewBinding.tabLayout.isVisible = true - if (isActive) { - viewBinding.mainButton.show() - } - }, hideViewDelay) - } - } - false - }*/ menu.findItem(R.id.startGame).setOnMenuItemClickListener { val packName = AppSettings.getValue( AppSettings.Setting.GamePackage, @@ -352,15 +340,6 @@ class MainActivity : BaseActivity() { } false } - -// menu.findItem(R.id.rust_api).setOnMenuItemClickListener { -// val thisIntent = Intent(this, BrowserActivity::class.java) -// thisIntent.putExtra("link", "https://git.coldmint.top/") -// thisIntent.putExtra("javaScriptEnabled", true) -// startActivity(thisIntent) -// false -// } - menu.findItem(R.id.about).setOnMenuItemClickListener { startActivity(Intent(this@MainActivity, AboutActivity::class.java)) false @@ -574,12 +553,8 @@ class MainActivity : BaseActivity() { } - @Deprecated("Deprecated in Java") - override fun onBackPressed() { - super.onBackPressed() - val navController = findNavController(R.id.baseFragment) - //判断是否在第一个导航 社区或者仓库 - if (navController.currentDestination?.id == navController.graph.startDestinationId) { + override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { + if (keyCode == KeyEvent.KEYCODE_BACK) { MaterialAlertDialogBuilder(this).setTitle(R.string.dialog_close).setMessage( String.format( Locale.getDefault(), @@ -590,9 +565,9 @@ class MainActivity : BaseActivity() { finish() }.setNegativeButton(R.string.dialog_cancel) { _, _ -> }.show() - } else { - finish() + return true } + return super.onKeyDown(keyCode, event) } override fun getViewBindingObject(layoutInflater: LayoutInflater): ActivityMainBinding { diff --git a/app/src/main/java/com/coldmint/rust/pro/PackActivity.kt b/app/src/main/java/com/coldmint/rust/pro/PackActivity.kt index 602872e..0bcbb93 100644 --- a/app/src/main/java/com/coldmint/rust/pro/PackActivity.kt +++ b/app/src/main/java/com/coldmint/rust/pro/PackActivity.kt @@ -2,29 +2,29 @@ package com.coldmint.rust.pro import android.content.Intent import android.os.Bundle -import com.coldmint.rust.pro.base.BaseActivity -import com.coldmint.rust.core.dataBean.ModConfigurationData import android.os.Handler -import com.coldmint.rust.pro.tool.AppSettings -import com.coldmint.rust.pro.tool.GlobalMethod import android.os.Looper import android.view.KeyEvent import android.view.LayoutInflater import android.view.MenuItem -import android.view.View -import android.widget.* import androidx.core.view.isVisible -import com.coldmint.rust.core.* +import com.coldmint.rust.core.CodeTranslate +import com.coldmint.rust.core.CompressionManager +import com.coldmint.rust.core.ModClass +import com.coldmint.rust.core.ModConfigurationManager +import com.coldmint.rust.core.dataBean.ModConfigurationData import com.coldmint.rust.core.interfaces.CompressionInterceptor -import com.coldmint.rust.core.tool.LineParser import com.coldmint.rust.core.interfaces.CompressionListener import com.coldmint.rust.core.interfaces.LineParserEvent import com.coldmint.rust.core.tool.FileFinder2 import com.coldmint.rust.core.tool.FileOperator +import com.coldmint.rust.core.tool.LineParser +import com.coldmint.rust.pro.base.BaseActivity import com.coldmint.rust.pro.databinding.ActivityPackBinding +import com.coldmint.rust.pro.tool.AppSettings import java.io.File -import java.lang.StringBuilder import java.text.SimpleDateFormat +import java.util.Locale import java.util.concurrent.ExecutorService import java.util.concurrent.Executors @@ -75,6 +75,10 @@ class PackActivity : BaseActivity() { viewBinding.deleteSourceFile.isVisible = false } val modPath = bundle.getString("modPath") + if (modPath.isNullOrBlank()) { + showError("参数不合法,缺少modPath") + return + } modFolder = File(modPath) val modClass = ModClass(modFolder) modName = modClass.modName @@ -114,6 +118,10 @@ class PackActivity : BaseActivity() { if (folder != null && !folder.endsWith(endValue)) { outputFolder += endValue } + if (folder.isNullOrBlank()) { + showError("folder生成错误") + return + } val outputFolderObject = File(folder) if (!outputFolderObject.exists()) { outputFolderObject.mkdirs() @@ -380,12 +388,11 @@ class PackActivity : BaseActivity() { return true } val updateTypeItem = item[viewBinding.updateSpinner.selectedItemPosition] - val webLink = getString(R.string.web_link) val qqLink = getString(R.string.qq_group) val upTitle = viewBinding.updateTitle.text.toString() val upLink = viewBinding.updateLink.text.toString() var updateLinkType = ModConfigurationManager.webLinkType - if (!upTitle.isEmpty()) { + if (upTitle.isNotEmpty()) { if (updateTypeItem == qqLink) { if (!upLink.matches(Regex("^\\d{8,10}"))) { setErrorAndInput(viewBinding.updateLink, getString(R.string.qq_group_error)) @@ -399,7 +406,10 @@ class PackActivity : BaseActivity() { } } } - val buildTime = SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(System.currentTimeMillis()) + val buildTime = SimpleDateFormat( + "yyyy-MM-dd HH:mm:ss", + Locale.getDefault() + ).format(System.currentTimeMillis()) var modConfigurationData = configurationData if (modConfigurationData == null) { modConfigurationData = ModConfigurationData( 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 fa58cc0..94e175b 100644 --- a/app/src/main/java/com/coldmint/rust/pro/SettingsActivity.kt +++ b/app/src/main/java/com/coldmint/rust/pro/SettingsActivity.kt @@ -100,8 +100,7 @@ class SettingsActivity : BaseActivity() { manager.findPreference("value_type_manager") valueTypeManager!!.onPreferenceClickListener = Preference.OnPreferenceClickListener { - val intent = Intent(context, ValueTypeActivity::class.java) - startActivity(intent) + startActivity(Intent(context, ValueTypeActivity::class.java)) true } val openRecoveryStation = @@ -210,35 +209,6 @@ class SettingsActivity : BaseActivity() { if (nightMode != null && nightModeFollowSystem != null) { nightMode.isEnabled = !nightModeFollowSystem.isChecked } - - 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 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 - } - } } diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/CreateUnitPageAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/CreateUnitPageAdapter.kt deleted file mode 100644 index f7075fa..0000000 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/CreateUnitPageAdapter.kt +++ /dev/null @@ -1,53 +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.pro.fragments.InstalledTemplateFragment -import com.coldmint.rust.pro.fragments.NullFragment -import com.coldmint.rust.pro.fragments.TemplateCommunityFragment - -/** - * 创建单位适配器 - * @constructor - */ -class CreateUnitPageAdapter(fragmentActivity: FragmentActivity) : - FragmentStateAdapter(fragmentActivity) { - - /** - * 已安装的模板碎片 - */ - private val installedTemplateFragment by lazy { - InstalledTemplateFragment() - } - - - /** - * 设置Root目录 - * @param rootPath String - */ - fun setRootPath(rootPath:String?){ - installedTemplateFragment.viewModel.mRootPath = rootPath - } - - - /** - * 设置创建的目录 - * @param createPath String - */ - fun setCreatePath(createPath :String){ - return installedTemplateFragment.setCreatePath(createPath) - } - - override fun getItemCount(): Int { - return 2 - } - - override fun createFragment(position: Int): Fragment { - return if (position == 0) { - installedTemplateFragment - } else { - TemplateCommunityFragment() - } - } -} \ No newline at end of file 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 6a6c382..2b3f2a1 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 @@ -39,7 +39,7 @@ import java.io.File import java.util.* class InstalledTemplateFragment : BaseFragment() { - val viewModel: InstalledTemplateViewModel by lazy { + private val viewModel: InstalledTemplateViewModel by lazy { InstalledTemplateViewModel() } @@ -58,16 +58,23 @@ class InstalledTemplateFragment : BaseFragment viewModel.createPathLiveData.value = createPath } + /** + * 设置根路径 + */ + fun setRootPath(rootPath: String?) { + viewModel.mRootPath = rootPath + } + fun initAction() { viewBinding.selectPathButton.setOnClickListener { val createPath = viewModel.createPathLiveData.value - val bundle = Bundle() - val intent = Intent(requireContext(), FileManagerActivity::class.java) - bundle.putString("type", "selectDirectents") - bundle.putString("path", createPath) - bundle.putString("rootpath", viewModel.mRootPath) - intent.putExtra("data", bundle) - changePath.launch(intent) + changePath.launch(Intent(requireContext(), FileManagerActivity::class.java).apply { + this.putExtra("data", Bundle().apply { + this.putString("type", "selectDirectents") + this.putString("path", createPath) + this.putString("rootpath", viewModel.mRootPath) + }) + }) } //长按监听 viewBinding.expandableList.onItemLongClickListener = @@ -160,20 +167,16 @@ class InstalledTemplateFragment : BaseFragment LogCat.e("创建目录观察者", "模板适配器没有设置目录。") } } - viewModel.setLoadCallBack { - if (isAdded) { - mTemplateAdapter = TemplateAdapter( - requireContext(), - viewModel.getGroupData(), - viewModel.getItemData(), - viewModel.environmentLanguage, startTemplateParserActivity - ) - viewBinding.expandableList.setAdapter(mTemplateAdapter) - val path = viewModel.createPathLiveData.value.toString() - mTemplateAdapter.setCreatePath(path) - LogCat.d("创建目录观察者", "模板适配器设置目录为${path}。") - } - } + mTemplateAdapter = TemplateAdapter( + requireContext(), + viewModel.getGroupData(), + viewModel.getItemData(), + viewModel.environmentLanguage, startTemplateParserActivity + ) + viewBinding.expandableList.setAdapter(mTemplateAdapter) + val path = viewModel.createPathLiveData.value.toString() + mTemplateAdapter.setCreatePath(path) + LogCat.d("创建目录观察者", "模板适配器设置目录为${path}。") viewModel.loadTemplate(requireContext()) } diff --git a/app/src/main/res/layout/activity_create_unit.xml b/app/src/main/res/layout/activity_create_unit.xml index 34d6f3e..d438d81 100644 --- a/app/src/main/res/layout/activity_create_unit.xml +++ b/app/src/main/res/layout/activity_create_unit.xml @@ -1,12 +1,9 @@ + android:fitsSystemWindows="true"> - - - - - - - - - - - - + app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior" /> \ No newline at end of file diff --git a/app/src/main/res/menu/menu_create_unit.xml b/app/src/main/res/menu/menu_create_unit.xml deleted file mode 100644 index dfcf9b2..0000000 --- a/app/src/main/res/menu/menu_create_unit.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - \ No newline at end of file