fixed #956
This commit is contained in:
parent
fee338157e
commit
8db45fef5d
|
@ -369,10 +369,6 @@ abstract class ParcelableStatusesAdapter(
|
|||
gapLoadingIds.remove(id)
|
||||
}
|
||||
|
||||
fun isStatus(position: Int, raw: Boolean = false): Boolean {
|
||||
return position < getStatusCount(raw)
|
||||
}
|
||||
|
||||
override fun getItemCount(): Int {
|
||||
return itemCounts.itemCount
|
||||
}
|
||||
|
@ -386,6 +382,18 @@ abstract class ParcelableStatusesAdapter(
|
|||
return null
|
||||
}
|
||||
|
||||
fun isStatus(position: Int, raw: Boolean = false): Boolean {
|
||||
return position < getStatusCount(raw)
|
||||
}
|
||||
|
||||
fun getRowId(adapterPosition: Int, raw: Boolean = false): Long {
|
||||
return getFieldValue(adapterPosition, readInfoValueAction = {
|
||||
it._id
|
||||
}, readStatusValueAction = { status ->
|
||||
status.hashCode().toLong()
|
||||
}, defValue = -1L, raw = raw)
|
||||
}
|
||||
|
||||
fun findPositionByPositionKey(positionKey: Long, raw: Boolean = false): Int {
|
||||
// Assume statuses are descend sorted by id, so break at first status with id
|
||||
// lesser equals than read position
|
||||
|
|
|
@ -426,7 +426,7 @@ abstract class AbsStatusesFragment : AbsContentListRecyclerViewFragment<Parcelab
|
|||
}
|
||||
|
||||
override fun onStatusClick(holder: IStatusViewHolder, position: Int) {
|
||||
val status = adapter.getStatus(position)
|
||||
val status = getFullStatus(position) ?: return
|
||||
IntentUtils.openStatus(activity, status, null)
|
||||
}
|
||||
|
||||
|
@ -502,6 +502,10 @@ abstract class AbsStatusesFragment : AbsContentListRecyclerViewFragment<Parcelab
|
|||
}
|
||||
}
|
||||
|
||||
protected open fun getFullStatus(position: Int): ParcelableStatus? {
|
||||
return adapter.getStatus(position)
|
||||
}
|
||||
|
||||
protected abstract fun hasMoreData(loader: Loader<List<ParcelableStatus>?>,
|
||||
data: List<ParcelableStatus>?): Boolean
|
||||
|
||||
|
|
|
@ -40,6 +40,7 @@ import org.mariotaku.twidere.adapter.iface.ILoadMoreSupportAdapter
|
|||
import org.mariotaku.twidere.adapter.iface.ILoadMoreSupportAdapter.IndicatorPosition
|
||||
import org.mariotaku.twidere.annotation.FilterScope
|
||||
import org.mariotaku.twidere.constant.IntentConstants.EXTRA_FROM_USER
|
||||
import org.mariotaku.twidere.extension.queryOne
|
||||
import org.mariotaku.twidere.loader.ExtendedObjectCursorLoader
|
||||
import org.mariotaku.twidere.model.ParameterizedExpression
|
||||
import org.mariotaku.twidere.model.ParcelableStatus
|
||||
|
@ -208,6 +209,13 @@ abstract class CursorStatusesFragment : AbsStatusesFragment() {
|
|||
}
|
||||
}
|
||||
|
||||
override fun getFullStatus(position: Int): ParcelableStatus? {
|
||||
val _id = adapter.getRowId(position)
|
||||
val where = Expression.equals(Statuses._ID, _id).sql
|
||||
return context.contentResolver.queryOne(contentUri, Statuses.COLUMNS, where, null, null,
|
||||
ParcelableStatus::class.java)
|
||||
}
|
||||
|
||||
protected fun getFiltersWhere(table: String): Expression? {
|
||||
if (!isFilterEnabled) return null
|
||||
return DataStoreUtils.buildStatusFilterWhereClause(preferences, table, null, filterScopes)
|
||||
|
|
Loading…
Reference in New Issue