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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? chathistory.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/ChatHistory.java Version: ###VERSION###  Date: ###DATE### Author(s): Andreas Rossbacher, Artyomov Denis, Dmitry Tunin *******************************************************************************/package jimm;import java.util.*;import javax.microedition.lcdui.*;import jimm.comm.Icq;import jimm.comm.Message;import jimm.comm.PlainMessage;import jimm.comm.SearchAction;import jimm.comm.SysNoticeAction;import jimm.comm.SystemNotice;import jimm.comm.UrlMessage;import jimm.comm.Util;import jimm.util.ResourceBundle;//#sijapp cond.if modules_HISTORY is "true" #import jimm.HistoryStorage;//#sijapp cond.end#import DrawControls.TextList;import DrawControls.VirtualList;import DrawControls.VirtualListCommands;class MessData{	private long time;	private int rowData;	private int messId;	public MessData(boolean incoming, long time, int textOffset,			boolean contains_url, int messId)	{		this.messId = messId;		this.time = time;		this.rowData = (textOffset & 0xFFFFFF) | (contains_url ? 0x8000000 : 0)				| (incoming ? 0x4000000 : 0);	}	public boolean getIncoming()	{		return (rowData & 0x4000000) != 0;	}	public long getTime()	{		return time;	}	public int getOffset()	{		return (rowData & 0xFFFFFF);	}		public int getMessId()	{		return messId;	}	//#sijapp cond.if target is "MIDP2" | target is "SIEMENS2" | target is "MOTOROLA"#	public boolean isURL()	{		return (rowData & 0x8000000) != 0;	}	//#sijapp cond.end#}class ChatTextList implements VirtualListCommands, CommandListener, JimmScreen{	// UI modes	final public static int UI_MODE_NONE = 0;	final public static int UI_MODE_DEL_CHAT = 1;		// Chat	TextList textList;	private static final Command cmdMsgReply = new Command(ResourceBundle.getString("reply", ResourceBundle.FLAG_ELLIPSIS), Command.OK, 1);	private static final Command cmdCloseChat = new Command(ResourceBundle.getString("close"), Jimm.cmdBack, 2);	private static final Command cmdCopyText = new Command(ResourceBundle.getString("copy_text"), Command.ITEM, 4);	private static final Command cmdReplWithQuota = new Command(ResourceBundle.getString("quote", ResourceBundle.FLAG_ELLIPSIS), Command.ITEM, 3);	private static final Command cmdAddUrs = new Command(ResourceBundle.getString("add_user", ResourceBundle.FLAG_ELLIPSIS), Command.ITEM, 5);	private static final Command cmdDenyAuth = new Command(ResourceBundle.getString("deny"), Command.CANCEL, 1);		/* Request authorisation from a contact */	private static final Command cmdReqAuth = new Command(ResourceBundle.getString("requauth"), Command.ITEM, 1);			/* Grand authorisation a for authorisation asking contact */	private static final  Command cmdGrantAuth = new Command(ResourceBundle.getString("grant"), Command.ITEM, 1);	//#sijapp cond.if modules_HISTORY is "true" #	private static final  Command cmdAddToHistory = new Command(ResourceBundle.getString("add_to_history"), Command.ITEM, 6);	//#sijapp cond.end#	// Delete Chat History	private static final  Command cmdDelChat = new Command(ResourceBundle.getString("delete_chat", ResourceBundle.FLAG_ELLIPSIS), Command.ITEM, 8);		/* Show the message menu */	private static final Command cmdContactMenu = new Command(ResourceBundle.getString("user_menu"), Command.ITEM, 7);		public String ChatName;	ContactItem contact;	private Vector messData = new Vector();	private int messTotalCounter = 0;	private long lastMsgTime = 0;	private boolean lastDirection;	ChatTextList(String name, ContactItem contact)	{		textList = new TextList(null);		textList.setMode(VirtualList.CURSOR_MODE_DISABLED);		textList.setFontSize(Options.getBoolean(Options.OPTION_CHAT_SMALL_FONT) ? VirtualList.SMALL_FONT : VirtualList.MEDIUM_FONT);		this.contact = contact;		ChatName = name;		textList.setVLCommands(this);	}		public ContactItem getContact()	{		return contact;	}		public Object getUIControl()	{		return textList;	}		void buildMenu()	{		textList.removeAllCommands();		//#sijapp cond.if target!="RIM" & target!="DEFAULT"#		textList.addCommandEx(JimmUI.cmdMenu, VirtualList.MENU_TYPE_RIGHT_BAR);//#sijapp cond.end#				textList.addCommandEx(cmdMsgReply, VirtualList.MENU_TYPE_RIGHT);		textList.addCommandEx(cmdDelChat, VirtualList.MENU_TYPE_RIGHT);		textList.addCommandEx(cmdCopyText, VirtualList.MENU_TYPE_RIGHT);				if (contact.getBooleanValue(ContactItem.CONTACTITEM_IS_TEMP)) 			textList.addCommandEx(cmdAddUrs, VirtualList.MENU_TYPE_RIGHT);				if (JimmUI.getClipBoardText() != null) textList.addCommandEx(cmdReplWithQuota, VirtualList.MENU_TYPE_RIGHT);				//#sijapp cond.if modules_HISTORY is "true" #		if (!Options.getBoolean(Options.OPTION_HISTORY)) textList.addCommandEx(cmdAddToHistory, VirtualList.MENU_TYPE_RIGHT);		//#sijapp cond.end#				if (contact.getBooleanValue(ContactItem.CONTACTITEM_NO_AUTH))			textList.addCommandEx(cmdReqAuth, VirtualList.MENU_TYPE_RIGHT);				textList.addCommandEx(cmdContactMenu, VirtualList.MENU_TYPE_RIGHT);				textList.addCommandEx(cmdCloseChat, VirtualList.MENU_TYPE_LEFT_BAR);				checkTextForURL();		checkForAuthReply();				textList.setCommandListener(this);	}		public boolean isVisible()	{		if (textList != null) return textList.isActive();		return false;	}		public void commandAction(Command c, Displayable d)	{		Jimm.aaUserActivity();				/* User selected chat to delete */		if (JimmUI.getCurScreenTag() == UI_MODE_DEL_CHAT)		{			if (c == JimmUI.cmdOk)			{				int delType = -1;				switch (JimmUI.getLastSelIndex())				{				case 0:					delType = ChatHistory.DEL_TYPE_CURRENT;					break;				case 1:					delType = ChatHistory.DEL_TYPE_ALL_EXCEPT_CUR;					break;				case 2:					delType = ChatHistory.DEL_TYPE_ALL;					break;				}				ChatHistory.chatHistoryDelete(contact.getStringValue(ContactItem.CONTACTITEM_UIN), delType);				ContactList.activateList();				return;			}			else activate();		}				/* Write new message */		else if (c == cmdMsgReply)		{			JimmUI.writeMessage(contact, null);		}				/* Close current chat */		else if (c == cmdCloseChat)		{			contact.resetUnreadMessages();			JimmUI.backToLastScreen();		}				/* Delete current chat */		else if (c == cmdDelChat)		{			JimmUI.showSelector("delete_chat", JimmUI.stdSelector, this, UI_MODE_DEL_CHAT, true);		}				/* Copy selected text to clipboard */		else if (c == cmdCopyText)		{			ChatHistory.copyText(contact.getStringValue(ContactItem.CONTACTITEM_UIN), ChatName);			textList.addCommandEx(cmdReplWithQuota, VirtualList.MENU_TYPE_RIGHT);		}				/* Reply with quotation */		else if (c == cmdReplWithQuota)		{			JimmUI.writeMessage(contact, JimmUI.getClipBoardText());		}				/* Open URL in web brouser */		//#sijapp cond.if target is "MIDP2" | target is "MOTOROLA" | target is "SIEMENS2"#		else if (c == JimmUI.cmdGotoURL)		{			JimmUI.gotoURL(textList.getCurrText(0, false));		}		//#sijapp cond.end#				/* Add temporary user to contact list */		else if (c == cmdAddUrs)		{			Search search = new Search();			String data[] = new String[Search.LAST_INDEX];			data[Search.UIN] = contact.getStringValue(ContactItem.CONTACTITEM_UIN);			SearchAction act = new SearchAction(search, data, SearchAction.CALLED_BY_ADDUSER);			try			{				Icq.requestAction(act);			} catch (JimmException e)			{				JimmException.handleException(e);			}			SplashCanvas.addTimerTask("wait", act, false);		}				/* Add selected text to history */		//#sijapp cond.if modules_HISTORY is "true" #		else if (c == cmdAddToHistory)		{			int textIndex = textList.getCurrTextIndex();			MessData data = (MessData) getMessData().elementAt(textIndex);			String text = textList.getCurrText(data.getOffset(), false);			if (text == null)				return;			String uin = contact.getStringValue(ContactItem.CONTACTITEM_UIN);			HistoryStorage.addText(uin, text, data.getIncoming() ? (byte) 0					: (byte) 1, data.getIncoming() ? ChatName : ResourceBundle					.getString("me"), data.getTime());		}		//#sijapp cond.end#				/* Grant authorization */		else if (c == cmdGrantAuth)		{			SystemNotice notice = new SystemNotice(					SystemNotice.SYS_NOTICE_AUTHORISE,					contact.getStringValue(ContactItem.CONTACTITEM_UIN),					true, "");			SysNoticeAction sysNotAct = new SysNoticeAction(notice);			try			{				Icq.requestAction(sysNotAct);							contact.setBooleanValue(ContactItem.CONTACTITEM_B_AUTREQUESTS, false);				buildMenu();			} catch (JimmException e)			{				JimmException.handleException(e);				if (e.isCritical()) return;			}		}				/* Deny authorization */		else if (c == cmdDenyAuth)		{			JimmUI.authMessage(JimmUI.AUTH_TYPE_DENY, contact, "reason", null);		}				/* Request autorization */		else if (c == cmdReqAuth)		{			JimmUI.authMessage(JimmUI.AUTH_TYPE_REQ_AUTH, contact, "requauth", "plsauthme");		}				/* Show contact menu */		else if (c == cmdContactMenu)		{			JimmUI.showContactMenu(contact);		}	}		static int getInOutColor(boolean incoming)	{		return incoming 			? JimmUI.INDEXED_COLOR_INCOMING			: JimmUI.INDEXED_COLOR_OUTGOING;	}	Vector getMessData()	{		return messData;	}	public void vlCursorMoved(VirtualList sender)	{		checkTextForURL();	}		void checkTextForURL()	{		//#sijapp cond.if target is "MIDP2" | target is "SIEMENS2" | target is "MOTOROLA"#		textList.removeCommandEx(JimmUI.cmdGotoURL);		int messIndex = textList.getCurrTextIndex();		if (messIndex != -1)		{			MessData md = (MessData) getMessData().elementAt(messIndex);			if (md.isURL()) textList.addCommandEx(JimmUI.cmdGotoURL, VirtualList.MENU_TYPE_RIGHT);		}		//#sijapp cond.end#	}		void checkForAuthReply()	{		if (contact.getBooleanValue(ContactItem.CONTACTITEM_B_AUTREQUESTS))		{			textList.addCommandEx(cmdGrantAuth, VirtualList.MENU_TYPE_RIGHT);			textList.addCommandEx(cmdDenyAuth, VirtualList.MENU_TYPE_RIGHT);		}	}		public void setImages(Image[] images)	{		textList.setCapImage(images);	}	public void vlItemClicked(VirtualList sender)	{	}	public void vlKeyPress(VirtualList sender, int keyCode, int type)	{		boolean keyWasProcessed = false;				Jimm.aaUserActivity();				try // getGameAction can raise exception		{			if (type == VirtualList.KEY_PRESSED)			{				switch (sender.getGameAction(keyCode))				{				case Canvas.LEFT:					keyWasProcessed = ChatHistory.selectNextChat_Internal(this, false);					return;				case Canvas.RIGHT:					keyWasProcessed = ChatHistory.selectNextChat_Internal(this, true);					return;				}			}			if (!keyWasProcessed) JimmUI.execHotKey(contact, keyCode, type);		} 		catch (Exception e) { /* do nothing */ }	}	//#sijapp cond.if target isnot "DEFAULT"#	public void BeginTyping(boolean type)	{		System.out.println("ChatHistory.BeginTyping");		textList.repaint();	}	//#sijapp cond.end#	boolean inOneMinute (long time1, long time2) {		return ( ((time1 / 60) % 60 == (time2 / 60) % 60) ? true : false );	}	void addTextToForm(String from, String message, String url, long time,			boolean red, boolean offline, int messId)	{		int texOffset = 0;		boolean deliveryReqOn = Options.getBoolean(Options.OPTION_DELIV_MES_INFO); 		textList.lock();			boolean shortMsg = (inOneMinute (lastMsgTime, time)) 			&& (lastDirection == red) 			&& !deliveryReqOn;		int lastSize = textList.getSize();				StringBuffer messHeader = new StringBuffer();				if (((Options.getBoolean(Options.OPTION_SHOW_MESS_ICON)) && (!shortMsg)) || deliveryReqOn)		{			textList.addImage(JimmUI.eventPlainMessageImg, "", messTotalCounter);			messHeader.append(' ');		}				if ((Options.getBoolean(Options.OPTION_SHOW_NICK)) && (!shortMsg))		{			messHeader.append(from);			messHeader.append(' ');		}		

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区精品视频在线| 狠狠色狠狠色综合日日91app| 亚洲精品菠萝久久久久久久| 亚洲色大成网站www久久九九| 综合久久一区二区三区| 亚洲精品免费在线观看| 午夜日韩在线电影| 激情综合色丁香一区二区| 国产.精品.日韩.另类.中文.在线.播放| 精品一二三四区| 97久久超碰国产精品电影| 欧美日韩免费高清一区色橹橹 | 国产成人综合视频| 成人av网址在线| 91.麻豆视频| 国产精品久久久久一区| 三级久久三级久久久| 成人国产精品免费观看视频| 欧美色图激情小说| 久久尤物电影视频在线观看| 一区二区三区色| 国产精品一区二区男女羞羞无遮挡| 97久久久精品综合88久久| 欧美不卡一区二区三区四区| 亚洲蜜臀av乱码久久精品蜜桃| 欧美96一区二区免费视频| 91碰在线视频| 国产亚洲欧美日韩日本| 免费看日韩精品| 欧美日韩极品在线观看一区| 亚洲欧洲一区二区三区| 黑人精品欧美一区二区蜜桃| 欧美午夜电影网| 亚洲精品菠萝久久久久久久| 夫妻av一区二区| 久久综合999| 韩国精品久久久| 2020日本不卡一区二区视频| 久久电影网站中文字幕| 欧美日韩精品欧美日韩精品 | av高清不卡在线| 91精品国产一区二区人妖| 亚洲丰满少妇videoshd| 91精品国产品国语在线不卡| 国产精品99久久久久久宅男| 99久久精品免费| 中文字幕一区二区在线播放| 国产高清在线精品| 国产精品天美传媒| 97久久人人超碰| 亚洲一区视频在线| 欧美日韩日日夜夜| 激情综合网av| 国产精品丝袜在线| 91福利视频在线| 日韩福利电影在线| 26uuu国产电影一区二区| 国产成人久久精品77777最新版本| 日本一区二区三区在线观看| 盗摄精品av一区二区三区| 亚洲日本一区二区| 欧美人妇做爰xxxⅹ性高电影| 六月丁香综合在线视频| 久久综合色8888| 日本久久一区二区| 美女脱光内衣内裤视频久久影院| 久久久国产午夜精品 | 国产精品色哟哟| 在线观看欧美日本| 国产精品综合一区二区三区| 亚洲午夜免费福利视频| 久久久国产精品麻豆| 在线播放国产精品二区一二区四区 | 亚洲精品一区二区在线观看| 99国产精品久久久久| 精品夜夜嗨av一区二区三区| ●精品国产综合乱码久久久久| 欧美一区二区三区视频免费播放 | 中文字幕五月欧美| 欧美大尺度电影在线| 色综合天天综合网天天看片| 韩国一区二区三区| 亚洲自拍另类综合| 中文在线一区二区| 久久青草欧美一区二区三区| 91麻豆精品91久久久久久清纯| www.日韩精品| 成人一道本在线| 韩国v欧美v亚洲v日本v| 日本va欧美va精品发布| 1区2区3区精品视频| 中文字幕av一区二区三区| 2023国产精华国产精品| 日韩欧美高清在线| 欧美一区二区三区四区高清| 欧美三级日韩三级| 欧美日韩免费不卡视频一区二区三区| 成人av在线影院| a亚洲天堂av| 日本久久精品电影| 欧美系列亚洲系列| 日韩一区二区三区视频| 日韩欧美视频在线| 久久日韩精品一区二区五区| 久久女同互慰一区二区三区| 久久伊人蜜桃av一区二区| 久久久久国产精品人| 国产精品久久久久影院色老大| 国产精品网曝门| 亚洲综合成人网| 丁香一区二区三区| 国产91清纯白嫩初高中在线观看| 国产高清无密码一区二区三区| 国产凹凸在线观看一区二区| 成人av电影在线| 欧美日韩中文另类| 精品粉嫩超白一线天av| 国产精品日日摸夜夜摸av| 亚洲美女在线一区| 激情综合亚洲精品| 成人av在线播放网站| 欧美日韩大陆一区二区| 欧美激情一区二区| 日韩国产高清在线| 91在线视频在线| 精品国产乱码久久久久久闺蜜| 国产精品免费久久久久| 麻豆91免费看| 欧美日韩五月天| 国产精品国产馆在线真实露脸| 三级久久三级久久| 色综合久久久久久久久久久| 亚洲精品一区二区三区在线观看 | 亚洲精品视频一区| 日本aⅴ免费视频一区二区三区| 国产a精品视频| 日韩免费一区二区| 五月综合激情日本mⅴ| 91麻豆国产自产在线观看| 日韩色在线观看| 午夜精品福利一区二区蜜股av| 国产a区久久久| 久久免费视频一区| 国产一区999| 精品国产一二三| 美腿丝袜亚洲一区| 欧美tickle裸体挠脚心vk| 中文字幕一区av| 福利电影一区二区三区| 国产香蕉久久精品综合网| 蜜桃一区二区三区在线| 欧美一级一区二区| 青娱乐精品视频| 精品久久一二三区| 国产在线麻豆精品观看| 精品少妇一区二区| 国产精品香蕉一区二区三区| 久久久综合视频| 成人av免费观看| 亚洲欧美日韩综合aⅴ视频| 99r国产精品| 亚洲18色成人| 日韩欧美国产综合| 国产乱码一区二区三区| 中文字幕乱码一区二区免费| 成人爱爱电影网址| 亚洲图片欧美综合| 欧美一区二区黄| 风流少妇一区二区| 国产精品国产馆在线真实露脸| 91传媒视频在线播放| 亚洲va欧美va国产va天堂影院| 欧美裸体一区二区三区| 毛片不卡一区二区| 国产精品色呦呦| 69堂成人精品免费视频| 国产一二三精品| 亚洲成人免费影院| 国产精品欧美久久久久一区二区 | 亚洲三级免费电影| 欧美一级片在线观看| 99re在线精品| 国产真实乱对白精彩久久| 亚洲自拍偷拍麻豆| 久久美女高清视频| 久久久综合视频| 欧美性受xxxx黑人xyx| 丁香天五香天堂综合| 免费观看一级特黄欧美大片| 亚洲人成网站色在线观看| 欧美精品一区二区三区四区| 欧洲精品中文字幕| 成人久久久精品乱码一区二区三区 | 日本一区二区三区视频视频| 欧美福利视频导航| 91麻豆国产在线观看| 国产成人av电影| 国产呦萝稀缺另类资源| 午夜视黄欧洲亚洲| 亚洲第一成年网|