mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-11 18:29:05 +01:00
[android] Remove type parameter from view holders.
This commit is contained in:
@@ -20,7 +20,8 @@ class ConversationAdapter
|
||||
|
||||
private ConversationListener listener;
|
||||
|
||||
ConversationAdapter(Context ctx, ConversationListener conversationListener) {
|
||||
ConversationAdapter(Context ctx,
|
||||
ConversationListener conversationListener) {
|
||||
super(ctx, ConversationItem.class);
|
||||
listener = conversationListener;
|
||||
}
|
||||
@@ -56,13 +57,7 @@ class ConversationAdapter
|
||||
@Override
|
||||
public void onBindViewHolder(ConversationItemViewHolder ui, int position) {
|
||||
ConversationItem item = items.get(position);
|
||||
if (item instanceof ConversationRequestItem) {
|
||||
((ConversationRequestViewHolder) ui)
|
||||
.bind((ConversationRequestItem) item, listener);
|
||||
} else {
|
||||
//noinspection unchecked
|
||||
ui.bind(item);
|
||||
}
|
||||
ui.bind(item, listener);
|
||||
listener.onItemVisible(item);
|
||||
}
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ abstract class ConversationItem {
|
||||
}
|
||||
|
||||
@LayoutRes
|
||||
public int getLayout() {
|
||||
int getLayout() {
|
||||
return layoutRes;
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ abstract class ConversationItem {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getText() {
|
||||
String getText() {
|
||||
return text;
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ abstract class ConversationItem {
|
||||
/**
|
||||
* Only useful for incoming messages.
|
||||
*/
|
||||
public boolean isRead() {
|
||||
boolean isRead() {
|
||||
return read;
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ abstract class ConversationItem {
|
||||
this.seen = seen;
|
||||
}
|
||||
|
||||
public boolean isIncoming() {
|
||||
boolean isIncoming() {
|
||||
return isIncoming;
|
||||
}
|
||||
|
||||
|
||||
@@ -10,14 +10,14 @@ import android.widget.TextView;
|
||||
|
||||
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
||||
import org.briarproject.briar.R;
|
||||
import org.briarproject.briar.android.conversation.ConversationAdapter.ConversationListener;
|
||||
|
||||
import static org.briarproject.bramble.util.StringUtils.trim;
|
||||
import static org.briarproject.briar.android.util.UiUtils.formatDate;
|
||||
|
||||
@UiThread
|
||||
@NotNullByDefault
|
||||
abstract class ConversationItemViewHolder<T extends ConversationItem>
|
||||
extends ViewHolder {
|
||||
abstract class ConversationItemViewHolder extends ViewHolder {
|
||||
|
||||
protected final ViewGroup layout;
|
||||
@Nullable
|
||||
@@ -34,7 +34,7 @@ abstract class ConversationItemViewHolder<T extends ConversationItem>
|
||||
}
|
||||
|
||||
@CallSuper
|
||||
void bind(T item) {
|
||||
void bind(ConversationItem item, ConversationListener listener) {
|
||||
if (item.getText() == null) {
|
||||
text.setText("\u2026");
|
||||
} else {
|
||||
@@ -47,7 +47,7 @@ abstract class ConversationItemViewHolder<T extends ConversationItem>
|
||||
if (outViewHolder != null) outViewHolder.bind(item);
|
||||
}
|
||||
|
||||
protected boolean isIncoming() {
|
||||
boolean isIncoming() {
|
||||
return outViewHolder == null;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,8 +7,7 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
||||
|
||||
@UiThread
|
||||
@NotNullByDefault
|
||||
class ConversationMessageViewHolder
|
||||
extends ConversationItemViewHolder<ConversationMessageItem> {
|
||||
class ConversationMessageViewHolder extends ConversationItemViewHolder {
|
||||
|
||||
// image support will be added here (#1242)
|
||||
|
||||
@@ -16,9 +15,4 @@ class ConversationMessageViewHolder
|
||||
super(v, isIncoming);
|
||||
}
|
||||
|
||||
@Override
|
||||
void bind(ConversationMessageItem item) {
|
||||
super.bind(item);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package org.briarproject.briar.android.conversation;
|
||||
|
||||
import android.support.annotation.CallSuper;
|
||||
import android.support.annotation.UiThread;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
||||
import org.briarproject.briar.R;
|
||||
import org.briarproject.briar.android.conversation.ConversationAdapter.ConversationListener;
|
||||
|
||||
import static android.view.View.GONE;
|
||||
import static android.view.View.VISIBLE;
|
||||
@@ -14,8 +16,7 @@ import static org.briarproject.bramble.util.StringUtils.trim;
|
||||
|
||||
@UiThread
|
||||
@NotNullByDefault
|
||||
class ConversationNoticeViewHolder<T extends ConversationNoticeItem>
|
||||
extends ConversationItemViewHolder<T> {
|
||||
class ConversationNoticeViewHolder extends ConversationItemViewHolder {
|
||||
|
||||
private final TextView msgText;
|
||||
|
||||
@@ -25,10 +26,12 @@ class ConversationNoticeViewHolder<T extends ConversationNoticeItem>
|
||||
}
|
||||
|
||||
@Override
|
||||
void bind(T item) {
|
||||
super.bind(item);
|
||||
@CallSuper
|
||||
void bind(ConversationItem item, ConversationListener listener) {
|
||||
ConversationNoticeItem notice = (ConversationNoticeItem) item;
|
||||
super.bind(notice, listener);
|
||||
|
||||
String text = item.getMsgText();
|
||||
String text = notice.getMsgText();
|
||||
if (isNullOrEmpty(text)) {
|
||||
msgText.setVisibility(GONE);
|
||||
layout.setBackgroundResource(isIncoming() ? R.drawable.notice_in :
|
||||
|
||||
@@ -49,7 +49,7 @@ class ConversationRequestItem extends ConversationNoticeItem {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public GroupId getRequestedGroupId() {
|
||||
GroupId getRequestedGroupId() {
|
||||
return requestedGroupId;
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ class ConversationRequestItem extends ConversationNoticeItem {
|
||||
this.answered = true;
|
||||
}
|
||||
|
||||
public boolean canBeOpened() {
|
||||
boolean canBeOpened() {
|
||||
return canBeOpened;
|
||||
}
|
||||
|
||||
|
||||
@@ -13,8 +13,7 @@ import static android.view.View.VISIBLE;
|
||||
|
||||
@UiThread
|
||||
@NotNullByDefault
|
||||
class ConversationRequestViewHolder
|
||||
extends ConversationNoticeViewHolder<ConversationRequestItem> {
|
||||
class ConversationRequestViewHolder extends ConversationNoticeViewHolder {
|
||||
|
||||
private final Button acceptButton;
|
||||
private final Button declineButton;
|
||||
@@ -25,17 +24,18 @@ class ConversationRequestViewHolder
|
||||
declineButton = v.findViewById(R.id.declineButton);
|
||||
}
|
||||
|
||||
void bind(ConversationRequestItem item,
|
||||
ConversationListener listener) {
|
||||
super.bind(item);
|
||||
@Override
|
||||
void bind(ConversationItem item, ConversationListener listener) {
|
||||
ConversationRequestItem request = (ConversationRequestItem) item;
|
||||
super.bind(request, listener);
|
||||
|
||||
if (item.wasAnswered() && item.canBeOpened()) {
|
||||
if (request.wasAnswered() && request.canBeOpened()) {
|
||||
acceptButton.setVisibility(VISIBLE);
|
||||
acceptButton.setText(R.string.open);
|
||||
acceptButton.setOnClickListener(
|
||||
v -> listener.openRequestedShareable(item));
|
||||
v -> listener.openRequestedShareable(request));
|
||||
declineButton.setVisibility(GONE);
|
||||
} else if (item.wasAnswered()) {
|
||||
} else if (request.wasAnswered()) {
|
||||
acceptButton.setVisibility(GONE);
|
||||
declineButton.setVisibility(GONE);
|
||||
} else {
|
||||
@@ -44,13 +44,13 @@ class ConversationRequestViewHolder
|
||||
acceptButton.setOnClickListener(v -> {
|
||||
acceptButton.setEnabled(false);
|
||||
declineButton.setEnabled(false);
|
||||
listener.respondToRequest(item, true);
|
||||
listener.respondToRequest(request, true);
|
||||
});
|
||||
declineButton.setVisibility(VISIBLE);
|
||||
declineButton.setOnClickListener(v -> {
|
||||
acceptButton.setEnabled(false);
|
||||
declineButton.setEnabled(false);
|
||||
listener.respondToRequest(item, false);
|
||||
listener.respondToRequest(request, false);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user