Skip to content
This repository was archived by the owner on Jul 25, 2024. It is now read-only.

Commit eefcdd2

Browse files
committed
Expand header stream, topic textView onLongPress.
1 parent 1d03cb1 commit eefcdd2

File tree

3 files changed

+64
-2
lines changed

3 files changed

+64
-2
lines changed

app/src/main/java/com/zulip/android/activities/RecyclerMessageAdapter.java

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -475,6 +475,44 @@ public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int pos
475475
}
476476
messageHeaderHolder.topicTextView.setText(messageHeaderParent.getSubject());
477477

478+
//set on long press
479+
messageHeaderHolder.streamTextView.setOnLongClickListener(new View.OnLongClickListener() {
480+
@Override
481+
public boolean onLongClick(View v) {
482+
messageHeaderHolder.streamTextView.setMaxLines(Integer.MAX_VALUE);
483+
messageHeaderHolder.streamTextView.setEllipsize(null);
484+
((MessageHeaderParent) getItem(position)).setStreamExpanded(true);
485+
return true;
486+
}
487+
});
488+
489+
messageHeaderHolder.topicTextView.setOnLongClickListener(new View.OnLongClickListener() {
490+
@Override
491+
public boolean onLongClick(View v) {
492+
messageHeaderHolder.topicTextView.setMaxLines(Integer.MAX_VALUE);
493+
messageHeaderHolder.topicTextView.setEllipsize(null);
494+
((MessageHeaderParent) getItem(position)).setTopicExpanded(true);
495+
return true;
496+
}
497+
});
498+
499+
//if user have expanded, preserve them
500+
if (messageHeaderParent.isStreamExpanded()) {
501+
messageHeaderHolder.streamTextView.setMaxLines(Integer.MAX_VALUE);
502+
messageHeaderHolder.streamTextView.setEllipsize(null);
503+
} else {
504+
messageHeaderHolder.streamTextView.setMaxLines(1);
505+
messageHeaderHolder.streamTextView.setEllipsize(TextUtils.TruncateAt.END);
506+
}
507+
508+
if (messageHeaderParent.isTopicExpanded()) {
509+
messageHeaderHolder.topicTextView.setMaxLines(Integer.MAX_VALUE);
510+
messageHeaderHolder.topicTextView.setEllipsize(null);
511+
} else {
512+
messageHeaderHolder.topicTextView.setMaxLines(1);
513+
messageHeaderHolder.topicTextView.setEllipsize(TextUtils.TruncateAt.END);
514+
}
515+
478516
ViewCompat.setBackgroundTintList(messageHeaderHolder.arrowHead, ColorStateList.valueOf(messageHeaderParent.getColor()));
479517
messageHeaderHolder.streamTextView.setBackgroundColor(messageHeaderParent.getColor());
480518

app/src/main/java/com/zulip/android/viewholders/MessageHeaderParent.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ public class MessageHeaderParent {
3333
//all messages below this header will be of same day as date of this timestamp
3434
private Date messagesTimestamp;
3535

36+
//is stream textview max lines is set to 1
37+
private boolean isStreamExpanded = false;
38+
private boolean isTopicExpanded = false;
39+
3640

3741
/**
3842
* Constructor for the wrapper class.\
@@ -137,6 +141,22 @@ public Date getMessagesTimestamp() {
137141
return messagesTimestamp;
138142
}
139143

144+
public boolean isStreamExpanded() {
145+
return isStreamExpanded;
146+
}
147+
148+
public void setStreamExpanded(boolean streamExpanded) {
149+
isStreamExpanded = streamExpanded;
150+
}
151+
152+
public boolean isTopicExpanded() {
153+
return isTopicExpanded;
154+
}
155+
156+
public void setTopicExpanded(boolean topicExpanded) {
157+
isTopicExpanded = topicExpanded;
158+
}
159+
140160
public static class MessageHeaderHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
141161
public TextView streamTextView;
142162
public TextView topicTextView;

app/src/main/res/layout/message_header.xml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@
2020
android:textColor="@color/colorTextPrimary"
2121
android:textStyle="bold"
2222
tools:background="@color/colorAccent"
23-
tools:text="Short Stream" />
23+
tools:text="Short Stream"
24+
android:maxLines="1"
25+
android:ellipsize="end"/>
2426

2527
<TextView
2628
android:id="@+id/sep"
@@ -39,7 +41,9 @@
3941
android:background="@color/messageHeaderBackground"
4042
android:gravity="center_vertical"
4143
android:padding="4dp"
42-
tools:text="This is a very very very long topic that is so long that it wraps" />
44+
tools:text="This is a very very very long topic that is so long that it wraps"
45+
android:maxLines="1"
46+
android:ellipsize="end"/>
4347

4448
<TextView
4549
android:id="@+id/timestamp"

0 commit comments

Comments
 (0)