|
|
@ -1,8 +1,10 @@ |
|
|
|
package io.legado.app.ui.book.source.manage |
|
|
|
package io.legado.app.ui.book.source.manage |
|
|
|
|
|
|
|
|
|
|
|
import android.content.Context |
|
|
|
import android.content.Context |
|
|
|
|
|
|
|
import android.os.Bundle |
|
|
|
import android.view.Menu |
|
|
|
import android.view.Menu |
|
|
|
import android.widget.PopupMenu |
|
|
|
import android.widget.PopupMenu |
|
|
|
|
|
|
|
import androidx.core.os.bundleOf |
|
|
|
import io.legado.app.R |
|
|
|
import io.legado.app.R |
|
|
|
import io.legado.app.base.adapter.ItemViewHolder |
|
|
|
import io.legado.app.base.adapter.ItemViewHolder |
|
|
|
import io.legado.app.base.adapter.SimpleRecyclerAdapter |
|
|
|
import io.legado.app.base.adapter.SimpleRecyclerAdapter |
|
|
@ -22,7 +24,7 @@ class BookSourceAdapter(context: Context, val callBack: CallBack) : |
|
|
|
getItems().forEach { |
|
|
|
getItems().forEach { |
|
|
|
selected.add(it) |
|
|
|
selected.add(it) |
|
|
|
} |
|
|
|
} |
|
|
|
notifyItemRangeChanged(0, itemCount, 1) |
|
|
|
notifyItemRangeChanged(0, itemCount, bundleOf(Pair("selected", null))) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
fun revertSelection() { |
|
|
|
fun revertSelection() { |
|
|
@ -33,7 +35,7 @@ class BookSourceAdapter(context: Context, val callBack: CallBack) : |
|
|
|
selected.add(it) |
|
|
|
selected.add(it) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
notifyItemRangeChanged(0, itemCount, 1) |
|
|
|
notifyItemRangeChanged(0, itemCount, bundleOf(Pair("selected", null))) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
fun getSelection(): LinkedHashSet<BookSource> { |
|
|
|
fun getSelection(): LinkedHashSet<BookSource> { |
|
|
@ -68,7 +70,8 @@ class BookSourceAdapter(context: Context, val callBack: CallBack) : |
|
|
|
|
|
|
|
|
|
|
|
override fun convert(holder: ItemViewHolder, item: BookSource, payloads: MutableList<Any>) { |
|
|
|
override fun convert(holder: ItemViewHolder, item: BookSource, payloads: MutableList<Any>) { |
|
|
|
with(holder.itemView) { |
|
|
|
with(holder.itemView) { |
|
|
|
if (payloads.isEmpty()) { |
|
|
|
val payload = payloads.getOrNull(0) as? Bundle |
|
|
|
|
|
|
|
if (payload == null) { |
|
|
|
this.setBackgroundColor(context.backgroundColor) |
|
|
|
this.setBackgroundColor(context.backgroundColor) |
|
|
|
if (item.bookSourceGroup.isNullOrEmpty()) { |
|
|
|
if (item.bookSourceGroup.isNullOrEmpty()) { |
|
|
|
cb_book_source.text = item.bookSourceName |
|
|
|
cb_book_source.text = item.bookSourceName |
|
|
@ -104,8 +107,17 @@ class BookSourceAdapter(context: Context, val callBack: CallBack) : |
|
|
|
popupMenu.show() |
|
|
|
popupMenu.show() |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
when (payloads[0]) { |
|
|
|
payload.keySet().map { |
|
|
|
1 -> cb_book_source.isChecked = selected.contains(item) |
|
|
|
when (it) { |
|
|
|
|
|
|
|
"select" -> cb_book_source.isChecked = selected.contains(item) |
|
|
|
|
|
|
|
"name", "group" -> if (item.bookSourceGroup.isNullOrEmpty()) { |
|
|
|
|
|
|
|
cb_book_source.text = item.bookSourceName |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
cb_book_source.text = |
|
|
|
|
|
|
|
String.format("%s (%s)", item.bookSourceName, item.bookSourceGroup) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
"enabled" -> swt_enabled.isChecked = payload.getBoolean(it) |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|