Author: jerome
Date: 2009-10-20 17:16:34 +0200 (Tue, 20 Oct 2009)
New Revision: 5753

Modified:
   
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/src/com/kysoh/plugins/facebook/FacebookConnection.java
   
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/src/com/kysoh/plugins/facebook/FacebookFunctions.java
   
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/src/com/kysoh/plugins/facebook/FacebookPlugin.java
   
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/src/com/kysoh/plugins/facebook/configuration/PluginFacebookConfiguration.java
Log:
* Added an option.
* Refactored plugin main entry point.
* Make use of the new functions.
* Renamed two functions.
* Cleanup.

Modified: 
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/src/com/kysoh/plugins/facebook/FacebookConnection.java
===================================================================
--- 
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/src/com/kysoh/plugins/facebook/FacebookConnection.java
   2009-10-20 14:14:38 UTC (rev 5752)
+++ 
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/src/com/kysoh/plugins/facebook/FacebookConnection.java
   2009-10-20 15:16:34 UTC (rev 5753)
@@ -103,7 +103,7 @@
        /**
         * Prompt for plugin facebook authorizations.
         */
-       public void promptAuthorizations()
+       public static void promptAuthorizations()
        {
                String url = "http://www.facebook.com/login.php?api_key=+"; + 
                                 FacebookSessionUtils.api_key +

Modified: 
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/src/com/kysoh/plugins/facebook/FacebookFunctions.java
===================================================================
--- 
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/src/com/kysoh/plugins/facebook/FacebookFunctions.java
    2009-10-20 14:14:38 UTC (rev 5752)
+++ 
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/src/com/kysoh/plugins/facebook/FacebookFunctions.java
    2009-10-20 15:16:34 UTC (rev 5753)
@@ -191,7 +191,7 @@
         * Return availables group invites names.
         * @return
         */
-       public Vector<String> getGroupsInvites()
+       public Vector<String> getGroupInvites()
        {
                Vector<String> result = new Vector<String>();
                
@@ -237,7 +237,7 @@
         * Return event invites names.
         * @return
         */
-       public Vector<String> getEventsInvites()
+       public Vector<String> getEventInvites()
        {
                Vector<String> result = new Vector<String>();
                

Modified: 
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/src/com/kysoh/plugins/facebook/FacebookPlugin.java
===================================================================
--- 
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/src/com/kysoh/plugins/facebook/FacebookPlugin.java
       2009-10-20 14:14:38 UTC (rev 5752)
+++ 
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/src/com/kysoh/plugins/facebook/FacebookPlugin.java
       2009-10-20 15:16:34 UTC (rev 5753)
@@ -23,171 +23,256 @@
 package com.kysoh.plugins.facebook;
 
 
+import java.util.Hashtable;
+import java.util.Vector;
+
 import com.kysoh.tuxdroid.plugin.framework.plugin.SimplePlugin;
 import com.kysoh.plugins.facebook.configuration.PluginFacebookConfiguration;
+import com.kysoh.plugins.facebook.FacebookConnection;
 
 
 public class FacebookPlugin extends SimplePlugin<PluginFacebookConfiguration>{
        
        private boolean check = false;
+       private boolean throwed = false;
+       private FacebookFunctions functions;
        
        /**
+        * Throws the result in case of Check mode.
+        */
+       private void throwRes()
+       {
+               if(this.check && (!throwed))
+               {
+                       throwed = true;
+                       this.throwResult(true);
+               }
+       }
+       
+       /**
         * Gadget start method.
         */
        @Override
        protected void start() throws Throwable
-       {
-               boolean throwNotif = false;
-        boolean news = false;
-               
-               if(getCommand().equals("check"))
+       {       
+               if (this.getCommand().equalsIgnoreCase("configure"))
                {
-                       this.check = true;
+                       //Prompt web browser for facebook permissions.
+                       FacebookConnection.promptAuthorizations();
+                       //TODO check actual permissions.
                }
+               else
+               {
+                       this.RunOrCheck();
+               }
+       }
+       
+       
+       /**
+        * Start run or check command.
+        */
+       public void RunOrCheck()
+       {
                FacebookConnection facebook = new FacebookConnection();
+               
                if ( facebook.Connect(this.configuration().getLogin(), 
this.configuration().getPassword()) )
                {
-                       FacebookFunctions functions = new 
FacebookFunctions(facebook);
+                       functions = new FacebookFunctions(facebook.getClient());
                        
-                       //Get email informations.
+                       //Updating user status.
+                       if(this.configuration().getUpdateStatus())
+                       {
+                               this.updateStatus();
+                       }
+                       
+                       //Fetching email informations.
                        if(this.configuration().getNotifyEmail())
                        {
-                               if(functions.getEmailNotifications().intValue() 
> 0)
-                               {
-                    news = true;
-                                       if(this.check && (!throwNotif))
-                                       {
-                                               throwNotif = true;
-                                               this.throwResult(true);
-                                       }
-                                       
-                                       
if(functions.getEmailNotifications().intValue() == 1)
-                                       {
-                                               throwMessage("You have one new 
message");
-                                       }
-                                       else
-                                       {
-                                               throwMessage("You have {0} new 
messages", functions.getEmailNotifications().intValue());
-                                       }
-                               }
+                               this.throwEMails();
                        }
                        
-                       //Get friend requests notification.
+                       //Fetching friend requests notification.
                        if(this.configuration().getShowFriendRequests())
                        {
-                               
if(functions.getFriendRequestsCount().intValue() > 0)
-                               {
-                    news = true;
-                                       if(this.check && (!throwNotif))
-                                       {
-                                               throwNotif = true;
-                                               this.throwResult(true);
-                                       }
-                                       
-                                       
if(functions.getFriendRequestsCount().intValue() == 1)
-                                       {
-                                               throwMessage("You have one 
friend request");
-                                       }
-                                       else
-                                       {
-                                               throwMessage("You have {0} 
friend requests", functions.getFriendRequestsCount());
-                                       }
-                                       
-                                       for(String friendName : 
functions.getFriendRequestNames())
-                                       {
-                                               if(this.check && (!throwNotif))
-                                               {
-                                                       throwNotif = true;
-                                                       this.throwResult(true);
-                                               }
-                                               throwMessage("From {0}", 
friendName);
-                                       }
-                               }
+                               this.throwFriendRequests();
                        }
                        
                        //Get group invites notifications.
                        if(this.configuration().getShowGroupsInvites())
                        {
-                news = true;
-                               if(functions.getGroupsInvitesCount().intValue() 
> 0)
-                               {
-                                       if(this.check && (!throwNotif))
-                                       {
-                                               throwNotif = true;
-                                               this.throwResult(true);
-                                       }
-                                       
-                                       
if(functions.getGroupsInvitesCount().intValue() == 1)
-                                       {
-                                               throwMessage("You have one 
group invite");
-                                       }
-                                       else
-                                       {
-                                               throwMessage("You have {0} 
group invites", functions.getGroupsInvitesCount().intValue());
-                                       }
-                                       
-                                       for(String group : 
functions.getGroupInvitesNames())
-                                       {
-                                               if(this.check && (!throwNotif))
-                                               {
-                                                       throwNotif = true;
-                                                       this.throwResult(true);
-                                               }
-                                               throwMessage("to {0}", group);
-                                       }
-                               }
+                this.throwGroupInvites();
                        }
                        
                        //Get pokes notification.
                        if(this.configuration().getShowEventsInvites())
                        {
-                               if(functions.getEventsInvitesCount().intValue() 
> 0)
-                               {
-                    news = true;
-                                       if(this.check && (!throwNotif))
-                                       {
-                                               throwNotif = true;
-                                               this.throwResult(true);
-                                       }
-                                       
-                                       
if(functions.getEventsInvitesCount().intValue() == 1)
-                                       {
-                                               throwMessage("You have one 
event invite");
-                                       }
-                                       else
-                                       {
-                                               throwMessage("You have {0} 
event invites", functions.getEventsInvitesCount().intValue());
-                                       }
-                                       
-                                       for(String event : 
functions.getEventInvitesNames())
-                                       {
-                                               if(this.check && (!throwNotif))
-                                               {
-                                                       throwNotif = true;
-                                                       this.throwResult(true);
-                                               }
-                                               throwMessage("to {0}", event);
-                                       }
-                               }
+                               this.throwEventInvites();
                        }
                        
-                       if((!throwNotif) && this.check )
+                       if(( !this.throwed ) && 
this.getCommand().equalsIgnoreCase("check") )
                        {
                                this.throwResult(false);
                        }
-                       else if((!this.check) && (!news))
+               }
+               else
+               {
+                       this.throwMessage("I cannot get connected to your 
facebook account.");
+               }
+       }
+       
+       
+       /**
+        * Update user status.
+        */
+       private void updateStatus()
+       {
+               //Updating user status.
+               if(functions.publishFeed(this.configuration().getStatusText()))
+               {
+                       this.throwMessage("Your new status was published");
+               }
+               else
+               {
+                       this.throwMessage("An error occured trying to set your 
new status, please, try again later");
+               }
+       }
+       
+       
+       /**
+        * Throw all incommin emails.
+        */
+       private void throwEMails()
+       {
+               //Fetching mails.
+               Hashtable<String, Vector<String>> inbox = new Hashtable<String, 
Vector<String>>();
+               inbox = functions.getEmailNotifications();
+               
+               if(functions.getEmailNotifications().size() == 1)
+               {
+                       throwRes();
+                       throwMessage("You have one new message");
+               }
+               
+               else if(inbox.size() > 1)
+               {
+                       throwRes();
+                       this.throwMessage("You have {0} messages", 
inbox.size());
+               }
+               else
+               {
+                       if (!this.getCommand().equalsIgnoreCase("check"))
                        {
-                               this.throwMessage("Nothing new on your 
account");
+                           this.throwMessage("You don't have any messages");
                        }
                }
+               //TODO throwing emails by sender.
+       }
+       
+       
+       /**
+        * Throw all friend requests.
+        */
+       private void throwFriendRequests()
+       {
+               Vector<String> f_requests = new Vector<String>();
+               f_requests = functions.getFriendRequests();
+               
+               if (f_requests.size() > 1)
+               {
+                       throwRes();
+                   this.throwMessage("You have {0} friend requests", 
f_requests.size());
+                   for(String request : f_requests)
+                       {
+                               this.throwMessage("From {0}", request);
+                       }
+               }
+               else if(f_requests.size() == 1)
+               {
+                       throwRes();
+                       throwMessage("You have one friend request");
+                       this.throwMessage("From {0}", f_requests.get(0));
+               }
                else
                {
-                       this.throwMessage("I cannot get connected to your 
facebook account.");
+                       if (! this.getCommand().equalsIgnoreCase("check"))
+                       {
+                               this.throwMessage("You don't have any friend 
requests");
+                       }
                }
        }
        
        
+       
        /**
+        * Throw all group invites. 
+        */
+       private void throwGroupInvites()
+       {
+               //Fetching group invites.
+               Vector<String> g_invites = new Vector<String>();
+               g_invites = functions.getGroupInvites();
+               
+               if (g_invites.size() > 1)
+               {
+                       throwRes();
+                   this.throwMessage("You have {0} group invites", 
g_invites.size());
+                   for(String group : g_invites)
+                       {
+                               this.throwMessage("From {0}", group);
+                       }
+               }
+               else if(g_invites.size() == 1)
+               {
+                       throwRes();
+                       throwMessage("You have one group invite");
+                       this.throwMessage("From {0}", g_invites.get(0));
+               }
+               else
+               {
+                       if (! this.getCommand().equalsIgnoreCase("check"))
+                       {
+                               this.throwMessage("You don't have any group 
invites");
+                       }
+               }
+       }
+       
+       
+       /**
+        * Throw all event invites.
+        */
+       private void throwEventInvites()
+       {
+               //Fetching event invites.
+               Vector<String> e_invites = new Vector<String>();
+               e_invites = functions.getEventInvites();
+               
+               if (e_invites.size() > 1)
+               {
+                       throwRes();
+                   this.throwMessage("You have {0} event invites", 
e_invites.size());
+                   for(String group : e_invites)
+                       {
+                               this.throwMessage("To {0}", group);
+                       }
+               }
+               else if(e_invites.size() == 1)
+               {
+                       throwRes();
+                       throwMessage("You have one event invite");
+                       this.throwMessage("To {0}", e_invites.get(0));
+               }
+               else
+               {
+                       if (! this.getCommand().equalsIgnoreCase("check"))
+                       {
+                               this.throwMessage("You don't have any event 
invites");
+                       }
+               }
+       }
+       
+       
+       
+       /**
         * Main entry point.
         * @param args
         */

Modified: 
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/src/com/kysoh/plugins/facebook/configuration/PluginFacebookConfiguration.java
===================================================================
--- 
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/src/com/kysoh/plugins/facebook/configuration/PluginFacebookConfiguration.java
    2009-10-20 14:14:38 UTC (rev 5752)
+++ 
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/src/com/kysoh/plugins/facebook/configuration/PluginFacebookConfiguration.java
    2009-10-20 15:16:34 UTC (rev 5753)
@@ -35,9 +35,30 @@
        private boolean notifyEmail = true;
        
        private String statusText = "Hello all from my Tux Droid Facebook 
gadget";
+       private boolean updateStatus = false;
        
        
        /**
+        * Return true if user want update his status.
+        * @return
+        */
+       public boolean getUpdateStatus()
+       {
+               return this.updateStatus;
+       }
+       
+       
+       /**
+        * Set the user feed update.
+        * @param aLogin
+        */
+       public void setUpdateStatus(boolean aUpdateStatus)
+       {
+               this.updateStatus = aUpdateStatus;
+       }
+       
+       
+       /**
         * Return the user feed to update.
         * @return
         */


------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Tux-droid-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tux-droid-svn

Reply via email to