diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/api/service/ActorsService.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/api/service/ActorsService.kt index 32ba2c5..d558b9c 100644 --- a/VisualNovel/app/src/main/java/com/remax/visualnovel/api/service/ActorsService.kt +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/api/service/ActorsService.kt @@ -3,22 +3,21 @@ package com.remax.visualnovel.api.service import com.remax.visualnovel.BuildConfig import com.remax.visualnovel.entity.response.basenew.ResponseNew import com.remax.visualnovel.entity.request.ParamActorList +import com.remax.visualnovel.entity.request.ParamActorTag import com.remax.visualnovel.entity.response.ActorBean -import com.remax.visualnovel.entity.response.ActorTag +import com.remax.visualnovel.widget.custom.ActorTag import retrofit2.http.Body import retrofit2.http.GET import retrofit2.http.POST interface ActorsService { - @GET(BuildConfig.API_BASE + "/tag/getTags") - suspend fun requestActorTags(): ResponseNew> + @POST(BuildConfig.API_BASE + "/tag/selectByCondition") + suspend fun requestActorTags(@Body param: ParamActorTag): ResponseNew> @POST(BuildConfig.API_BASE + "/character/select/list") suspend fun requestActorList(@Body param: ParamActorList): ResponseNew> - /*@GET(BuildConfig.API_BASE + "/character/select/roleInfo/{roleId}") - suspend fun requestActorInfo(): ResponseNew*/ } \ No newline at end of file diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/entity/request/ParamActorTag.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/entity/request/ParamActorTag.kt new file mode 100644 index 0000000..6ba3c96 --- /dev/null +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/entity/request/ParamActorTag.kt @@ -0,0 +1,7 @@ +package com.remax.visualnovel.entity.request + + +data class ParamActorTag( + var name: String = "", + var limit: Int = 5 +) diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/entity/response/ActorTag.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/entity/response/ActorTag.kt deleted file mode 100644 index 4aad76b..0000000 --- a/VisualNovel/app/src/main/java/com/remax/visualnovel/entity/response/ActorTag.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.remax.visualnovel.entity.response - - -data class ActorTag( - val tagName: String, - val tagId: Long -) diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/repository/api/ActorsRepository.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/repository/api/ActorsRepository.kt index 917ca56..1f920e5 100644 --- a/VisualNovel/app/src/main/java/com/remax/visualnovel/repository/api/ActorsRepository.kt +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/repository/api/ActorsRepository.kt @@ -2,13 +2,14 @@ package com.remax.visualnovel.repository.api import com.remax.visualnovel.api.service.ActorsService import com.remax.visualnovel.entity.request.ParamActorList +import com.remax.visualnovel.entity.request.ParamActorTag import com.remax.visualnovel.repository.api.base.BaseRepositoryNew import javax.inject.Inject class ActorsRepository @Inject constructor(private val mActorsService: ActorsService) : BaseRepositoryNew() { - suspend fun getActorTags() = executeHttp { - mActorsService.requestActorTags() + suspend fun getActorTags(param: ParamActorTag) = executeHttp { + mActorsService.requestActorTags(param) } suspend fun getActorList(param: ParamActorList) = executeHttp { diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/main/MainActivity.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/main/MainActivity.kt index 952305c..7973715 100644 --- a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/main/MainActivity.kt +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/main/MainActivity.kt @@ -8,6 +8,7 @@ import androidx.appcompat.widget.AppCompatImageView import androidx.fragment.app.Fragment import androidx.viewpager2.adapter.FragmentStateAdapter import com.alibaba.android.arouter.facade.annotation.Route +import com.gyf.immersionbar.ImmersionBar import com.remax.visualnovel.R import com.remax.visualnovel.app.base.BaseBindingActivity import com.remax.visualnovel.databinding.ActivityMainBinding @@ -30,7 +31,6 @@ import com.remax.visualnovel.ui.main.actor.ActorListFragment import com.remax.visualnovel.ui.main.book.BookListFragment import com.remax.visualnovel.ui.main.history.HistoryFragment import com.remax.visualnovel.ui.main.managa.MangaListFragment -import com.remax.visualnovel.utils.StatusBarUtil3 import dagger.hilt.android.AndroidEntryPoint @@ -42,9 +42,12 @@ class MainActivity : BaseBindingActivity() { private val mainViewModel by viewModels() override fun initView() { - /*StatusBarUtils.setStatusBarAndNavBarIsLight(this, false) - StatusBarUtils.setTransparent(this)*/ - StatusBarUtil3.setImmersiveStatusBar(this, true) + ImmersionBar.with(this) + .transparentStatusBar() + .statusBarColor(R.color.transparent) + .statusBarDarkFont(true) + .fitsSystemWindows(true) + .init(); onBackPressedDispatcher.addCallback(this) { if (mainViewModel.canBack) { diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/main/actor/ActorListFragment.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/main/actor/ActorListFragment.kt index 3c25fee..c4e0b4e 100644 --- a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/main/actor/ActorListFragment.kt +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/main/actor/ActorListFragment.kt @@ -9,19 +9,19 @@ import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.StaggeredGridLayoutManager import com.alibaba.android.arouter.facade.annotation.Route import com.alibaba.android.arouter.launcher.ARouter -import com.chad.library.adapter.base.loadmore.LoadMoreStatus import com.dylanc.loadingstateview.BgColorType import com.remax.visualnovel.R import com.remax.visualnovel.app.base.BaseBindingFragment import com.remax.visualnovel.app.widget.setMyEmptyView import com.remax.visualnovel.configs.NovelApplication import com.remax.visualnovel.databinding.FragmentMainActorBinding -import com.remax.visualnovel.entity.request.PageQuery import com.remax.visualnovel.entity.request.ParamActorList +import com.remax.visualnovel.entity.request.ParamActorTag import com.remax.visualnovel.entity.response.ActorBean import com.remax.visualnovel.extension.launchAndCollect2 import com.remax.visualnovel.utils.Routers import com.remax.visualnovel.utils.StatusBarUtil3 +import com.remax.visualnovel.widget.custom.ActorTag import dagger.hilt.android.AndroidEntryPoint import kotlin.getValue import kotlin.math.max @@ -35,6 +35,7 @@ class ActorListFragment : BaseBindingFragment() { private val mActorsModel by viewModels() private var mLoadedPageIndex = 0 private val mRequestParam by lazy { ParamActorList() } + private val mRequestTagsParam by lazy { ParamActorTag() } override fun onCreated(bundle: Bundle?) { @@ -46,6 +47,7 @@ class ActorListFragment : BaseBindingFragment() { } override fun lazyInit() { + getActorTags() getActorList(true, showLoading = false) } @@ -93,23 +95,18 @@ class ActorListFragment : BaseBindingFragment() { private fun initTagLayout() { with(binding) { - val tags = listOf( - ActorTagBean("1", "Youth"), - ActorTagBean("2", "Lolita"), - ActorTagBean("2", "Lolita2"), - ActorTagBean("3", "Overbearing CEO ABCDEFG Overbearing CEO ABCDEFG Overbearing CEO ABCDEFG"), - ActorTagBean("3", "ggggggggggg CEO ABCDEFG Overbearing CEO ABCDEFG Overbearing CEO ABCDEFG"), - ActorTagBean("4", "Uncle"), - ActorTagBean("5", "Character Status"), - ActorTagBean("6", "Imouto"), - ActorTagBean("7", "Fanwork"), - ActorTagBean("8", "LastLine"), + /*val tags = listOf( + ActorTag(1, "Youth"), + ActorTag(2, "Lolita"), + ActorTag(3, "Lolita2"), + ActorTag(4, "Overbearing CEO ABCDEFG Overbearing CEO ABCDEFG Overbearing CEO ABCDEFG"), + ActorTag(5, "ggggggggggg CEO ABCDEFG Overbearing CEO ABCDEFG Overbearing CEO ABCDEFG"), ) tagFlowLayout.setTagDataList(tags) - + */ tagFlowLayout.setOnTagClickListener { tag -> - Toast.makeText(context, "Clicked: ${tag.showStr}", Toast.LENGTH_SHORT).show() + Toast.makeText(context, "Clicked: ${tag.name}", Toast.LENGTH_SHORT).show() } tagFlowLayout.setOnExpandStateChangeListener { isExpanded -> @@ -152,22 +149,24 @@ class ActorListFragment : BaseBindingFragment() { binding.refreshLayout.finishRefresh() } } - - onFailed = { errorCode, errorMsg -> - var temp = 100 - } - - onFailedWithData = { - var temp = 100 - } } } + private fun getActorTags() { + mRequestTagsParam.limit = Int.MAX_VALUE + launchAndCollect2({ + mActorsModel.getActorTags(mRequestTagsParam) + }, showLoading = false) { + onSuccess = { + val data = it ?: emptyList() + binding.tagFlowLayout.setTagDataList(data) + } + } - + } private fun createSampleData(): List { diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/main/actor/ActorTagBean.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/main/actor/ActorTagBean.kt deleted file mode 100644 index 365a1bb..0000000 --- a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/main/actor/ActorTagBean.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.remax.visualnovel.ui.main.actor - -import com.remax.visualnovel.widget.custom.AbsTagBean - -data class ActorTagBean(val tagId: String, override val showStr: String) : AbsTagBean(showStr) { - -} \ No newline at end of file diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/main/actor/ActorsViewModel.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/main/actor/ActorsViewModel.kt index b9fb8fb..8ff183f 100644 --- a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/main/actor/ActorsViewModel.kt +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/main/actor/ActorsViewModel.kt @@ -3,6 +3,7 @@ package com.remax.visualnovel.ui.main.actor import com.remax.visualnovel.app.viewmodel.base.BaseViewModel import com.remax.visualnovel.entity.request.ParamActorList +import com.remax.visualnovel.entity.request.ParamActorTag import com.remax.visualnovel.entity.response.basenew.ResponseNew import com.remax.visualnovel.entity.response.ActorBean import com.remax.visualnovel.repository.api.ActorsRepository @@ -21,4 +22,6 @@ class ActorsViewModel @Inject constructor(private val mActorsRepository: ActorsR suspend fun getActorList(param: ParamActorList) = mActorsRepository.getActorList(param) + suspend fun getActorTags(param: ParamActorTag) = mActorsRepository.getActorTags(param) + } diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/widget/custom/AbsTagBean.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/widget/custom/ActorTag.kt similarity index 57% rename from VisualNovel/app/src/main/java/com/remax/visualnovel/widget/custom/AbsTagBean.kt rename to VisualNovel/app/src/main/java/com/remax/visualnovel/widget/custom/ActorTag.kt index c94610b..f01e220 100644 --- a/VisualNovel/app/src/main/java/com/remax/visualnovel/widget/custom/AbsTagBean.kt +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/widget/custom/ActorTag.kt @@ -1,6 +1,7 @@ package com.remax.visualnovel.widget.custom -abstract class AbsTagBean( - open val showStr: String, +data class ActorTag( + val id: Int, + val name: String, var isSelected: Boolean = false ) \ No newline at end of file diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/widget/custom/TagFlowLayout2.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/widget/custom/TagFlowLayout2.kt index 8958f28..7d4f144 100644 --- a/VisualNovel/app/src/main/java/com/remax/visualnovel/widget/custom/TagFlowLayout2.kt +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/widget/custom/TagFlowLayout2.kt @@ -45,12 +45,12 @@ class TagFlowLayout2 @JvmOverloads constructor( private var eachLineAvailableWidth = 0 // 数据 - private val tagItems = mutableListOf() + private val tagItems = mutableListOf() private val tagViews = mutableListOf() private lateinit var expandIcon: ImageView // 监听器 - private var onTagClickListener: ((AbsTagBean) -> Unit)? = null + private var onTagClickListener: ((ActorTag) -> Unit)? = null private var onExpandStateChangeListener: ((Boolean) -> Unit)? = null init { @@ -115,7 +115,7 @@ class TagFlowLayout2 @JvmOverloads constructor( } - fun setTagDataList(tags: List) { + fun setTagDataList(tags: List) { tagItems.clear() tagViews.forEach { removeView(it) } tagViews.clear() @@ -130,9 +130,9 @@ class TagFlowLayout2 @JvmOverloads constructor( requestLayout() } - private fun createTagView(tag: AbsTagBean): TextView { + private fun createTagView(tag: ActorTag): TextView { return TextView(context).apply { - text = tag.showStr + text = tag.name setTextColor(textColor) textSize = textSize / resources.displayMetrics.scaledDensity setPadding(10.dpToPx(), 7.dpToPx(), 10.dpToPx(), 7.dpToPx()) @@ -298,7 +298,7 @@ class TagFlowLayout2 @JvmOverloads constructor( expandIcon.setImageDrawable(indicator) } - fun setOnTagClickListener(listener: (AbsTagBean) -> Unit) { + fun setOnTagClickListener(listener: (ActorTag) -> Unit) { onTagClickListener = listener } @@ -326,7 +326,7 @@ class TagFlowLayout2 @JvmOverloads constructor( requestLayout() } - fun getSelectedTagList() : List { + fun getSelectedTagList() : List { return tagItems.filter { it.isSelected } } diff --git a/VisualNovel/buildSrc/build/classes/kotlin/main/Deps$ClassPath.class b/VisualNovel/buildSrc/build/classes/kotlin/main/Deps$ClassPath.class deleted file mode 100644 index 59caff6..0000000 Binary files a/VisualNovel/buildSrc/build/classes/kotlin/main/Deps$ClassPath.class and /dev/null differ diff --git a/VisualNovel/buildSrc/build/classes/kotlin/main/Deps.class b/VisualNovel/buildSrc/build/classes/kotlin/main/Deps.class deleted file mode 100644 index bf4314d..0000000 Binary files a/VisualNovel/buildSrc/build/classes/kotlin/main/Deps.class and /dev/null differ diff --git a/VisualNovel/buildSrc/build/classes/kotlin/main/META-INF/buildSrc.kotlin_module b/VisualNovel/buildSrc/build/classes/kotlin/main/META-INF/buildSrc.kotlin_module deleted file mode 100644 index 3aa6361..0000000 Binary files a/VisualNovel/buildSrc/build/classes/kotlin/main/META-INF/buildSrc.kotlin_module and /dev/null differ diff --git a/VisualNovel/buildSrc/build/classes/kotlin/main/Version.class b/VisualNovel/buildSrc/build/classes/kotlin/main/Version.class deleted file mode 100644 index 6e3c785..0000000 Binary files a/VisualNovel/buildSrc/build/classes/kotlin/main/Version.class and /dev/null differ diff --git a/VisualNovel/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/counters.tab b/VisualNovel/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/counters.tab deleted file mode 100644 index 166c057..0000000 --- a/VisualNovel/buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/counters.tab +++ /dev/null @@ -1,2 +0,0 @@ -1 -0 \ No newline at end of file diff --git a/VisualNovel/buildSrc/build/kotlin/compileKotlin/cacheable/last-build.bin b/VisualNovel/buildSrc/build/kotlin/compileKotlin/cacheable/last-build.bin deleted file mode 100644 index a7607b8..0000000 Binary files a/VisualNovel/buildSrc/build/kotlin/compileKotlin/cacheable/last-build.bin and /dev/null differ diff --git a/VisualNovel/buildSrc/build/kotlin/compileKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin b/VisualNovel/buildSrc/build/kotlin/compileKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin deleted file mode 100644 index 593f470..0000000 Binary files a/VisualNovel/buildSrc/build/kotlin/compileKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin and /dev/null differ diff --git a/VisualNovel/buildSrc/build/libs/buildSrc.jar b/VisualNovel/buildSrc/build/libs/buildSrc.jar deleted file mode 100644 index 2a1d04d..0000000 Binary files a/VisualNovel/buildSrc/build/libs/buildSrc.jar and /dev/null differ diff --git a/VisualNovel/buildSrc/build/tmp/jar/MANIFEST.MF b/VisualNovel/buildSrc/build/tmp/jar/MANIFEST.MF deleted file mode 100644 index 59499bc..0000000 --- a/VisualNovel/buildSrc/build/tmp/jar/MANIFEST.MF +++ /dev/null @@ -1,2 +0,0 @@ -Manifest-Version: 1.0 -