From db1e996e575cb51541de46aa3df01eb0782f1d15 Mon Sep 17 00:00:00 2001 From: ultranity Date: Sun, 26 Apr 2020 14:29:57 +0800 Subject: [PATCH 1/5] add feature: hide bookmarked pictures (in user detail page) --- .../perol/asdpl/pixivez/activity/UserMActivity.kt | 5 +++++ .../perol/asdpl/pixivez/adapters/RecommendAdapter.kt | 12 ++++++++++-- .../pixivez/adapters/viewpager/UserMPagerAdapter.kt | 6 +++++- .../asdpl/pixivez/fragments/UserIllustFragment.kt | 6 +++++- .../perol/asdpl/pixivez/viewmodel/UserMViewModel.kt | 1 + app/src/main/res/menu/menu_userx.xml | 7 ++++++- app/src/main/res/values-en/strings.xml | 1 + app/src/main/res/values-zh-rTW/strings.xml | 1 + app/src/main/res/values/strings.xml | 7 ++++--- 9 files changed, 38 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/perol/asdpl/pixivez/activity/UserMActivity.kt b/app/src/main/java/com/perol/asdpl/pixivez/activity/UserMActivity.kt index bbc7525..01018fc 100644 --- a/app/src/main/java/com/perol/asdpl/pixivez/activity/UserMActivity.kt +++ b/app/src/main/java/com/perol/asdpl/pixivez/activity/UserMActivity.kt @@ -237,6 +237,11 @@ class UserMActivity : RinkActivity() { when (item.itemId) { android.R.id.home -> finishAfterTransition() R.id.action_share -> share() + R.id.action_hideBookmarked -> { + viewModel.hideBookmarked.value = !viewModel.hideBookmarked.value!! + item.isChecked = !item.isChecked + mviewpager.adapter?.notifyDataSetChanged() + } R.id.action_download -> { // val intent =Intent(this,WorkActivity::class.java) // intent.putExtra("id",id) diff --git a/app/src/main/java/com/perol/asdpl/pixivez/adapters/RecommendAdapter.kt b/app/src/main/java/com/perol/asdpl/pixivez/adapters/RecommendAdapter.kt index fd11d48..5546468 100644 --- a/app/src/main/java/com/perol/asdpl/pixivez/adapters/RecommendAdapter.kt +++ b/app/src/main/java/com/perol/asdpl/pixivez/adapters/RecommendAdapter.kt @@ -62,7 +62,8 @@ class RecommendAdapter( layoutResId: Int, data: List?, private val R18on: Boolean, - var blockTags: List + var blockTags: List, + var hideBookmarked: Boolean = false ) : BaseQuickAdapter(layoutResId, data?.toMutableList()), LoadMoreModule { @@ -131,7 +132,14 @@ class RecommendAdapter( break } } - + if (hideBookmarked && item.is_bookmarked){ + helper.itemView.visibility = View.GONE + helper.itemView.layoutParams.apply { + height = 0 + width = 0 + } + return + } if (blockTags.isNotEmpty() && tags.isNotEmpty() && needBlock) { helper.itemView.visibility = View.GONE helper.itemView.layoutParams.apply { diff --git a/app/src/main/java/com/perol/asdpl/pixivez/adapters/viewpager/UserMPagerAdapter.kt b/app/src/main/java/com/perol/asdpl/pixivez/adapters/viewpager/UserMPagerAdapter.kt index 78f70d1..25aa1ce 100644 --- a/app/src/main/java/com/perol/asdpl/pixivez/adapters/viewpager/UserMPagerAdapter.kt +++ b/app/src/main/java/com/perol/asdpl/pixivez/adapters/viewpager/UserMPagerAdapter.kt @@ -39,7 +39,11 @@ class UserMPagerAdapter( var newInstance: Fragment ) : FragmentStatePagerAdapter(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) { - + override fun getItemPosition(`object`: Any): Int { + return if (`object`.javaClass.name == "com.perol.asdpl.pixivez.fragments.UserIllustFragment") { + FragmentStatePagerAdapter.POSITION_NONE + } else super.getItemPosition(`object`) + } /* override fun getItemCount() = 4 override fun createFragment(position: Int) = when (position) { diff --git a/app/src/main/java/com/perol/asdpl/pixivez/fragments/UserIllustFragment.kt b/app/src/main/java/com/perol/asdpl/pixivez/fragments/UserIllustFragment.kt index 8a60a28..d255508 100644 --- a/app/src/main/java/com/perol/asdpl/pixivez/fragments/UserIllustFragment.kt +++ b/app/src/main/java/com/perol/asdpl/pixivez/fragments/UserIllustFragment.kt @@ -27,6 +27,7 @@ package com.perol.asdpl.pixivez.fragments import android.os.Bundle import android.view.LayoutInflater +import android.view.Menu import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment @@ -34,6 +35,7 @@ import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.StaggeredGridLayoutManager import com.perol.asdpl.pixivez.R +import com.perol.asdpl.pixivez.activity.UserMActivity import com.perol.asdpl.pixivez.adapters.RecommendAdapter import com.perol.asdpl.pixivez.objects.AdapterRefreshEvent import com.perol.asdpl.pixivez.objects.BaseFragment @@ -81,6 +83,7 @@ class UserIllustFragment : BaseFragment() { mrecyclerview.layoutManager = StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL) mrecyclerview.adapter = recommendAdapter + recommendAdapter.hideBookmarked = viewactivity.viewModel.hideBookmarked.value!! } // TODO: Rename and change types of parameters @@ -102,6 +105,7 @@ class UserIllustFragment : BaseFragment() { recommendAdapter.loadMoreComplete() } }) + viewactivity = activity as UserMActivity viewmodel.data.observe(this, Observer { if (it != null) { mrefreshlayout.isRefreshing = false @@ -123,7 +127,7 @@ class UserIllustFragment : BaseFragment() { } lateinit var viewmodel: UserMillustViewModel - + lateinit var viewactivity: UserMActivity lateinit var recommendAdapter: RecommendAdapter override fun onCreateView( diff --git a/app/src/main/java/com/perol/asdpl/pixivez/viewmodel/UserMViewModel.kt b/app/src/main/java/com/perol/asdpl/pixivez/viewmodel/UserMViewModel.kt index 7084fb1..9849d0b 100644 --- a/app/src/main/java/com/perol/asdpl/pixivez/viewmodel/UserMViewModel.kt +++ b/app/src/main/java/com/perol/asdpl/pixivez/viewmodel/UserMViewModel.kt @@ -40,6 +40,7 @@ class UserMViewModel : BaseViewModel() { var retrofitRespository = RetrofitRepository.getInstance() var userDetail = MutableLiveData() var isfollow = MutableLiveData() + var hideBookmarked = MutableLiveData(false) fun getData(userid: Long) { retrofitRespository.getUserDetail(userid).subscribe({ diff --git a/app/src/main/res/menu/menu_userx.xml b/app/src/main/res/menu/menu_userx.xml index 136c5fd..6e70557 100644 --- a/app/src/main/res/menu/menu_userx.xml +++ b/app/src/main/res/menu/menu_userx.xml @@ -7,9 +7,14 @@ + Start Date End Date Choice Date + Hide Bookmarked Pic Create a separate folder for each painter create separate folder refresh token diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index a31493c..1561d75 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -266,6 +266,7 @@ Start Date End Date Choice Date + 隐藏已收藏圖像 為每個繪師單獨建立資料夾 create separate folder 重新載入 token diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 846a96d..d3e6a78 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -279,9 +279,10 @@ 不限 悄悄收藏 公开收藏 - Start Date - End Date - Choice Date + 开始日期 + 结束日期 + 选择时间段 + 隐藏已收藏图片 在刚接触JAVA的时候边学官方文档边做,摸索着完成了这个客户端,因为个人能力的问题,出过不少丢人的BUG,优化问题,在完善这个应用的过程中,我获得了很多的开发经验与比较深刻的教训,也得到了很多人的帮助和支持 更换主题 保存路径 From 406e0ca96478260af58f64618b3533baf2d30ac2 Mon Sep 17 00:00:00 2001 From: ultranity Date: Sun, 26 Apr 2020 14:39:46 +0800 Subject: [PATCH 2/5] add feature: hide bookmarked pictures (in search page) --- .../pixivez/dialog/SearchSectionDialog.kt | 7 ++ .../asdpl/pixivez/fragments/IllustFragment.kt | 18 +++-- .../viewmodel/IllustfragmentViewModel.kt | 1 + .../main/res/layout/dialog_searchsection.xml | 79 +++++++++++++++---- 4 files changed, 81 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/com/perol/asdpl/pixivez/dialog/SearchSectionDialog.kt b/app/src/main/java/com/perol/asdpl/pixivez/dialog/SearchSectionDialog.kt index 52231b5..c01c5dc 100644 --- a/app/src/main/java/com/perol/asdpl/pixivez/dialog/SearchSectionDialog.kt +++ b/app/src/main/java/com/perol/asdpl/pixivez/dialog/SearchSectionDialog.kt @@ -108,6 +108,13 @@ class SearchSectionDialog : DialogFragment() { } isChecked = viewModel.endDate.value != null && viewModel.startDate.value != null + } + val toggleShow= view.findViewById(R.id.toggleShow).apply { + setOnCheckedChangeListener { buttonView, isChecked -> + viewModel.hideBookmarked.value = isChecked + } + isChecked = viewModel.hideBookmarked.value == true + } val button = view.findViewById