From 77d73fa572e5a05923ebecd4009203cac5075969 Mon Sep 17 00:00:00 2001 From: Moxie Marlinspike Date: Thu, 1 Oct 2015 16:48:57 -0700 Subject: [PATCH] Correctly display call actions in thread list Fixes #4170 // FREEBIE --- res/values/strings.xml | 4 ++++ .../database/model/MessageRecord.java | 6 +++--- .../database/model/ThreadRecord.java | 6 ++++++ .../securesms/mms/AttachmentManager.java | 20 +++++++++++-------- 4 files changed, 25 insertions(+), 11 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 4ca170d2bf..84c64d00f0 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -290,6 +290,10 @@ Received a message encrypted using an old version of Signal that is no longer supported. Please ask the sender to upgrade to the most recent version and resend the message. You have left the group. Updated the group. + %s called you + Called %s + Missed call from %s + Passphrases don\'t match! diff --git a/src/org/thoughtcrime/securesms/database/model/MessageRecord.java b/src/org/thoughtcrime/securesms/database/model/MessageRecord.java index e1f9afa7d2..69b7d1f7a3 100644 --- a/src/org/thoughtcrime/securesms/database/model/MessageRecord.java +++ b/src/org/thoughtcrime/securesms/database/model/MessageRecord.java @@ -116,11 +116,11 @@ public abstract class MessageRecord extends DisplayRecord { } else if (isGroupQuit()) { return emphasisAdded(context.getString(R.string.ConversationItem_group_action_left, getIndividualRecipient().toShortString())); } else if (isIncomingCall()) { - return emphasisAdded(String.format("%s called you", getIndividualRecipient().toShortString())); + return emphasisAdded(context.getString(R.string.MessageRecord_s_called_you, getIndividualRecipient().toShortString())); } else if (isOutgoingCall()) { - return emphasisAdded(String.format("Called %s", getIndividualRecipient().toShortString())); + return emphasisAdded(context.getString(R.string.MessageRecord_called_s, getIndividualRecipient().toShortString())); } else if (isMissedCall()) { - return emphasisAdded(String.format("Missed call from %s", getIndividualRecipient().toShortString())); + return emphasisAdded(context.getString(R.string.MessageRecord_missed_call_from, getIndividualRecipient().toShortString())); } else if (getBody().getBody().length() > MAX_DISPLAY_LENGTH) { return new SpannableString(getBody().getBody().substring(0, MAX_DISPLAY_LENGTH)); } diff --git a/src/org/thoughtcrime/securesms/database/model/ThreadRecord.java b/src/org/thoughtcrime/securesms/database/model/ThreadRecord.java index def8f3ece8..da2d23668c 100644 --- a/src/org/thoughtcrime/securesms/database/model/ThreadRecord.java +++ b/src/org/thoughtcrime/securesms/database/model/ThreadRecord.java @@ -75,6 +75,12 @@ public class ThreadRecord extends DisplayRecord { } else if (MmsSmsColumns.Types.isDraftMessageType(type)) { String draftText = context.getString(R.string.ThreadRecord_draft); return emphasisAdded(draftText + " " + getBody().getBody(), 0, draftText.length()); + } else if (SmsDatabase.Types.isOutgoingCall(type)) { + return emphasisAdded(context.getString(R.string.MessageRecord_called_s, getRecipients().getPrimaryRecipient().getName())); + } else if (SmsDatabase.Types.isIncomingCall(type)) { + return emphasisAdded(context.getString(R.string.MessageRecord_s_called_you, getRecipients().getPrimaryRecipient().getName())); + } else if (SmsDatabase.Types.isMissedCall(type)) { + return emphasisAdded(context.getString(R.string.MessageRecord_missed_call_from, getRecipients().getPrimaryRecipient().getName())); } else { if (TextUtils.isEmpty(getBody().getBody())) { return new SpannableString(context.getString(R.string.MessageNotifier_no_subject)); diff --git a/src/org/thoughtcrime/securesms/mms/AttachmentManager.java b/src/org/thoughtcrime/securesms/mms/AttachmentManager.java index 3ede7180eb..c88eccd5e0 100644 --- a/src/org/thoughtcrime/securesms/mms/AttachmentManager.java +++ b/src/org/thoughtcrime/securesms/mms/AttachmentManager.java @@ -33,8 +33,6 @@ import android.view.animation.AlphaAnimation; import android.view.animation.Animation; import android.widget.Toast; -import junit.framework.Assert; - import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.components.ThumbnailView; import org.thoughtcrime.securesms.crypto.MasterSecret; @@ -69,9 +67,12 @@ public class AttachmentManager { AlphaAnimation animation = new AlphaAnimation(1.0f, 0.0f); animation.setDuration(200); animation.setAnimationListener(new Animation.AnimationListener() { - @Override public void onAnimationStart(Animation animation) {} - @Override public void onAnimationRepeat(Animation animation) {} - @Override public void onAnimationEnd(Animation animation) { + @Override + public void onAnimationStart(Animation animation) {} + @Override + public void onAnimationRepeat(Animation animation) {} + @Override + public void onAnimationEnd(Animation animation) { slideDeck.clear(); thumbnail.clear(); attachmentView.setVisibility(View.GONE); @@ -94,7 +95,8 @@ public class AttachmentManager { final boolean isCapture) { new AsyncTask() { - @Override protected void onPreExecute() { + @Override + protected void onPreExecute() { slideDeck.clear(); thumbnail.clear(); thumbnail.showProgressSpinner(); @@ -104,7 +106,8 @@ public class AttachmentManager { if (!uri.equals(captureUri)) cleanup(); } - @Override protected @Nullable Slide doInBackground(Void... params) { + @Override + protected @Nullable Slide doInBackground(Void... params) { long start = System.currentTimeMillis(); try { final long mediaSize = MediaUtil.getMediaSize(context, masterSecret, uri); @@ -117,7 +120,8 @@ public class AttachmentManager { } } - @Override protected void onPostExecute(@Nullable final Slide slide) { + @Override + protected void onPostExecute(@Nullable final Slide slide) { if (slide == null) { attachmentView.setVisibility(View.GONE); Toast.makeText(context,