conversation: persist messages by contact
Change-Id: I296b8ae523cda5b80feb648eaea9698ede091d9e
Reviewed-by: Sebastien Blin <sebastien.blin@savoirfairelinux.com>
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/ConversationFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/ConversationFragment.java
index b261c20..86487f2 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/ConversationFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/ConversationFragment.java
@@ -24,6 +24,7 @@
import android.content.ClipData;
import android.content.Context;
import android.content.Intent;
+import android.content.SharedPreferences;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.design.widget.Snackbar;
@@ -36,6 +37,8 @@
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.SimpleItemAnimator;
+import android.text.Editable;
+import android.text.TextWatcher;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
@@ -98,6 +101,7 @@
public static final String KEY_CONTACT_RING_ID = BuildConfig.APPLICATION_ID + "CONTACT_RING_ID";
public static final String KEY_ACCOUNT_ID = BuildConfig.APPLICATION_ID + "ACCOUNT_ID";
+ public static final String KEY_PREFERENCE_PENDING_MESSAGE = "pendingMessage";
private static final String CONVERSATION_DELETE = "CONVERSATION_DELETE";
@@ -150,6 +154,8 @@
private ConversationAdapter mAdapter = null;
private NumberAdapter mNumberAdapter = null;
+ private SharedPreferences mPreferences;
+
private File mCurrentPhoto = null;
private static int getIndex(Spinner spinner, Uri myString) {
@@ -200,6 +206,25 @@
e.printStackTrace();
}
});
+ if (mPreferences != null) {
+ String pendingMessage = mPreferences.getString(KEY_PREFERENCE_PENDING_MESSAGE, null);
+ if (pendingMessage != null)
+ mMsgEditTxt.setText(pendingMessage);
+ }
+ mMsgEditTxt.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {}
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ if (mPreferences != null) {
+ mPreferences.edit().putString(KEY_PREFERENCE_PENDING_MESSAGE, s.toString()).apply();
+ }
+ }
+ });
if (mTopPane != null) {
mTopPane.setVisibility(View.GONE);
@@ -475,6 +500,7 @@
String contactRingID = getArguments().getString(KEY_CONTACT_RING_ID);
String accountId = getArguments().getString(KEY_ACCOUNT_ID);
mAdapter = new ConversationAdapter(this, presenter);
+ mPreferences = getActivity().getSharedPreferences(accountId + "_" + contactRingID, Context.MODE_PRIVATE);
presenter.init(contactRingID, accountId);
}