|  |  |  | @ -6,7 +6,6 @@ import android.content.res.Resources | 
		
	
		
			
				|  |  |  |  | import android.database.Cursor | 
		
	
		
			
				|  |  |  |  | import android.graphics.Rect | 
		
	
		
			
				|  |  |  |  | import android.os.Bundle | 
		
	
		
			
				|  |  |  |  | import android.util.Log | 
		
	
		
			
				|  |  |  |  | import android.view.ActionMode | 
		
	
		
			
				|  |  |  |  | import android.view.Menu | 
		
	
		
			
				|  |  |  |  | import android.view.MenuItem | 
		
	
	
		
			
				
					|  |  |  | @ -23,6 +22,7 @@ import kotlinx.android.synthetic.main.view_input_bar_recording.* | 
		
	
		
			
				|  |  |  |  | import kotlinx.android.synthetic.main.view_input_bar_recording.view.* | 
		
	
		
			
				|  |  |  |  | import network.loki.messenger.R | 
		
	
		
			
				|  |  |  |  | import org.session.libsession.messaging.mentions.MentionsManager | 
		
	
		
			
				|  |  |  |  | import org.session.libsession.utilities.Util | 
		
	
		
			
				|  |  |  |  | import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity | 
		
	
		
			
				|  |  |  |  | import org.thoughtcrime.securesms.conversation.v2.input_bar.InputBarButton | 
		
	
		
			
				|  |  |  |  | import org.thoughtcrime.securesms.conversation.v2.input_bar.InputBarDelegate | 
		
	
	
		
			
				
					|  |  |  | @ -32,6 +32,8 @@ import org.thoughtcrime.securesms.conversation.v2.menus.ConversationActionModeCa | 
		
	
		
			
				|  |  |  |  | import org.thoughtcrime.securesms.conversation.v2.menus.ConversationMenuHelper | 
		
	
		
			
				|  |  |  |  | import org.thoughtcrime.securesms.conversation.v2.messages.VisibleMessageView | 
		
	
		
			
				|  |  |  |  | import org.thoughtcrime.securesms.database.DatabaseFactory | 
		
	
		
			
				|  |  |  |  | import org.thoughtcrime.securesms.database.DraftDatabase | 
		
	
		
			
				|  |  |  |  | import org.thoughtcrime.securesms.database.DraftDatabase.Drafts | 
		
	
		
			
				|  |  |  |  | import org.thoughtcrime.securesms.database.model.MessageRecord | 
		
	
		
			
				|  |  |  |  | import org.thoughtcrime.securesms.loki.utilities.toPx | 
		
	
		
			
				|  |  |  |  | import org.thoughtcrime.securesms.mms.GlideApp | 
		
	
	
		
			
				
					|  |  |  | @ -95,6 +97,7 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe | 
		
	
		
			
				|  |  |  |  |         setUpRecyclerView() | 
		
	
		
			
				|  |  |  |  |         setUpToolBar() | 
		
	
		
			
				|  |  |  |  |         setUpInputBar() | 
		
	
		
			
				|  |  |  |  |         restoreDraftIfNeeded() | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     private fun setUpRecyclerView() { | 
		
	
	
		
			
				
					|  |  |  | @ -144,11 +147,24 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe | 
		
	
		
			
				|  |  |  |  |         cameraButton.layoutParams = RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT) | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     private fun restoreDraftIfNeeded() { | 
		
	
		
			
				|  |  |  |  |         val draftDB = DatabaseFactory.getDraftDatabase(this) | 
		
	
		
			
				|  |  |  |  |         val drafts = draftDB.getDrafts(threadID) | 
		
	
		
			
				|  |  |  |  |         draftDB.clearDrafts(threadID) | 
		
	
		
			
				|  |  |  |  |         val text = drafts.find { it.type == DraftDatabase.Draft.TEXT }?.value ?: return | 
		
	
		
			
				|  |  |  |  |         inputBar.text = text | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     override fun onPrepareOptionsMenu(menu: Menu): Boolean { | 
		
	
		
			
				|  |  |  |  |         ConversationMenuHelper.onPrepareOptionsMenu(menu, menuInflater, thread, this) { onOptionsItemSelected(it) } | 
		
	
		
			
				|  |  |  |  |         super.onPrepareOptionsMenu(menu) | 
		
	
		
			
				|  |  |  |  |         return true | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     override fun onDestroy() { | 
		
	
		
			
				|  |  |  |  |         saveDraft() | 
		
	
		
			
				|  |  |  |  |         super.onDestroy() | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |     // endregion | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     // region Updating & Animation | 
		
	
	
		
			
				
					|  |  |  | @ -379,4 +395,15 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe | 
		
	
		
			
				|  |  |  |  |         return hitRect.contains(x, y) | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |     // endregion | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     // region General | 
		
	
		
			
				|  |  |  |  |     private fun saveDraft() { | 
		
	
		
			
				|  |  |  |  |         val text = inputBar.text.trim() | 
		
	
		
			
				|  |  |  |  |         if (text.isEmpty()) { return } | 
		
	
		
			
				|  |  |  |  |         val drafts = Drafts() | 
		
	
		
			
				|  |  |  |  |         drafts.add(DraftDatabase.Draft(DraftDatabase.Draft.TEXT, text)) | 
		
	
		
			
				|  |  |  |  |         val draftDB = DatabaseFactory.getDraftDatabase(this) | 
		
	
		
			
				|  |  |  |  |         draftDB.insertDrafts(threadID, drafts) | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |     // endregion | 
		
	
		
			
				|  |  |  |  | } |