⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mmidlet.java

📁 飞信的j2me源代码
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
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 + -