listen by default for incoming otr session
authorNikita Kozlov <nikita@beem-project.com>
Mon, 22 Aug 2011 22:35:31 +0200
changeset 916 211f45e7bbd3
parent 915 defdbe820907
child 917 a4bbcfbd0a91
listen by default for incoming otr session
default.properties
res/menu/chat.xml
src/com/beem/project/beem/otr/BeemOtrManager.java
src/com/beem/project/beem/service/BeemChatManager.java
src/com/beem/project/beem/service/ChatAdapter.java
src/com/beem/project/beem/service/aidl/IChat.aidl
src/com/beem/project/beem/ui/Chat.java
--- a/default.properties	Wed May 25 23:13:35 2011 +0200
+++ b/default.properties	Mon Aug 22 22:35:31 2011 +0200
@@ -10,4 +10,4 @@
 # Indicates whether an apk should be generated for each density.
 split.density=false
 # Project target.
-target=android-10
+target=android-9
--- a/res/menu/chat.xml	Wed May 25 23:13:35 2011 +0200
+++ b/res/menu/chat.xml	Mon Aug 22 22:35:31 2011 +0200
@@ -12,8 +12,6 @@
 		<menu>
 			<item android:id="@+id/chat_menu_start_otr_session"
 				android:visible="true" android:title="@string/chat_menu_start_otr_session" />
-			<item android:id="@+id/chat_menu_listen_otr_session"
-				android:visible="true" android:title="@string/chat_menu_listen_otr_session" />
 			<item android:id="@+id/chat_menu_stop_otr_session"
 				android:visible="true" android:title="@string/chat_menu_stop_otr_session" />
 			<item android:id="@+id/chat_menu_otr_local_key" android:visible="true"
--- a/src/com/beem/project/beem/otr/BeemOtrManager.java	Wed May 25 23:13:35 2011 +0200
+++ b/src/com/beem/project/beem/otr/BeemOtrManager.java	Mon Aug 22 22:35:31 2011 +0200
@@ -146,7 +146,7 @@
 
 	if(kp != null)
 	    return kp;
-
+	
 	mOtrKeyManager.generateLocalKeyPair(sessionID);	
 	return mOtrKeyManager.loadLocalKeyPair(sessionID);
     }
--- a/src/com/beem/project/beem/service/BeemChatManager.java	Wed May 25 23:13:35 2011 +0200
+++ b/src/com/beem/project/beem/service/BeemChatManager.java	Mon Aug 22 22:35:31 2011 +0200
@@ -181,6 +181,7 @@
 	if ("".equals(historyPath)) historyPath = "/Android/data/com.beem.project.beem/chat/";
 	res.setHistory(history);
 	res.setAccountUser(accountUser);
+	res.listenOtrSession();
 	res.setHistoryPath(new File(Environment.getExternalStorageDirectory(), historyPath));
 	Log.d(TAG, "getChat put " + key);
 	mChats.put(key, res);
--- a/src/com/beem/project/beem/service/ChatAdapter.java	Wed May 25 23:13:35 2011 +0200
+++ b/src/com/beem/project/beem/service/ChatAdapter.java	Mon Aug 22 22:35:31 2011 +0200
@@ -406,12 +406,12 @@
 
     @Override
     public void startOtrSession() throws RemoteException {
-	if (mOtrSessionId != null)
-	    return;
-
-	mOtrSessionId = new SessionID(mParticipant.getJIDWithRes(), mParticipant.getJID(), PROTOCOL);
+	if (mOtrSessionId == null) {
+		mOtrSessionId = new SessionID(mAccountUser, mParticipant.getJIDWithRes(), PROTOCOL);
+		BeemOtrManager.getInstance().addChat(mOtrSessionId, this);
+	}
+	
 	try {
-	    BeemOtrManager.getInstance().addChat(mOtrSessionId, this);
 	    BeemOtrManager.getInstance().getOtrManager().startSession(mOtrSessionId);
 	} catch (OtrException e) {
 	    mOtrSessionId = null;
@@ -444,16 +444,14 @@
 	return true;
     }
 
-    @Override
-    public void listenOtrSession() throws RemoteException {
+    public void listenOtrSession(){
 	if (mOtrSessionId != null)
 	    return;
 
-	mOtrSessionId = new SessionID(mParticipant.getJIDWithRes(), mParticipant.getJID(), PROTOCOL);
+	mOtrSessionId = new SessionID(mAccountUser, mParticipant.getJIDWithRes(), PROTOCOL);
 	BeemOtrManager.getInstance().addChat(mOtrSessionId, this);
 	//OtrEngineImpl will make a call to "this.getSession(sessionID)" which will instantiate our session.
 	BeemOtrManager.getInstance().getOtrManager().getSessionStatus(mOtrSessionId);
-
     }
 
     @Override
--- a/src/com/beem/project/beem/service/aidl/IChat.aidl	Wed May 25 23:13:35 2011 +0200
+++ b/src/com/beem/project/beem/service/aidl/IChat.aidl	Mon Aug 22 22:35:31 2011 +0200
@@ -97,11 +97,6 @@
 	void endOtrSession();
 	
 	/**
-	 * Listen for an incoming OTR session.
-	 */
-	void listenOtrSession();
-	
-	/**
 	 * get local OTR key fingerprints.
 	 */
 	String getLocalOtrFingerprint();
--- a/src/com/beem/project/beem/ui/Chat.java	Wed May 25 23:13:35 2011 +0200
+++ b/src/com/beem/project/beem/ui/Chat.java	Mon Aug 22 22:35:31 2011 +0200
@@ -321,19 +321,6 @@
 		    Log.e(TAG, "start otr chats failed " + mChat , e);
 		}
 		break;
-	    case R.id.chat_menu_listen_otr_session:
-		try {
-		    if (mChat == null) {
-			mChat = mChatManager.createChat(mContact, mMessageListener);
-			if (mChat != null) {
-			    mChat.setOpen(true);
-			}
-		    }
-		    mChat.listenOtrSession();
-		} catch (RemoteException e) {
-		    Log.e(TAG, "listen for otr chats failed " + mChat , e);
-		}
-		break;
 	    case R.id.chat_menu_stop_otr_session:
 		try {
 		    if (mChat == null) {