use of com.keylesspalace.tusky.entity.Status in project Tusky by Vavassor.
the class TimelineFragment method onLoadMore.
private void onLoadMore(RecyclerView view) {
TimelineAdapter adapter = (TimelineAdapter) view.getAdapter();
Status status = adapter.getItem(adapter.getItemCount() - 2);
if (status != null) {
sendFetchTimelineRequest(status.id, null);
} else {
sendFetchTimelineRequest(null, null);
}
}
use of com.keylesspalace.tusky.entity.Status in project Tusky by Vavassor.
the class NotificationsAdapter method onBindViewHolder.
@Override
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) {
if (position < notifications.size()) {
Notification notification = notifications.get(position);
Notification.Type type = notification.type;
switch(type) {
case MENTION:
{
StatusViewHolder holder = (StatusViewHolder) viewHolder;
Status status = notification.status;
holder.setupWithStatus(status, statusListener);
break;
}
case FAVOURITE:
case REBLOG:
{
StatusNotificationViewHolder holder = (StatusNotificationViewHolder) viewHolder;
holder.setMessage(type, notification.account.getDisplayName(), notification.status);
holder.setupButtons(notificationActionListener, notification.account.id);
break;
}
case FOLLOW:
{
FollowViewHolder holder = (FollowViewHolder) viewHolder;
holder.setMessage(notification.account.getDisplayName(), notification.account.username, notification.account.avatar);
holder.setupButtons(notificationActionListener, notification.account.id);
break;
}
}
}
}
use of com.keylesspalace.tusky.entity.Status in project Tusky by tuskyapp.
the class TimelineFragment method replacePlaceholderWithStatuses.
private void replacePlaceholderWithStatuses(List<Status> newStatuses, boolean fullFetch, int pos) {
Status status = statuses.get(pos).getAsRightOrNull();
if (status == null) {
statuses.remove(pos);
}
if (ListUtils.isEmpty(newStatuses)) {
adapter.update(statuses.getPairedCopy());
return;
}
List<Either<Placeholder, Status>> liftedNew = listStatusList(newStatuses);
if (fullFetch) {
liftedNew.add(Either.left(Placeholder.getInstance()));
}
statuses.addAll(pos, liftedNew);
adapter.update(statuses.getPairedCopy());
}
use of com.keylesspalace.tusky.entity.Status in project Tusky by tuskyapp.
the class TimelineFragment method onFavourite.
@Override
public void onFavourite(final boolean favourite, final int position) {
final Status status = statuses.get(position).getAsRight();
timelineCases.favouriteWithCallback(status, favourite, new Callback<Status>() {
@Override
public void onResponse(@NonNull Call<Status> call, @NonNull Response<Status> response) {
if (response.isSuccessful()) {
status.setFavourited(favourite);
if (status.getReblog() != null) {
status.getReblog().setFavourited(favourite);
}
Pair<StatusViewData.Concrete, Integer> actual = findStatusAndPosition(position, status);
if (actual == null)
return;
StatusViewData newViewData = new StatusViewData.Builder(actual.first).setFavourited(favourite).createStatusViewData();
statuses.setPairedItem(actual.second, newViewData);
adapter.changeItem(actual.second, newViewData, false);
}
}
@Override
public void onFailure(@NonNull Call<Status> call, @NonNull Throwable t) {
Log.d(TAG, "Failed to favourite status " + status.getId(), t);
}
});
}
use of com.keylesspalace.tusky.entity.Status in project Tusky by tuskyapp.
the class TimelineFragment method removeAllByAccountId.
@Override
public void removeAllByAccountId(String accountId) {
// using iterator to safely remove items while iterating
Iterator<Either<Placeholder, Status>> iterator = statuses.iterator();
while (iterator.hasNext()) {
Status status = iterator.next().getAsRightOrNull();
if (status != null && status.getAccount().getId().equals(accountId)) {
iterator.remove();
}
}
adapter.update(statuses.getPairedCopy());
}
Aggregations