Search in sources :

Example 1 with Status

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);
    }
}
Also used : Status(com.keylesspalace.tusky.entity.Status) TimelineAdapter(com.keylesspalace.tusky.adapter.TimelineAdapter)

Example 2 with Status

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;
                }
        }
    }
}
Also used : Status(com.keylesspalace.tusky.entity.Status) Notification(com.keylesspalace.tusky.entity.Notification)

Example 3 with Status

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());
}
Also used : Status(com.keylesspalace.tusky.entity.Status) Either(com.keylesspalace.tusky.util.Either)

Example 4 with Status

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);
        }
    });
}
Also used : Status(com.keylesspalace.tusky.entity.Status) StatusViewData(com.keylesspalace.tusky.viewdata.StatusViewData) Pair(android.support.v4.util.Pair)

Example 5 with Status

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());
}
Also used : Status(com.keylesspalace.tusky.entity.Status) Either(com.keylesspalace.tusky.util.Either)

Aggregations

Status (com.keylesspalace.tusky.entity.Status)48 StatusViewData (com.keylesspalace.tusky.viewdata.StatusViewData)13 Notification (com.keylesspalace.tusky.entity.Notification)10 Intent (android.content.Intent)4 ArrayList (java.util.ArrayList)4 Either (com.keylesspalace.tusky.util.Either)3 NotificationViewData (com.keylesspalace.tusky.viewdata.NotificationViewData)3 List (java.util.List)3 Context (android.content.Context)2 Pair (android.support.v4.util.Pair)2 TextView (android.widget.TextView)2 AccountEntity (com.keylesspalace.tusky.db.AccountEntity)2 PendingIntent (android.app.PendingIntent)1 ClipData (android.content.ClipData)1 ClipboardManager (android.content.ClipboardManager)1 BitmapDrawable (android.graphics.drawable.BitmapDrawable)1 ColorDrawable (android.graphics.drawable.ColorDrawable)1 Drawable (android.graphics.drawable.Drawable)1 Spanned (android.text.Spanned)1 TextUtils (android.text.TextUtils)1