src/net/java/sip/communicator/impl/protocol/jabber/OperationSetTypingNotificationsJabberImpl.java
/**
     * Sends a notification to <tt>notifiedContatct</tt> that we have entered
     * <tt>typingState</tt>.
     *
     * @param notifiedContact the <tt>Contact</tt> to notify
     * @param typingState the typing state that we have entered.
     *
     * @throws java.lang.IllegalStateException if the underlying stack is
     * not registered and initialized.
     * @throws java.lang.IllegalArgumentException if <tt>notifiedContact</tt> is
     * not an instance belonging to the underlying implementation.
     */
Sends a notification to notifiedContatct that we have entered
typingState.

@param notifiedContact the Contact to notify
@param typingState the typing state that we have entered.

@throws java.lang.IllegalStateException if the underlying stack is
not registered and initialized.
@throws java.lang.IllegalArgumentException if notifiedContact is
not an instance belonging to the underlying implementation.
Sends a notification to notifiedContatct that we have entered typingState . @param notifiedContact the Contact to notify @param typingState the typing state that we have entered . @throws java . lang . IllegalStateException if the underlying stack is not registered and initialized . @throws java . lang . IllegalArgumentException if notifiedContact is not an instance belonging to the underlying implementation .
public void sendTypingNotification(Contact notifiedContact, int typingState)
        throws IllegalStateException, IllegalArgumentException
    {
        assertConnected();
        if( !(notifiedContact instanceof ContactJabberImpl) )
           throw new IllegalArgumentException(
               "The specified contact is not a Jabber contact."
               + notifiedContact);
        try
        {
            sendXep85ChatState((ContactJabberImpl)notifiedContact, typingState);
        }
        catch (NotConnectedException | InterruptedException e)
        {
            throw new IllegalStateException(
                "Failed to send typing notification",
                e
            );
        }
    }
public void sendTypingNotification ( Contact notifiedContact , int typingState ) throws IllegalStateException , IllegalArgumentException { assertConnected ( ) ; if ( ! ( notifiedContact instanceof ContactJabberImpl ) ) throw new IllegalArgumentException ( "The specified contact is not a Jabber contact." + notifiedContact ) ; try { sendXep85ChatState ( ( ContactJabberImpl ) notifiedContact , typingState ) ; } catch ( NotConnectedException | InterruptedException e ) { throw new IllegalStateException ( "Failed to send typing notification" , e ) ; } }
Sends a notification to <tt>notifiedContatct</tt> that we have entered
 <tt>typingState</tt>.
Sends a notification to <tt > notifiedContatct< / tt > that we have entered <tt > typingState< / tt > .
//now handle XEP-0085