Author: jerome
Date: 2009-10-23 15:38:08 +0200 (Fri, 23 Oct 2009)
New Revision: 5765

Modified:
   
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/resources/plugin.xml
   
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/connection/BareBonesBrowserLaunch.java
Log:
* Forget to add first cycle stuff.
* Imroved auto auth prompt.

Modified: 
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/resources/plugin.xml
===================================================================
--- 
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/resources/plugin.xml
     2009-10-23 12:06:17 UTC (rev 5764)
+++ 
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/resources/plugin.xml
     2009-10-23 13:38:08 UTC (rev 5765)
@@ -85,54 +85,12 @@
           
             weekMask="true,true,true,true,true,true,true"
             weekMaskType="weekpart"
-            weekMaskVisible="true"
+            weekMaskVisible="false"
             
-            delay="00:01:00"
+            delay="00:05:00"
             delayMask="true,true,true"
             delayVisible="false"
         />
-        <task
-            name="Start every x from full hour"
-            description="Start me every x (From full hour)"
-            command="check"
-            type="every x from full hour"
-            activated="false"
-            
-            weekMask="true,true,true,true,true,true,true"
-            weekMaskType="weekpart"
-            weekMaskVisible="true"
-
-            date="0000/00/00"
-            dateVisible="false"
-
-            hoursBegin="00:00:00"
-            hoursBeginMask="true,true,true"
-            hoursBeginVisible="false"
-
-            hoursEnd="23:59:00"
-            hoursEndMask="true,true,true"
-            hoursEndVisible="false"
-
-            delay="00:15:00"
-            delayType="quarters"
-            delayMask="true,true,false"
-            delayVisible="true"
-        />
-    <task
-            name="Start daily at"
-            description="Start me daily"
-            command="check"
-            type="daily at"
-            activated="false"
-            
-            weekMask="true,true,true,true,true,true,true"
-            weekMaskType="weekpart"
-            weekMaskVisible="true"
-
-            hoursBegin="07:00:00"
-            hoursBeginMask="true,true,false"
-            hoursBeginVisible="true"
-        />
     </tasks>
 </plugin>
 

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-23 12:06:17 UTC (rev 5764)
+++ 
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/src/com/kysoh/plugins/facebook/FacebookConnection.java
   2009-10-23 13:38:08 UTC (rev 5765)
@@ -23,7 +23,6 @@
 package com.kysoh.plugins.facebook;
 
 import java.io.IOException;
-import java.util.List;
 
 import com.google.code.facebookapi.FacebookException;
 import com.google.code.facebookapi.FacebookJsonRestClient;
@@ -34,11 +33,7 @@
 
        private FacebookJsonRestClient client;
        
-       //Auth options.
-       public static final byte AUTH_PUBLISH_FEEDS = 0;
-       public static final byte AUTH_READ_MAILBOX  = 1;
        
-       
        /**
         * Try to get connected to fb with the old registered session.
         */
@@ -146,28 +141,15 @@
        /**
         * Prompt for plugin facebook authorizations.
         */
-       public static void promptAuthorizations(List<Byte> options)
+       public static void promptAuthorizations()
        {
-               //Adding default.
-               String rights = "read_stream,offline_access";
-               
-               if(options.contains(FacebookConnection.AUTH_PUBLISH_FEEDS))
-               {
-                       rights += "," + "read_mailbox";
-               }
-               
-               if(options.contains(FacebookConnection.AUTH_READ_MAILBOX))
-               {
-                       rights += "," + "publish_stream";
-               }
-               
-               String url = "http://www.facebook.com/login.php?api_key=+"; + 
+               String url = "http://www.facebook.com/login.php?api_key="; + 
                                 FacebookSessionUtils.api_key +
                                 "&connect_display=popup&v=1.0" +
                                 
"&next=http://www.facebook.com/connect/login_success.html"; +
                                 
"&cancel_url=http://www.facebook.com/connect/login_failure.html"; +
                                 "&fbconnect=true&return_session=true" +
-                                "&req_perms=" + rights;
+                                
"&req_perms=read_stream,offline_access,read_mailbox,publish_stream";
            
                BareBonesBrowserLaunch.openURL(url);
        }

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-23 12:06:17 UTC (rev 5764)
+++ 
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/src/com/kysoh/plugins/facebook/FacebookFunctions.java
    2009-10-23 13:38:08 UTC (rev 5765)
@@ -425,4 +425,25 @@
                
                return result;
        }
+       
+       
+       /**
+        * Return true if our plugin has fb rights.
+        * @return
+        */
+       public boolean apiGrantedFullAcess()
+       {
+               //Trying to read mailbox that is the most important right to 
have.
+               String query = "SELECT thread_id FROM thread WHERE folder_id = 
0";
+               try 
+               {
+                       client.fql_query(query);
+                       return true;
+               } 
+               catch (FacebookException e) 
+               {
+                       //Return false in case of exception, prompt auth was 
never started.
+                       return false;
+               }
+       }
 }

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-23 12:06:17 UTC (rev 5764)
+++ 
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/src/com/kysoh/plugins/facebook/FacebookPlugin.java
       2009-10-23 13:38:08 UTC (rev 5765)
@@ -22,10 +22,7 @@
 
 package com.kysoh.plugins.facebook;
 
-
-import java.util.ArrayList;
 import java.util.Hashtable;
-import java.util.List;
 import java.util.Vector;
 
 import com.kysoh.tuxdroid.plugin.framework.plugin.SimplePlugin;
@@ -39,6 +36,9 @@
        private boolean check = false;
        private boolean throwed = false;
        
+       
+       private boolean secondCycle = false;
+       
        private FacebookFunctions functions;
        private FacebookDatasStruct facebookHistory;
        
@@ -51,6 +51,7 @@
                {
                        throwed = true;
                        this.throwResult(true);
+                       this.throwMessage("Facebook");
                }
        }
        
@@ -62,7 +63,12 @@
        {       
                if (this.getCommand().equalsIgnoreCase("configure"))
                {
-                       this.doConfigure();
+                       FacebookConnection facebook = new FacebookConnection();
+                       if ( facebook.Connect(this.configuration().getLogin(), 
this.configuration().getPassword()) )
+                       {
+                               functions = new 
FacebookFunctions(facebook.getClient());
+                               this.doConfigure(functions);
+                       }
                }
                else
                {
@@ -75,24 +81,16 @@
        /**
         * Configure facebook account access rights.
         */
-       public void doConfigure()
-       {
-               List<Byte> options = new ArrayList<Byte>();
-               
+       public void doConfigure(FacebookFunctions funct)
+       {       
                //Adding publish stream auth if needed.
-               if(this.configuration().getUpdateStatus())
+               if (!functions.apiGrantedFullAcess())
                {
-                       options.add(FacebookConnection.AUTH_PUBLISH_FEEDS);
+                       //Prompt web browser for facebook permissions.
+                       this.throwMessage("Please, allow me to access you 
Facebook account");
+                       FacebookConnection.promptAuthorizations();
+                       System.exit( 0 );
                }
-               
-               //Adding read mailbox auth if needed.
-               if(this.configuration().getNotifyEmail())
-               {
-                       options.add(FacebookConnection.AUTH_READ_MAILBOX);
-               }
-               
-               //Prompt web browser for facebook permissions.
-               FacebookConnection.promptAuthorizations(options);
        }
        
        
@@ -110,7 +108,14 @@
                        
                        //History object.
                        facebookHistory = new 
FacebookDatasStruct(this.configuration().getLogin());
+                       secondCycle = ( 
this.getCommand().equalsIgnoreCase("check") && facebookHistory.isFirstCycle() ) 
? false : true;
                        
+                       //Checking auth.
+                       if(this.getCommand().equalsIgnoreCase("run"))
+                       {
+                               this.doConfigure(functions);
+                       }
+                       
                        //Updating user status.
                        if(this.configuration().getUpdateStatus())
                        {
@@ -174,7 +179,8 @@
                }
                else
                {
-                       this.throwMessage("An error occured trying to set your 
new status, please, try again later");
+                       this.throwMessage("An error occured trying to set your 
new status, please, allow me to acces your wall");
+                       doConfigure(functions);
                }
        }
        
@@ -223,16 +229,18 @@
                        
                        for(String sender : senders)
                        {
-                               
-                               throwRes();
-                               if (emailsBySender.get(sender).intValue() == 1)
+                               if(this.getCommand().equalsIgnoreCase("run") || 
secondCycle)
                                {
-                                       this.throwMessage("One message from 
{0}", sender);
+                                       throwRes();
+                                       if 
(emailsBySender.get(sender).intValue() == 1)
+                                       {
+                                               this.throwMessage("One message 
from {0}", sender);
+                                       }
+                                       else
+                                       {
+                                           this.throwMessage("{0} messages 
from {1}", sender, emailsBySender.get(sender));
+                                       }
                                }
-                               else
-                               {
-                                   this.throwMessage("{0} messages from {1}", 
sender, emailsBySender.get(sender));
-                               }
                        }
                        
                        //Registering history.
@@ -264,8 +272,12 @@
                        {
                                throwRes();
                                this.facebookHistory.addFriendRequest(fid);
-                               this.throwMessage("{0} request to be your 
friend", request);
-                               said = true;
+                               //Only throwing in the second cycle of check 
command or run.
+                               if(this.getCommand().equalsIgnoreCase("run") || 
secondCycle)
+                                       {
+                                       this.throwMessage("{0} request to be 
your friend", request);
+                                       said = true;
+                                       }
                        }
                        }
                    this.facebookHistory.registerStruct();
@@ -305,8 +317,12 @@
                                {
                            throwRes();
                            this.facebookHistory.addGroupInvite(gid);
-                                   this.throwMessage("You are invited to the 
following group: {0}", group);
-                                   said = true;
+                           //Only throwing in the second cycle of check 
command or run.
+                               if(this.getCommand().equalsIgnoreCase("run") || 
secondCycle)
+                                       {
+                                       this.throwMessage("You are invited to 
the following group: {0}", group);
+                                       said = true;
+                                       }
                                }
                        }
                    
@@ -345,8 +361,12 @@
                                {
                                throwRes();
                            
this.facebookHistory.addEventInvite(functions.getEventID(event));
-                                   this.throwMessage("You are invited to the 
following event: {0}", event);
-                                   said = true;
+                           //Only throwing in the second cycle of check 
command or run.
+                               if(this.getCommand().equalsIgnoreCase("run") || 
secondCycle)
+                                       {
+                                       this.throwMessage("You are invited to 
the following event: {0}", event);
+                                       said = true;
+                                       }
                                }
                        }
                    

Modified: 
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/src/com/kysoh/plugins/facebook/connection/BareBonesBrowserLaunch.java
===================================================================
--- 
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/src/com/kysoh/plugins/facebook/connection/BareBonesBrowserLaunch.java
    2009-10-23 12:06:17 UTC (rev 5764)
+++ 
software_suite_v3/software/plugin/plugin-facebook/branches/october_release/src/com/kysoh/plugins/facebook/connection/BareBonesBrowserLaunch.java
    2009-10-23 13:38:08 UTC (rev 5765)
@@ -30,7 +30,10 @@
                                openURL.invoke(null, new Object[] {url});
                        }
                        else if (osName.startsWith("Windows"))
-                               Runtime.getRuntime().exec("rundll32 
url.dll,FileProtocolHandler " + url);
+                       {
+                               Process p = Runtime.getRuntime().exec("rundll32 
url.dll,FileProtocolHandler " + url);
+                               p.waitFor();
+                       }
                        else
                        { //assume Unix or Linux
                                String[] browsers = {


------------------------------------------------------------------------------
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