diff --git a/res/layout/conversation_activity.xml b/res/layout/conversation_activity.xml
index 56612de6cb..eba5f98e34 100644
--- a/res/layout/conversation_activity.xml
+++ b/res/layout/conversation_activity.xml
@@ -104,6 +104,11 @@
android:indeterminate="false"
android:progress="80" />
+
+
-
-
-
-
-
+
+
+ android:layout_height="1px"
+ android:background="@color/separator" />
+ android:orientation="vertical"
+ android:padding="@dimen/medium_spacing"
+ android:gravity="center_horizontal">
-
-
-
+ android:text="Session Out of Sync"
+ android:textColor="@color/text"
+ android:textStyle="bold"
+ android:textSize="@dimen/medium_font_size" />
-
+ android:layout_marginTop="@dimen/small_spacing"
+ android:text="@string/session_restore_banner_message"
+ android:textColor="@color/text"
+ android:textSize="@dimen/small_font_size"
+ android:textAlignment="center" />
+
+
+
+
+
+
+
+
+
+
+
diff --git a/res/values/strings.xml b/res/values/strings.xml
index db84bab92d..71c2c3e4ab 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -735,7 +735,7 @@
Bad encrypted message
Message encrypted for non-existing session
- You have sent a session restore request to %s
+ You have sent a session restoration request to %s
Bad encrypted MMS message
@@ -1653,9 +1653,9 @@
Device unlinked
This device has been successfully unlinked
- Would you like to start a new session with %s?
- Restore session
+ Would you like to restore your session with %s?
Dismiss
+ Restore
diff --git a/src/org/thoughtcrime/securesms/conversation/ConversationActivity.java b/src/org/thoughtcrime/securesms/conversation/ConversationActivity.java
index e3a96082f3..77bdda8891 100644
--- a/src/org/thoughtcrime/securesms/conversation/ConversationActivity.java
+++ b/src/org/thoughtcrime/securesms/conversation/ConversationActivity.java
@@ -1563,12 +1563,12 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
protected void updateSessionRestoreBanner() {
Set devices = DatabaseFactory.getLokiThreadDatabase(this).getSessionRestoreDevices(threadId);
- if (devices.size() > 0) {
+// if (devices.size() > 0) {
sessionRestoreBannerView.update(recipient);
sessionRestoreBannerView.show();
- } else {
- sessionRestoreBannerView.hide();
- }
+// } else {
+// sessionRestoreBannerView.hide();
+// }
}
private void updateDefaultSubscriptionId(Optional defaultSubscriptionId) {
@@ -1668,7 +1668,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
searchNav = ViewUtil.findById(this, R.id.conversation_search_nav);
mentionCandidateSelectionViewContainer = ViewUtil.findById(this, R.id.mentionCandidateSelectionViewContainer);
mentionCandidateSelectionView = ViewUtil.findById(this, R.id.userSelectionView);
- sessionRestoreBannerView = ViewUtil.findById(this, R.id.sessionRestoreBannerView);
+ sessionRestoreBannerView = ViewUtil.findById(this, R.id.sessionRestoreBannerView);
messageStatusProgressBar = ViewUtil.findById(this, R.id.messageStatusProgressBar);
muteIndicatorImageView = ViewUtil.findById(this, R.id.muteIndicatorImageView);
actionBarSubtitleTextView = ViewUtil.findById(this, R.id.subtitleTextView);
@@ -3302,17 +3302,16 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
public void restoreSession() {
// Loki - User clicked restore session
- if (!recipient.isGroupRecipient()) {
- LokiThreadDatabase lokiThreadDatabase = DatabaseFactory.getLokiThreadDatabase(this);
- SmsDatabase database = DatabaseFactory.getSmsDatabase(this);
- Set devices = lokiThreadDatabase.getSessionRestoreDevices(threadId);
- for (String device : devices) { MessageSender.sendRestoreSessionMessage(this, device); }
- long messageId = database.insertMessageOutbox(threadId, new OutgoingTextMessage(recipient,"", 0, 0), false, System.currentTimeMillis(), null);
- if (messageId > -1) {
- database.markAsLokiSessionRestoreSent(messageId);
- }
- lokiThreadDatabase.removeAllSessionRestoreDevices(threadId);
- updateSessionRestoreBanner();
- }
+ if (recipient.isGroupRecipient()) { return; }
+ LokiThreadDatabase lokiThreadDatabase = DatabaseFactory.getLokiThreadDatabase(this);
+ SmsDatabase smsDatabase = DatabaseFactory.getSmsDatabase(this);
+ Set devices = lokiThreadDatabase.getSessionRestoreDevices(threadId);
+ for (String device : devices) { MessageSender.sendRestoreSessionMessage(this, device); }
+ long messageId = smsDatabase.insertMessageOutbox(threadId, new OutgoingTextMessage(recipient,"", 0, 0), false, System.currentTimeMillis(), null);
+ if (messageId > -1) {
+ smsDatabase.markAsLokiSessionRestoreSent(messageId);
+ }
+ lokiThreadDatabase.removeAllSessionRestoreDevices(threadId);
+ updateSessionRestoreBanner();
}
}
diff --git a/src/org/thoughtcrime/securesms/conversation/ConversationAdapter.java b/src/org/thoughtcrime/securesms/conversation/ConversationAdapter.java
index 21e20a6301..90b0db2fb9 100644
--- a/src/org/thoughtcrime/securesms/conversation/ConversationAdapter.java
+++ b/src/org/thoughtcrime/securesms/conversation/ConversationAdapter.java
@@ -206,7 +206,6 @@ public class ConversationAdapter
if (conversationItem instanceof ConversationItem) {
((ConversationItem)conversationItem).friendRequestViewDelegate = this.friendRequestViewDelegate;
}
-
conversationItem.bind(messageRecord,
Optional.fromNullable(previousRecord),
Optional.fromNullable(nextRecord),
diff --git a/src/org/thoughtcrime/securesms/loki/SessionRestoreBannerView.kt b/src/org/thoughtcrime/securesms/loki/SessionRestoreBannerView.kt
index c14c64c3d4..0b8991077f 100644
--- a/src/org/thoughtcrime/securesms/loki/SessionRestoreBannerView.kt
+++ b/src/org/thoughtcrime/securesms/loki/SessionRestoreBannerView.kt
@@ -10,18 +10,14 @@ import kotlinx.android.synthetic.main.session_restore_banner.view.*
import network.loki.messenger.R
import org.thoughtcrime.securesms.recipients.Recipient
-/**
- * View to display actionable reminders to the user
- */
-class SessionRestoreBannerView(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : LinearLayout(context, attrs, defStyleAttr) {
+class SessionRestoreBannerView : LinearLayout {
lateinit var recipient: Recipient
var onDismiss: (() -> Unit)? = null
var onRestore: (() -> Unit)? = null
- // region Initialization
- constructor(context: Context, attrs: AttributeSet?) : this(context, attrs, 0)
- constructor(context: Context) : this(context, null)
- // endregion
+ constructor(context: Context) : super(context, null)
+ constructor(context: Context, attrs: AttributeSet?) : super(context, attrs, 0)
+ constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
init {
LayoutInflater.from(context).inflate(R.layout.session_restore_banner, this, true)
@@ -31,7 +27,7 @@ class SessionRestoreBannerView(context: Context, attrs: AttributeSet?, defStyleA
fun update(recipient: Recipient) {
this.recipient = recipient
- restoreText.text = context.getString(R.string.session_restore_banner_message, recipient.toShortString())
+ messageTextView.text = context.getString(R.string.session_restore_banner_message, recipient.toShortString())
}
fun show() {