fbgetfriendsstatusrequest.java

来自「Sony Ericsson手机上的Facebook客户端全套代码」· Java 代码 · 共 73 行

JAVA
73
字号
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   FbGetFriendsStatusRequest.java

package com.sonyericsson.fb.api.request;

import com.sonyericsson.fb.api.FbSessionHandler;
import com.sonyericsson.fb.api.InvalidStateException;
import com.sonyericsson.fb.api.data.FbItemDataFactory;
import com.sonyericsson.fb.api.data.FbStatusItemData;
import java.util.Hashtable;
import se.southend.drops.xml.XMLNode;

// Referenced classes of package com.sonyericsson.fb.api.request:
//            FbAPIRequest, IFbAPIRequestListener

public class FbGetFriendsStatusRequest extends FbAPIRequest
{

    public FbGetFriendsStatusRequest(IFbAPIRequestListener listener, int limit)
    {
        _statusTable = new Hashtable();
        _listener = listener;
        _limit = limit;
    }

    public void runRequest()
    {
        String uid = "";
        try
        {
            uid = FbSessionHandler.getInstance().getUid();
        }
        catch(InvalidStateException e)
        {
            _statusCode = 2003;
        }
        if(uid.length() > 0)
        {
            String subQuery = "SELECT uid FROM user WHERE uid IN (SELECT uid1 FROM friend WHERE uid2 IN (" + uid + "))";
            String query = "SELECT uid,status FROM user WHERE uid IN (" + subQuery + ") AND strlen(status.message) > 0 ORDER BY status.time DESC LIMIT " + Math.min(30, _limit);
            Hashtable arguments = new Hashtable();
            arguments.put("method", "facebook.fql.query");
            arguments.put("query", query);
            XMLNode root = new XMLNode();
            _statusCode = callMethod(arguments, root);
            if(_statusCode == 0 && root != null && root.getName().equalsIgnoreCase("fql_query_response"))
            {
                for(int i = 0; i < root.getNumberOfChildren(); i++)
                {
                    XMLNode child = root.getChild(i);
                    FbStatusItemData status = (FbStatusItemData)FbItemDataFactory.getInstance().createItem(0, child);
                    if(status != null)
                        _statusTable.put(status.getUid(), status);
                }

            }
        }
        if(_listener != null)
            _listener.requestCompleted(this);
    }

    public Hashtable getStatusTable()
    {
        return _statusTable;
    }

    public static final int FB_STATUS_REQUEST_MAX_LIMIT = 30;
    private Hashtable _statusTable;
    private int _limit;
}

⌨️ 快捷键说明

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