亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? contactitem.java.svn-base

?? 類似QQ的功能
?? SVN-BASE
?? 第 1 頁 / 共 2 頁
字號:
/*******************************************************************************
 Jimm - Mobile Messaging - J2ME ICQ clone
 Copyright (C) 2003-08  Jimm Project

 This program is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License
 as published by the Free Software Foundation; either version 2
 of the License, or (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 ********************************************************************************
 File: src/jimm/ContactItem.java
 Version: ###VERSION###  Date: ###DATE###
 Author(s): Manuel Linsmayer, Andreas Rossbacher, Denis Artyomov
 *******************************************************************************/

package jimm;

import java.io.IOException;
import javax.microedition.lcdui.*;

import DrawControls.VirtualList;

import java.io.DataOutputStream;
import java.io.DataInputStream;

import jimm.JimmUI;
import jimm.comm.*;
import jimm.SplashCanvas;


/* TODO: remove UI code to ChatHistory */
public class ContactItem implements ContactListItem, JimmScreen
{
	/* String */
	public static final int CONTACTITEM_UIN           = 0; 
	public static final int CONTACTITEM_NAME          = 1;
	public static final int CONTACTITEM_CLIVERSION    = 2;	
	public static final int CONTACTITEM_XSTATUSMSG    = 3;	
	
	/* Integer */
	public static final int CONTACTITEM_ID            = 64; 
	public static final int CONTACTITEM_GROUP         = 65;
	public static final int CONTACTITEM_IDLE          = 71;
	public static final int CONTACTITEM_DC_TYPE       = 72;
	public static final int CONTACTITEM_ICQ_PROT      = 73;
	public static final int CONTACTITEM_DC_PORT       = 74;
	public static final int CONTACTITEM_CAPABILITIES  = 75;
	public static final int CONTACTITEM_CLIENT        = 76;
	public static final int CONTACTITEM_XSTATUS       = 78;
	public static final int CONTACTITEM_STATUS        = 79;
	public static final int CONTACTITEM_AUTH_COOKIE   = 80;
	public static final int CONTACTITEM_SIGNON        = 81;
	public static final int CONTACTITEM_ONLINE        = 82;
	public static final int CONTACTITEM_INV_ID        = 83;
	public static final int CONTACTITEM_VIS_ID        = 84;
	public static final int CONTACTITEM_IGN_ID        = 85;
	public static final int CONTACTITEM_REG           = 86;

	/* Boolean */
	public static final int CONTACTITEM_ADDED         = 1 << 0; 
	public static final int CONTACTITEM_NO_AUTH       = 1 << 1;
	public static final int CONTACTITEM_CHAT_SHOWN    = 1 << 2;
	public static final int CONTACTITEM_IS_TEMP       = 1 << 3;
	public static final int CONTACTITEM_HAS_CHAT      = 1 << 4;
	public static final int CONTACTITEM_IS_PHANTOM    = 1 << 5;
	public static final int CONTACTITEM_B_PLMESSAGES  = 1 << 6;
	public static final int CONTACTITEM_B_URLMESSAGES = 1 << 7;
	public static final int CONTACTITEM_B_SYSNOTICES  = 1 << 8;
	public static final int CONTACTITEM_B_AUTREQUESTS = 1 << 9;
	
	/* bytes[] */
	public static final int CONTACTITEM_INTERNAL_IP			 = 225;
	public static final int CONTACTITEM_EXTERNAL_IP     	 = 226;
	public static final int CONTACTITEM_SS_DATA         	 = 227;

	//#sijapp cond.if target!="DEFAULT" & modules_AVATARS="true"#
	public static final int CONTACTITEM_BUDDYICON_HASH       = 228;
	public static final int CONTACTITEM_BUDDYICON_HASH_READY = 229;
	public static final int CONTACTITEM_BUDDYICON       	 = 230;
	//#sijapp cond.end #

	/* No capability */
	public static final int CAP_NO_INTERNAL = 0x00000000;

	private int idAndGropup;
	private int caps;
	private int idle;
	private int booleanValues;

//#sijapp cond.if (target!="DEFAULT")&(modules_FILES="true")#
	private int typeAndClientId;
	private int portAndProt;
	private int intIP;
	private int extIP;
	private int authCookie;
//#sijapp cond.end #

	private long privacyData;
	private int uinLong;
	private int online;
	private int signOn;
	private int status;
	private int regdate;
	private byte xStatusId;

	private String name;
	private String clientVersion;
	private String lowerText;
	private String xStatusMessage;
	private byte[] ssData; // server-size raw data
	//#sijapp cond.if target!="DEFAULT" & modules_AVATARS="true"#
	private byte[] biHash; // buddy-icon hash
	private byte[] biHashDone; // buddy-icon hash of downloaded image
	private Image buddyIcon; // buddy-icon raw data
	//#sijapp cond.end #

	private static int clrNormal;
	private static int clrHasChat;
	private static int clrFantom;
	
	static
	{
		updateColorValues();
	}

	///////////////////////////////////////////////////////////////////////////

	synchronized public void setStringValue(int key, String value)
	{
		setStringValue_(key, value);
	}
	
	private void setStringValue_(int key, String value)
	{
		switch (key)
		{
		case CONTACTITEM_UIN:
			try
			{
				uinLong = Integer.parseInt(value);
			} catch (NumberFormatException e) {}
			return;
		case CONTACTITEM_NAME:
			name = value;
			lowerText = null;
			return;
		case CONTACTITEM_CLIVERSION:
			clientVersion = value;
			return;
		case CONTACTITEM_XSTATUSMSG:
			xStatusMessage = (value == null) ? xStatusMessage : value;
			return;
		}
	}

	synchronized public String getStringValue(int key)
	{
		switch (key)
		{
		case CONTACTITEM_UIN:
			return Integer.toString(uinLong);
		case CONTACTITEM_NAME:
			return name;
		case CONTACTITEM_CLIVERSION:
			return clientVersion;
		case CONTACTITEM_XSTATUSMSG:
			return xStatusMessage;
		}
		return null;
	}
	
	//////////////////////////////////////////////////////////////////////////
	
	public String getSortText()
	{
		return getLowerText(); 
	}
	
	public int getSortWeight()
	{
		int status = getIntValue(ContactItem.CONTACTITEM_STATUS); 

		switch (status)
		{
			case ContactList.STATUS_ONLINE:     return 0;
			case ContactList.STATUS_CHAT:       return 1;
			case ContactList.STATUS_EVIL:       return 2;
			case ContactList.STATUS_DEPRESSION: return 3;
			case ContactList.STATUS_HOME:       return 4;
			case ContactList.STATUS_WORK:       return 5;
			case ContactList.STATUS_LUNCH:      return 6;
			case ContactList.STATUS_AWAY:       return 7;
			case ContactList.STATUS_NA:         return 8;
			case ContactList.STATUS_OCCUPIED:   return 9;
			case ContactList.STATUS_DND:        return 10;
			case ContactList.STATUS_INVISIBLE:  return 11;

			case ContactList.STATUS_OFFLINE:
				if (getBooleanValue(ContactItem.CONTACTITEM_IS_TEMP))
					return 19;
				return 20;
		}

		return 15;
	}

	///////////////////////////////////////////////////////////////////////////

	private void setIntValue_(int key, int value)
	{
		switch (key)
		{
		case CONTACTITEM_ID:
			idAndGropup = (idAndGropup & 0x0000FFFF) | (value << 16);
			return;

		case CONTACTITEM_GROUP:
			idAndGropup = (idAndGropup & 0xFFFF0000) | value;
			return;

		case CONTACTITEM_IDLE:
			idle = value;
			return;
		case CONTACTITEM_CAPABILITIES:
			caps = value;
			return;
		case CONTACTITEM_STATUS:
			status = value;
			if (status == ContactList.STATUS_OFFLINE)
			{
				xStatusMessage = null;
				setIntValue(CONTACTITEM_XSTATUS, -1);
				//#sijapp cond.if target isnot "DEFAULT"#
				typing = false;
				//#sijapp cond.end#
			}
			return;
//#sijapp cond.if (target != "DEFAULT") & (modules_FILES = "true")#
		case CONTACTITEM_DC_TYPE:
			typeAndClientId = (typeAndClientId & 0xff) | ((value & 0xff) << 8);
			return;
		case CONTACTITEM_ICQ_PROT:
			portAndProt = (portAndProt & 0xffff0000) | (value & 0xffff);
			return;
		case CONTACTITEM_DC_PORT:
			portAndProt = (portAndProt & 0x0000ffff) | ((value & 0xffff) << 16);
			return;
		case CONTACTITEM_CLIENT:
			typeAndClientId = (typeAndClientId & 0xff00) | (value & 0xff);
			return;
		case CONTACTITEM_AUTH_COOKIE:
			authCookie = value;
			return;
//#sijapp cond.end #

		case CONTACTITEM_ONLINE:
			online = value;
			return;
		case CONTACTITEM_SIGNON:
			signOn = value;
			return;
			
		case CONTACTITEM_REG:
			regdate = value;
			return;
			
		case CONTACTITEM_XSTATUS:
			xStatusId = (byte)value;
			return;
			
		case CONTACTITEM_INV_ID:
			privacyData = (privacyData & 0xFFFFFFFFFFFF0000l) | (long)(value);
			return;
			
		case CONTACTITEM_VIS_ID:
			privacyData = (privacyData & 0xFFFFFFFF0000FFFFl) | ((long)(value) << 16);
			return;
			
		case CONTACTITEM_IGN_ID:
			privacyData = (privacyData & 0xFFFF0000FFFFFFFFl) | ((long)value << 32);
			return;
		}
		
		//throw new Exception("setIntValue");
	}
	
	synchronized public void setIntValue(int key, int value)
	{
		setIntValue_(key, value);
	}

	private int getIntValue_(int key)
	{
		switch (key)
		{
		case CONTACTITEM_ID:
			return ((idAndGropup & 0xFFFF0000) >> 16) & 0xFFFF;
		case CONTACTITEM_GROUP:
			int value = (idAndGropup & 0x0000FFFF);
			if (value == 0 && !getBooleanValue_(CONTACTITEM_IS_PHANTOM)) value = -1; // Group is -1 for temporary contacts
			return value; 
		case CONTACTITEM_IDLE:
			return idle;
		case CONTACTITEM_CAPABILITIES:
			return caps;
		case CONTACTITEM_STATUS:
			return status;
//#sijapp cond.if (target != "DEFAULT") & (modules_FILES = "true")#
		case CONTACTITEM_DC_TYPE:
			return ((typeAndClientId & 0xff00) >> 8) & 0xFF;
		case CONTACTITEM_ICQ_PROT:
			return portAndProt & 0xffff;
		case CONTACTITEM_DC_PORT:
			return ((portAndProt & 0xffff0000) >> 16) & 0xFFFF;
		case CONTACTITEM_CLIENT:
			return typeAndClientId & 0xff;
		case CONTACTITEM_AUTH_COOKIE:
			return authCookie;
//#sijapp cond.end #
		case CONTACTITEM_ONLINE:
			return online;
		case CONTACTITEM_SIGNON:
			return signOn;
		case CONTACTITEM_REG:
			return regdate;
		case CONTACTITEM_XSTATUS:
			return xStatusId;
			
		case CONTACTITEM_INV_ID: return (int)(privacyData&0xFFFF);
		case CONTACTITEM_VIS_ID: return (int)((privacyData >> 16)&0xFFFF);
		case CONTACTITEM_IGN_ID: return (int)((privacyData >> 32)&0xFFFF);
		}
		return 0;
		
	}
	
	synchronized public int getIntValue(int key)
	{
		return getIntValue_(key);
	}

	///////////////////////////////////////////////////////////////////////////

	synchronized public void setBooleanValue(int key, boolean value)
	{
		setBooleanValue_(key, value);
	}
	
	private void setBooleanValue_(int key, boolean value)
	{
		booleanValues = (booleanValues & (~key)) | (value ? key : 0x00000000);
	}

	synchronized public boolean getBooleanValue(int key)
	{
		return getBooleanValue_(key);
	}
	
	private boolean getBooleanValue_(int key)
	{
		return (booleanValues & key) != 0;
	}
	

	///////////////////////////////////////////////////////////////////////////

//#sijapp cond.if (target != "DEFAULT") & (modules_FILES = "true")#
	public static byte[] longIPToByteAray(int value)
	{
		if (value == 0)
			return null;
		return new byte[]
		{ (byte) (value & 0x000000FF), (byte) ((value & 0x0000FF00) >> 8),
				(byte) ((value & 0x00FF0000) >> 16),
				(byte) ((value & 0xFF000000) >> 24) };
	}

	public static int arrayToLongIP(byte[] array)
	{
		if ((array == null) || (array.length < 4))
			return 0;
		return (int) array[0] & 0xFF | (((int) array[1] & 0xFF) << 8)
				| (((int) array[2] & 0xFF) << 16)
				| (((int) array[3] & 0xFF) << 24);
	}

//#sijapp cond.end #
	
	synchronized public void setImage(int key, Image value)
	{
		switch (key)
		{
		//#sijapp cond.if target!="DEFAULT" & modules_AVATARS="true"#
		case CONTACTITEM_BUDDYICON:
			buddyIcon = value;
			break;
		//#sijapp cond.end #
		}
	}

	synchronized public Image getImage(int key)
	{
		switch (key)
		{
		//#sijapp cond.if target!="DEFAULT" & modules_AVATARS="true"#
		case CONTACTITEM_BUDDYICON:
			return buddyIcon;
		//#sijapp cond.end #
		}
		return null;
	}

	synchronized public void setBytesArray(int key, byte[] value)
	{
		switch (key)
		{
//#sijapp cond.if (target != "DEFAULT") & (modules_FILES = "true")#
		case CONTACTITEM_INTERNAL_IP:
			intIP = arrayToLongIP(value);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品亚洲成a人| 国产精品久久精品日日| 精品国产露脸精彩对白| 久久蜜桃av一区二区天堂| 国产精品乱码人人做人人爱| 亚洲色图一区二区三区| 日本vs亚洲vs韩国一区三区| 国产精品一区专区| 欧美午夜电影在线播放| 精品国产凹凸成av人网站| 国产精品久久久久久久久动漫| 亚洲一区二区欧美激情| 国产精品一二三在| 欧美色精品天天在线观看视频| 欧美精品一区二| 亚洲最新在线观看| 国产精品伊人色| 欧美日韩国产123区| 国产肉丝袜一区二区| 香港成人在线视频| 成人丝袜18视频在线观看| 欧美精品亚洲一区二区在线播放| 久久美女艺术照精彩视频福利播放| 亚洲最新视频在线播放| 福利电影一区二区| 欧美一区二区啪啪| 亚洲综合色噜噜狠狠| 高清不卡一区二区在线| 精品国产欧美一区二区| 亚洲乱码国产乱码精品精可以看| 久久69国产一区二区蜜臀| 欧美日韩免费一区二区三区 | 欧美极品另类videosde| 婷婷综合五月天| 91在线观看地址| 精品国产乱码久久久久久久久| 亚洲一区视频在线| 99久久精品情趣| 国产人成一区二区三区影院| 免费在线欧美视频| 欧美日韩一级视频| 亚洲欧美中日韩| 成人高清视频在线观看| 久久免费视频一区| 国产剧情一区二区| 日韩精品一区二区三区四区 | 国产亚洲短视频| 黄色成人免费在线| 日韩欧美中文字幕公布| 日韩电影一区二区三区四区| 欧美三级电影在线看| 亚洲欧美成aⅴ人在线观看| 国产a久久麻豆| 中文字幕国产一区| 成人一级视频在线观看| 中文字幕不卡一区| 97久久精品人人爽人人爽蜜臀| 国产精品成人免费精品自在线观看| 国产传媒欧美日韩成人| 国产偷v国产偷v亚洲高清| 国产高清不卡一区| 国产精品久久久久三级| 在线视频国产一区| 亚洲自拍偷拍麻豆| 欧美高清精品3d| 日韩成人一级大片| 91精品欧美一区二区三区综合在| 日韩精品亚洲一区| 欧美日韩亚洲国产综合| 亚洲欧美日韩中文字幕一区二区三区 | 国产麻豆日韩欧美久久| 日韩女优视频免费观看| 日韩电影一二三区| 欧美日产在线观看| 亚洲成年人影院| 欧美性videosxxxxx| 亚洲一区二区三区国产| 99久久免费精品| 国产精品久久久久毛片软件| 国产精品资源网| 国产午夜精品久久久久久免费视 | 91精品国产欧美一区二区| 亚洲午夜在线视频| 在线电影欧美成精品| 日韩在线一区二区三区| 日韩美女视频在线| 狠狠色综合日日| 国产精品天美传媒| 色综合久久久久久久| 亚洲午夜成aⅴ人片| 精品视频一区二区三区免费| 午夜精品久久久久久久久| 欧美日本免费一区二区三区| 首页亚洲欧美制服丝腿| 日韩欧美成人一区二区| 国产91对白在线观看九色| 国产精品国产三级国产普通话蜜臀| 色女孩综合影院| 日韩经典中文字幕一区| 欧美一级一级性生活免费录像| 国产精品一区二区在线观看不卡| 欧美白人最猛性xxxxx69交| 亚洲国产人成综合网站| 91精品国产91综合久久蜜臀| 另类调教123区 | 曰韩精品一区二区| 色欧美乱欧美15图片| 男人的j进女人的j一区| 精品国产91洋老外米糕| 久久精品999| 国产精品另类一区| 欧美日韩国产影片| 国产麻豆精品久久一二三| 亚洲欧洲精品一区二区三区| 欧美日韩二区三区| 国产精品夜夜嗨| 一区二区三区产品免费精品久久75| 欧美亚男人的天堂| 国产成人av影院| 日本aⅴ免费视频一区二区三区| 国产日本欧美一区二区| 欧美高清你懂得| 99久久精品国产麻豆演员表| 热久久国产精品| 亚洲人妖av一区二区| 欧美大片一区二区| 91国偷自产一区二区开放时间| 激情文学综合插| 天天综合天天综合色| 中文字幕亚洲在| 精品国产成人系列| 欧美一卡2卡3卡4卡| 欧洲一区二区三区在线| 国产v日产∨综合v精品视频| 免费人成在线不卡| 亚洲综合色噜噜狠狠| 中文字幕一区二区在线播放| 精品国产乱码久久久久久图片| 欧美在线不卡视频| 不卡视频在线看| 国产成人在线视频播放| 看电影不卡的网站| 亚洲超碰97人人做人人爱| 国产精品国产三级国产普通话99 | 欧美综合一区二区| 99精品久久只有精品| 国产一区二区三区在线观看免费视频 | 麻豆成人久久精品二区三区红| 国产精品丝袜久久久久久app| 日韩你懂的电影在线观看| 欧美性色黄大片| 色嗨嗨av一区二区三区| 成人一区二区三区中文字幕| 激情深爱一区二区| 久久草av在线| 精品一区二区影视| 美女视频黄久久| 视频精品一区二区| 亚洲成人动漫精品| 视频一区在线播放| 亚洲一区二区三区自拍| 亚洲天堂成人在线观看| 国产精品久久久久久久久久久免费看| 欧美成人精品高清在线播放 | 国产一区二区在线视频| 国产一区二三区好的| 国产乱子伦视频一区二区三区| 国产尤物一区二区在线| 国产成人在线视频网站| 粉嫩av一区二区三区粉嫩| 国v精品久久久网| 成人综合激情网| 99精品国产热久久91蜜凸| 91免费国产视频网站| 欧美曰成人黄网| 9191成人精品久久| 日韩欧美中文一区二区| 日韩一区二区视频| 精品电影一区二区三区| 日韩欧美黄色影院| 久久久久久亚洲综合| 中文字幕不卡在线观看| 国产三区在线成人av| 国产亚洲精久久久久久| 国产精品视频看| 欧美经典一区二区| 亚洲欧美偷拍另类a∨色屁股| 亚洲不卡一区二区三区| 另类综合日韩欧美亚洲| 国产成人丝袜美腿| 色吊一区二区三区| 51精品视频一区二区三区| 久久综合九色综合97婷婷| 中文字幕一区二区三区色视频| 亚洲激情在线激情| 蜜桃av噜噜一区二区三区小说| 国产精品综合网| 色综合久久久网| 欧美一级午夜免费电影| 国产精品视频yy9299一区|