From c5473384d40c72f890df5130afb61dfe534d57ec Mon Sep 17 00:00:00 2001 From: tateisu Date: Mon, 12 Aug 2019 20:48:37 +0900 Subject: [PATCH] =?UTF-8?q?=E6=A4=9C=E7=B4=A2=E3=82=AB=E3=83=A9=E3=83=A0?= =?UTF-8?q?=E3=81=AE=E6=9B=B4=E6=96=B0=E6=99=82=E3=81=AB=E3=82=BF=E3=82=A4?= =?UTF-8?q?=E3=83=A0=E3=83=A9=E3=82=A4=E3=83=B3=E9=A0=85=E7=9B=AE=E3=81=AE?= =?UTF-8?q?=E9=87=8D=E8=A4=87=E6=8E=92=E9=99=A4=E3=82=92=E8=A1=8C=E3=82=8F?= =?UTF-8?q?=E3=81=AA=E3=81=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jp/juggler/subwaytooter/ColumnTask_Gap.kt | 61 ++++++++++--------- 1 file changed, 32 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/jp/juggler/subwaytooter/ColumnTask_Gap.kt b/app/src/main/java/jp/juggler/subwaytooter/ColumnTask_Gap.kt index 136c76f7..af5b8de9 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/ColumnTask_Gap.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/ColumnTask_Gap.kt @@ -23,19 +23,20 @@ class ColumnTask_Gap( private var max_id : EntityId? = (gap as? TootGap)?.max_id private var since_id : EntityId? = (gap as? TootGap)?.since_id - private val countTag: Int - private val countAccount: Int - private val countStatus: Int - init{ - var countTag =0 - var countAccount =0 + private val countTag : Int + private val countAccount : Int + private val countStatus : Int + + init { + var countTag = 0 + var countAccount = 0 var countStatus = 0 - if( gap is TootSearchGap){ + if(gap is TootSearchGap) { columnArg.list_data.forEach { - when(it){ - is TootTag -> ++countTag - is TootAccountRef -> ++countAccount - is TootStatus -> ++countStatus + when(it) { + is TootTag -> ++ countTag + is TootAccountRef -> ++ countAccount + is TootStatus -> ++ countStatus } } } @@ -106,9 +107,16 @@ class ColumnTask_Gap( return } - val list_new = column.duplicate_map.filterDuplicate(list_tmp) + val list_new = when(column.column_type){ + + // 検索カラムはIDによる重複排除が不可能 + Column.TYPE_SEARCH -> list_tmp + + // 他のカラムは重複排除してから追加 + else -> column.duplicate_map.filterDuplicate(list_tmp) + } + // 0個でもギャップを消すために以下の処理を続ける - val changeList = ArrayList() column.replaceConversationSummary(changeList, list_new, column.list_data) @@ -789,29 +797,24 @@ class ColumnTask_Gap( return result } - fun getSearchGap(client:TootApiClient):TootApiResult? { - if( gap !is TootSearchGap ) return null + fun getSearchGap(client : TootApiClient) : TootApiResult? { + if(gap !is TootSearchGap) return null + + + val (type, offset) = when(gap.type) { + TootSearchGap.SearchType.Hashtag -> Pair("hashtags", countTag) + TootSearchGap.SearchType.Account -> Pair("accounts", countAccount) + TootSearchGap.SearchType.Status -> Pair("statuses", countStatus) + } // https://mastodon2.juggler.jp/api/v2/search?q=gargron&type=accounts&offset=5 - - val typeKey = when( gap.type ) { - TootSearchGap.SearchType.Hashtag -> "hashtags" - TootSearchGap.SearchType.Account -> "accounts" - TootSearchGap.SearchType.Status -> "statuses" - } - val offset = when( gap.type ) { - TootSearchGap.SearchType.Hashtag -> countTag - TootSearchGap.SearchType.Account -> countAccount - TootSearchGap.SearchType.Status -> countStatus - } - var path = String.format( Locale.JAPAN, Column.PATH_SEARCH_V2, column.search_query.encodePercent() - ) + ) + "&type=$type&offset=$offset" + if(column.search_resolve) path += "&resolve=1" - path += "&type=$typeKey&offset=$offset" val result = client.request(path) val jsonObject = result?.jsonObject