fixed load indicator

This commit is contained in:
Mariotaku Lee 2016-07-03 14:42:28 +08:00
parent ba5da8080e
commit c1326955a7
14 changed files with 53 additions and 44 deletions

View File

@ -268,7 +268,7 @@ abstract class AbsActivitiesFragment protected constructor() : AbsContentListRec
}
}
setRefreshEnabled(true)
refreshEnabled = true
if (loader !is IExtendedLoader || loader.isFromUser) {
adapter.loadMoreSupportedPosition = if (hasMoreData(data)) ILoadMoreSupportAdapter.END else ILoadMoreSupportAdapter.NONE
var pos = -1

View File

@ -129,20 +129,26 @@ abstract class AbsContentRecyclerViewFragment<A : LoadMoreSupportAdapter<Recycle
}
override var refreshing: Boolean
get () = false
set(refreshing) {
get () = swipeLayout.isRefreshing
set(value) {
val currentRefreshing = swipeLayout.isRefreshing
if (!currentRefreshing) {
updateRefreshProgressOffset()
}
if (refreshing == currentRefreshing) return
val layoutRefreshing = refreshing && adapter?.loadMoreIndicatorPosition != ILoadMoreSupportAdapter.NONE
if (value == currentRefreshing) return
val layoutRefreshing = value && adapter?.loadMoreIndicatorPosition != ILoadMoreSupportAdapter.NONE
swipeLayout.isRefreshing = layoutRefreshing
}
var refreshEnabled: Boolean
get() = swipeLayout.isEnabled
set(value) {
swipeLayout.isEnabled = value
}
override fun onLoadMoreContents(@IndicatorPosition position: Long) {
setLoadMoreIndicatorPosition(position)
setRefreshEnabled(position == ILoadMoreSupportAdapter.NONE)
refreshEnabled = position == ILoadMoreSupportAdapter.NONE
}
override fun onAttach(context: Context?) {
@ -243,10 +249,6 @@ abstract class AbsContentRecyclerViewFragment<A : LoadMoreSupportAdapter<Recycle
adapter?.loadMoreIndicatorPosition = position
}
fun setRefreshEnabled(enabled: Boolean) {
swipeLayout.isEnabled = enabled
}
override fun triggerRefresh(): Boolean {
return false
}

View File

@ -252,7 +252,7 @@ abstract class AbsStatusesFragment protected constructor() : AbsContentListRecyc
lastReadPositionKey = lastPositionKey
}
}
setRefreshEnabled(true)
refreshEnabled = true
if (loader !is IExtendedLoader || loader.isFromUser) {
if (hasMoreData(data)) {
adapter.loadMoreSupportedPosition = ILoadMoreSupportAdapter.END

View File

@ -306,7 +306,7 @@ abstract class CursorActivitiesFragment : AbsActivitiesFragment() {
refreshing = event.running
if (!event.running) {
setLoadMoreIndicatorPosition(ILoadMoreSupportAdapter.NONE)
setRefreshEnabled(true)
refreshEnabled = true
onLoadingFinished()
}
}

View File

@ -26,6 +26,7 @@ import android.os.Bundle
import android.os.Handler
import android.support.v4.content.Loader
import com.squareup.otto.Subscribe
import kotlinx.android.synthetic.main.fragment_content_recyclerview.*
import org.mariotaku.sqliteqb.library.ArgsArray
import org.mariotaku.sqliteqb.library.Columns.Column
import org.mariotaku.sqliteqb.library.Expression
@ -58,6 +59,11 @@ abstract class CursorStatusesFragment : AbsStatusesFragment() {
abstract val isFilterEnabled: Boolean
abstract val notificationType: Int
abstract val contentUri: Uri
override var refreshing: Boolean
get() = swipeLayout.isRefreshing
set(value) {
super.refreshing = value
}
override fun onStatusesLoaded(loader: Loader<List<ParcelableStatus>?>, data: List<ParcelableStatus>?) {
showContentOrError()
@ -121,7 +127,7 @@ abstract class CursorStatusesFragment : AbsStatusesFragment() {
refreshing = event.running
if (!event.running) {
setLoadMoreIndicatorPosition(ILoadMoreSupportAdapter.NONE)
setRefreshEnabled(true)
refreshEnabled = true
showContentOrError()
}
}

View File

@ -96,11 +96,6 @@ class DirectMessagesFragment : AbsContentListRecyclerViewFragment<MessageEntries
}
}
override var refreshing: Boolean = false
get() {
return twitterWrapper.isReceivedDirectMessagesRefreshing || twitterWrapper.isSentDirectMessagesRefreshing
}
override fun handleKeyboardShortcutRepeat(handler: KeyboardShortcutsHandler,
keyCode: Int, repeatCount: Int,
event: KeyEvent, metaState: Int): Boolean {
@ -142,7 +137,7 @@ class DirectMessagesFragment : AbsContentListRecyclerViewFragment<MessageEntries
adapter.loadMoreSupportedPosition = if (hasMoreData(cursor)) ILoadMoreSupportAdapter.END else ILoadMoreSupportAdapter.NONE
val accountIds = accountKeys
adapter.setShowAccountsColor(accountIds.size > 1)
setRefreshEnabled(true)
refreshEnabled = true
if (accountIds.size > 0) {
val errorInfo = ErrorInfoStore.getErrorInfo(context,
@ -181,7 +176,7 @@ class DirectMessagesFragment : AbsContentListRecyclerViewFragment<MessageEntries
if (event.uri == Inbox.CONTENT_URI && !event.running) {
refreshing = false
setLoadMoreIndicatorPosition(ILoadMoreSupportAdapter.NONE)
setRefreshEnabled(true)
refreshEnabled = true
}
}
@ -335,7 +330,7 @@ class DirectMessagesFragment : AbsContentListRecyclerViewFragment<MessageEntries
private fun loadMoreMessages() {
if (refreshing) return
setLoadMoreIndicatorPosition(ILoadMoreSupportAdapter.END)
setRefreshEnabled(false)
refreshEnabled = false
AsyncTaskUtils.executeTask(object : AsyncTask<Any, Any, Array<RefreshTaskParam>>() {
override fun doInBackground(vararg params: Any): Array<RefreshTaskParam>? {

View File

@ -55,11 +55,6 @@ class HomeTimelineFragment : CursorStatusesFragment() {
refreshing = twitter.isHomeTimelineRefreshing
}
override var refreshing: Boolean = false
get() {
return twitterWrapper.isHomeTimelineRefreshing
}
override fun getStatuses(param: RefreshTaskParam): Boolean {
if (!param.hasMaxIds()) return twitterWrapper.refreshAll(param.accountKeys)
return twitterWrapper.getHomeTimelineAsync(param)

View File

@ -90,7 +90,4 @@ class InteractionsTimelineFragment : CursorActivitiesFragment() {
@ReadPositionTag
override val readPositionTag: String? = ReadPositionTag.ACTIVITIES_ABOUT_ME
override var refreshing: Boolean = false
get() = false
}

View File

@ -40,7 +40,7 @@ class ItemsListFragment : AbsContentListRecyclerViewFragment<VariousItemsAdapter
super.onActivityCreated(savedInstanceState)
registerForContextMenu(recyclerView)
loaderManager.initLoader(0, null, this)
setRefreshEnabled(false)
refreshEnabled = false
showContent()
}
@ -107,8 +107,10 @@ class ItemsListFragment : AbsContentListRecyclerViewFragment<VariousItemsAdapter
adapter!!.setData(null)
}
override var refreshing: Boolean = false
override var refreshing: Boolean
get() = false
set(value) {
}
override fun onCreateContextMenu(menu: ContextMenu, v: View, menuInfo: ContextMenu.ContextMenuInfo?) {
if (!userVisibleHint || menuInfo == null) return
@ -150,10 +152,10 @@ class ItemsListFragment : AbsContentListRecyclerViewFragment<VariousItemsAdapter
return false
}
class ItemsLoader(context: Context, private val mArguments: Bundle) : AsyncTaskLoader<List<*>>(context) {
class ItemsLoader(context: Context, private val arguments: Bundle) : AsyncTaskLoader<List<*>>(context) {
override fun loadInBackground(): List<*> {
return mArguments.getParcelableArrayList<Parcelable>(EXTRA_ITEMS)
return arguments.getParcelableArrayList<Parcelable>(EXTRA_ITEMS)
}
override fun onStartLoading() {

View File

@ -47,11 +47,14 @@ abstract class ParcelableGroupsFragment : AbsContentListRecyclerViewFragment<Par
val nextCursor: Long = 0
val prevCursor: Long = 0
override var refreshing: Boolean = false
override var refreshing: Boolean
get() {
if (context == null || isDetached) return false
return loaderManager.hasRunningLoaders()
}
set(value) {
super.refreshing = value
}
override fun onCreateAdapter(context: Context): ParcelableGroupsAdapter {
return ParcelableGroupsAdapter(context)
@ -76,13 +79,13 @@ abstract class ParcelableGroupsFragment : AbsContentListRecyclerViewFragment<Par
adapter!!.setData(data)
if (loader !is IExtendedLoader || loader.isFromUser) {
adapter.loadMoreSupportedPosition = if (hasMoreData(data)) ILoadMoreSupportAdapter.END else ILoadMoreSupportAdapter.NONE
setRefreshEnabled(true)
refreshEnabled = true
}
if (loader is IExtendedLoader) {
loader.isFromUser = false
}
showContent()
setRefreshEnabled(true)
refreshEnabled = true
refreshing = false
setLoadMoreIndicatorPosition(ILoadMoreSupportAdapter.NONE)
}

View File

@ -126,7 +126,7 @@ abstract class ParcelableStatusesFragment : AbsStatusesFragment() {
}
override fun onStatusesLoaded(loader: Loader<List<ParcelableStatus>?>, data: List<ParcelableStatus>?) {
setRefreshEnabled(true)
refreshEnabled = true
refreshing = false
setLoadMoreIndicatorPosition(ILoadMoreSupportAdapter.NONE)
val adapter = adapter
@ -197,11 +197,14 @@ abstract class ParcelableStatusesFragment : AbsStatusesFragment() {
return true
}
override var refreshing: Boolean = false
override var refreshing: Boolean
get() {
if (context == null || isDetached) return false
return loaderManager.hasRunningLoaders()
}
set(value) {
super.refreshing = value
}
override fun onSaveInstanceState(outState: Bundle?) {
super.onSaveInstanceState(outState)

View File

@ -78,7 +78,7 @@ abstract class ParcelableUserListsFragment : AbsContentListRecyclerViewFragment<
adapter!!.setData(data)
if (loader !is IExtendedLoader || loader.isFromUser) {
adapter.loadMoreSupportedPosition = if (hasMoreData(data)) ILoadMoreSupportAdapter.END else ILoadMoreSupportAdapter.NONE
setRefreshEnabled(true)
refreshEnabled = true
}
if (loader is IExtendedLoader) {
loader.isFromUser = false
@ -88,7 +88,7 @@ abstract class ParcelableUserListsFragment : AbsContentListRecyclerViewFragment<
prevCursor = loader.nextCursor
}
showContent()
setRefreshEnabled(true)
refreshEnabled = true
refreshing = false
setLoadMoreIndicatorPosition(ILoadMoreSupportAdapter.NONE)
}

View File

@ -80,11 +80,14 @@ abstract class ParcelableUsersFragment protected constructor() : AbsContentListR
super.onStop()
}
override var refreshing: Boolean = false
override var refreshing: Boolean
get() {
if (context == null || isDetached) return false
return loaderManager.hasRunningLoaders()
}
set(value) {
super.refreshing = value
}
override fun onCreateAdapter(context: Context): ParcelableUsersAdapter {
val adapter = ParcelableUsersAdapter(context)
@ -97,13 +100,13 @@ abstract class ParcelableUsersFragment protected constructor() : AbsContentListR
adapter.setData(data)
if (loader !is IExtendedLoader || loader.isFromUser) {
adapter.loadMoreSupportedPosition = if (hasMoreData(data)) ILoadMoreSupportAdapter.END else ILoadMoreSupportAdapter.NONE
setRefreshEnabled(true)
refreshEnabled = true
}
if (loader is IExtendedLoader) {
loader.isFromUser = false
}
showContent()
setRefreshEnabled(true)
refreshEnabled = true
refreshing = false
setLoadMoreIndicatorPosition(ILoadMoreSupportAdapter.NONE)
}

View File

@ -34,11 +34,14 @@ class UserMediaTimelineFragment : AbsContentRecyclerViewFragment<StaggeredGridPa
layoutManager!!.scrollToPositionWithOffset(position, offset)
}
override var refreshing: Boolean = false
override var refreshing: Boolean
get() {
if (context == null || isDetached) return false
return loaderManager.hasRunningLoaders()
}
set(value) {
super.refreshing = value
}
override fun onActivityCreated(savedInstanceState: Bundle?) {