diff --git a/app/src/main/java/com/coldmint/rust/pro/EditActivity.kt b/app/src/main/java/com/coldmint/rust/pro/EditActivity.kt index f71f432..c1b80c7 100644 --- a/app/src/main/java/com/coldmint/rust/pro/EditActivity.kt +++ b/app/src/main/java/com/coldmint/rust/pro/EditActivity.kt @@ -1,5 +1,6 @@ package com.coldmint.rust.pro +import android.annotation.SuppressLint import android.content.Intent import android.graphics.Color import android.graphics.Typeface @@ -8,6 +9,7 @@ import android.os.Bundle import android.os.Handler import android.os.Looper import android.provider.MediaStore +import android.util.Log import android.view.KeyEvent import android.view.LayoutInflater import android.view.Menu @@ -47,6 +49,7 @@ import com.coldmint.rust.pro.interfaces.BookmarkListener import com.coldmint.rust.pro.tool.AppSettings import com.coldmint.rust.pro.tool.CompletionItemConverter import com.coldmint.rust.pro.tool.GlobalMethod +import com.coldmint.rust.pro.tool.Tools import com.coldmint.rust.pro.ui.StableLinearLayoutManager import com.coldmint.rust.pro.viewmodel.EditStartViewModel import com.coldmint.rust.pro.viewmodel.EditViewModel @@ -58,7 +61,8 @@ import io.github.rosemoe.sora.widget.schemes.EditorColorScheme import jp.wasabeef.glide.transformations.BlurTransformation import java.io.File - +@Suppress("SameParameterValue") +@SuppressLint("StringFormatInvalid") class EditActivity : BaseActivity() { private val viewModel by lazy { ViewModelProvider(this)[EditViewModel::class.java] @@ -66,8 +70,10 @@ class EditActivity : BaseActivity() { private lateinit var turretCoordinateResults: ActivityResultLauncher private lateinit var rustLanguage: RustLanguage private var fileAdapter: FileAdapter? = null + //是第一次启动嘛 private var isFirst = true + /** * 编辑器左侧视图 */ @@ -181,8 +187,7 @@ class EditActivity : BaseActivity() { // } // true // } - viewModel.openedSourceFileListLiveData.observe(this) - { + viewModel.openedSourceFileListLiveData.observe(this) { viewBinding.tabLayout.removeAllTabs() viewBinding.tabLayout.isVisible = true it.forEach { it -> @@ -225,9 +230,11 @@ class EditActivity : BaseActivity() { if (viewModel.openedSourceFileListLiveData.value.size > 1) { popupMenu.menu.add(R.string.close) } - popupMenu.setOnMenuItemClickListener { - when (title.toString()) { + popupMenu.setOnMenuItemClickListener { view -> + + when (view.title.toString()) { getString(R.string.close) -> { + Log.i("TAG", "loadMainObserve: ${openedSourceFile.file.absolutePath}") if (openedSourceFile.isNeedSave()) { CoreDialog(this).setTitle(R.string.edit_function) .setMessage(R.string.text_changed) @@ -238,13 +245,16 @@ class EditActivity : BaseActivity() { viewModel.closeFile(openedSourceFile) }.show() } else { +// Log.i("TAG", "loadMainObserve: ${openedSourceFile.file.absolutePath}") viewModel.closeFile(openedSourceFile) } } + getString(R.string.open_directory_of_file) -> { +// Log.i("TAG", "loadMainObserve: ${openedSourceFile.file.absolutePath}") editStartViewModel.loadPathLiveData.value = FileOperator.getSuperDirectory(openedSourceFile.file) - viewBinding.editDrawerlayout.openDrawer(GravityCompat.START) + openDrawer(GravityCompat.START) } } false @@ -260,8 +270,7 @@ class EditActivity : BaseActivity() { } } - viewModel.codeLiveData.observe(this) - { + viewModel.codeLiveData.observe(this) { // rustLanguage.autoCompleteProvider.setSourceFolder( // FileOperator.getSuperDirectory( // viewModel.getNowOpenFilePath() @@ -638,7 +647,7 @@ class EditActivity : BaseActivity() { editStartViewModel.loadPathLiveData.value = file.absolutePath } else { viewModel.openFile(file.absolutePath) - viewBinding.editDrawerlayout.closeDrawer(GravityCompat.START) + closeDrawer(GravityCompat.START) } } } @@ -819,7 +828,7 @@ class EditActivity : BaseActivity() { file.absolutePath, FileOperator.getPrefixName(file) ) - viewBinding.editDrawerlayout.openDrawer(GravityCompat.START) + openDrawer(GravityCompat.START) }.show() } else { Snackbar.make( @@ -1441,11 +1450,23 @@ class EditActivity : BaseActivity() { * 打开侧滑 */ private fun openDrawer(gravity: Int) { + if (Tools.isTabletMode(this)) { + return + } viewBinding.editDrawerlayout.openDrawer(gravity) viewBinding.codeEditor.hideAutoCompleteWindow() viewBinding.codeEditor.hideSoftInput() } + /** + * 关闭侧滑 + */ + private fun closeDrawer(gravity: Int) { + if (Tools.isTabletMode(this)) { + return + } + viewBinding.editDrawerlayout.closeDrawer(gravity) + } override fun getViewBindingObject(layoutInflater: LayoutInflater): ActivityEditBinding { return ActivityEditBinding.inflate(layoutInflater) diff --git a/app/src/main/java/com/coldmint/rust/pro/fragments/RankingFragment.kt b/app/src/main/java/com/coldmint/rust/pro/fragments/RankingFragment.kt index 0b7588c..13bed99 100644 --- a/app/src/main/java/com/coldmint/rust/pro/fragments/RankingFragment.kt +++ b/app/src/main/java/com/coldmint/rust/pro/fragments/RankingFragment.kt @@ -15,6 +15,7 @@ import com.coldmint.rust.pro.adapters.WebModAdapter import com.coldmint.rust.pro.base.BaseFragment import com.coldmint.rust.pro.databinding.FragmentRankingBinding import com.coldmint.rust.pro.ui.StableLinearLayoutManager +import com.google.android.material.chip.Chip import me.zhanghai.android.fastscroll.FastScrollerBuilder @@ -31,20 +32,20 @@ class RankingFragment : BaseFragment() { override fun whenViewCreated(inflater: LayoutInflater, savedInstanceState: Bundle?) { linearLayoutManager = StableLinearLayoutManager(requireContext()) viewBinding.recyclerView.layoutManager = linearLayoutManager -/* viewBinding.recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() { - override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) { - super.onScrollStateChanged(recyclerView, newState) - val layoutManager = viewBinding.recyclerView.layoutManager - if (layoutManager != null) { - //获取第一个可视视图 - val topView = layoutManager.getChildAt(0) - if (topView != null) { - lastOffset = topView.top - lastPosition = layoutManager.getPosition(topView) + /* viewBinding.recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() { + override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) { + super.onScrollStateChanged(recyclerView, newState) + val layoutManager = viewBinding.recyclerView.layoutManager + if (layoutManager != null) { + //获取第一个可视视图 + val topView = layoutManager.getChildAt(0) + if (topView != null) { + lastOffset = topView.top + lastPosition = layoutManager.getPosition(topView) + } + } } - } - } - })*/ + })*/ viewBinding.refreshLayout.setOnRefreshListener { it.finishRefresh(true)//传入false表示刷新失败 loadMods() @@ -52,35 +53,36 @@ class RankingFragment : BaseFragment() { viewBinding.refreshLayout.setOnLoadMoreListener { it.finishLoadMore(false) //传入false表示加载失败 } -/* viewBinding.swipeRefreshLayout.setOnRefreshListener { - loadMods() - viewBinding.swipeRefreshLayout.isRefreshing = false - }*/ - viewBinding.downloadChip.setOnCheckedChangeListener { _, isChecked -> - if (isChecked) { - sortMode = WebMod.SortMode.Download_Number + /* viewBinding.swipeRefreshLayout.setOnRefreshListener { + loadMods() + viewBinding.swipeRefreshLayout.isRefreshing = false + }*/ + for (i in 0 until viewBinding.chipGroup.childCount) { + val childView = viewBinding.chipGroup.getChildAt(i) as Chip + // 根据 Chip 的 ID 或 Tag 映射到对应的 SortMode + childView.setOnCheckedChangeListener { _, isChecked -> + if (isChecked) { + sortMode = when (i) { + 0 -> WebMod.SortMode.Download_Number + 1 -> WebMod.SortMode.Unit_Number + 2 -> WebMod.SortMode.Coin_Number + 3 -> WebMod.SortMode.Update_Number + else -> sortMode // 保持当前模式不变 + } + loadMods() + } + for (j in 0 until viewBinding.chipGroup.childCount) { + val chip = viewBinding.chipGroup.getChildAt(j) as Chip + chip.isEnabled = chip != childView + } + } + + if (i == 0) { +// childView.isChecked = true + childView.isEnabled = false loadMods() } } - viewBinding.unitChip.setOnCheckedChangeListener { _, isChecked -> - if (isChecked) { - sortMode = WebMod.SortMode.Unit_Number - loadMods() - } - } - viewBinding.coinChip.setOnCheckedChangeListener { _, isChecked -> - if (isChecked) { - sortMode = WebMod.SortMode.Coin_Number - loadMods() - } - } - viewBinding.updateChip.setOnCheckedChangeListener { _, isChecked -> - if (isChecked) { - sortMode = WebMod.SortMode.Update_Number - loadMods() - } - } - viewBinding.downloadChip.isChecked = true } diff --git a/app/src/main/res/layout-land/activity_edit.xml b/app/src/main/res/layout-land/activity_edit.xml new file mode 100644 index 0000000..6c3f276 --- /dev/null +++ b/app/src/main/res/layout-land/activity_edit.xml @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +