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

📄 q.java

📁 牛人写的java版的中国移动飞信的源代码
💻 JAVA
字号:
import java.io.*;
import java.util.Vector;
import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;

final class q
    implements Runnable
{

    private k b;
    private volatile boolean c;
    private boolean d;
    private Vector e;
    byte a;
    private r f;

    q(k k1)
    {
        b = k.c;
        c = false;
        d = false;
        e = new Vector(2);
        a = 0;
        f = null;
        b = k1;
        (new Thread(this)).start();
    }

    public final void a(r r1)
    {
        e.addElement(r1);
        synchronized(this)
        {
            notify();
        }
    }

    final void a(boolean flag)
    {
        d = flag;
        if(d && c())
        {
            a(b.a());
        }
    }

    public final void run()
    {
        r r1 = null;
_L4:
        if(c)
        {
            break; /* Loop/switch isn't completed */
        }
        q q1 = this;
        JVM INSTR monitorenter ;
        "# packageQueue.size()" + e.size();
_L2:
        if(!c())
        {
            break MISSING_BLOCK_LABEL_66;
        }
        wait();
        continue; /* Loop/switch isn't completed */
        Exception exception;
        exception;
        throw exception;
        if(!c) goto _L2; else goto _L1
_L1:
        return;
        Exception exception1;
        exception1;
        throw exception1;
        if((r1 = (r)e.elementAt(0)).c > 0)
        {
            synchronized(this)
            {
                try
                {
                    wait(r1.c * 1000);
                }
                catch(Exception _ex) { }
            }
        }
        if(r1.a == 0 && !e.lastElement().equals(r1))
        {
            e.removeElementAt(0);
            r1 = (r)e.elementAt(0);
        }
        if(b(r1))
        {
            a = 0;
            e.removeElementAt(0);
            if(c() && d)
            {
                a(b.a());
            }
            continue; /* Loop/switch isn't completed */
        }
        if(7 == r1.a)
        {
            MMIDlet.A.notifyDestroyed();
            return;
        }
        try
        {
            a++;
            if(a >= 4)
            {
                if(a == 4)
                {
                    k.a(r1);
                }
                try
                {
                    Thread.sleep(5000L);
                }
                catch(Exception _ex) { }
            }
            if(a % 6 == 0)
            {
                MMIDlet.A.b("\u53D1\u751F\u5F02\u5E38\uFF0C\u8BF7\u7A0D\u5019\u7247\u523B\u518D\u4F7F\u7528\u8BE5" +
"\u7A0B\u5E8F\u3002"
 + MMIDlet.b(Integer.toHexString(r1.a)), null);
            }
        }
        catch(Exception _ex)
        {
            e.removeAllElements();
            MMIDlet.W = 200;
            MMIDlet.A.e(Integer.toHexString(r1.a));
        }
        if(true) goto _L4; else goto _L3
_L3:
    }

    private boolean b(r r1)
    {
        HttpConnection httpconnection;
        DataInputStream datainputstream;
        DataOutputStream dataoutputstream;
        byte abyte0[];
        f = r1;
        httpconnection = null;
        datainputstream = null;
        dataoutputstream = null;
        MMIDlet.Z = false;
        MMIDlet.aa = false;
        abyte0 = null;
        httpconnection = (HttpConnection)Connector.open(MMIDlet.c);
        if(MMIDlet.y)
        {
            httpconnection.setRequestProperty("X-Online-Host", MMIDlet.d);
        }
        httpconnection.setRequestMethod("POST");
        httpconnection.setRequestProperty("Content-Length", String.valueOf(r1.b.length));
        String s;
        if((s = MMIDlet.A.getAppProperty("cellphone")) != null)
        {
            httpconnection.setRequestProperty(MMIDlet.f, MMIDlet.k.l == null ? s : MMIDlet.k.l);
        }
        (dataoutputstream = httpconnection.openDataOutputStream()).write(r1.b);
        k.a += r1.b.length;
        datainputstream = httpconnection.openDataInputStream();
        int i = (int)httpconnection.getLength();
        MMIDlet.W = httpconnection.getResponseCode();
        if(MMIDlet.W >= 200 && MMIDlet.W < 300)
        {
            abyte0 = MMIDlet.a(datainputstream, i, (byte)2);
        } else
        {
            MMIDlet.aa = true;
        }
        if(datainputstream != null)
        {
            try
            {
                datainputstream.close();
            }
            catch(IOException _ex) { }
        }
        if(dataoutputstream != null)
        {
            try
            {
                dataoutputstream.close();
            }
            catch(IOException _ex) { }
        }
        if(httpconnection != null)
        {
            try
            {
                httpconnection.close();
            }
            catch(IOException _ex) { }
        }
        break MISSING_BLOCK_LABEL_342;
        JVM INSTR pop ;
        MMIDlet.Z = true;
        boolean flag = false;
        if(datainputstream != null)
        {
            try
            {
                datainputstream.close();
            }
            catch(IOException _ex) { }
        }
        if(dataoutputstream != null)
        {
            try
            {
                dataoutputstream.close();
            }
            catch(IOException _ex) { }
        }
        if(httpconnection != null)
        {
            try
            {
                httpconnection.close();
            }
            catch(IOException _ex) { }
        }
        return false;
        Exception exception;
        exception;
        if(datainputstream != null)
        {
            try
            {
                datainputstream.close();
            }
            catch(IOException _ex) { }
        }
        if(dataoutputstream != null)
        {
            try
            {
                dataoutputstream.close();
            }
            catch(IOException _ex) { }
        }
        if(httpconnection != null)
        {
            try
            {
                httpconnection.close();
            }
            catch(IOException _ex) { }
        }
        throw exception;
        if(MMIDlet.Z)
        {
            return false;
        }
        if(MMIDlet.aa)
        {
            return false;
        }
        k.b += abyte0.length;
        if(abyte0[3] != -1)
        {
            b.b(new r(abyte0));
        } else
        {
            byte byte0 = abyte0[4];
            boolean flag1 = false;
            Object obj = null;
            int l = 5;
            for(int i1 = 0; i1 < byte0; i1++)
            {
                int j;
                byte abyte1[] = new byte[j = (abyte0[l] & 0xff) << 16 | (abyte0[l + 1] & 0xff) << 8 | abyte0[l + 2] & 0xff];
                System.arraycopy(abyte0, l, abyte1, 0, j);
                b.b(new r(abyte1));
                l += j;
            }

        }
        return true;
    }

    final void a()
    {
        c = true;
        synchronized(this)
        {
            notify();
        }
    }

    private boolean c()
    {
        String _tmp = "# packageQueue.size():" + e.size();
        return e.size() == 0;
    }

    public final void b()
    {
        a(f);
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -