src/com/beem/project/beem/service/ChatAdapter.java
author Da Risk <darisk972@gmail.com>
Mon, 20 Apr 2009 14:00:00 +0200
changeset 118 8bbe46055004
parent 99 8de21ac527ce
child 119 c93e4b69f031
permissions -rw-r--r--
fix some bugs. When you receive a new chat, a notification appears. Need some improvements cause if the chat was created before, then close no notification appears (nofif only on new created chat).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
55
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     1
/**
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     2
 * 
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     3
 */
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     4
package com.beem.project.beem.service;
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     5
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     6
import org.jivesoftware.smack.Chat;
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     7
import org.jivesoftware.smack.XMPPException;
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     8
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     9
import android.os.RemoteException;
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    10
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    11
import com.beem.project.beem.service.aidl.IChat;
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    12
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    13
/**
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    14
 * An adapter for smack's Chat class.
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    15
 * @author darisk
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    16
 */
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    17
public class ChatAdapter extends IChat.Stub {
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    18
    private Chat mAdaptee;
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    19
    private Contact mParticipant;
99
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
    20
    private String mState;
55
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    21
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    22
    /**
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    23
     * Constructor.
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    24
     * @param chat The chat to adapt
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    25
     */
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    26
    public ChatAdapter(final Chat chat) {
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    27
	mAdaptee = chat;
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    28
	mParticipant = new Contact(chat.getParticipant());
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    29
    }
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    30
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    31
    /**
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    32
     * {@inheritDoc}
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    33
     */
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    34
    @Override
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    35
    public Contact getParticipant() throws RemoteException {
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    36
	return mParticipant;
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    37
    }
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    38
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    39
    /**
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    40
     * {@inheritDoc}
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    41
     */
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    42
    @Override
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    43
    public void sendMessage(Message message) throws RemoteException {
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    44
	org.jivesoftware.smack.packet.Message send = new org.jivesoftware.smack.packet.Message();
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    45
	send.setTo(message.getTo());
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    46
	send.setBody(message.getBody());
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    47
	send.setThread(message.getThread());
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    48
	send.setSubject(message.getSubject());
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    49
	send.setType(org.jivesoftware.smack.packet.Message.Type.chat);
92
e48817ca2398 Add a workaround for error messages
Da Risk <darisk972@gmail.com>
parents: 55
diff changeset
    50
	// TODO gerer les messages contenant des XMPPError
e48817ca2398 Add a workaround for error messages
Da Risk <darisk972@gmail.com>
parents: 55
diff changeset
    51
	// send.set
55
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    52
	try {
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    53
	    mAdaptee.sendMessage(send);
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    54
	} catch (XMPPException e) {
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    55
	    // TODO Auto-generated catch block
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    56
	    e.printStackTrace();
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    57
	}
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    58
    }
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    59
99
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
    60
    @Override
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
    61
    public String getState() throws RemoteException {
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
    62
	return mState;
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
    63
    }
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
    64
    
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
    65
    @Override
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
    66
    public void setState(String state) throws RemoteException {
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
    67
	mState = state;
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
    68
    }
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
    69
118
8bbe46055004 fix some bugs. When you receive a new chat, a notification appears.
Da Risk <darisk972@gmail.com>
parents: 99
diff changeset
    70
    public Chat getAdaptee() {
8bbe46055004 fix some bugs. When you receive a new chat, a notification appears.
Da Risk <darisk972@gmail.com>
parents: 99
diff changeset
    71
	return mAdaptee;
8bbe46055004 fix some bugs. When you receive a new chat, a notification appears.
Da Risk <darisk972@gmail.com>
parents: 99
diff changeset
    72
    }
8bbe46055004 fix some bugs. When you receive a new chat, a notification appears.
Da Risk <darisk972@gmail.com>
parents: 99
diff changeset
    73
    
55
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    74
}