Skip to content

Commit 74f87f8

Browse files
authored
Merge pull request #62 from ultranity/master
Add feature: hide bookmarked pictures
2 parents 12b79a5 + dfa007f commit 74f87f8

15 files changed

Lines changed: 139 additions & 46 deletions

File tree

app/src/main/java/com/perol/asdpl/pixivez/activity/UserMActivity.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,11 @@ class UserMActivity : RinkActivity() {
237237
when (item.itemId) {
238238
android.R.id.home -> finishAfterTransition()
239239
R.id.action_share -> share()
240+
R.id.action_hideBookmarked -> {
241+
viewModel.hideBookmarked.value = !viewModel.hideBookmarked.value!!
242+
item.isChecked = !item.isChecked
243+
mviewpager.adapter?.notifyDataSetChanged()
244+
}
240245
R.id.action_download -> {
241246
// val intent =Intent(this,WorkActivity::class.java)
242247
// intent.putExtra("id",id)

app/src/main/java/com/perol/asdpl/pixivez/adapters/RecommendAdapter.kt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ class RecommendAdapter(
6262
layoutResId: Int,
6363
data: List<Illust>?,
6464
private val R18on: Boolean,
65-
var blockTags: List<String>
65+
var blockTags: List<String>,
66+
var hideBookmarked: Boolean = false
6667
) :
6768
BaseQuickAdapter<Illust, BaseViewHolder>(layoutResId, data?.toMutableList()), LoadMoreModule {
6869

@@ -131,7 +132,14 @@ class RecommendAdapter(
131132
break
132133
}
133134
}
134-
135+
if (hideBookmarked && item.is_bookmarked){
136+
helper.itemView.visibility = View.GONE
137+
helper.itemView.layoutParams.apply {
138+
height = 0
139+
width = 0
140+
}
141+
return
142+
}
135143
if (blockTags.isNotEmpty() && tags.isNotEmpty() && needBlock) {
136144
helper.itemView.visibility = View.GONE
137145
helper.itemView.layoutParams.apply {

app/src/main/java/com/perol/asdpl/pixivez/adapters/viewpager/UserMPagerAdapter.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,11 @@ class UserMPagerAdapter(
3939
var newInstance: Fragment
4040
) : FragmentStatePagerAdapter(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) {
4141

42-
42+
override fun getItemPosition(`object`: Any): Int {
43+
return if (`object`.javaClass.name == "com.perol.asdpl.pixivez.fragments.UserIllustFragment") {
44+
FragmentStatePagerAdapter.POSITION_NONE
45+
} else super.getItemPosition(`object`)
46+
}
4347
/* override fun getItemCount() = 4
4448
4549
override fun createFragment(position: Int) = when (position) {

app/src/main/java/com/perol/asdpl/pixivez/dialog/SearchSectionDialog.kt

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,7 @@ class SearchSectionDialog : DialogFragment() {
5050
val tms = Calendar.getInstance()
5151
val thisMonth01 = "${tms.get(Calendar.YEAR)}-${tms.get(Calendar.MONTH) + 1}-01"
5252
val halfYear01 = "${tms.get(Calendar.YEAR)}-${tms.get(Calendar.MONTH) + 1}-01"
53-
var sort = arrayOf("date_desc", "date_asc", "popular_desc")
54-
var search_target =
55-
arrayOf("partial_match_for_tags", "exact_match_for_tags", "title_and_caption")
53+
5654

5755
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
5856
val word = arguments?.getString("word", "")
@@ -64,8 +62,10 @@ class SearchSectionDialog : DialogFragment() {
6462
)
6563
val viewModel =
6664
ViewModelProviders.of(requireParentFragment()).get(IllustfragmentViewModel::class.java)
65+
var searchTargeti = viewModel.searchTarget.value
6766
val first = view.findViewById<TabLayout>(R.id.tablayout_search_target).apply {
6867
clearOnTabSelectedListeners()
68+
searchTargeti?.let { getTabAt(it)?.select() }
6969
addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
7070
override fun onTabReselected(tab: TabLayout.Tab?) {
7171

@@ -76,13 +76,15 @@ class SearchSectionDialog : DialogFragment() {
7676
}
7777

7878
override fun onTabSelected(tab: TabLayout.Tab) {
79-
viewModel.searchTarget.value = search_target[tab.position]
79+
searchTargeti = tab.position
8080
}
8181
})
8282
}
83+
var sorti = viewModel.sort.value
8384
val second = view.findViewById<TabLayout>(R.id.tablayout_sort)
8485
.apply {
8586
clearOnTabSelectedListeners()
87+
sorti?.let { getTabAt(it)?.select() }
8688
addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
8789
override fun onTabReselected(tab: TabLayout.Tab?) {
8890

@@ -93,7 +95,7 @@ class SearchSectionDialog : DialogFragment() {
9395
}
9496

9597
override fun onTabSelected(tab: TabLayout.Tab) {
96-
viewModel.sort.value = sort[tab.position]
98+
sorti = tab.position
9799
}
98100
})
99101
}
@@ -109,6 +111,13 @@ class SearchSectionDialog : DialogFragment() {
109111
isChecked = viewModel.endDate.value != null && viewModel.startDate.value != null
110112

111113
}
114+
var hideBookmarked = viewModel.hideBookmarked.value
115+
val toggleShow= view.findViewById<ToggleButton>(R.id.toggleShow).apply {
116+
isChecked = hideBookmarked == true
117+
setOnCheckedChangeListener { buttonView, isChecked ->
118+
hideBookmarked = isChecked
119+
}
120+
}
112121
val button = view.findViewById<Button>(R.id.pick_button).apply {
113122
var calendar = Calendar.getInstance()
114123
if (viewModel.endDate.value != null) {
@@ -173,6 +182,9 @@ class SearchSectionDialog : DialogFragment() {
173182

174183
}
175184
builder.setPositiveButton(android.R.string.ok) { p0, p1 ->
185+
viewModel.hideBookmarked.value = hideBookmarked
186+
viewModel.sort.value = sorti
187+
viewModel.searchTarget.value = searchTargeti
176188
if (word != null)
177189
viewModel.firstSetData(word)
178190
}

app/src/main/java/com/perol/asdpl/pixivez/fragments/IllustFragment.kt

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -92,13 +92,13 @@ class IllustFragment : BaseFragment(), AdapterView.OnItemSelectedListener {
9292
Toasty.error(PxEZApp.instance, "not premium!").show()
9393
viewModel.setPreview(param1!!, sort[position], null, null)
9494
} else {
95-
viewModel.sort.value = sort[position]
95+
viewModel.sort.value = position
9696
viewModel.firstSetData(param1!!)
9797
}
9898

9999
}
100100
} else {
101-
viewModel.sort.value = sort[position]
101+
viewModel.sort.value = position
102102
viewModel.firstSetData(param1!!)
103103
}
104104
}
@@ -207,14 +207,14 @@ class IllustFragment : BaseFragment(), AdapterView.OnItemSelectedListener {
207207
}*/
208208
requireActivity().findViewById<TabLayout>(R.id.tablayout_searchresult)?.getTabAt(0)
209209
?.view?.setOnClickListener {
210-
if ((System.currentTimeMillis() - exitTime) > 3000) {
210+
if ((System.currentTimeMillis() - exitTime) > 3000) {
211211

212-
exitTime = System.currentTimeMillis()
213-
} else {
214-
recyclerview_illust.smoothScrollToPosition(0)
215-
}
212+
exitTime = System.currentTimeMillis()
213+
} else {
214+
recyclerview_illust.smoothScrollToPosition(0)
215+
}
216216

217-
}
217+
}
218218
}
219219

220220
private val starnum = intArrayOf(50000, 30000, 20000, 10000, 5000, 1000, 500, 250, 100, 0)
@@ -275,7 +275,11 @@ class IllustFragment : BaseFragment(), AdapterView.OnItemSelectedListener {
275275
viewModel.isRefresh.observe(this, Observer {
276276
swiperefresh.isRefreshing = it
277277
})
278-
278+
viewModel.hideBookmarked.observe(this, Observer {
279+
if (it != null) {
280+
searchIllustAdapter.hideBookmarked = it
281+
}
282+
})
279283
}
280284

281285
private fun addIllust(it: java.util.ArrayList<Illust>) {

app/src/main/java/com/perol/asdpl/pixivez/fragments/UserIllustFragment.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,15 @@ package com.perol.asdpl.pixivez.fragments
2727

2828
import android.os.Bundle
2929
import android.view.LayoutInflater
30+
import android.view.Menu
3031
import android.view.View
3132
import android.view.ViewGroup
3233
import androidx.fragment.app.Fragment
3334
import androidx.lifecycle.Observer
3435
import androidx.lifecycle.ViewModelProvider
3536
import androidx.recyclerview.widget.StaggeredGridLayoutManager
3637
import com.perol.asdpl.pixivez.R
38+
import com.perol.asdpl.pixivez.activity.UserMActivity
3739
import com.perol.asdpl.pixivez.adapters.RecommendAdapter
3840
import com.perol.asdpl.pixivez.objects.AdapterRefreshEvent
3941
import com.perol.asdpl.pixivez.objects.BaseFragment
@@ -81,6 +83,7 @@ class UserIllustFragment : BaseFragment() {
8183
mrecyclerview.layoutManager =
8284
StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)
8385
mrecyclerview.adapter = recommendAdapter
86+
recommendAdapter.hideBookmarked = viewactivity.viewModel.hideBookmarked.value!!
8487
}
8588

8689
// TODO: Rename and change types of parameters
@@ -102,6 +105,7 @@ class UserIllustFragment : BaseFragment() {
102105
recommendAdapter.loadMoreComplete()
103106
}
104107
})
108+
viewactivity = activity as UserMActivity
105109
viewmodel.data.observe(this, Observer {
106110
if (it != null) {
107111
mrefreshlayout.isRefreshing = false
@@ -123,7 +127,7 @@ class UserIllustFragment : BaseFragment() {
123127
}
124128

125129
lateinit var viewmodel: UserMillustViewModel
126-
130+
lateinit var viewactivity: UserMActivity
127131

128132
lateinit var recommendAdapter: RecommendAdapter
129133
override fun onCreateView(

app/src/main/java/com/perol/asdpl/pixivez/services/PxEZApp.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ class PxEZApp : Application() {
7878
) { _, _ ->
7979

8080
}
81+
sourceFile.delete()
8182
Toasty.success(this, "${title}${getString(R.string.savesuccess)}", Toast.LENGTH_SHORT)
8283
.show()
8384
}

app/src/main/java/com/perol/asdpl/pixivez/services/Works.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,10 @@ object Works {
117117
val targetFile = File(path, filename)
118118
try {
119119
file.copyTo(targetFile, overwrite = true)
120+
file.delete()
120121
Toasty.success(
121122
PxEZApp.instance,
122-
PxEZApp.instance.resources.getString(R.string.savesuccess),
123+
PxEZApp.instance.resources.getString(R.string.savesuccess)+"!",
123124
Toast.LENGTH_SHORT
124125
).show()
125126
MediaScannerConnection.scanFile(
@@ -134,7 +135,6 @@ object Works {
134135
} catch (e: Exception) {
135136

136137
}
137-
138138
}
139139

140140
fun imageDownloadAll(illust: Illust) {

app/src/main/java/com/perol/asdpl/pixivez/viewmodel/IllustfragmentViewModel.kt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ fun Calendar?.generateDateString(): String? {
3939

4040
class IllustfragmentViewModel : BaseViewModel() {
4141
var sortT = arrayOf("date_desc", "date_asc", "popular_desc")
42-
var search_targetT =
42+
var searchTargetT =
4343
arrayOf("partial_match_for_tags", "exact_match_for_tags", "title_and_caption")
4444

4545
var illusts = MutableLiveData<ArrayList<Illust>>()
@@ -48,8 +48,9 @@ class IllustfragmentViewModel : BaseViewModel() {
4848
var nexturl = MutableLiveData<String>()
4949
var bookmarkid = MutableLiveData<Long>()
5050
var isRefresh = MutableLiveData<Boolean>(false)
51-
val sort = MutableLiveData<String>(sortT[0])
52-
val searchTarget = MutableLiveData<String>(search_targetT[0])
51+
var hideBookmarked = MutableLiveData<Boolean>(false)
52+
val sort = MutableLiveData<Int>(0)
53+
val searchTarget = MutableLiveData<Int>(0)
5354
val startDate = MutableLiveData<Calendar>()
5455
val endDate = MutableLiveData<Calendar>()
5556
fun setPreview(word: String, sort: String, search_target: String?, duration: String?) {
@@ -74,8 +75,8 @@ class IllustfragmentViewModel : BaseViewModel() {
7475

7576
retrofitRespository.getSearchIllust(
7677
word,
77-
sort.value!!,
78-
searchTarget.value!!,
78+
sortT[sort.value!!],
79+
searchTargetT[searchTarget.value!!],
7980
startDate.value.generateDateString(),
8081
endDate.value.generateDateString(),
8182
null

app/src/main/java/com/perol/asdpl/pixivez/viewmodel/UserMViewModel.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ class UserMViewModel : BaseViewModel() {
4040
var retrofitRespository = RetrofitRepository.getInstance()
4141
var userDetail = MutableLiveData<UserDetailResponse>()
4242
var isfollow = MutableLiveData<Boolean>()
43+
var hideBookmarked = MutableLiveData<Boolean>(false)
4344

4445
fun getData(userid: Long) {
4546
retrofitRespository.getUserDetail(userid).subscribe({

0 commit comments

Comments
 (0)