improved UserList icon quality
This commit is contained in:
parent
163cc2f88e
commit
95f8b7a8e0
|
@ -1,66 +0,0 @@
|
||||||
package org.mariotaku.twidere.model.util;
|
|
||||||
|
|
||||||
import android.text.TextUtils;
|
|
||||||
|
|
||||||
import org.mariotaku.microblog.library.twitter.model.User;
|
|
||||||
import org.mariotaku.microblog.library.twitter.model.UserList;
|
|
||||||
import org.mariotaku.twidere.model.ParcelableUserList;
|
|
||||||
import org.mariotaku.twidere.model.UserKey;
|
|
||||||
import org.mariotaku.twidere.util.TwitterContentUtils;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by mariotaku on 16/3/5.
|
|
||||||
*/
|
|
||||||
public class ParcelableUserListUtils {
|
|
||||||
private ParcelableUserListUtils() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public static ParcelableUserList from(UserList list, UserKey accountKey) {
|
|
||||||
return from(list, accountKey, 0, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static ParcelableUserList from(UserList list, UserKey accountKey, long position, boolean isFollowing) {
|
|
||||||
ParcelableUserList obj = new ParcelableUserList();
|
|
||||||
final User user = list.getUser();
|
|
||||||
obj.position = position;
|
|
||||||
obj.account_key = accountKey;
|
|
||||||
obj.id = list.getId();
|
|
||||||
obj.is_public = UserList.Mode.PUBLIC.equals(list.getMode());
|
|
||||||
obj.is_following = isFollowing;
|
|
||||||
obj.name = list.getName();
|
|
||||||
obj.description = list.getDescription();
|
|
||||||
obj.user_key = UserKeyUtils.fromUser(user);
|
|
||||||
obj.user_name = user.getName();
|
|
||||||
obj.user_screen_name = user.getScreenName();
|
|
||||||
obj.user_profile_image_url = TwitterContentUtils.getProfileImageUrl(user);
|
|
||||||
obj.members_count = list.getMemberCount();
|
|
||||||
obj.subscribers_count = list.getSubscriberCount();
|
|
||||||
return obj;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static ParcelableUserList[] fromUserLists(UserList[] userLists, UserKey accountKey) {
|
|
||||||
if (userLists == null) return null;
|
|
||||||
int size = userLists.length;
|
|
||||||
final ParcelableUserList[] result = new ParcelableUserList[size];
|
|
||||||
for (int i = 0; i < size; i++) {
|
|
||||||
result[i] = from(userLists[i], accountKey);
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean check(ParcelableUserList userList, UserKey accountKey, String listId,
|
|
||||||
UserKey userKey, String screenName, String listName) {
|
|
||||||
if (!userList.account_key.equals(accountKey)) return false;
|
|
||||||
if (listId != null) {
|
|
||||||
return TextUtils.equals(listId, userList.id);
|
|
||||||
} else if (listName != null) {
|
|
||||||
if (!TextUtils.equals(listName, userList.name)) return false;
|
|
||||||
if (userKey != null) {
|
|
||||||
return userKey.equals(userList.user_key);
|
|
||||||
} else if (screenName != null) {
|
|
||||||
return TextUtils.equals(screenName, userList.user_screen_name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -29,6 +29,7 @@ import org.mariotaku.microblog.library.twitter.model.CursorSupport
|
||||||
import org.mariotaku.microblog.library.twitter.model.PageableResponseList
|
import org.mariotaku.microblog.library.twitter.model.PageableResponseList
|
||||||
import org.mariotaku.microblog.library.twitter.model.Paging
|
import org.mariotaku.microblog.library.twitter.model.Paging
|
||||||
import org.mariotaku.microblog.library.twitter.model.UserList
|
import org.mariotaku.microblog.library.twitter.model.UserList
|
||||||
|
import org.mariotaku.twidere.R
|
||||||
import org.mariotaku.twidere.TwidereConstants.LOGTAG
|
import org.mariotaku.twidere.TwidereConstants.LOGTAG
|
||||||
import org.mariotaku.twidere.constant.loadItemLimitKey
|
import org.mariotaku.twidere.constant.loadItemLimitKey
|
||||||
import org.mariotaku.twidere.loader.iface.ICursorSupportLoader
|
import org.mariotaku.twidere.loader.iface.ICursorSupportLoader
|
||||||
|
@ -54,6 +55,8 @@ abstract class BaseUserListsLoader(
|
||||||
|
|
||||||
protected val data = NoDuplicatesArrayList<ParcelableUserList>()
|
protected val data = NoDuplicatesArrayList<ParcelableUserList>()
|
||||||
|
|
||||||
|
private val profileImageSize = context.getString(R.string.profile_image_size)
|
||||||
|
|
||||||
override var nextCursor: Long = 0
|
override var nextCursor: Long = 0
|
||||||
override var prevCursor: Long = 0
|
override var prevCursor: Long = 0
|
||||||
|
|
||||||
|
@ -89,12 +92,14 @@ abstract class BaseUserListsLoader(
|
||||||
val dataSize = data.size
|
val dataSize = data.size
|
||||||
for (i in 0..listSize - 1) {
|
for (i in 0..listSize - 1) {
|
||||||
val list = listLoaded[i]
|
val list = listLoaded[i]
|
||||||
data.add(ParcelableUserListUtils.from(list, accountId, (dataSize + i).toLong(), isFollowing(list)))
|
data.add(ParcelableUserListUtils.from(list, accountId, (dataSize + i).toLong(),
|
||||||
|
isFollowing(list), profileImageSize))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (i in 0..listSize - 1) {
|
for (i in 0..listSize - 1) {
|
||||||
val list = listLoaded[i]
|
val list = listLoaded[i]
|
||||||
data.add(ParcelableUserListUtils.from(listLoaded[i], accountId, i.toLong(), isFollowing(list)))
|
data.add(ParcelableUserListUtils.from(listLoaded[i], accountId, i.toLong(),
|
||||||
|
isFollowing(list), profileImageSize))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,10 +69,10 @@ object ParcelableActivityUtils {
|
||||||
result.min_position = activity.minPosition
|
result.min_position = activity.minPosition
|
||||||
result.sources = ParcelableUserUtils.fromUsers(activity.sources, accountKey, profileImageSize)
|
result.sources = ParcelableUserUtils.fromUsers(activity.sources, accountKey, profileImageSize)
|
||||||
result.target_users = ParcelableUserUtils.fromUsers(activity.targetUsers, accountKey, profileImageSize)
|
result.target_users = ParcelableUserUtils.fromUsers(activity.targetUsers, accountKey, profileImageSize)
|
||||||
result.target_user_lists = ParcelableUserListUtils.fromUserLists(activity.targetUserLists, accountKey)
|
result.target_user_lists = ParcelableUserListUtils.fromUserLists(activity.targetUserLists, accountKey, profileImageSize)
|
||||||
result.target_statuses = ParcelableStatusUtils.fromStatuses(activity.targetStatuses, accountKey, profileImageSize)
|
result.target_statuses = ParcelableStatusUtils.fromStatuses(activity.targetStatuses, accountKey, profileImageSize)
|
||||||
result.target_object_statuses = ParcelableStatusUtils.fromStatuses(activity.targetObjectStatuses, accountKey, profileImageSize)
|
result.target_object_statuses = ParcelableStatusUtils.fromStatuses(activity.targetObjectStatuses, accountKey, profileImageSize)
|
||||||
result.target_object_user_lists = ParcelableUserListUtils.fromUserLists(activity.targetObjectUserLists, accountKey)
|
result.target_object_user_lists = ParcelableUserListUtils.fromUserLists(activity.targetObjectUserLists, accountKey, profileImageSize)
|
||||||
result.target_object_users = ParcelableUserUtils.fromUsers(activity.targetObjectUsers, accountKey, profileImageSize)
|
result.target_object_users = ParcelableUserUtils.fromUsers(activity.targetObjectUsers, accountKey, profileImageSize)
|
||||||
result.has_following_source = activity.sources.fold(false) { folded, item ->
|
result.has_following_source = activity.sources.fold(false) { folded, item ->
|
||||||
if (item.isFollowing) {
|
if (item.isFollowing) {
|
||||||
|
|
|
@ -0,0 +1,75 @@
|
||||||
|
/*
|
||||||
|
* Twidere - Twitter client for Android
|
||||||
|
*
|
||||||
|
* Copyright (C) 2012-2017 Mariotaku Lee <mariotaku.lee@gmail.com>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.mariotaku.twidere.model.util
|
||||||
|
|
||||||
|
import android.text.TextUtils
|
||||||
|
import org.mariotaku.microblog.library.twitter.model.UserList
|
||||||
|
import org.mariotaku.twidere.extension.model.api.getProfileImageOfSize
|
||||||
|
import org.mariotaku.twidere.model.ParcelableUserList
|
||||||
|
import org.mariotaku.twidere.model.UserKey
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by mariotaku on 16/3/5.
|
||||||
|
*/
|
||||||
|
object ParcelableUserListUtils {
|
||||||
|
|
||||||
|
fun from(list: UserList, accountKey: UserKey, position: Long = 0,
|
||||||
|
isFollowing: Boolean = false, profileImageSize: String = "normal"): ParcelableUserList {
|
||||||
|
val obj = ParcelableUserList()
|
||||||
|
val user = list.user
|
||||||
|
obj.position = position
|
||||||
|
obj.account_key = accountKey
|
||||||
|
obj.id = list.id
|
||||||
|
obj.is_public = UserList.Mode.PUBLIC == list.mode
|
||||||
|
obj.is_following = isFollowing
|
||||||
|
obj.name = list.name
|
||||||
|
obj.description = list.description
|
||||||
|
obj.user_key = UserKeyUtils.fromUser(user)
|
||||||
|
obj.user_name = user.name
|
||||||
|
obj.user_screen_name = user.screenName
|
||||||
|
obj.user_profile_image_url = user.getProfileImageOfSize(profileImageSize)
|
||||||
|
obj.members_count = list.memberCount
|
||||||
|
obj.subscribers_count = list.subscriberCount
|
||||||
|
return obj
|
||||||
|
}
|
||||||
|
|
||||||
|
fun fromUserLists(userLists: Array<UserList>?, accountKey: UserKey,
|
||||||
|
profileImageSize: String = "normal"): Array<ParcelableUserList>? {
|
||||||
|
if (userLists == null) return emptyArray()
|
||||||
|
val size = userLists.size
|
||||||
|
return Array(size) { from(userLists[it], accountKey, profileImageSize = profileImageSize) }
|
||||||
|
}
|
||||||
|
|
||||||
|
fun check(userList: ParcelableUserList, accountKey: UserKey, listId: String?,
|
||||||
|
userKey: UserKey?, screenName: String?, listName: String?): Boolean {
|
||||||
|
if (userList.account_key != accountKey) return false
|
||||||
|
if (listId != null) {
|
||||||
|
return TextUtils.equals(listId, userList.id)
|
||||||
|
} else if (listName != null) {
|
||||||
|
if (!TextUtils.equals(listName, userList.name)) return false
|
||||||
|
if (userKey != null) {
|
||||||
|
return userKey == userList.user_key
|
||||||
|
} else if (screenName != null) {
|
||||||
|
return TextUtils.equals(screenName, userList.user_screen_name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue