📄 mmidlet.java
字号:
import java.io.*;
import java.util.*;
import javax.microedition.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.media.*;
import javax.microedition.media.control.ToneControl;
import javax.microedition.media.control.VolumeControl;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.rms.*;
public class MMIDlet extends MIDlet implements CommandListener, ItemStateListener
{
public static int testPosition = 0;
public static boolean isKeypad = true;
public static final String rmsName = "FIRSTRMS";
public int leftKeyCode;
public int rightKeyCode;
public static final boolean DEBUG = false;
public static final boolean ONLY_MOBILE = false;
public static String url_DownPhoto;
public static String url_UpPhoto;
public static String url_DownFile;
public static String url_UpFile;
public static String url_NewVersion;
public static String newVersionTag;
public static String serverUrl;
public static String realHostIP;
public static String str_ClientVersion = "";
public static String mobileHeader;
public static String version;
public static User user = new User();
public static Hashtable ht_BuddyList = new Hashtable();
public static Vector vec_Wpending;
public static Vector vec_CancelWpendingPair;
public static Hashtable ht_StrangerList = new Hashtable();
public static Hashtable ht_BlackList = new Hashtable();
public static String guid;
public static int buddyNum = 0;
public static Font DEFAULT_FONT = Font.getDefaultFont();
public static MList ml_BuddyList;
public static MList ml_SessionList;
public static MList ml_BlackList;
public static MList ml_StrangerList;
public static MListItem selectedItem;
public static boolean isProxy = false;
public static MCanvas canvas;
public static FirstCanvas firstCan;
public static MMIDlet instance;
public static Display display;
public Command cmd_Yes;
public Command cmd_No;
public Command cmd_CommonWords;
public Command cmd_Send;
public Command cmd_Edit;
public Command cmd_Save;
public Command cmd_Skip;
public Command cmd_AlertOK;
StringItem item_join;
StringItem item_Dinggou;
StringItem item_SoonLogin;
Form form_ServiceEntry;
Form form_ServiceIntro;
Form form_LoginState;
ChoiceGroup cg_MessageNotify;
ChoiceGroup cg_Authorization;
TextField tf_nickName;
ChoiceGroup cg_SexSetting;
DateField df_BirthDay;
private List mainList;
private List optionList;
private List commandList;
TextBox tb_WriteMessage;
private boolean isLogin;
private boolean isDestroy;
static boolean isMoto = false;
static boolean isSE = false;
static boolean isSam = false;
boolean messageNotifyFlag[] = {
true, true, false
};
private String commonWords[] = {
"你好。", "有时间么?可以和你聊聊吗?", "你好,很高兴可以和你成为朋友。", "你多大了?是男生还是女生?", "你是用手机聊吗?", "为什么不说话?", "你的名字好特别,是什么意思呢?", "可以给我你的电话号码吗?", "回头再聊,我正开车呢。", "这么晚了,还不睡?"
};
private String temp_CommonWords[];
private boolean doingCancelService;
Buddy selectedBuddy;
ChatSession selectedChatSession;
Hashtable ht_AllChatSession;
private Stack backScreens;
Calendar now;
private boolean needSaveWords;
private int selectedWordsIndex;
private int currentPresenceIndex;
private Vector vec_UninitServiceQueue;
private ServiceAction as_CurrentServiceAction;
private String viewBuddyUri;
private boolean isCompatible;
private Player player;
private boolean directlyExit;
public static int rpcode = 200;
private Vector readyToSelectedBuddies;
public int startStepTimer;
public int position;
String str_ServerEntry;
static boolean ioError = false;
static boolean responseError = false;
boolean isUsedJ2me;
boolean isFirstRegedit;
private boolean cancelLogin;
private boolean cancelOpenService;
String FEE_README;
int errorTimer;
ChoiceGroup cg_AddOption;
ChoiceGroup cg_Addtoo;
static final byte SERVICE_ASK_TIME = 3;
static int serviceAskTimer = 3;
public void addNewChatSession(String s, ChatSession chatsession)
{
if(ht_AllChatSession.size() >= 10)
{
MListItem mlistitem = ml_SessionList.deleteLastItem();
ht_AllChatSession.remove(mlistitem.chatSession.key);
mlistitem.chatSession.close();
}
ht_AllChatSession.put(s, chatsession);
ml_SessionList.addItem(new MListItem(chatsession));
}
public void deleteChatSessionByKey(Object obj)
{
Object obj1 = ht_AllChatSession.remove(obj);
if(obj1 == null)
{
return;
} else
{
ChatSession chatsession = (ChatSession)obj1;
ml_SessionList.deleteItem(chatsession.item);
chatsession.close();
obj1 = selectedChatSession = chatsession = null;
System.gc();
return;
}
}
public void updateChatSessionKey(String s)
{
}
public Vector getOnlineBuddies(Vector vector)
{
Vector vector1 = new Vector();
for(int i = 0; i < ml_BuddyList.size(); i++)
{
Buddy buddy = (Buddy)((MListItem)ml_BuddyList.items.elementAt(i)).getObject();
if(!buddy.isOnline())
break;
if(!vector.contains(buddy.uri))
vector1.addElement(buddy);
}
return vector1;
}
public void showSelectedBuddiesList(Vector vector, String s, int i)
{
int j = vector.size();
if(j == 0)
return;
readyToSelectedBuddies = new Vector(j);
List list = new List(s, i);
for(int k = 0; k < j; k++)
{
Buddy buddy = (Buddy)vector.elementAt(k);
list.append(buddy.nickName, null);
readyToSelectedBuddies.addElement(buddy);
}
list.addCommand(Setting.cmd_Back);
list.addCommand(Setting.cmd_Selected);
list.setCommandListener(this);
display.setCurrent(list);
}
public boolean isBlock(String s)
{
return ht_BlackList.containsKey(s);
}
public void pushBackScreen(Displayable displayable)
{
if(displayable == null)
return;
if(backScreens == null)
backScreens = new Stack();
if(backScreens.empty() || !displayable.equals(backScreens.peek()))
{
if(displayable == canvas)
backScreens.removeAllElements();
backScreens.push(displayable);
}
}
public MMIDlet()
{
leftKeyCode = -7;
rightKeyCode = -6;
cmd_AlertOK = new Command("确定", 4, 1);
isLogin = false;
isDestroy = false;
temp_CommonWords = null;
doingCancelService = false;
ht_AllChatSession = new Hashtable();
now = Calendar.getInstance();
needSaveWords = false;
vec_UninitServiceQueue = new Vector(2);
viewBuddyUri = null;
isCompatible = true;
directlyExit = false;
startStepTimer = 0;
position = 0;
isUsedJ2me = true;
isFirstRegedit = false;
cancelLogin = false;
cancelOpenService = false;
errorTimer = 0;
cg_AddOption = null;
cg_Addtoo = null;
if(isKeypad)
{
firstCan = new FirstCanvas();
instance = this;
if(firstTime())
{
Display.getDisplay(this).setCurrent(firstCan);
} else
{
initKeyValues();
initMMIDlet();
}
} else
{
instance = this;
initMMIDlet();
}
}
public void initMMIDlet()
{
display = Display.getDisplay(this);
mobileHeader = "x-up-calling-line-id";
version = "1.0.18";
str_ClientVersion = "Amigo_J2ME_C11M20_CMCC_ANJIAN/" + version;
canvas = new MCanvas(this);
display.setCurrent(canvas);
(new Thread() {
public void run()
{
runOnlyOnceAtStart();
}
}).start();
}
public void runOnlyOnceAtStart()
{
initAll();
startStepTimer = 1;
canvas.doAnimation(1);
if(!getAdapterUrl())
{
directlyExit = true;
showConfirmScreen("请确认您开通了gprs,并且在手机上正确设置了上网方式;不同意进行网络连接也是无法使用该程序的;您可以拨打10086寻求帮助。" + errorCode("ffff"), null, new Command[] {
Setting.cmd_Exit
});
return;
} else
{
setServerURL(isProxy, serverUrl);
startStepTimer = 6;
Transform.instance.initRequest();
return;
}
}
public String getBuildString()
{
StringBuffer stringbuffer = new StringBuffer(str_ClientVersion.substring(6));
stringbuffer.append("/");
stringbuffer.append(getAppProperty("build"));
return stringbuffer.toString();
}
static String errorCode(String s)
{
StringBuffer stringbuffer = new StringBuffer(6);
stringbuffer.append("\n错误码:").append(s).append('&');
if(ioError)
stringbuffer.append("000");
else
if(responseError)
stringbuffer.append(rpcode);
return stringbuffer.toString();
}
public static byte[] reading(InputStream inputstream, int i, byte byte0)
throws IOException
{
byte abyte0[];
switch(byte0)
{
case 0: // '\0'
if(i <= 0)
return null;
abyte0 = new byte[i];
inputstream.read(abyte0);
break;
case 1: // '\001'
byte abyte1[] = new byte[3];
inputstream.read(abyte1, 0, 3);
int j = (abyte1[0] & 0xff) << 16 | (abyte1[1] & 0xff) << 8 | abyte1[2] & 0xff;
abyte0 = new byte[j];
System.arraycopy(abyte1, 0, abyte0, 0, 3);
inputstream.read(abyte0, 3, j - 3);
break;
case 2: // '\002'
default:
byte abyte2[] = new byte[1024];
boolean flag = false;
int l = 0;
int i1 = 0;
do
{
i1++;
int k = inputstream.read(abyte2, l, abyte2.length - l);
if(k == -1)
break;
l += k;
if(l >= abyte2.length)
{
byte abyte3[] = new byte[abyte2.length + 1024];
System.arraycopy(abyte2, 0, abyte3, 0, abyte2.length);
abyte2 = abyte3;
}
} while(true);
abyte0 = new byte[l];
System.arraycopy(abyte2, 0, abyte0, 0, l);
break;
}
return abyte0;
}
public void output(String s)
{
}
private boolean getAdapterUrl()
{
HttpConnection httpconnection;
DataInputStream datainputstream;
DataOutputStream dataoutputstream;
byte abyte0[];
String s;
int i;
httpconnection = null;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -