Get updated positions in click listeners

Resolve #655
This commit is contained in:
FooIbar authored and tarsin committed 2023-01-12 07:22:32 +08:00
1 parent 8c821ecad3
commit 71f91cd79e
2 files changed
+51 -43

No files matched your search

@@ -785,7 +785,35 @@ class DownloadsScene : BaseToolbarScene(), DownloadInfoListener, OnClickFabListe
private inner class DownloadLabelAdapter(private val mInflater: LayoutInflater) :
RecyclerView.Adapter<DownloadLabelHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): DownloadLabelHolder {
return DownloadLabelHolder(mInflater.inflate(R.layout.item_drawer_list, parent, false))
val holder = DownloadLabelHolder(mInflater.inflate(R.layout.item_drawer_list, parent, false))
holder.itemView.setOnClickListener {
val position = holder.bindingAdapterPosition
val label1: String? = if (position == 0) {
null
} else {
mLabels[position]
}
if (!ObjectUtils.equal(label1, mLabel)) {
mLabel = label1
updateForLabel()
updateView()
closeDrawer(GravityCompat.END)
}
}
holder.edit.setOnClickListener {
val context = context
val label = mLabels[holder.bindingAdapterPosition]
if (context != null) {
val builder = EditTextDialogBuilder(
context, label, getString(R.string.download_labels)
)
builder.setTitle(R.string.rename_label_title)
builder.setPositiveButton(android.R.string.ok, null)
val dialog = builder.show()
RenameLabelDialogHelper(builder, dialog, label)
}
}
return holder
}
@SuppressLint("SetTextI18n")
@@ -810,32 +838,8 @@ class DownloadsScene : BaseToolbarScene(), DownloadInfoListener, OnClickFabListe
} else {
holder.label.text = label
}
holder.itemView.setOnClickListener {
val label1: String? = if (position == 0) {
null
} else {
mLabels[position]
}
if (!ObjectUtils.equal(label1, mLabel)) {
mLabel = label1
updateForLabel()
updateView()
closeDrawer(GravityCompat.END)
}
}
if (position > 0) {
holder.edit.visibility = View.VISIBLE
holder.edit.setOnClickListener {
if (context != null) {
val builder = EditTextDialogBuilder(
context, label, getString(R.string.download_labels)
)
builder.setTitle(R.string.rename_label_title)
builder.setPositiveButton(android.R.string.ok, null)
val dialog = builder.show()
RenameLabelDialogHelper(builder, dialog, label)
}
}
holder.option.visibility = View.VISIBLE
} else {
holder.edit.visibility = View.GONE
@@ -1005,6 +1009,8 @@ class DownloadsScene : BaseToolbarScene(), DownloadInfoListener, OnClickFabListe
lp.width = mListThumbWidth
lp.height = mListThumbHeight
holder.thumb.layoutParams = lp
holder.itemView.setOnClickListener { onItemClick(holder.bindingAdapterPosition) }
holder.itemView.setOnLongClickListener { onItemLongClick(holder.bindingAdapterPosition) }
return holder
}
@@ -1032,8 +1038,6 @@ class DownloadsScene : BaseToolbarScene(), DownloadInfoListener, OnClickFabListe
holder.thumb,
TransitionNameFactory.getThumbTransitionName(info.gid)
)
holder.itemView.setOnClickListener { onItemClick(position) }
holder.itemView.setOnLongClickListener { onItemLongClick(position) }
}
override fun getItemCount(): Int {
@@ -1146,17 +1146,13 @@ class GalleryListScene : SearchBarScene(), OnDragHandlerListener, SearchLayout.H
private inner class QsDrawerAdapter(private val mInflater: LayoutInflater) :
RecyclerView.Adapter<QsDrawerHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): QsDrawerHolder {
return QsDrawerHolder(mInflater.inflate(R.layout.item_drawer_list, parent, false))
}
override fun onBindViewHolder(holder: QsDrawerHolder, position: Int) {
val holder = QsDrawerHolder(mInflater.inflate(R.layout.item_drawer_list, parent, false))
if (!mIsTopList) {
holder.key.text = mQuickSearchList[position].name
holder.itemView.setOnClickListener {
if (null == mHelper) {
return@setOnClickListener
}
val q = mQuickSearchList[position]
val q = mQuickSearchList[holder.bindingAdapterPosition]
mUrlBuilder.set(q)
onUpdateUrlBuilder()
val i = q.name!!.lastIndexOf("@")
@@ -1166,6 +1162,24 @@ class GalleryListScene : SearchBarScene(), OnDragHandlerListener, SearchLayout.H
}
} else {
val keywords = intArrayOf(11, 12, 13, 15)
holder.itemView.setOnClickListener {
if (null == mHelper) {
return@setOnClickListener
}
mUrlBuilder.keyword = keywords[holder.bindingAdapterPosition].toString()
onUpdateUrlBuilder()
mHelper!!.refresh()
setState(STATE_NORMAL)
closeDrawer(GravityCompat.END)
}
}
return holder
}
override fun onBindViewHolder(holder: QsDrawerHolder, position: Int) {
if (!mIsTopList) {
holder.key.text = mQuickSearchList[position].name
} else {
val toplists = intArrayOf(
R.string.toplist_alltime,
R.string.toplist_pastyear,
@@ -1174,16 +1188,6 @@ class GalleryListScene : SearchBarScene(), OnDragHandlerListener, SearchLayout.H
)
holder.key.text = getString(toplists[position])
holder.option.visibility = View.GONE
holder.itemView.setOnClickListener {
if (null == mHelper) {
return@setOnClickListener
}
mUrlBuilder.keyword = keywords[position].toString()
onUpdateUrlBuilder()
mHelper!!.refresh()
setState(STATE_NORMAL)
closeDrawer(GravityCompat.END)
}
}
}