Author: jerome
Date: 2009-06-17 10:51:26 +0200 (Wed, 17 Jun 2009)
New Revision: 4821

Modified:
   
software_suite_v2/software/gadgets/tuxdroid-gadget-facebook/trunk/tuxdroid-gadget-facebook/src/FacebookFunctions.java
Log:
* Fixed a bug : FB api give not all event names, so, fql queries was needed.

Modified: 
software_suite_v2/software/gadgets/tuxdroid-gadget-facebook/trunk/tuxdroid-gadget-facebook/src/FacebookFunctions.java
===================================================================
--- 
software_suite_v2/software/gadgets/tuxdroid-gadget-facebook/trunk/tuxdroid-gadget-facebook/src/FacebookFunctions.java
       2009-06-16 12:05:14 UTC (rev 4820)
+++ 
software_suite_v2/software/gadgets/tuxdroid-gadget-facebook/trunk/tuxdroid-gadget-facebook/src/FacebookFunctions.java
       2009-06-17 08:51:26 UTC (rev 4821)
@@ -1,17 +1,3 @@
-import java.io.IOException;
-import java.util.EnumSet;
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Vector;
-
-import com.facebook.api.FacebookException;
-import com.facebook.api.ProfileField;
-import com.facebook.api.schema.Event;
-import com.facebook.api.schema.EventsGetResponse;
-import com.facebook.api.schema.FriendsGetResponse;
-import com.facebook.api.schema.User;
-import com.facebook.api.schema.UsersGetInfoResponse;
-
 /* This file is part of "TuxDroid Gadget Facebook".
  *    Copyright 2009, kysoh
  *    Author : Conan Jerome.
@@ -34,6 +20,22 @@
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
 
+
+import java.io.IOException;
+import java.util.EnumSet;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Vector;
+
+import com.facebook.api.FacebookException;
+import com.facebook.api.ProfileField;
+import com.facebook.api.schema.Event;
+import com.facebook.api.schema.EventsGetResponse;
+import com.facebook.api.schema.FriendsGetResponse;
+import com.facebook.api.schema.User;
+import com.facebook.api.schema.UsersGetInfoResponse;
+
+
 public class FacebookFunctions {
 
        private FacebookConnection connection;
@@ -321,33 +323,53 @@
                                Vector<String> eventsDatas = new 
Vector<String>();
                                
                                //Getting friends uid that ask for friends.
-                               if(eventString.contains("<eid>"))
+                               if(eventString.contains("<eid>") || 
(eventString.contains("<event_invites_elt>")))
                                {
                                        while(eventString.contains("<eid>"))
                                        {
-                                               String friend = 
eventString.substring(
+                                               String event = 
eventString.substring(
                                                                        
eventString.indexOf("<eid>") + "<eid>".length(), 
                                                                        
eventString.indexOf("</eid>"));
                                                
-                                               eventString = 
eventString.replace("<eid>" + friend + "</eid>", "");
+                                               eventString = 
eventString.replace("<eid>" + event + "</eid>", "");
                                                
-                                               
eventsDatasAsLong.add(Long.valueOf(friend).longValue());
+                                               
eventsDatasAsLong.add(Long.valueOf(event).longValue());
                                        }
                                        
-                                       //Getting events names.
-                                       
connection.getClient().events_get(connection.getFacebookUserId(), 
eventsDatasAsLong, Long.valueOf(0), Long.valueOf(0));
-                                       EventsGetResponse response = 
(EventsGetResponse) connection.getClient().getResponsePOJO();
-                                       List<Event> events = 
response.getEvent();
                                        
+                                       
while(eventString.contains("<event_invites_elt>"))
+                                       {       
+                                               String event = 
eventString.substring(
+                                                       
eventString.indexOf("<event_invites_elt>") + "<event_invites_elt>".length(), 
+                                                       
eventString.indexOf("</event_invites_elt>"));
+                               
+                                       eventString = 
eventString.replace("<event_invites_elt>" + event + "</event_invites_elt>", "");
+                                       
eventsDatasAsLong.add(Long.valueOf(event).longValue());
+                                       }
+                                       
                                        //Adding the number of event invites.
                                        
eventsDatas.add(String.valueOf(eventsDatasAsLong.size()));
                                        
-                                       for(Event event : events)
+                                       for(Long eid : eventsDatasAsLong)
                                        {
-                                               
if(eventsDatasAsLong.contains(event.getEid()))
+                                               try
                                                {
-                                                       
eventsDatas.add(event.getName());
+                                                       Thread.sleep(200);
+                                                       
connection.getClient().fql_query("Select name from event WHERE eid=" + 
eid.longValue());
+                                                       String response = 
connection.getClient().getRawResponse();
+                                                       
if(response.contains("<event>") && response.contains("<name>"))
+                                                       {
+                                                               String 
groupName = response.substring(
+                                                                               
           response.indexOf("<name>") + "<name>".length(),
+                                                                               
           response.indexOf("</name>", response.indexOf("<name>")));
+                                                               
eventsDatas.add(groupName);
+                                                       }
                                                }
+                                               catch(Exception fqlError)
+                                               {
+                                                       
eventsDatas.add("Unknown group");
+                                               }
+                                       
                                        }
                                        
                                        if(eventsDatasAsLong.size() > 0)


------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
Tux-droid-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tux-droid-svn

Reply via email to