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