cleaned up shared text

Daniel Gultsch created

Change summary

src/eu/siacs/conversations/services/XmppConnectionService.java | 10 -
src/eu/siacs/conversations/ui/ContactsActivity.java            |  8 
src/eu/siacs/conversations/ui/ConversationActivity.java        | 17 +++
src/eu/siacs/conversations/ui/ConversationFragment.java        | 20 ++-
src/eu/siacs/conversations/ui/ShareWithActivity.java           |  4 
src/eu/siacs/conversations/ui/XmppActivity.java                |  8 +
6 files changed, 41 insertions(+), 26 deletions(-)

Detailed changes

src/eu/siacs/conversations/services/XmppConnectionService.java 🔗

@@ -508,7 +508,7 @@ public class XmppConnectionService extends Service {
 	@Override
 	public int onStartCommand(Intent intent, int flags, int startId) {
 		this.wakeLock.acquire();
-		if ((intent.getAction()!=null)&&(intent.getAction().equals(ACTION_MERGE_PHONE_CONTACTS))) {
+		if ((intent!=null)&&(intent.getAction()!=null)&&(intent.getAction().equals(ACTION_MERGE_PHONE_CONTACTS))) {
 			mergePhoneContactsWithRoster();
 		}
 		ConnectivityManager cm = (ConnectivityManager) getApplicationContext()
@@ -1209,42 +1209,34 @@ public class XmppConnectionService extends Service {
 	}
 
 	public void requestPresenceUpdatesFrom(Contact contact) {
-		// Requesting a Subscription type=subscribe
 		PresencePacket packet = new PresencePacket();
 		packet.setAttribute("type", "subscribe");
 		packet.setAttribute("to", contact.getJid());
 		packet.setAttribute("from", contact.getAccount().getJid());
-		Log.d(LOGTAG, packet.toString());
 		contact.getAccount().getXmppConnection().sendPresencePacket(packet);
 	}
 
 	public void stopPresenceUpdatesFrom(Contact contact) {
-		// Unsubscribing type='unsubscribe'
 		PresencePacket packet = new PresencePacket();
 		packet.setAttribute("type", "unsubscribe");
 		packet.setAttribute("to", contact.getJid());
 		packet.setAttribute("from", contact.getAccount().getJid());
-		Log.d(LOGTAG, packet.toString());
 		contact.getAccount().getXmppConnection().sendPresencePacket(packet);
 	}
 
 	public void stopPresenceUpdatesTo(Contact contact) {
-		// Canceling a Subscription type=unsubscribed
 		PresencePacket packet = new PresencePacket();
 		packet.setAttribute("type", "unsubscribed");
 		packet.setAttribute("to", contact.getJid());
 		packet.setAttribute("from", contact.getAccount().getJid());
-		Log.d(LOGTAG, packet.toString());
 		contact.getAccount().getXmppConnection().sendPresencePacket(packet);
 	}
 
 	public void sendPresenceUpdatesTo(Contact contact) {
-		// type='subscribed'
 		PresencePacket packet = new PresencePacket();
 		packet.setAttribute("type", "subscribed");
 		packet.setAttribute("to", contact.getJid());
 		packet.setAttribute("from", contact.getAccount().getJid());
-		Log.d(LOGTAG, packet.toString());
 		contact.getAccount().getXmppConnection().sendPresencePacket(packet);
 		contact.resetOption(Contact.Options.PENDING_SUBSCRIPTION_REQUEST);
 	}

src/eu/siacs/conversations/ui/ContactsActivity.java 🔗

@@ -258,7 +258,7 @@ public class ContactsActivity extends XmppActivity {
 									conversation, subject.toString());
 							xmppConnectionService.inviteToConference(conversation,
 									selectedContacts);
-							switchToConversation(conversation, null);
+							switchToConversation(conversation, null,false);
 						}
 					});
 			builder.create().show();
@@ -467,7 +467,7 @@ public class ContactsActivity extends XmppActivity {
 		Conversation conversation = xmppConnectionService
 				.findOrCreateConversation(account, contact.getJid(), muc);
 
-		switchToConversation(conversation, null);
+		switchToConversation(conversation, null,false);
 	}
 
 	@Override
@@ -494,7 +494,7 @@ public class ContactsActivity extends XmppActivity {
 									.findOrCreateConversation(
 											accounts.get(which), finalJid,
 											false);
-							switchToConversation(conversation, null);
+							switchToConversation(conversation, null,false);
 							finish();
 						}
 					}).show();
@@ -502,7 +502,7 @@ public class ContactsActivity extends XmppActivity {
 					Conversation conversation = xmppConnectionService
 							.findOrCreateConversation(this.accounts.get(0),
 									jid, false);
-					switchToConversation(conversation, null);
+					switchToConversation(conversation, null,false);
 					finish();
 				}
 			}

src/eu/siacs/conversations/ui/ConversationActivity.java 🔗

@@ -621,6 +621,23 @@ public class ConversationActivity extends XmppActivity {
 		return super.onKeyDown(keyCode, event);
 	}
 
+	@Override
+	protected void onNewIntent (Intent intent) {
+		if ((Intent.ACTION_VIEW.equals(intent.getAction())&&(VIEW_CONVERSATION.equals(intent.getType())))) {
+			String convToView = (String) intent.getExtras().get(
+					CONVERSATION);
+
+			for (int i = 0; i < conversationList.size(); ++i) {
+				if (conversationList.get(i).getUuid().equals(convToView)) {
+					setSelectedConversation(conversationList.get(i));
+				}
+			}
+			paneShouldBeOpen = false;
+			String text = intent.getExtras().getString(TEXT, null);
+			swapConversationFragment().setText(text);
+		}
+	}
+	
 	@Override
 	public void onStart() {
 		super.onStart();

src/eu/siacs/conversations/ui/ConversationFragment.java 🔗

@@ -459,15 +459,11 @@ public class ConversationFragment extends Fragment {
 	}
 
 	protected void highlightInConference(String nick) {
-		if (chatMsg.getText().toString().isEmpty()) {
+		String oldString = chatMsg.getText().toString().trim();
+		if (oldString.isEmpty()) {
 			chatMsg.setText(nick+": ");
 		} else {
-			String oldString = chatMsg.getText().toString();
-			if (oldString.endsWith(" ")) {
-				chatMsg.setText(oldString+nick+" ");
-			} else {
-				chatMsg.setText(oldString+" "+nick+" ");
-			}
+			chatMsg.setText(oldString+" "+nick+" ");
 		}
 		int position = chatMsg.length();
 		Editable etext = chatMsg.getText();
@@ -510,10 +506,16 @@ public class ConversationFragment extends Fragment {
 		if (this.conversation == null) {
 			return;
 		}
+		String oldString = conversation.getNextMessage().trim();
 		if (this.pastedText == null) {
-			this.chatMsg.setText(conversation.getNextMessage());
+			this.chatMsg.setText(oldString);
 		} else {
-			chatMsg.setText(conversation.getNextMessage() + " " + pastedText);
+			
+			if (oldString.isEmpty()) {
+				chatMsg.setText(pastedText);
+			} else {
+				chatMsg.setText(oldString + " " + pastedText);
+			}
 			pastedText = null;
 		}
 		int position = chatMsg.length();

src/eu/siacs/conversations/ui/ShareWithActivity.java 🔗

@@ -80,7 +80,7 @@ public class ShareWithActivity extends XmppActivity {
 				@Override
 				public void onClick(View v) {
 					 String sharedText = getIntent().getStringExtra(Intent.EXTRA_TEXT);
-					 switchToConversation(conversation, sharedText);
+					 switchToConversation(conversation, sharedText,true);
 					 finish();
 				}
 			});
@@ -114,7 +114,7 @@ public class ShareWithActivity extends XmppActivity {
 				public void onClick(View v) {
 					 String sharedText = getIntent().getStringExtra(Intent.EXTRA_TEXT);
 					 Conversation conversation = xmppConnectionService.findOrCreateConversation(con.getAccount(), con.getJid(), false);
-					 switchToConversation(conversation, sharedText);
+					 switchToConversation(conversation, sharedText,true);
 					 finish();
 				}
 			});

src/eu/siacs/conversations/ui/XmppActivity.java 🔗

@@ -145,7 +145,7 @@ public abstract class XmppActivity extends Activity {
 		ExceptionHelper.init(getApplicationContext());
 	}
 	
-	public void switchToConversation(Conversation conversation, String text) {
+	public void switchToConversation(Conversation conversation, String text, boolean newTask) {
 		Intent viewConversationIntent = new Intent(this,
 				ConversationActivity.class);
 		viewConversationIntent.setAction(Intent.ACTION_VIEW);
@@ -155,8 +155,12 @@ public abstract class XmppActivity extends Activity {
 			viewConversationIntent.putExtra(ConversationActivity.TEXT, text);
 		}
 		viewConversationIntent.setType(ConversationActivity.VIEW_CONVERSATION);
-		viewConversationIntent.setFlags(viewConversationIntent.getFlags()
+		if (newTask) {
+			viewConversationIntent.setFlags(viewConversationIntent.getFlags() | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP |  Intent.FLAG_ACTIVITY_TASK_ON_HOME );
+		} else {
+			viewConversationIntent.setFlags(viewConversationIntent.getFlags()
 				| Intent.FLAG_ACTIVITY_CLEAR_TOP);
+		}
 		startActivity(viewConversationIntent);
 	}