From 8c5208bacd95ebd1ad6a6c192e536fd1ed47bfe2 Mon Sep 17 00:00:00 2001 From: steckbrief Date: Wed, 2 Aug 2017 11:49:12 +0200 Subject: Implements FS#247 and FS#248: Show online status and typing notification in title --- .../conversationsplus/ui/ConversationActivity.java | 57 ++++++++++++++++------ 1 file changed, 43 insertions(+), 14 deletions(-) (limited to 'src/main/java/de/thedevstack/conversationsplus/ui/ConversationActivity.java') diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/ConversationActivity.java b/src/main/java/de/thedevstack/conversationsplus/ui/ConversationActivity.java index ce1eb439..0167ef4b 100644 --- a/src/main/java/de/thedevstack/conversationsplus/ui/ConversationActivity.java +++ b/src/main/java/de/thedevstack/conversationsplus/ui/ConversationActivity.java @@ -11,6 +11,7 @@ import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.content.IntentSender.SendIntentException; import android.content.pm.PackageManager; +import android.graphics.Typeface; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -32,6 +33,7 @@ import android.widget.ArrayAdapter; import android.widget.CheckBox; import android.widget.PopupMenu; import android.widget.PopupMenu.OnMenuItemClickListener; +import android.widget.TextView; import android.widget.Toast; import net.java.otr4j.session.SessionStatus; @@ -44,8 +46,11 @@ import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; import de.thedevstack.android.logcat.Logging; +import de.thedevstack.conversationsplus.entities.Presence; import de.thedevstack.conversationsplus.services.filetransfer.FileTransferManager; import de.thedevstack.conversationsplus.utils.AccountUtil; +import de.thedevstack.conversationsplus.utils.UIHelper; +import de.thedevstack.conversationsplus.xmpp.chatstate.ChatState; import de.timroes.android.listview.EnhancedListView; import de.thedevstack.conversationsplus.Config; @@ -353,20 +358,44 @@ public class ConversationActivity extends XmppActivity final ActionBar ab = getActionBar(); final Conversation conversation = getSelectedConversation(); if (ab != null) { - if (titleShouldBeName && conversation != null) { - ab.setDisplayHomeAsUpEnabled(true); - ab.setHomeButtonEnabled(true); - if (conversation.getMode() == Conversation.MODE_SINGLE || ConversationsPlusPreferences.useSubject()) { - ab.setTitle(conversation.getName()); - } else { - ab.setTitle(conversation.getJid().toBareJid().toString()); - } - } else { - ab.setDisplayHomeAsUpEnabled(false); - ab.setHomeButtonEnabled(false); - ab.setTitle(R.string.app_name); - } - } + if (titleShouldBeName && conversation != null) { + if ((ab.getDisplayOptions() & ActionBar.DISPLAY_HOME_AS_UP) != ActionBar.DISPLAY_HOME_AS_UP) { + ab.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_TITLE); + } + ab.setDisplayShowTitleEnabled(false); + ab.setDisplayShowCustomEnabled(true); + ab.setCustomView(R.layout.actionbar_title); + TextView abtitle = (TextView) findViewById(R.id.abTitle); + TextView subtitle = (TextView) findViewById(R.id.abSubstitle); + abtitle.setText(conversation.getName()); + //abtitle.setOnClickListener(this); + abtitle.setSelected(true); + if (conversation.getMode() == Conversation.MODE_SINGLE) { + ChatState state = conversation.getIncomingChatState(); + if (state == ChatState.COMPOSING) { + subtitle.setText(getString(R.string.is_typing)); + subtitle.setSelected(true); + subtitle.setTypeface(null, Typeface.BOLD_ITALIC); + //absubtitle.setOnClickListener(this); + } else if (state == ChatState.PAUSED) { + subtitle.setText(R.string.contact_paused_typing); + subtitle.setTypeface(null, Typeface.BOLD_ITALIC); + } else { + subtitle.setText(UIHelper.getStatusText(conversation.getContact().getMostAvailableStatus())); + } + } else { + } + + } else { + if ((ab.getDisplayOptions() & ActionBar.DISPLAY_HOME_AS_UP) == ActionBar.DISPLAY_HOME_AS_UP) { + ab.setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE); + } + ab.setDisplayShowTitleEnabled(true); + ab.setDisplayShowCustomEnabled(false); + ab.setTitle(R.string.app_name); + ab.setSubtitle(null); + } + } } private void openConversation() { -- cgit v1.2.3