/* * otr4j, the open source java otr library. * * Distributable under LGPL license. See terms of license at gnu.org. */ package net.java.otr4j.session; import android.text.TextUtils; /** @author George Politis */ public final class SessionID { private String mLocalUserId; private String mRemoteUserId; private String mProtocolName; private String mSessionId; public static final SessionID Empty = new SessionID(null, null, null); public SessionID(String localUserId, String remoteUserId, String protocolName) { // public SessionID(String localUserId, String remoteUserId, String protocolName, boolean stripResource) { mLocalUserId = localUserId; mRemoteUserId = remoteUserId; mProtocolName = protocolName; //if (stripResource) // mSessionId = stripResource(mLocalUserId) + '_' + mProtocolName + '_' + stripResource(mRemoteUserId); //else mSessionId = stripResource(mLocalUserId) + '_' + mProtocolName + '_' + stripResource(mRemoteUserId); } public String getLocalUserId () { return mLocalUserId; } public String getRemoteUserId () { return mRemoteUserId; } public String getProtocolName () { return mProtocolName; } public String toString() { return mSessionId; } public boolean equals(Object obj) { if (obj == this) return true; if (obj == null || obj.getClass() != this.getClass()) return false; SessionID sessionID = (SessionID) obj; return this.toString().equals(sessionID.toString()); } public int hashCode() { return this.toString().hashCode(); } static private String stripResource(String address) { if (TextUtils.isEmpty(address)) return "null"; else if (address.contains("/")) return address.split("/")[0]; else return address; } }