Convert EasyRecyclerView to kotlin

This commit is contained in:
FooIbar authored and tarsin committed 2023-06-22 10:01:41 +08:00
1 parent 470a2baa6a
commit 9be7705050
4 files changed
+361 -430

No files matched your search

@@ -449,8 +449,7 @@ object EhEngine {
if (filter) list.removeAll { EhFilter.filterUploader(it) || EhFilter.filterTag(it) || EhFilter.filterTagNamespace(it) } if (filter) list.removeAll { EhFilter.filterUploader(it) || EhFilter.filterTag(it) || EhFilter.filterTagNamespace(it) }
} }
suspend fun addFavoritesRange(gidArray: LongArray, tokenArray: Array<String?>, dstCat: Int) { suspend fun addFavoritesRange(gidTokenArray: Array<Pair<Long, String>>, dstCat: Int) {
require(gidArray.size == tokenArray.size) gidTokenArray.forEach { (gid, token) -> addFavorites(gid, token, dstCat, null) }
gidArray.forEachIndexed { index, gid -> addFavorites(gid, tokenArray[index], dstCat, null) }
} }
} }
File diff suppressed because it is too large. Load diff
@@ -439,16 +439,12 @@ class DownloadsScene :
NewLabelDialogHelper(builder, dialog) NewLabelDialogHelper(builder, dialog)
return@setOnMenuItemClickListener true return@setOnMenuItemClickListener true
} else if (id == R.id.action_default_download_label) { } else if (id == R.id.action_default_download_label) {
val list = DownloadManager.labelList val list = DownloadManager.labelList.mapNotNull { it.label }.toTypedArray()
val items = arrayOfNulls<String>(list.size + 2) val items = arrayOf(
items[0] = getString(R.string.let_me_select) getString(R.string.let_me_select),
items[1] = getString(R.string.default_download_label_name) getString(R.string.default_download_label_name),
var i = 0 *list
val n = list.size )
while (i < n) {
items[i + 2] = list[i].label
i++
}
BaseDialogBuilder(requireContext()) BaseDialogBuilder(requireContext())
.setTitle(R.string.default_download_label) .setTitle(R.string.default_download_label)
.setItems(items) { _: DialogInterface?, which: Int -> .setItems(items) { _: DialogInterface?, which: Int ->
@@ -539,7 +535,7 @@ class DownloadsScene :
if (collectDownloadInfo) { if (collectDownloadInfo) {
downloadInfoList = LinkedList() downloadInfoList = LinkedList()
} }
val stateArray = binding.recyclerView.checkedItemPositions val stateArray = binding.recyclerView.checkedItemPositions!!
for (i in 0 until stateArray.size()) { for (i in 0 until stateArray.size()) {
if (stateArray.valueAt(i)) { if (stateArray.valueAt(i)) {
val info = list[stateArray.keyAt(i)] val info = list[stateArray.keyAt(i)]
@@ -485,17 +485,14 @@ class FavoritesScene :
return return
} }
mModifyGiList.clear() mModifyGiList.clear()
val stateArray = binding.contentLayout.recyclerView.checkedItemPositions val stateArray = binding.contentLayout.recyclerView.checkedItemPositions!!
var i = 0 for (i in 0 until stateArray.size()) {
val n = stateArray.size()
while (i < n) {
if (stateArray.valueAt(i)) { if (stateArray.valueAt(i)) {
val gi = mHelper.getDataAtEx(stateArray.keyAt(i)) val gi = mHelper.getDataAtEx(stateArray.keyAt(i))
if (gi != null) { if (gi != null) {
mModifyGiList.add(gi) mModifyGiList.add(gi)
} }
} }
i++
} }
when (position) { when (position) {
3 -> // Check all 3 -> // Check all
@@ -696,13 +693,7 @@ class FavoritesScene :
} }
binding.contentLayout.recyclerView.outOfCustomChoiceMode() binding.contentLayout.recyclerView.outOfCustomChoiceMode()
if (mUrlBuilder!!.favCat == FavListUrlBuilder.FAV_CAT_LOCAL) { // Delete local fav if (mUrlBuilder!!.favCat == FavListUrlBuilder.FAV_CAT_LOCAL) { // Delete local fav
val gidArray = LongArray(mModifyGiList.size) val gidArray = mModifyGiList.map { it.gid }.toLongArray()
var i = 0
val n = mModifyGiList.size
while (i < n) {
gidArray[i] = mModifyGiList[i].gid
i++
}
EhDB.removeLocalFavorites(gidArray) EhDB.removeLocalFavorites(gidArray)
mModifyGiList.clear() mModifyGiList.clear()
mHelper.refresh() mHelper.refresh()
@@ -737,13 +728,7 @@ class FavoritesScene :
} }
binding.contentLayout.recyclerView.outOfCustomChoiceMode() binding.contentLayout.recyclerView.outOfCustomChoiceMode()
if (srcCat == FavListUrlBuilder.FAV_CAT_LOCAL) { // Move from local to cloud if (srcCat == FavListUrlBuilder.FAV_CAT_LOCAL) { // Move from local to cloud
val gidArray = LongArray(mModifyGiList.size) val gidArray = mModifyGiList.map { it.gid }.toLongArray()
var i = 0
val n = mModifyGiList.size
while (i < n) {
gidArray[i] = mModifyGiList[i].gid
i++
}
EhDB.removeLocalFavorites(gidArray) EhDB.removeLocalFavorites(gidArray)
mEnableModify = true mEnableModify = true
mModifyFavCat = dstCat mModifyFavCat = dstCat
@@ -811,22 +796,13 @@ class FavoritesScene :
if (mEnableModify) { if (mEnableModify) {
mEnableModify = false mEnableModify = false
val local = mUrlBuilder!!.favCat == FavListUrlBuilder.FAV_CAT_LOCAL val local = mUrlBuilder!!.favCat == FavListUrlBuilder.FAV_CAT_LOCAL
val gidArray = LongArray(mModifyGiList.size)
if (mModifyAdd) { if (mModifyAdd) {
val tokenArray = arrayOfNulls<String>(mModifyGiList.size) val gidTokenArray = mModifyGiList.map { Pair(it.gid, it.token!!) }.toTypedArray()
var i = 0
val n = mModifyGiList.size
while (i < n) {
val gi = mModifyGiList[i]
gidArray[i] = gi.gid
tokenArray[i] = gi.token
i++
}
val modifyGiListBackup: List<GalleryInfo> = ArrayList(mModifyGiList) val modifyGiListBackup: List<GalleryInfo> = ArrayList(mModifyGiList)
mModifyGiList.clear() mModifyGiList.clear()
lifecycleScope.launchIO { lifecycleScope.launchIO {
runSuspendCatching { runSuspendCatching {
EhEngine.addFavoritesRange(gidArray, tokenArray, mModifyFavCat) EhEngine.addFavoritesRange(gidTokenArray, mModifyFavCat)
}.onSuccess { }.onSuccess {
withUIContext { withUIContext {
onGetFavoritesLocal(mUrlBuilder?.keyword, taskId) onGetFavoritesLocal(mUrlBuilder?.keyword, taskId)
@@ -841,12 +817,7 @@ class FavoritesScene :
} }
} }
} else { } else {
var i = 0 val gidArray = mModifyGiList.map { it.gid }.toLongArray()
val n = mModifyGiList.size
while (i < n) {
gidArray[i] = mModifyGiList[i].gid
i++
}
mModifyGiList.clear() mModifyGiList.clear()
val url: String = if (local) { val url: String = if (local) {
// Local fav is shown now, but operation need be done for cloud fav // Local fav is shown now, but operation need be done for cloud fav