diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ParcelableUsersFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ParcelableUsersFragment.kt index c8096e4e0..f3e2a2a66 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ParcelableUsersFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/ParcelableUsersFragment.kt @@ -44,6 +44,7 @@ import org.mariotaku.twidere.constant.newDocumentApiKey import org.mariotaku.twidere.loader.iface.IExtendedLoader import org.mariotaku.twidere.loader.iface.IPaginationLoader import org.mariotaku.twidere.loader.users.AbsRequestUsersLoader +import org.mariotaku.twidere.model.ListResponse import org.mariotaku.twidere.model.ParcelableUser import org.mariotaku.twidere.model.UserKey import org.mariotaku.twidere.model.event.FriendshipTaskEvent @@ -140,7 +141,7 @@ abstract class ParcelableUsersFragment : AbsContentListRecyclerViewFragment.loadSuccess(): Boolean { + return this !is ListResponse<*> || !this.hasException() + } + protected inner class UsersBusCallback { @Subscribe diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/loader/users/AbsRequestUsersLoader.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/loader/users/AbsRequestUsersLoader.kt index 1d546fa95..f156ac5a9 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/loader/users/AbsRequestUsersLoader.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/loader/users/AbsRequestUsersLoader.kt @@ -20,6 +20,7 @@ package org.mariotaku.twidere.loader.users import android.accounts.AccountManager +import android.content.ActivityNotFoundException import android.content.Context import org.mariotaku.kpreferences.get import org.mariotaku.microblog.library.MicroBlogException @@ -60,19 +61,17 @@ abstract class AbsRequestUsersLoader( } override fun loadInBackground(): List { - if (accountKey == null) { - return ListResponse.getListInstance(MicroBlogException("No Account")) - } - val am = AccountManager.get(context) - val details = AccountUtils.getAccountDetails(am, accountKey, true) ?: - return ListResponse.getListInstance(MicroBlogException("No Account")) val data = data + val details: AccountDetails val users: List try { + val am = AccountManager.get(context) + details = accountKey?.let { AccountUtils.getAccountDetails(am, it, true) } ?: + throw ActivityNotFoundException() users = getUsers(details) } catch (e: MicroBlogException) { DebugLog.w(tr = e) - return ListResponse.getListInstance(data) + return ListResponse.getListInstance(data, e) } var pos = data.size @@ -94,7 +93,7 @@ abstract class AbsRequestUsersLoader( } @Throws(MicroBlogException::class) - final fun getUsers(details: AccountDetails): List { + private fun getUsers(details: AccountDetails): List { val paging = Paging() paging.applyItemLimit(details, loadItemLimit) pagination?.applyTo(paging) diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/loader/users/UserFollowersLoader.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/loader/users/UserFollowersLoader.kt index 6de135261..4851861bc 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/loader/users/UserFollowersLoader.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/loader/users/UserFollowersLoader.kt @@ -61,7 +61,7 @@ class UserFollowersLoader( } AccountType.FANFOU -> { val microBlog = details.newMicroBlogInstance(context, MicroBlog::class.java) - return microBlog.getUsersFollowers(userKey.id, paging).mapToPaginated { + return microBlog.getUsersFollowers(userKey.id, paging).mapToPaginated(pagination) { it.toParcelable(details.key, details.type, profileImageSize = profileImageSize) } } @@ -88,7 +88,7 @@ class UserFollowersLoader( } AccountType.FANFOU -> { val microBlog = details.newMicroBlogInstance(context, MicroBlog::class.java) - return microBlog.getUsersFollowers(screenName, paging).mapToPaginated { + return microBlog.getUsersFollowers(screenName, paging).mapToPaginated(pagination) { it.toParcelable(details.key, details.type, profileImageSize = profileImageSize) } } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/loader/users/UserFriendsLoader.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/loader/users/UserFriendsLoader.kt index 19d43e946..ef6b35270 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/loader/users/UserFriendsLoader.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/loader/users/UserFriendsLoader.kt @@ -61,7 +61,7 @@ class UserFriendsLoader( } AccountType.FANFOU -> { val microBlog = details.newMicroBlogInstance(context, MicroBlog::class.java) - return microBlog.getUsersFriends(userKey.id, paging).mapToPaginated { + return microBlog.getUsersFriends(userKey.id, paging).mapToPaginated(pagination) { it.toParcelable(details.key, details.type, profileImageSize = profileImageSize) } } @@ -88,7 +88,7 @@ class UserFriendsLoader( } AccountType.FANFOU -> { val microBlog = details.newMicroBlogInstance(context, MicroBlog::class.java) - return microBlog.getUsersFriends(screenName, paging).mapToPaginated { + return microBlog.getUsersFriends(screenName, paging).mapToPaginated(pagination) { it.toParcelable(details.key, details.type, profileImageSize = profileImageSize) } }