当前位置: 首页>>代码示例>>Java>>正文


Java SessionStatus.FINISHED属性代码示例

本文整理汇总了Java中net.java.otr4j.session.SessionStatus.FINISHED属性的典型用法代码示例。如果您正苦于以下问题:Java SessionStatus.FINISHED属性的具体用法?Java SessionStatus.FINISHED怎么用?Java SessionStatus.FINISHED使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在net.java.otr4j.session.SessionStatus的用法示例。


在下文中一共展示了SessionStatus.FINISHED属性的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: sessionStatusChanged

@Override
public void sessionStatusChanged(SessionID sessionID) {
    SessionStatus sStatus = mOtrEngine.getSessionStatus(sessionID);

    OtrDebugLogger.log("session status changed: " + sStatus);

    final Session session = mOtrEngine.getSession(sessionID);
    OtrSm otrSm = mOtrSms.get(sessionID);

    
    if (sStatus == SessionStatus.ENCRYPTED) {

        PublicKey remoteKey = mOtrEngine.getRemotePublicKey(sessionID);
        mOtrEngineHost.storeRemoteKey(sessionID, remoteKey);

        if (otrSm == null) {
            // SMP handler - make sure we only add this once per session!
            otrSm = new OtrSm(session, mOtrEngineHost.getKeyManager(),
                    sessionID, OtrChatManager.this);
            session.addTlvHandler(otrSm);

            mOtrSms.put(sessionID, otrSm);
        }
    } else if (sStatus == SessionStatus.PLAINTEXT) {
        if (otrSm != null) {
            session.removeTlvHandler(otrSm);
            mOtrSms.remove(sessionID);
        }
        mOtrEngineHost.removeSessionResource(sessionID);
    } else if (sStatus == SessionStatus.FINISHED) {
        // Do nothing.  The user must take affirmative action to
        // restart or end the session, so that they don't send
        // plaintext by mistake.
    }

}
 
开发者ID:prive,项目名称:prive-android,代码行数:36,代码来源:OtrChatManager.java

示例2: parseOtrChat

private Message parseOtrChat(String body, Jid from, String id, Conversation conversation) {
	String presence;
	if (from.isBareJid()) {
		presence = "";
	} else {
		presence = from.getResourcepart();
	}
	if (body.matches("^\\?OTRv\\d{1,2}\\?.*")) {
		conversation.endOtrIfNeeded();
	}
	if (!conversation.hasValidOtrSession()) {
		conversation.startOtrSession(presence,false);
	} else {
		String foreignPresence = conversation.getOtrSession().getSessionID().getUserID();
		if (!foreignPresence.equals(presence)) {
			conversation.endOtrIfNeeded();
			conversation.startOtrSession(presence, false);
		}
	}
	try {
		conversation.setLastReceivedOtrMessageId(id);
		Session otrSession = conversation.getOtrSession();
		body = otrSession.transformReceiving(body);
		SessionStatus status = otrSession.getSessionStatus();
		if (body == null && status == SessionStatus.ENCRYPTED) {
			mXmppConnectionService.onOtrSessionEstablished(conversation);
			return null;
		} else if (body == null && status == SessionStatus.FINISHED) {
			conversation.resetOtrSession();
			mXmppConnectionService.updateConversationUi();
			return null;
		} else if (body == null || (body.isEmpty())) {
			return null;
		}
		if (body.startsWith(CryptoHelper.FILETRANSFER)) {
			String key = body.substring(CryptoHelper.FILETRANSFER.length());
			conversation.setSymmetricKey(CryptoHelper.hexToBytes(key));
			return null;
		}
		if (clientMightSendHtml(conversation.getAccount(), from)) {
			Log.d(Config.LOGTAG,conversation.getAccount().getJid().toBareJid()+": received OTR message from bad behaving client. escaping HTML…");
			if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
				body = Html.fromHtml(body,Html.FROM_HTML_MODE_LEGACY).toString();
			} else {
				body = Html.fromHtml(body).toString();
			}
		}

		final OtrService otrService = conversation.getAccount().getOtrService();
		Message finishedMessage = new Message(conversation, body, Message.ENCRYPTION_OTR, Message.STATUS_RECEIVED);
		finishedMessage.setFingerprint(otrService.getFingerprint(otrSession.getRemotePublicKey()));
		conversation.setLastReceivedOtrMessageId(null);

		return finishedMessage;
	} catch (Exception e) {
		conversation.resetOtrSession();
		return null;
	}
}
 
开发者ID:syntafin,项目名称:TenguChat,代码行数:59,代码来源:MessageParser.java

示例3: parseOtrChat

private Message parseOtrChat(String body, Jid from, String id, Conversation conversation) {
	String presence;
	if (from.isBareJid()) {
		presence = "";
	} else {
		presence = from.getResourcepart();
	}
	if (body.matches("^\\?OTRv\\d{1,2}\\?.*")) {
		conversation.endOtrIfNeeded();
	}
	if (!conversation.hasValidOtrSession()) {
		conversation.startOtrSession(presence,false);
	} else {
		String foreignPresence = conversation.getOtrSession().getSessionID().getUserID();
		if (!foreignPresence.equals(presence)) {
			conversation.endOtrIfNeeded();
			conversation.startOtrSession(presence, false);
		}
	}
	try {
		conversation.setLastReceivedOtrMessageId(id);
		Session otrSession = conversation.getOtrSession();
		body = otrSession.transformReceiving(body);
		SessionStatus status = otrSession.getSessionStatus();
		if (body == null && status == SessionStatus.ENCRYPTED) {
			mXmppConnectionService.onOtrSessionEstablished(conversation);
			return null;
		} else if (body == null && status == SessionStatus.FINISHED) {
			conversation.resetOtrSession();
			mXmppConnectionService.updateConversationUi();
			return null;
		} else if (body == null || (body.isEmpty())) {
			return null;
		}
		if (body.startsWith(CryptoHelper.FILETRANSFER)) {
			String key = body.substring(CryptoHelper.FILETRANSFER.length());
			conversation.setSymmetricKey(CryptoHelper.hexToBytes(key));
			return null;
		}
		Message finishedMessage = new Message(conversation, body, Message.ENCRYPTION_OTR, Message.STATUS_RECEIVED);
		conversation.setLastReceivedOtrMessageId(null);
		return finishedMessage;
	} catch (Exception e) {
		conversation.resetOtrSession();
		return null;
	}
}
 
开发者ID:xavierle,项目名称:messengerxmpp,代码行数:47,代码来源:MessageParser.java

示例4: parseOtrChat

private Message parseOtrChat(String body, Jid from, String id, Conversation conversation) {
    String presence;
    if (from.isBareJid()) {
        presence = "";
    } else {
        presence = from.getResourcepart();
    }
    if (body.matches("^\\?OTRv\\d{1,2}\\?.*")) {
        conversation.endOtrIfNeeded();
    }
    if (!conversation.hasValidOtrSession()) {
        conversation.startOtrSession(presence, false);
    } else {
        String foreignPresence = conversation.getOtrSession().getSessionID().getUserID();
        if (!foreignPresence.equals(presence)) {
            conversation.endOtrIfNeeded();
            conversation.startOtrSession(presence, false);
        }
    }
    try {
        conversation.setLastReceivedOtrMessageId(id);
        Session otrSession = conversation.getOtrSession();
        body = otrSession.transformReceiving(body);
        SessionStatus status = otrSession.getSessionStatus();
        if (body == null && status == SessionStatus.ENCRYPTED) {
            mXmppConnectionService.onOtrSessionEstablished(conversation);
            return null;
        } else if (body == null && status == SessionStatus.FINISHED) {
            conversation.resetOtrSession();
            mXmppConnectionService.updateConversationUi();
            return null;
        } else if (body == null || (body.isEmpty())) {
            return null;
        }
        if (body.startsWith(CryptoHelper.FILETRANSFER)) {
            String key = body.substring(CryptoHelper.FILETRANSFER.length());
            conversation.setSymmetricKey(CryptoHelper.hexToBytes(key));
            return null;
        }
        if (clientMightSendHtml(conversation.getAccount(), from)) {
            Log.d(Config.LOGTAG, conversation.getAccount().getJid().toBareJid() + ": received OTR message from bad behaving client. escaping HTML…");
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                body = Html.fromHtml(body, Html.FROM_HTML_MODE_LEGACY).toString();
            } else {
                body = Html.fromHtml(body).toString();
            }
        }

        final OtrService otrService = conversation.getAccount().getOtrService();
        Message finishedMessage = new Message(conversation, body, Message.ENCRYPTION_OTR, Message.STATUS_RECEIVED);
        finishedMessage.setFingerprint(otrService.getFingerprint(otrSession.getRemotePublicKey()));
        conversation.setLastReceivedOtrMessageId(null);

        return finishedMessage;
    } catch (Exception e) {
        conversation.resetOtrSession();
        return null;
    }
}
 
开发者ID:kriztan,项目名称:Pix-Art-Messenger,代码行数:59,代码来源:MessageParser.java

示例5: parseOtrChat

private Message parseOtrChat(String body, Jid from, String id, Conversation conversation) {
	String presence;
	if (from.isBareJid()) {
		presence = "";
	} else {
		presence = from.getResourcepart();
	}
	if (body.matches("^\\?OTRv\\d{1,2}\\?.*")) {
		conversation.endOtrIfNeeded();
	}
	if (!conversation.hasValidOtrSession()) {
		conversation.startOtrSession(presence, false);
	} else {
		String foreignPresence = conversation.getOtrSession().getSessionID().getUserID();
		if (!foreignPresence.equals(presence)) {
			conversation.endOtrIfNeeded();
			conversation.startOtrSession(presence, false);
		}
	}
	try {
		conversation.setLastReceivedOtrMessageId(id);
		Session otrSession = conversation.getOtrSession();
		body = otrSession.transformReceiving(body);
		SessionStatus status = otrSession.getSessionStatus();
		if (body == null && status == SessionStatus.ENCRYPTED) {
			mXmppConnectionService.onOtrSessionEstablished(conversation);
			return null;
		} else if (body == null && status == SessionStatus.FINISHED) {
			conversation.resetOtrSession();
			mXmppConnectionService.updateConversationUi();
			return null;
		} else if (body == null || (body.isEmpty())) {
			return null;
		}
		if (body.startsWith(CryptoHelper.FILETRANSFER)) {
			String key = body.substring(CryptoHelper.FILETRANSFER.length());
			conversation.setSymmetricKey(CryptoHelper.hexToBytes(key));
			return null;
		}
		if (clientMightSendHtml(conversation.getAccount(), from)) {
			Log.d(Config.LOGTAG, conversation.getAccount().getJid().toBareJid() + ": received OTR message from bad behaving client. escaping HTML…");
			if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
				body = Html.fromHtml(body, Html.FROM_HTML_MODE_LEGACY).toString();
			} else {
				body = Html.fromHtml(body).toString();
			}
		}

		final OtrService otrService = conversation.getAccount().getOtrService();
		Message finishedMessage = new Message(conversation, body, Message.ENCRYPTION_OTR, Message.STATUS_RECEIVED);
		finishedMessage.setFingerprint(otrService.getFingerprint(otrSession.getRemotePublicKey()));
		conversation.setLastReceivedOtrMessageId(null);

		return finishedMessage;
	} catch (Exception e) {
		conversation.resetOtrSession();
		return null;
	}
}
 
开发者ID:siacs,项目名称:Conversations,代码行数:59,代码来源:MessageParser.java

示例6: parseOtrChat

private Message parseOtrChat(MessagePacket packet, Account account) {
	final Jid to = packet.getTo();
	final Jid from = packet.getFrom();
	if (to == null || from == null) {
		return null;
	}
	boolean properlyAddressed = !to.isBareJid() || account.countPresences() == 1;
	Conversation conversation = mXmppConnectionService
			.findOrCreateConversation(account, from.toBareJid(), false);
	String presence;
	if (from.isBareJid()) {
           presence = "";
	} else {
		presence = from.getResourcepart();
	}
	updateLastseen(packet, account, true);
	String body = packet.getBody();
	if (body.matches("^\\?OTRv\\d*\\?")) {
		conversation.endOtrIfNeeded();
	}
	if (!conversation.hasValidOtrSession()) {
		if (properlyAddressed) {
			conversation.startOtrSession(presence,false);
		} else {
			return null;
		}
	} else {
		String foreignPresence = conversation.getOtrSession()
				.getSessionID().getUserID();
		if (!foreignPresence.equals(presence)) {
			conversation.endOtrIfNeeded();
			if (properlyAddressed) {
				conversation.startOtrSession(presence, false);
			} else {
				return null;
			}
		}
	}
	try {
		Session otrSession = conversation.getOtrSession();
		SessionStatus before = otrSession.getSessionStatus();
		body = otrSession.transformReceiving(body);
		SessionStatus after = otrSession.getSessionStatus();
		if ((before != after) && (after == SessionStatus.ENCRYPTED)) {
			mXmppConnectionService.onOtrSessionEstablished(conversation);
		} else if ((before != after) && (after == SessionStatus.FINISHED)) {
			conversation.resetOtrSession();
			mXmppConnectionService.updateConversationUi();
		}
		if ((body == null) || (body.isEmpty())) {
			return null;
		}
		if (body.startsWith(CryptoHelper.FILETRANSFER)) {
			String key = body.substring(CryptoHelper.FILETRANSFER.length());
			conversation.setSymmetricKey(CryptoHelper.hexToBytes(key));
			return null;
		}
		Message finishedMessage = new Message(conversation, body, Message.ENCRYPTION_OTR,
				Message.STATUS_RECEIVED);
		finishedMessage.setTime(getTimestamp(packet));
		finishedMessage.setRemoteMsgId(packet.getId());
		finishedMessage.markable = isMarkable(packet);
		finishedMessage.setCounterpart(from);
		return finishedMessage;
	} catch (Exception e) {
		conversation.resetOtrSession();
		return null;
	}
}
 
开发者ID:juanignaciomolina,项目名称:txtr,代码行数:69,代码来源:MessageParser.java

示例7: parseOtrChat

public Message parseOtrChat(MessagePacket packet, Account account) {
	boolean properlyAddressed = (packet.getTo().split("/").length == 2)
			|| (account.countPresences() == 1);
	String[] fromParts = packet.getFrom().split("/");
	Conversation conversation = mXmppConnectionService
			.findOrCreateConversation(account, fromParts[0], false);
	updateLastseen(packet, account,true);
	String body = packet.getBody();
	if (!conversation.hasValidOtrSession()) {
		if (properlyAddressed) {
			conversation.startOtrSession(
					mXmppConnectionService.getApplicationContext(),
					fromParts[1], false);
		} else {
			return null;
		}
	} else {
		String foreignPresence = conversation.getOtrSession()
				.getSessionID().getUserID();
		if (!foreignPresence.equals(fromParts[1])) {
			conversation.resetOtrSession();
			if (properlyAddressed) {
				conversation.startOtrSession(
						mXmppConnectionService.getApplicationContext(),
						fromParts[1], false);
			} else {
				return null;
			}
		}
	}
	try {
		Session otrSession = conversation.getOtrSession();
		SessionStatus before = otrSession.getSessionStatus();
		body = otrSession.transformReceiving(body);
		SessionStatus after = otrSession.getSessionStatus();
		if ((before != after) && (after == SessionStatus.ENCRYPTED)) {
			mXmppConnectionService.onOtrSessionEstablished(conversation);
		} else if ((before != after) && (after == SessionStatus.FINISHED)) {
			conversation.resetOtrSession();
		}
		// isEmpty is a work around for some weird clients which send emtpty
		// strings over otr
		if ((body == null) || (body.isEmpty())) {
			return null;
		}
		conversation.setLatestMarkableMessageId(getMarkableMessageId(packet));
		Message finishedMessage = new Message(conversation, packet.getFrom(), body,
				Message.ENCRYPTION_OTR, Message.STATUS_RECIEVED);
		finishedMessage.setTime(getTimestamp(packet));
		return finishedMessage;
	} catch (Exception e) {
		conversation.resetOtrSession();
		return null;
	}
}
 
开发者ID:GitESS,项目名称:SyncChatAndroid,代码行数:55,代码来源:MessageParser.java

示例8: sendMessageAsync

/**
 * Sends a message to other participant(s) in this session asynchronously
 * and adds the message to the history. TODO: more docs on async callbacks.
 * 
 * @param message the message to send.
 */
public int sendMessageAsync(Message message) {

    if (message.getTo() == null)
      message.setTo(mParticipant.getAddress());
    
 // TODO OTRCHAT setFrom here, therefore add the mConnection in ChatSession - ??? NF 8/2013 still needs to be done?       
    SessionStatus otrStatus = mOtrChatManager.getSessionStatus(message.getFrom().getAddress(),message.getTo().getAddress());

    if (otrStatus == SessionStatus.ENCRYPTED)
    {
        SessionID sId = mOtrChatManager.getSessionId(message.getFrom().getAddress(),message.getTo().getAddress());            
        boolean verified = mOtrChatManager.getKeyManager().isVerified(sId);
        
        
        if (verified)
        {
            message.setType(Imps.MessageType.OUTGOING_ENCRYPTED_VERIFIED);
        }
        else
        {
            message.setType(Imps.MessageType.OUTGOING_ENCRYPTED);
        }
     
        mHistoryMessages.add(message);

        mOtrChatManager.transformSending(message);

        mManager.sendMessageAsync(this, message);

    }
    else if (otrStatus == SessionStatus.FINISHED)
    {
        
        onSendMessageError(message, new ImErrorInfo(ImErrorInfo.INVALID_SESSION_CONTEXT,"Please turn off encryption"));
    }
    else
    {
        mHistoryMessages.add(message);

        mOtrChatManager.transformSending(message);

        mManager.sendMessageAsync(this, message);

    }                
    return message.getType();
}
 
开发者ID:prive,项目名称:prive-android,代码行数:52,代码来源:ChatSession.java

示例9: sessionStatusChanged

@Override
public void sessionStatusChanged(SessionID sessionID) {

    SessionStatus sStatus = mOtrChatManager.getSessionStatus(sessionID);

    String msg = "";

    if (sStatus == SessionStatus.PLAINTEXT) {
        msg = getString(R.string.otr_session_status_plaintext);

    } else if (sStatus == SessionStatus.ENCRYPTED) {
        msg = getString(R.string.otr_session_status_encrypted);

    } else if (sStatus == SessionStatus.FINISHED) {
        msg = getString(R.string.otr_session_status_finished);
    }

    //showToast(msg, Toast.LENGTH_SHORT);

}
 
开发者ID:prive,项目名称:prive-android,代码行数:20,代码来源:RemoteImService.java

示例10: sessionStatusChanged

@Override
public void sessionStatusChanged(final SessionID sessionID) {
    SessionStatus sStatus = mOtrEngine.getSessionStatus(sessionID);

    OtrDebugLogger.log("session status changed: " + sStatus);

    final Session session = mOtrEngine.getSession(sessionID);
    OtrSm otrSm = mOtrSms.get(sessionID.toString());


    if (sStatus == SessionStatus.ENCRYPTED) {

        PublicKey remoteKey = mOtrEngine.getRemotePublicKey(sessionID);
        mOtrEngineHost.storeRemoteKey(sessionID, remoteKey);

        if (otrSm == null) {
            // SMP handler - make sure we only add this once per session!
            otrSm = new OtrSm(session, mOtrEngineHost.getKeyManager(),
                    sessionID, OtrChatManager.this);
            session.addTlvHandler(otrSm);

            mOtrSms.put(sessionID.toString(), otrSm);
        }




    } else if (sStatus == SessionStatus.PLAINTEXT) {
        if (otrSm != null) {
            session.removeTlvHandler(otrSm);
            mOtrSms.remove(sessionID.toString());
        }


        mOtrEngineHost.removeSessionResource(sessionID);


    } else if (sStatus == SessionStatus.FINISHED) {
        // Do nothing.  The user must take affirmative action to
        // restart or end the session, so that they don't send
        // plaintext by mistake.
    }

}
 
开发者ID:zom,项目名称:Zom-Android,代码行数:44,代码来源:OtrChatManager.java


注:本文中的net.java.otr4j.session.SessionStatus.FINISHED属性示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。