src/com/beem/project/beem/utils/Status.java
author darisk@kaaliyah
Mon, 10 Aug 2009 05:32:45 +0200
changeset 342 2b489d4a7917
parent 310 8d36c81dcd65
child 343 e5f7b0c943e0
permissions -rw-r--r--
Some checkstyle rules
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
107
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     1
/**
310
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
     2
 *
107
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     3
 */
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     4
package com.beem.project.beem.utils;
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     5
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     6
import org.jivesoftware.smack.packet.Presence;
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     7
import org.jivesoftware.smack.packet.Presence.Mode;
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     8
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     9
/**
310
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    10
 * @author marseille
107
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    11
 */
342
2b489d4a7917 Some checkstyle rules
darisk@kaaliyah
parents: 310
diff changeset
    12
public final class Status {
107
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    13
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    14
    /**
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    15
     * Status of a disconnected contact.
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    16
     */
310
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    17
    public static final int CONTACT_STATUS_DISCONNECT = 100;
107
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    18
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    19
    /**
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    20
     * Status of a unavailable (long away) contact.
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    21
     */
310
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    22
    public static final int CONTACT_STATUS_UNAVAILABLE = 200;
107
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    23
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    24
    /**
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    25
     * Status of a away contact.
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    26
     */
310
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    27
    public static final int CONTACT_STATUS_AWAY = 300;
107
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    28
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    29
    /**
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    30
     * Status of a busy contact.
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    31
     */
310
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    32
    public static final int CONTACT_STATUS_BUSY = 400;
107
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    33
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    34
    /**
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    35
     * Status of a available contact.
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    36
     */
310
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    37
    public static final int CONTACT_STATUS_AVAILABLE = 500;
107
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    38
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    39
    /**
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    40
     * Status of a available for chat contact.
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    41
     */
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    42
    public static final int CONTACT_STATUS_AVAILABLE_FOR_CHAT = 600;
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    43
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    44
    /**
342
2b489d4a7917 Some checkstyle rules
darisk@kaaliyah
parents: 310
diff changeset
    45
     * Default constructor masked.
2b489d4a7917 Some checkstyle rules
darisk@kaaliyah
parents: 310
diff changeset
    46
     */
2b489d4a7917 Some checkstyle rules
darisk@kaaliyah
parents: 310
diff changeset
    47
    private Status() {
2b489d4a7917 Some checkstyle rules
darisk@kaaliyah
parents: 310
diff changeset
    48
    }
2b489d4a7917 Some checkstyle rules
darisk@kaaliyah
parents: 310
diff changeset
    49
2b489d4a7917 Some checkstyle rules
darisk@kaaliyah
parents: 310
diff changeset
    50
    /**
310
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    51
     * Get the smack presence mode for a status.
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    52
     * @param status the status in beem
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 155
diff changeset
    53
     * @return the presence mode to use in presence packet or null if there is no mode to use
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 155
diff changeset
    54
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 155
diff changeset
    55
    public static Presence.Mode getPresenceModeFromStatus(int status) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 155
diff changeset
    56
	Presence.Mode res;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 155
diff changeset
    57
	switch (status) {
310
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    58
	    case CONTACT_STATUS_AVAILABLE:
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    59
		res = Presence.Mode.available;
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    60
		break;
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    61
	    case CONTACT_STATUS_AVAILABLE_FOR_CHAT:
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    62
		res = Presence.Mode.chat;
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    63
		break;
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    64
	    case CONTACT_STATUS_AWAY:
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    65
		res = Presence.Mode.away;
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    66
		break;
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    67
	    case CONTACT_STATUS_BUSY:
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    68
		res = Presence.Mode.dnd;
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    69
		break;
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    70
	    case CONTACT_STATUS_UNAVAILABLE:
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    71
		res = Presence.Mode.xa;
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    72
		break;
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    73
	    default:
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    74
		return null;
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 155
diff changeset
    75
	}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 155
diff changeset
    76
	return res;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 155
diff changeset
    77
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 155
diff changeset
    78
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 155
diff changeset
    79
    /**
107
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    80
     * Get the status of from a presence packet.
310
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    81
     * @param presence the presence containing status
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    82
     * @return an int representing the status
107
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    83
     */
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    84
    public static int getStatusFromPresence(Presence presence) {
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    85
	int res = Status.CONTACT_STATUS_DISCONNECT;
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    86
	if (presence.getType().equals(Presence.Type.unavailable)) {
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    87
	    res = Status.CONTACT_STATUS_DISCONNECT;
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    88
	} else {
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    89
	    Mode mode = presence.getMode();
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    90
	    if (mode == null) {
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    91
		res = Status.CONTACT_STATUS_AVAILABLE;
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    92
	    } else {
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    93
		switch (mode) {
310
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    94
		    case available:
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    95
			res = Status.CONTACT_STATUS_AVAILABLE;
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    96
			break;
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    97
		    case away:
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    98
			res = Status.CONTACT_STATUS_AWAY;
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
    99
			break;
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
   100
		    case chat:
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
   101
			res = Status.CONTACT_STATUS_AVAILABLE_FOR_CHAT;
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
   102
			break;
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
   103
		    case dnd:
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
   104
			res = Status.CONTACT_STATUS_BUSY;
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
   105
			break;
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
   106
		    case xa:
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
   107
			res = Status.CONTACT_STATUS_UNAVAILABLE;
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
   108
			break;
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
   109
		    default:
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
   110
			res = Status.CONTACT_STATUS_DISCONNECT;
8d36c81dcd65 Some formatting
Da Risk <darisk972@gmail.com>
parents: 212
diff changeset
   111
			break;
107
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   112
		}
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   113
	    }
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   114
	}
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   115
	return res;
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   116
    }
71ad42062140 oubli d'un fichier
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   117
}