[android] Remove type parameter from view holders.

This commit is contained in:
akwizgran
2018-11-08 11:47:11 +00:00
committed by Torsten Grote
parent ad4729b2f9
commit f2b09deac4
7 changed files with 32 additions and 40 deletions

View File

@@ -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);
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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);
}
}

View File

@@ -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 :

View File

@@ -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;
}

View File

@@ -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);
});
}
}