Author: jerome
Date: 2008-12-17 10:09:51 +0100 (Wed, 17 Dec 2008)
New Revision: 3142

Modified:
   
software_suite_v2/software/control_center/branches/new_paths/control_center/sources/com/tuxdroid/cc/settings/LanguagesSet/languages_en_US.properties
   
software_suite_v2/software/control_center/branches/new_paths/control_center/sources/com/tuxdroid/cc/settings/LanguagesSet/languages_es_ES.properties
   
software_suite_v2/software/control_center/branches/new_paths/control_center/sources/com/tuxdroid/cc/settings/LanguagesSet/languages_fr_FR.properties
   
software_suite_v2/software/control_center/branches/new_paths/control_center/sources/com/tuxdroid/cc/settings/LanguagesSet/languages_nl_NL.properties
   
software_suite_v2/software/control_center/branches/new_paths/control_center/sources/com/tuxdroid/cc/settings/Settings.java
   
software_suite_v2/software/control_center/branches/new_paths/control_center/sources/com/tuxdroid/cc/swing/About.java
Log:
* Settings.xml: utf-8 re-encoding if format is detected as iso-xxx.

Modified: 
software_suite_v2/software/control_center/branches/new_paths/control_center/sources/com/tuxdroid/cc/settings/LanguagesSet/languages_en_US.properties
===================================================================
--- 
software_suite_v2/software/control_center/branches/new_paths/control_center/sources/com/tuxdroid/cc/settings/LanguagesSet/languages_en_US.properties
        2008-12-17 08:36:53 UTC (rev 3141)
+++ 
software_suite_v2/software/control_center/branches/new_paths/control_center/sources/com/tuxdroid/cc/settings/LanguagesSet/languages_en_US.properties
        2008-12-17 09:09:51 UTC (rev 3142)
@@ -48,7 +48,7 @@
 trayShow=Show
 trayHide=Hide
 trayExit=Exit
-ccVersion=Control Center V0.2.0
+ccVersion=Control Center V0.2.1
 aboutDevelopper=Developer : Conan J�r�me
 [email protected]
 aboutContributors=Contributors:

Modified: 
software_suite_v2/software/control_center/branches/new_paths/control_center/sources/com/tuxdroid/cc/settings/LanguagesSet/languages_es_ES.properties
===================================================================
(Binary files differ)

Modified: 
software_suite_v2/software/control_center/branches/new_paths/control_center/sources/com/tuxdroid/cc/settings/LanguagesSet/languages_fr_FR.properties
===================================================================
--- 
software_suite_v2/software/control_center/branches/new_paths/control_center/sources/com/tuxdroid/cc/settings/LanguagesSet/languages_fr_FR.properties
        2008-12-17 08:36:53 UTC (rev 3141)
+++ 
software_suite_v2/software/control_center/branches/new_paths/control_center/sources/com/tuxdroid/cc/settings/LanguagesSet/languages_fr_FR.properties
        2008-12-17 09:09:51 UTC (rev 3142)
@@ -48,7 +48,7 @@
 trayShow=Afficher
 trayHide=Masquer
 trayExit=Quitter
-ccVersion=Centre de contr�le V0.2.0
+ccVersion=Centre de contr�le V0.2.1
 aboutDevelopper=D�veloppeur : Conan J�r�me
 [email protected]
 aboutContributors=Contribution:

Modified: 
software_suite_v2/software/control_center/branches/new_paths/control_center/sources/com/tuxdroid/cc/settings/LanguagesSet/languages_nl_NL.properties
===================================================================
--- 
software_suite_v2/software/control_center/branches/new_paths/control_center/sources/com/tuxdroid/cc/settings/LanguagesSet/languages_nl_NL.properties
        2008-12-17 08:36:53 UTC (rev 3141)
+++ 
software_suite_v2/software/control_center/branches/new_paths/control_center/sources/com/tuxdroid/cc/settings/LanguagesSet/languages_nl_NL.properties
        2008-12-17 09:09:51 UTC (rev 3142)
@@ -48,7 +48,7 @@
 trayShow=Tonen
 trayHide=Verbergen
 trayExit=Sluiten
-ccVersion=Control Center V0.2.0
+ccVersion=Control Center V0.2.1
 aboutDevelopper=Developer : Conan J�r�me.
 [email protected]
 aboutContributors=Medewerkers:

Modified: 
software_suite_v2/software/control_center/branches/new_paths/control_center/sources/com/tuxdroid/cc/settings/Settings.java
===================================================================
--- 
software_suite_v2/software/control_center/branches/new_paths/control_center/sources/com/tuxdroid/cc/settings/Settings.java
  2008-12-17 08:36:53 UTC (rev 3141)
+++ 
software_suite_v2/software/control_center/branches/new_paths/control_center/sources/com/tuxdroid/cc/settings/Settings.java
  2008-12-17 09:09:51 UTC (rev 3142)
@@ -22,8 +22,14 @@
 
 package com.tuxdroid.cc.settings;
 
+import java.io.BufferedReader;
 import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
 import java.util.Locale;
 import java.util.Vector;
 
@@ -125,7 +131,6 @@
                return false;
        }
        
-       
        /**
         * This class create an object how manage control center settings.
         */
@@ -156,9 +161,148 @@
                }
                else{
                        this.newXmlFile = false;
-               }
+               }
+               
+               //Before parsing file, verifying encoding.
+               this.verifyEncoding();
+               
                this.getWriter();
                this.getReader();
+       }
+       
+       
+       /**
+        * Verify the current settings.xml encoding.
+        * @return
+        */
+       private void verifyEncoding()
+       {
+               CcCommons.logger.append("Checking settings.xml encoding.", 
true);
+               if(!CcCommons.TuxDroidSettingsFile.exists())
+               {
+                       return;
+               }
+               
+               //Try to get xml file header.
+               try
+               {
+                       InputStream ips = new 
FileInputStream(CcCommons.TuxDroidSettingsFile); 
+                       InputStreamReader ipsr = new InputStreamReader(ips);
+                       BufferedReader br = new BufferedReader(ipsr);
+                       
+                       //Read the first line of xml file.
+                       String encoding = br.readLine();
+                       encoding = 
encoding.substring(encoding.indexOf("encoding"));
+                       encoding = encoding.substring(encoding.indexOf("=") + 
1);
+                       encoding = encoding.substring(0, encoding.indexOf(" 
")).replace("\"", "");
+                       
+                       if(!encoding.equalsIgnoreCase("utf-8"))
+                       {
+                               this.encodeUTF8(encoding);
+                       }
+                       
+                       br.close(); 
+               }               
+               catch (Exception e){}
+       }
+       
+       
+       /**
+        * Encode xml file into utf-8 format.
+        * @throws IOException 
+        */
+       private void encodeUTF8(String oldEncoding) throws IOException
+       {
+               CcCommons.logger.append("Re-encoding of settings.xml file in 
progress.", true);
+               
+               BufferedReader br = null;
+           PrintWriter pw = null;
+           File dest = null;
+           FileOutputStream ops = null;
+           
+           try
+           {
+               //Reading stream.
+               br = new BufferedReader(new InputStreamReader(new 
FileInputStream(CcCommons.TuxDroidSettingsFile), "ISO-8859-1"));
+               //writing stream.
+               dest = new 
File(CcCommons.TuxDroidSettingsDirectory.getAbsolutePath() + File.separator + 
"settings.xml.enc");
+               ops = new FileOutputStream(dest);
+               pw = new PrintWriter(ops);
+               
+               String ligne;
+               boolean first = true;
+               while((ligne = br.readLine())!=null){
+                  if(!first)
+                  {
+                          pw.println(new String(ligne.getBytes(), "utf-8"));
+                  }
+                  else
+                  {
+                          first = false;
+                          pw.println(new String("<?xml version=\"1.0\" 
encoding=\"UTF-8\" standalone=\"no\"?>".getBytes(), "utf-8"));
+                  }
+               }
+           }
+           catch(OutOfMemoryError tooBad)
+           {
+               pw.close();
+               br.close();
+               ops.close();
+               dest.delete();
+               tooBad.printStackTrace();
+               return;
+           }
+           
+           finally
+           {
+                try 
+                { 
+                        pw.close(); 
+                        dest.delete();
+                } 
+                catch( Throwable e ) 
+                {
+                        dest.deleteOnExit();
+                }
+                try 
+                { 
+                        br.close(); 
+                        dest.delete();
+                } 
+                catch( Throwable e ) 
+                {
+                        dest.deleteOnExit();
+                } 
+           }
+           
+           if((CcCommons.TuxDroidSettingsFile != null) && 
(CcCommons.TuxDroidSettingsFile.exists()))
+           {
+               CcCommons.TuxDroidSettingsFile.delete();
+               CcCommons.logger.append("Creating a new settings file", true);
+                       CcCommons.TuxDroidSettingsFile = new 
File(CcCommons.TuxDroidSettingsDirectory.getAbsolutePath()+
+                                                                               
                          File.separator + "settings.xml");
+                       try 
+                       {
+                               if(dest == null)
+                               {
+                                       return;
+                               }
+                               
+                               FileUtils.copy(dest, 
CcCommons.TuxDroidSettingsFile);
+                               //Now the settings file has changed, force to 
parse again the new settings file.
+                               XMLReader.edited = true;
+                               CcCommons.logger.append("Encoding completed.", 
true);
+                       } 
+                       
+                       catch (IOException e) 
+                       {
+                               //Cannot restor backup from file, so quit 
application, a new settings file will be
+                               //created at cc startup.
+                               CcCommons.logger.append("Cannot encode file.", 
true);
+                               System.exit(-1);
+                               e.printStackTrace();
+                       }
+           }
        }
        
        /**

Modified: 
software_suite_v2/software/control_center/branches/new_paths/control_center/sources/com/tuxdroid/cc/swing/About.java
===================================================================
--- 
software_suite_v2/software/control_center/branches/new_paths/control_center/sources/com/tuxdroid/cc/swing/About.java
        2008-12-17 08:36:53 UTC (rev 3141)
+++ 
software_suite_v2/software/control_center/branches/new_paths/control_center/sources/com/tuxdroid/cc/swing/About.java
        2008-12-17 09:09:51 UTC (rev 3142)
@@ -50,7 +50,7 @@
                super();
                setLocation(x, y);
                this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
-               setSize(320, 320);
+               setSize(320, 330);
                setPreferredSize(getSize());
                add(this.getjContentPane());
                


------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
Tux-droid-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tux-droid-svn

Reply via email to