Skip to content

Commit

Permalink
make date and system messages more visible, closes #98
Browse files Browse the repository at this point in the history
  • Loading branch information
r10s committed Dec 6, 2018
1 parent 323ed1b commit 245982d
Show file tree
Hide file tree
Showing 7 changed files with 45 additions and 171 deletions.
14 changes: 10 additions & 4 deletions res/layout/conversation_item_header.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,26 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
android:paddingTop="12dp"
android:paddingTop="13dp"
android:paddingBottom="13dp"
android:paddingLeft="28dp"
android:paddingRight="28dp">

<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
style="@style/Signal.Text.Caption"
style="@style/Delta.Text.UpdateHeader"
android:textStyle="bold"
android:textColor="?conversation_item_update_text_color"
android:textAllCaps="true"
android:background="?attr/conversation_item_update_bg_color"
android:paddingLeft="10dp"
android:paddingTop="3dp"
android:paddingRight="10dp"
android:paddingBottom="3dp"
tools:text="March 1, 2015" />

</LinearLayout>
62 changes: 12 additions & 50 deletions res/layout/conversation_item_update.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,38 +9,10 @@
android:focusable="true"
android:gravity="center"
android:orientation="vertical"
android:paddingBottom="6dp"
android:paddingTop="13dp"
android:paddingBottom="13dp"
android:paddingLeft="28dp"
android:paddingRight="28dp"
android:paddingTop="8dp">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="7dp"
android:layout_marginTop="12dp"
android:gravity="center">

<ImageView
android:id="@+id/conversation_update_icon"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="center_vertical"
android:layout_marginEnd="6dp"
android:layout_marginRight="6dp"
android:src="@drawable/ic_timer" />

<TextView
android:id="@+id/conversation_update_title"
style="@style/Signal.Text.Caption"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAllCaps="true"
android:textColor="?conversation_item_update_text_color"
tools:text="1 hour" />

</LinearLayout>

android:paddingRight="28dp">

<LinearLayout
android:layout_width="wrap_content"
Expand All @@ -51,29 +23,19 @@

<TextView
android:id="@+id/conversation_update_body"
style="@style/Signal.Text.Preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autoLink="all"
android:gravity="center"
android:linksClickable="true"
android:textColor="?attr/conversation_item_update_text_color"
tools:text="Gwen Stacy set the disappearing message timer to 1 hour" />

<TextView
android:id="@+id/conversation_update_date"
style="@style/Signal.Text.Caption"
style="@style/Delta.Text.UpdateHeader"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="6dp"
android:autoLink="none"
android:gravity="center"
android:linksClickable="false"
android:minWidth="15sp"
android:textAllCaps="true"
android:textColor="?conversation_item_update_text_color"
tools:text="30 min ago" />
android:gravity="center"
android:textColor="?attr/conversation_item_update_text_color"
android:background="?attr/conversation_item_update_bg_color"
android:paddingLeft="10dp"
android:paddingTop="3dp"
android:paddingRight="10dp"
android:paddingBottom="3dp"
tools:text="Gwen Stacy added to group" />

</LinearLayout>

Expand Down
3 changes: 2 additions & 1 deletion res/values/attrs.xml
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,8 @@
<attr name="conversation_item_outgoing_text_secondary_color" format="reference|color"/>
<attr name="conversation_item_sent_indicator_text_background" format="reference" />
<attr name="conversation_item_sent_icon_color" format="color" />
<attr name="conversation_item_update_text_color" format="reference"/>
<attr name="conversation_item_update_bg_color" format="reference|color"/>
<attr name="conversation_item_update_text_color" format="reference|color"/>
<attr name="conversation_item_last_seen_text_color" format="reference"/>
<attr name="conversation_item_last_seen_line_color" format="reference"/>
<attr name="conversation_item_date_line_color" format="reference"/>
Expand Down
6 changes: 6 additions & 0 deletions res/values/text_styles.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,12 @@
<item name="android:letterSpacing">0.03</item>
</style>

<style name="Delta.Text.UpdateHeader" parent="Base.TextAppearance.AppCompat.Caption">
<item name="android:textSize">14sp</item>
<item name="android:lineSpacingExtra">3sp</item>
<item name="android:fontFamily">sans-serif</item>
<item name="android:letterSpacing">0.01</item>
</style>

<style name="Signal.Text.Caption.MessageSent">
<item name="android:textColor">?conversation_item_outgoing_text_secondary_color</item>
Expand Down
16 changes: 12 additions & 4 deletions res/values/themes.xml
Original file line number Diff line number Diff line change
Expand Up @@ -191,11 +191,15 @@
<item name="conversation_item_incoming_bubble_border_color">#33000000</item>
<item name="conversation_item_incoming_text_primary_color">@color/black</item>
<item name="conversation_item_incoming_text_secondary_color">#ff9ea7b0</item>

<item name="conversation_item_outgoing_bubble_color">#ffefffde</item>
<item name="conversation_item_outgoing_bubble_border_color">#80efffde</item>
<item name="conversation_item_outgoing_text_primary_color">@color/black</item>
<item name="conversation_item_outgoing_text_secondary_color">#ff70b15c</item>
<item name="conversation_item_update_text_color">@color/core_light_60</item>

<item name="conversation_item_update_bg_color">#44000000</item>
<item name="conversation_item_update_text_color">#ffffffff</item>

<item name="conversation_item_last_seen_text_color">@color/core_light_90</item>
<item name="conversation_item_last_seen_line_color">@color/core_light_60</item>
<item name="conversation_item_date_line_color">@color/core_light_45</item>
Expand Down Expand Up @@ -295,12 +299,16 @@
<item name="conversation_item_incoming_bubble_border_color">#80414347</item>
<item name="conversation_item_incoming_text_primary_color">@color/core_dark_05</item>
<item name="conversation_item_incoming_text_secondary_color">#efefef</item>
<item name="conversation_item_outgoing_text_primary_color">@color/core_dark_05</item>
<item name="conversation_item_outgoing_text_secondary_color">@color/core_dark_30</item>

<item name="conversation_item_outgoing_bubble_color">#ff364e59</item>
<item name="conversation_item_outgoing_bubble_border_color">#80364e59</item>
<item name="conversation_item_sent_indicator_text_background">@drawable/conversation_item_sent_indicator_text_shape_dark</item>
<item name="conversation_item_outgoing_text_primary_color">@color/core_dark_05</item>
<item name="conversation_item_outgoing_text_secondary_color">@color/core_dark_30</item>

<item name="conversation_item_update_bg_color">#44000000</item>
<item name="conversation_item_update_text_color">@color/core_light_35</item>

<item name="conversation_item_sent_indicator_text_background">@drawable/conversation_item_sent_indicator_text_shape_dark</item>
<item name="conversation_item_last_seen_text_color">@color/core_dark_30</item>
<item name="conversation_item_last_seen_line_color">@color/core_dark_30</item>
<item name="conversation_item_date_line_color">@color/core_dark_55</item>
Expand Down
1 change: 0 additions & 1 deletion src/org/thoughtcrime/securesms/ConversationAdapter.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
import org.thoughtcrime.securesms.ConversationAdapter.HeaderViewHolder;
import org.thoughtcrime.securesms.connect.ApplicationDcContext;
import org.thoughtcrime.securesms.connect.DcHelper;
import org.thoughtcrime.securesms.database.model.MessageRecord;
import org.thoughtcrime.securesms.mms.GlideRequests;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.util.DateUtils;
Expand Down
114 changes: 3 additions & 111 deletions src/org/thoughtcrime/securesms/ConversationUpdateItem.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,19 +26,12 @@
import java.util.Set;

public class ConversationUpdateItem extends LinearLayout
implements RecipientModifiedListener, BindableConversationItem
implements BindableConversationItem
{
private static final String TAG = ConversationUpdateItem.class.getSimpleName();

private Set<DcMsg> batchSelected;

private ImageView icon;
private TextView title;
private TextView body;
private TextView date;
private Recipient sender;
private DcMsg messageRecord;
private Locale locale;

public ConversationUpdateItem(Context context) {
super(context);
Expand All @@ -52,10 +45,7 @@ public ConversationUpdateItem(Context context, AttributeSet attrs) {
public void onFinishInflate() {
super.onFinishInflate();

this.icon = findViewById(R.id.conversation_update_icon);
this.title = findViewById(R.id.conversation_update_title);
this.body = findViewById(R.id.conversation_update_body);
this.date = findViewById(R.id.conversation_update_date);
}

@Override
Expand Down Expand Up @@ -84,114 +74,16 @@ public DcMsg getMessageRecord() {

private void bind(@NonNull DcMsg messageRecord, @NonNull Locale locale) {
this.messageRecord = messageRecord;
this.sender = Recipient.fromMsg(DcHelper.getContext(getContext()), messageRecord.getId());
this.locale = locale;

this.sender.addListener(this);

if (messageRecord.isGroupAction()) setGroupRecord(messageRecord);
else if (messageRecord.isJoined()) setJoinedRecord(messageRecord);
else if (messageRecord.isExpirationTimerUpdate()) setTimerRecord(messageRecord);
else if (messageRecord.isEndSession()) setEndSessionRecord(messageRecord);
else if (messageRecord.isIdentityUpdate()) setIdentityRecord(messageRecord);
else if (messageRecord.isIdentityVerified() ||
messageRecord.isIdentityDefault()) setIdentityVerifyUpdate(messageRecord);
else setGenericInfoRecord(messageRecord);

if (batchSelected.contains(messageRecord)) setSelected(true);
else setSelected(false);
}

private void setTimerRecord(final DcMsg messageRecord) {
if (messageRecord.getExpiresIn() > 0) {
icon.setImageResource(R.drawable.ic_timer);
icon.setColorFilter(new PorterDuffColorFilter(Color.parseColor("#757575"), PorterDuff.Mode.MULTIPLY));
} else {
icon.setImageResource(R.drawable.ic_timer_disabled);
icon.setColorFilter(new PorterDuffColorFilter(Color.parseColor("#757575"), PorterDuff.Mode.MULTIPLY));
}

title.setText(ExpirationUtil.getExpirationDisplayValue(getContext(), (int)(messageRecord.getExpiresIn() / 1000)));
body.setText(messageRecord.getDisplayBody());

title.setVisibility(VISIBLE);
body.setVisibility(VISIBLE);
date.setVisibility(GONE);
}

private void setIdentityRecord(final DcMsg messageRecord) {
icon.setImageResource(R.drawable.ic_security_white_24dp);
icon.setColorFilter(new PorterDuffColorFilter(Color.parseColor("#757575"), PorterDuff.Mode.MULTIPLY));
body.setText(messageRecord.getDisplayBody());

title.setVisibility(GONE);
body.setVisibility(VISIBLE);
date.setVisibility(GONE);
}

private void setIdentityVerifyUpdate(final DcMsg messageRecord) {
if (messageRecord.isIdentityVerified()) icon.setImageResource(R.drawable.ic_check_white_24dp);
else icon.setImageResource(R.drawable.ic_info_outline_white_24dp);

icon.setColorFilter(new PorterDuffColorFilter(Color.parseColor("#757575"), PorterDuff.Mode.MULTIPLY));
body.setText(messageRecord.getDisplayBody());

title.setVisibility(GONE);
body.setVisibility(VISIBLE);
date.setVisibility(GONE);
}

private void setGroupRecord(DcMsg messageRecord) {
icon.setImageResource(R.drawable.ic_group_grey600_24dp);
icon.clearColorFilter();

body.setText(messageRecord.getDisplayBody());

title.setVisibility(GONE);
body.setVisibility(VISIBLE);
date.setVisibility(GONE);
}

private void setJoinedRecord(DcMsg messageRecord) {
icon.setImageResource(R.drawable.ic_favorite_grey600_24dp);
icon.clearColorFilter();
body.setText(messageRecord.getDisplayBody());

title.setVisibility(GONE);
body.setVisibility(VISIBLE);
date.setVisibility(GONE);
}

private void setEndSessionRecord(DcMsg messageRecord) {
icon.setImageResource(R.drawable.ic_refresh_white_24dp);
icon.setColorFilter(new PorterDuffColorFilter(Color.parseColor("#757575"), PorterDuff.Mode.MULTIPLY));
body.setText(messageRecord.getDisplayBody());

title.setVisibility(GONE);
body.setVisibility(VISIBLE);
date.setVisibility(GONE);
setGenericInfoRecord(messageRecord);
setSelected(batchSelected.contains(messageRecord));
}

private void setGenericInfoRecord(DcMsg messageRecord) {
icon.setImageResource(R.drawable.ic_group_grey600_24dp);
icon.clearColorFilter();

body.setText(messageRecord.getDisplayBody());

title.setVisibility(GONE);
body.setVisibility(VISIBLE);
date.setVisibility(GONE);
}

@Override
public void onModified(Recipient recipient) {
Util.runOnMain(() -> bind(messageRecord, locale));
}

@Override
public void unbind() {
if (sender != null) {
sender.removeListener(this);
}
}
}

0 comments on commit 245982d

Please sign in to comment.