Skip to content

Commit

Permalink
[Feat]: 更新依赖
Browse files Browse the repository at this point in the history
  • Loading branch information
why committed Oct 19, 2024
1 parent 8200926 commit 632a803
Show file tree
Hide file tree
Showing 97 changed files with 981 additions and 738 deletions.
1 change: 1 addition & 0 deletions .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/kotlinc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 1 addition & 17 deletions .idea/other.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions .idea/runConfigurations.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions .kotlin/errors/errors-1729322291665.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
kotlin version: 2.0.20
error message: The daemon has terminated unexpectedly on startup attempt #1 with error code: 0. The daemon process output:
1. Kotlin compile daemon is ready

Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ import com.xiaoyv.common.config.annotation.LocalCollectionType
import com.xiaoyv.common.database.collection.Collection
import com.xiaoyv.common.helper.CollectionHelper
import com.xiaoyv.common.kts.CommonDrawable
import com.xiaoyv.common.kts.CommonString
import com.xiaoyv.common.kts.i18n
import com.xiaoyv.common.kts.setOnDebouncedChildClickListener
import com.xiaoyv.common.kts.showConfirmDialog
import com.xiaoyv.widget.binder.BaseQuickDiffBindingAdapter
Expand All @@ -42,9 +44,9 @@ class CollectionActivity : BaseListActivity<Collection, CollectionViewModel>() {

override val toolbarTitle: String
get() = when (viewModel.type) {
LocalCollectionType.TYPE_BLOG -> "我收藏的日志"
LocalCollectionType.TYPE_TOPIC -> "我收藏的话题"
else -> "我的收藏"
LocalCollectionType.TYPE_BLOG -> i18n(CommonString.collect_data_blog)
LocalCollectionType.TYPE_TOPIC -> i18n(CommonString.collect_data_topic)
else -> i18n(CommonString.collect_data)
}

override fun initIntentData(intent: Intent, bundle: Bundle, isNewIntent: Boolean) {
Expand All @@ -63,8 +65,8 @@ class CollectionActivity : BaseListActivity<Collection, CollectionViewModel>() {
adapter.getItem(position) ?: return@addOnItemChildLongClickListener true

requireActivity.showConfirmDialog(
title = "删除",
message = "是否删除该收藏?",
title = i18n(CommonString.collect_cancel_title),
message = i18n(CommonString.collect_cancel_message),
onConfirmClick = {
viewModel.deleteCollection(collection)
}
Expand All @@ -78,12 +80,14 @@ class CollectionActivity : BaseListActivity<Collection, CollectionViewModel>() {
val shareIntent = Intent(Intent.ACTION_SEND)
shareIntent.type = "application/json"
shareIntent.putExtra(Intent.EXTRA_STREAM, it)
ActivityUtils.startActivity(Intent.createChooser(shareIntent, "收藏数据导出"))
ActivityUtils.startActivity(
Intent.createChooser(shareIntent, i18n(CommonString.collect_export))
)
}
}

override fun onCreateOptionsMenu(menu: Menu): Boolean {
menu.add("同步合并远程数据")
menu.add(i18n(CommonString.collect_merge_remote))
.setIcon(CommonDrawable.ic_sync_cloud)
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_ALWAYS)
.setOnMenuItemClickListener {
Expand All @@ -99,7 +103,7 @@ class CollectionActivity : BaseListActivity<Collection, CollectionViewModel>() {
true
}

menu.add("覆盖远程数据")
menu.add(i18n(CommonString.collect_override_remote))
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_NEVER)
.setOnMenuItemClickListener {
if (!CollectionHelper.isEnable) {
Expand All @@ -114,7 +118,7 @@ class CollectionActivity : BaseListActivity<Collection, CollectionViewModel>() {
true
}

menu.add("导入")
menu.add(i18n(CommonString.collect_import))
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_NEVER)
.setOnMenuItemClickListener {
pickFile.launch(Intent(Intent.ACTION_OPEN_DOCUMENT).apply {
Expand All @@ -124,14 +128,14 @@ class CollectionActivity : BaseListActivity<Collection, CollectionViewModel>() {
true
}

menu.add("导出")
menu.add(i18n(CommonString.collect_export_title))
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_NEVER)
.setOnMenuItemClickListener {
viewModel.exportData()
true
}

menu.add("配置")
menu.add(i18n(CommonString.collect_config))
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_NEVER)
.setOnMenuItemClickListener {
RouteHelper.jumpConfigNetwork()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import com.xiaoyv.bangumi.databinding.ActivityCollectionItemBinding
import com.xiaoyv.common.config.annotation.LocalCollectionType
import com.xiaoyv.common.database.collection.Collection
import com.xiaoyv.common.helper.callback.IdDiffItemCallback
import com.xiaoyv.common.kts.CommonString
import com.xiaoyv.common.kts.i18n
import com.xiaoyv.common.kts.loadImageAnimate
import com.xiaoyv.widget.binder.BaseQuickBindingHolder
import com.xiaoyv.widget.binder.BaseQuickDiffBindingAdapter
Expand All @@ -29,9 +31,9 @@ class CollectionAdapter :
binding.tvTime.text = TimeUtils.millis2String(item.time, "yyyy-MM-dd")

binding.tvEp.text = when (item.type) {
LocalCollectionType.TYPE_TOPIC -> "话题"
LocalCollectionType.TYPE_BLOG -> "日志"
else -> "未知"
LocalCollectionType.TYPE_TOPIC -> i18n(CommonString.type_path_topic)
LocalCollectionType.TYPE_BLOG -> i18n(CommonString.type_path_blog)
else -> i18n(CommonString.type_unknown)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@ import com.xiaoyv.common.database.BgmDatabaseManager
import com.xiaoyv.common.database.collection.Collection
import com.xiaoyv.common.helper.CollectionHelper
import com.xiaoyv.common.helper.UserHelper
import com.xiaoyv.common.kts.CommonString
import com.xiaoyv.common.kts.fromJson
import com.xiaoyv.common.kts.i18n
import com.xiaoyv.widget.kts.errorMsg
import com.xiaoyv.widget.kts.showToastCompat
import kotlinx.coroutines.Dispatchers
Expand Down Expand Up @@ -59,15 +61,13 @@ class CollectionViewModel : BaseListViewModel<Collection>() {
.fromJson<List<Collection>>()
.orEmpty()

require(collections.isNotEmpty()) {
"导入文件格式不支持,请使用该软件导出的文件数据"
}
require(collections.isNotEmpty()) { i18n(CommonString.collect_not_support) }

// 对比插入本地数据库
CollectionHelper.mergeIntoLocal(collections, false)
}

showToastCompat("导入成功!")
showToastCompat(i18n(CommonString.collect_import_success))
}
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ package com.xiaoyv.bangumi.special.detect.anime.result

import com.xiaoyv.bangumi.databinding.ActivityDetectAnimeResultItemBinding
import com.xiaoyv.common.api.response.anime.AnimeSourceEntity
import com.xiaoyv.common.kts.CommonString
import com.xiaoyv.common.kts.i18n
import com.xiaoyv.widget.binder.BaseQuickBindingAdapter
import com.xiaoyv.widget.binder.BaseQuickBindingHolder
import com.xiaoyv.widget.kts.formatHMS
Expand All @@ -22,9 +24,9 @@ class AnimeDetectResultAdapter :
val episode = item.episode.orEmpty().ifBlank { "unknown" }

binding.tvTitle.text = item.filename.orEmpty()
binding.tvNo.text = String.format("Episode: %s", episode)
binding.tvNo.text = i18n(CommonString.anime_search_result_ep, episode)
binding.tvTime.text = String.format("%s - %s", from, to)
binding.tvDesc.text = String.format("~%.2f%% Similarity", item.similarity * 100)
binding.tvDesc.text = i18n(CommonString.anime_search_result_sim, item.similarity * 100)
binding.ivCover.loadImage(item.image)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ import com.xiaoyv.common.api.response.anime.DetectCharacterEntity
import com.xiaoyv.common.api.response.anime.ListParcelableWrapEntity
import com.xiaoyv.common.helper.ImageHelper
import com.xiaoyv.common.helper.ImageProcessor
import com.xiaoyv.common.kts.CommonString
import com.xiaoyv.common.kts.i18n
import com.xiaoyv.common.widget.setting.SearchOptionView
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
Expand All @@ -33,31 +35,30 @@ class ImageDetectCharacterViewModel : ImageDetectViewModel() {

private val imageProcessor by lazy { ImageProcessor() }

@Suppress("SpellCheckingInspection")
override val searchOptions: List<SearchOptionView.Option>
get() = listOf(
SearchOptionView.Option(
name = "识别模型",
name = i18n(CommonString.detect_model),
fieldName = "model",
options = listOf(
SearchOptionView.OptionItem(
name = "动漫模型-默认",
name = i18n(CommonString.detect_model_anime),
value = "anime"
),
SearchOptionView.OptionItem(
name = "动漫模型-高准确率1",
name = i18n(CommonString.detect_model_anime1),
value = "anime_model_lovelive"
),
SearchOptionView.OptionItem(
name = "动漫模型-高准确率2",
name = i18n(CommonString.detect_model_anime2),
value = "pre_stable"
),
SearchOptionView.OptionItem(
name = "GalGame模型-默认",
name = i18n(CommonString.detect_model_gal),
value = "game"
),
SearchOptionView.OptionItem(
name = "GalGame模型-高准确率1",
name = i18n(CommonString.detect_model_gal1),
value = "game_model_kirakira"
)
)
Expand All @@ -74,7 +75,7 @@ class ImageDetectCharacterViewModel : ImageDetectViewModel() {
block = {
val selectModel: SearchOptionView.OptionItem =
(if (selectedOptions.isNotEmpty()) selectedOptions.first().selected else searchOptions.first().options?.first())
?: throw IllegalArgumentException("Please select a model firstly!")
?: throw IllegalArgumentException(i18n(CommonString.anime_character_select_model))

onDetectCharacterLiveData.value = withContext(Dispatchers.IO) {
val targetFile = FileUtils.getFileByPath(ImageHelper.compressImage(imageUri))
Expand All @@ -90,7 +91,7 @@ class ImageDetectCharacterViewModel : ImageDetectViewModel() {
}

if (entities.isEmpty()) {
throw IllegalArgumentException("Detect failed!")
throw IllegalArgumentException(i18n(CommonString.detect_failed))
}

ListParcelableWrapEntity(entities)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,10 @@ import com.xiaoyv.bangumi.helper.RouteHelper
import com.xiaoyv.blueprint.constant.NavKey
import com.xiaoyv.blueprint.kts.toJson
import com.xiaoyv.common.api.response.anime.AnimeMagnetEntity
import com.xiaoyv.common.kts.CommonString
import com.xiaoyv.common.kts.copyText
import com.xiaoyv.common.kts.debugLog
import com.xiaoyv.common.kts.i18n
import com.xiaoyv.common.kts.magnetHash
import com.xiaoyv.common.kts.showOptionsDialog
import com.xiaoyv.widget.binder.BaseQuickDiffBindingAdapter
Expand All @@ -35,7 +37,7 @@ class MagnetActivity : BaseListActivity<AnimeMagnetEntity.Resource, MagnetViewMo
private lateinit var filterBinding: ActivityMagnetBinding

override val toolbarTitle: String
get() = "动画资源搜索"
get() = i18n(CommonString.magnet_title)

override val isOnlyOnePage: Boolean
get() = true
Expand Down Expand Up @@ -109,12 +111,12 @@ class MagnetActivity : BaseListActivity<AnimeMagnetEntity.Resource, MagnetViewMo
@JvmStatic
fun FragmentActivity.onMagnetItemClick(resource: AnimeMagnetEntity.Resource) {
showOptionsDialog(
title = "资源详情",
title = i18n(CommonString.mikan_resource_detail),
items = listOf(
"复制磁链",
"复制发布来源",
"打开方式",
"磁链资源预览"
i18n(CommonString.mikan_resource_copy_link),
i18n(CommonString.mikan_resource_copy_from),
i18n(CommonString.mikan_resource_open_way),
i18n(CommonString.mikan_resource_preview),
),
onItemClick = { _, which ->
when (which) {
Expand All @@ -127,7 +129,7 @@ class MagnetActivity : BaseListActivity<AnimeMagnetEntity.Resource, MagnetViewMo
ActivityUtils.startActivity(
Intent.createChooser(
intent,
"打开方式"
i18n(CommonString.mikan_resource_open_way)
)
)
}.onFailure {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ import com.blankj.utilcode.util.SpanUtils
import com.xiaoyv.bangumi.databinding.ActivityMagnetItemBinding
import com.xiaoyv.common.api.response.anime.AnimeMagnetEntity
import com.xiaoyv.common.helper.callback.IdDiffItemCallback
import com.xiaoyv.common.kts.CommonString
import com.xiaoyv.common.kts.highlightText
import com.xiaoyv.common.kts.i18n
import com.xiaoyv.widget.binder.BaseQuickBindingHolder
import com.xiaoyv.widget.binder.BaseQuickDiffBindingAdapter

Expand All @@ -20,21 +22,24 @@ class MagnetAdapter(private val keyword: () -> String) :
ActivityMagnetItemBinding>(IdDiffItemCallback()) {

override fun BaseQuickBindingHolder<ActivityMagnetItemBinding>.converted(item: AnimeMagnetEntity.Resource) {
val time = item.publishDate.orEmpty().ifBlank { "未知" }
val size = item.fileSize.orEmpty().ifBlank { "未知" }
val subgroupName = item.subgroupName.orEmpty().ifBlank { "未知" }
val typeName = item.typeName.orEmpty().ifBlank { "未知" }
val time = item.publishDate.orEmpty().ifBlank { i18n(CommonString.type_unknown) }
val size = item.fileSize.orEmpty().ifBlank { i18n(CommonString.type_unknown) }
val subgroupName = item.subgroupName.orEmpty().ifBlank { i18n(CommonString.type_unknown) }
val typeName = item.typeName.orEmpty().ifBlank { i18n(CommonString.type_unknown) }

binding.tvTitle.text = item.title

// 高亮
binding.tvTitle.highlightText(keyword().split("\\s+".toRegex()), Color.GREEN)

SpanUtils.with(binding.tvDesc)
.append("Team: $subgroupName\n")
.append("Time: $time\n")
.append("Size: $size\n")
.append("Kind: $typeName")
.append(i18n(CommonString.magnet_team, subgroupName))
.append("\n")
.append(i18n(CommonString.magnet_time, time))
.append("\n")
.append(i18n(CommonString.magnet_size, size))
.append("\n")
.append(i18n(CommonString.magnet_kind, typeName))
.create()
}
}
Loading

0 comments on commit 632a803

Please sign in to comment.