comments: show error when list is empty

This commit is contained in:
Yuriy Liskov
2023-01-23 04:54:59 +02:00
parent 33b6e56893
commit a54409c57a
4 changed files with 12 additions and 8 deletions

View File

@ -423,21 +423,19 @@ public class MessagesListAdapter<MESSAGE extends IMessage>
((LinearLayoutManager) layoutManager).setStackFromEnd(enable);
}
public void setLoadingMessage(String message, boolean alignBottom) {
public void setLoadingMessage(String message) {
removeLoadingMessageIfNeeded();
if (message == null || !items.isEmpty()) {
return;
}
// Align top
//((LinearLayoutManager) layoutManager).setReverseLayout(alignBottom);
items.add(new Wrapper<>(message));
notifyItemInserted(0);
}
public void removeLoadingMessageIfNeeded() {
private void removeLoadingMessageIfNeeded() {
if (items.size() == 1 && items.get(0).item instanceof String) {
// Reset to defaults (see MessagesList.setAdapter)
//((LinearLayoutManager) layoutManager).setReverseLayout(true);
items.remove(0);
notifyItemRemoved(0);
}

View File

@ -12,4 +12,5 @@ public interface CommentsReceiver {
void onStart();
void onCommentClicked(String nestedCommentsKey);
String getLoadingMessage();
String getErrorMessage();
}

View File

@ -38,4 +38,9 @@ public abstract class CommentsReceiverImpl implements CommentsReceiver {
public String getLoadingMessage() {
return mContext.getString(R.string.loading);
}
@Override
public String getErrorMessage() {
return mContext.getString(R.string.section_is_empty);
}
}

View File

@ -78,11 +78,11 @@ public class CommentsPreferenceDialogFragment extends LeanbackPreferenceDialogFr
messagesList.setAdapter(adapter);
messagesList.requestFocus(); // hold focus even when there's no messages
adapter.enableStackFromEnd(true);
adapter.setLoadingMessage(mCommentsReceiver.getLoadingMessage(), false);
adapter.setLoadingMessage(mCommentsReceiver.getLoadingMessage());
mCommentsReceiver.setCallback(commentGroup -> {
if (commentGroup == null || commentGroup.getComments() == null) {
adapter.removeLoadingMessageIfNeeded();
adapter.setLoadingMessage(mCommentsReceiver.getErrorMessage());
return;
}