Remi Collet | 10 Jan 21:01

Package version number

Hi,

I've just release package of fusionventory 0.80+1.1

The "+" is not usable in RPM version.

So, I use, for RPM,  0.80.0.1.1

After discussion, on irc, with david : first part if GLPI major version
(I could have use 0.80 instead of 0.80.0) but it could be possible, in
the future than a minor version will be required (because of a minor
change, a new hook, a specific bug fix, ...)

I hope this new scheme will be used for a long time.

Regards,
Remi.

P.S.1  I also raised RPM Epoch to have 0:2.4.0 < 1:0.80.0.1.1
P.S.2  I hope DEB maintainer will use the same number
Mario Gzuk | 14 Dec 10:27
Picon
Gravatar

How to use the fusioninventory-esx script

Hi,
if I use the fusioninventory-esx script against a vcenter the script 
generates a file for each virtual host. How can I send this to the 
server? This script will not accept the parameters -s and -r.

Thank you.
Gonéri Le Bouder | 3 Dec 00:59
Gravatar

CeBIT Open Source 2012 - Call for Projects

Hello,

Anyone is interested to present FusionInventory at CeBIT? The meeting will be
held march 6-10 in Hannover, Germany.

The deadline of the call for paper is december 18th, 2011.

http://www.linux-magazine.com/Events/CeBIT-Open-Source-2012-Call-for-Projects

Best regards,
--
     Gonéri Le Bouder

_______________________________________________
Fusioninventory-devel mailing list
Fusioninventory-devel@...
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/fusioninventory-devel
Gonéri Le Bouder | 23 Nov 10:44
Gravatar

please test FusionInventory Agent 2.1.12 before the release

Hello FusionInventory users,

I'm about to release FusionInventory Agent 2.1.12 but before that it
would be great if
you can give a try to the pre-version.

You can download it here:
http://prebuilt.fusioninventory.org/devel/2.1.x/

or directly from Git:
  git clone https://goneri <at> github.com/fusinv/fusioninventory-agent.git
  cd fusioninventory-agent
  git checkout 2.1.x

This is the git change log since the 2.1.11 release.
commit 60f638a1b9998d7f303069582c3ca145a2871046
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Sun Nov 20 11:05:27 2011 +0100

    backport fix from 8610eb72970440d1db1aa094d

commit 6cbf8b0beecfa629c121a5b73d303cd5b7c7c150
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Fri Nov 18 16:20:30 2011 +0100

    Win32: Collect the second screen on Vista+

    closes: #1351

commit 06ba9d0e6a0199abaf8a0feea7f5d6a67c615a3b
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Mon Nov 14 09:55:14 2011 +0100

    fix: detect users on Win2000

    use Win32_Process.ExecutablePath instead of Win32_Process.CommandLine

    Closes: #1342

commit 812aa3bb728d66347fa64ee3a7036f7d2b40bb70
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Sun Nov 13 16:40:58 2011 +0100

    better fix for #1225

commit 2a3b8d205a2a172d031644e99e8c7f16416f6e35
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Sun Nov 13 15:35:35 2011 +0100

    Win2000: failback on ENV var to detect the CPU

    See: http://forum.fusioninventory.org/viewtopic.php?pid=4914
    Closes: #1225

commit 37124817f6cbe1a207cebc4c9a7c8d8646eaa464
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Sun Nov 13 15:24:42 2011 +0100

    code clean up

commit b01f6f5f3ac3136c9ffad10362a1711d2e2a0032
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Sun Nov 13 15:06:30 2011 +0100

    backport Memory ECC check type

    See commit: 067409abc989cfb3f9ab43c9545eeb5bf2dadd3d
    closes: #1234

    Reported-by: Walid Nouh <walid.nouh <at> gmail.com>

commit 751fbb3525ec2eb1a7e87d0ef4fa3f5dfd5802a8
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Fri Nov 11 21:47:08 2011 +0100

    code clean up

commit f93d246d7f8f75c7a5a748595d73fd9d20949010
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Wed Nov 9 14:44:45 2011 +0100

    ignore memory slot when type=Flash

    closes: #1334

    Reported-by: Andre Silva <bulldozer.pt <at> gmail.com>
    Reported-by: Tomás Abad <tabad <at> sescam.jccm.es>

commit 5a813be829c378aede118edde7858b785a91712b
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Wed Nov 9 11:18:23 2011 +0100

    do not ignore memory slot with empty Capacity

commit 0551950b90e42cf72e711452c930106de965b6d4
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Wed Nov 9 09:00:08 2011 +0100

    syntax error

commit 103882c231129e4c87a04292d0eb2e001dba44fc
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Wed Nov 9 08:59:56 2011 +0100

    load Encode::decode

commit a554a52856d851dd6eb99e6a3f056d2f38336d19
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Wed Nov 9 08:59:35 2011 +0100

    Syntax error

commit b6844190052b435bbc44849501de867d9bcb415a
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Wed Nov 9 10:35:50 2011 +0100

    exclude Flash storage from memory

commit 282eaffcd01b63d475866adb3c510f8a402790ac
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Tue Nov 8 13:56:12 2011 +0100

    fix date parsing: use Feb, not Fev for month

    Agent generates invalid CREATEDATE

    See: https://bugs.launchpad.net/ocsinventory-unix-agent/+bug/887534

    Reported-by: Holger Schletz

commit e320ee801fd04a1b5d387bea31715d1b7402d33c
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Fri Nov 4 14:15:19 2011 +0100

    get the domain from the hostname

commit 44c07b74335435e0ed0f072b51409c2d2d7ad04e
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Fri Nov 4 14:04:02 2011 +0100

    better HARDWARE/NAME detection
commit 60f638a1b9998d7f303069582c3ca145a2871046
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Sun Nov 20 11:05:27 2011 +0100

    backport fix from 8610eb72970440d1db1aa094d

commit 6cbf8b0beecfa629c121a5b73d303cd5b7c7c150
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Fri Nov 18 16:20:30 2011 +0100

    Win32: Collect the second screen on Vista+

    closes: #1351

commit 06ba9d0e6a0199abaf8a0feea7f5d6a67c615a3b
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Mon Nov 14 09:55:14 2011 +0100

    fix: detect users on Win2000

    use Win32_Process.ExecutablePath instead of Win32_Process.CommandLine

    Closes: #1342

commit 812aa3bb728d66347fa64ee3a7036f7d2b40bb70
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Sun Nov 13 16:40:58 2011 +0100

    better fix for #1225

commit 2a3b8d205a2a172d031644e99e8c7f16416f6e35
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Sun Nov 13 15:35:35 2011 +0100

    Win2000: failback on ENV var to detect the CPU

    See: http://forum.fusioninventory.org/viewtopic.php?pid=4914
    Closes: #1225

commit 37124817f6cbe1a207cebc4c9a7c8d8646eaa464
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Sun Nov 13 15:24:42 2011 +0100

    code clean up

commit b01f6f5f3ac3136c9ffad10362a1711d2e2a0032
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Sun Nov 13 15:06:30 2011 +0100

    backport Memory ECC check type

    See commit: 067409abc989cfb3f9ab43c9545eeb5bf2dadd3d
tosh-r630:~/fusioninventory/agent (2.1.x)$git log 2.1.11..HEAD
commit 60f638a1b9998d7f303069582c3ca145a2871046
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Sun Nov 20 11:05:27 2011 +0100

    backport fix from 8610eb72970440d1db1aa094d

commit 6cbf8b0beecfa629c121a5b73d303cd5b7c7c150
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Fri Nov 18 16:20:30 2011 +0100

    Win32: Collect the second screen on Vista+

    closes: #1351

commit 06ba9d0e6a0199abaf8a0feea7f5d6a67c615a3b
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Mon Nov 14 09:55:14 2011 +0100

    fix: detect users on Win2000

    use Win32_Process.ExecutablePath instead of Win32_Process.CommandLine

    Closes: #1342

commit 812aa3bb728d66347fa64ee3a7036f7d2b40bb70
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Sun Nov 13 16:40:58 2011 +0100

    better fix for #1225

commit 2a3b8d205a2a172d031644e99e8c7f16416f6e35
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Sun Nov 13 15:35:35 2011 +0100

    Win2000: failback on ENV var to detect the CPU

    See: http://forum.fusioninventory.org/viewtopic.php?pid=4914
    Closes: #1225

commit 37124817f6cbe1a207cebc4c9a7c8d8646eaa464
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Sun Nov 13 15:24:42 2011 +0100

    code clean up

commit b01f6f5f3ac3136c9ffad10362a1711d2e2a0032
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Sun Nov 13 15:06:30 2011 +0100

    backport Memory ECC check type

    See commit: 067409abc989cfb3f9ab43c9545eeb5bf2dadd3d
    closes: #1234

    Reported-by: Walid Nouh <walid.nouh <at> gmail.com>

commit 751fbb3525ec2eb1a7e87d0ef4fa3f5dfd5802a8
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Fri Nov 11 21:47:08 2011 +0100

    code clean up

commit f93d246d7f8f75c7a5a748595d73fd9d20949010
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Wed Nov 9 14:44:45 2011 +0100

    ignore memory slot when type=Flash

    closes: #1334

    Reported-by: Andre Silva <bulldozer.pt <at> gmail.com>
    Reported-by: Tomás Abad <tabad <at> sescam.jccm.es>

commit 5a813be829c378aede118edde7858b785a91712b
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Wed Nov 9 11:18:23 2011 +0100

    do not ignore memory slot with empty Capacity

commit 0551950b90e42cf72e711452c930106de965b6d4
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Wed Nov 9 09:00:08 2011 +0100

    syntax error

commit 103882c231129e4c87a04292d0eb2e001dba44fc
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Wed Nov 9 08:59:56 2011 +0100

    load Encode::decode

commit a554a52856d851dd6eb99e6a3f056d2f38336d19
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Wed Nov 9 08:59:35 2011 +0100

    Syntax error

commit b6844190052b435bbc44849501de867d9bcb415a
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Wed Nov 9 10:35:50 2011 +0100

    exclude Flash storage from memory

commit 282eaffcd01b63d475866adb3c510f8a402790ac
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Tue Nov 8 13:56:12 2011 +0100

    fix date parsing: use Feb, not Fev for month

    Agent generates invalid CREATEDATE

    See: https://bugs.launchpad.net/ocsinventory-unix-agent/+bug/887534

    Reported-by: Holger Schletz

commit e320ee801fd04a1b5d387bea31715d1b7402d33c
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Fri Nov 4 14:15:19 2011 +0100

    get the domain from the hostname

commit 44c07b74335435e0ed0f072b51409c2d2d7ad04e
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Fri Nov 4 14:04:02 2011 +0100

    better HARDWARE/NAME detection

    closes: #1330

commit 95db20efea1e9f1c56f4d3d2973574965c9ec16d
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Thu Oct 20 15:53:50 2011 +0200

    fix: some regex result were lost

    Reported-by: DuyLong LE <dle <at> unistra.fr>

commit 5b4a1ef98489850d64d367986f68c1dc92bc3faf
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Thu Oct 6 14:56:08 2011 +0200

    RAS Async Adapter netinf as virtualdev

    closes: #1166

    Reported-by: V'yacheslav Stetskevych <slava18 <at> gmail.com>

commit 982c08983e29b51cba7157232e5117e401e90d60
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Thu Sep 22 17:57:44 2011 +0200

    do not use Kvm.pm if virsh is available

    closes: #1140

commit d3c7f7c07bd8d4aacda9501b7c44ba4732f53a46
Author: Gonéri Le Bouder <goneri <at> rulezlan.org>
Date:   Mon Sep 19 16:00:19 2011 +0200

    avoid a warning if Compress::Zlib is not available

commit fa8c504463119847328e2e44e48fb8ee2dcbf46a
Author: Guillaume Rousse <Guillaume.Rousse <at> gmail.com>
Date:   Thu Sep 15 10:58:52 2011 +0200

    document fixes

commit 36e1da6f5d01f82e03a27634a4d0f312ad47f60d
Author: Guillaume Rousse <Guillaume.Rousse <at> gmail.com>
Date:   Thu Sep 15 10:56:21 2011 +0200

    fix warning on solaris when binary path contains spaces (and spare
some stat() calls for non-existing commands)

commit 3d72b9784d6c284e2d2ff956428d5a0939c6c276
Author: Guillaume Rousse <Guillaume.Rousse <at> gmail.com>
Date:   Thu Sep 15 10:47:41 2011 +0200

    do not call setHardware twice, but setHardware then setOperatingSystem

Best regards,
--

-- 
     Gonéri Le Bouder

_______________________________________________
Fusioninventory-devel mailing list
Fusioninventory-devel <at> lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/fusioninventory-devel
Tomas Abad | 17 Nov 14:27
Picon

A new (cosmetic) bug with Task Management.

Hello,

   I have a new bug (I think so) about Management Task. Before the first.

   My FusionInventory for GLPI v0.80+1.0 test environment is as following:

      .- The server
         .- Ubuntu Server 10.04.3 LTS (Lucid Lynx) - Architecture AMD64
         .- OCS Inventory NG Management Server v2.0
         .- GLPI v0.80.5
            .- GLPI v0.80.5 Agents
               .- FusionInventory for GLPI v0.80+1.0 (old v2.4.0)
                  .- FusionInventory v2.4.0
                  .- FusionInventory INVENTORY v2.4.0
                  .- FusionInventory SNMP v2.4.0
               .- Shell Commands v1.4.0
               .- Bays Management v1.2.0 (Fixed)
                     (See
http://www.glpi-project.org/forum/viewtopic.php?id=26014))

      .- The agents
         .- FusionInventory-Agent v2.1.11-1 (for Windows)
         .- FusionInventory-Agent v2.1.10-1 (for Windows)
         .- FusionInventory-Agent v2.1.9-3 (for Windows)
         .- FusionInventory-Agent v2.1.10-1 (for GNU/Linux)
         .- FusionInventory-Agent v2.1.9-3 (for GNU/Linux)

   The bug is related with jobs of type (with module) 'Network inventory
(SNMP)'. With this type of jobs, a new process in 'Running' state (no in
'Prepared' or 'Started' state, only in 'Running' state) appears as a
running process and, at the same time, as a successfully completed
process. It can cause confusion.

   This is a probe of that.

http://content.screencast.com/users/tabad/folders/Default/media/0a397c27-d554-43d9-81ef-81aab81e553e/79c0d41e29084e9a7a3e5c8f434938195ea7b0c9.png

   As final note, tell you than this doesn't happen with jobs of type
(with module) 'Network discovery'.

   Best regards.
--

-- 
------------------------------------------------------------------------
                               Tomas Abad
                         Ingeniero de Sistemas

                 Servicio de Salud de Castilla-La Mancha
                     Hospital General de Ciudad Real
                         Servicio de Informática

                          http://www.hgucr.es/
------------------------------------------------------------------------

_______________________________________________
Fusioninventory-devel mailing list
Fusioninventory-devel <at> lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/fusioninventory-devel
Remi Collet | 11 Nov 17:50

perl-Parallel-ForkManager + CVE-2011-4115

Hi,

Can you please have a look to
https://bugzilla.redhat.com/show_bug.cgi?id=751886

It seems upstream is unresponsive :(

As fusion use this dependency, it will be great to see how a good fix
could be found which didn't affects the agent.

It is used in normal usage or only for test suite ?

Of course, other distribution will be probably concerned by this
vulnerability.

Remi.
David DURIEUX | 5 Nov 12:08
Favicon
Gravatar

Re: [Fusioninventory-bugs] SNMP model of c3020

Hello,

I will create the model this week ;)

Best regards,
--
David DURIEUX
Tel : +33 (0)4.82.53.30.53
Port : +33 (0)6.34.99.45.18
Mail : d.durieux@...
Site Web : http://www.siprossii.com/

SIPROSSII
Les Lafôrets
69430 Beaujeu
FRANCE

Le Wed, 2 Nov 2011 11:29:04 +0100
Javier Tomás Chamarro <jtomas@...> a écrit:

>Hellow,
>
>First of all , thank you. I don´t know if it is the correct e-mail to
>send this .
>
>I have the problem that the models for cisco that i have in my fusion
>dont work correct , and i have been looking for a list with all
>snmp-models but i cant found anything.
>
>Can you help me with this model?, i have many switches with this
>version of  firmware.
>
>Thank you.
>Javier.
>
>
>
>
>
>
>
>Javier Tomás Chamarro
>División de Seguridad e Infraestructuras /
>Security and Infrastructures Division
>
>
><TD style="BORDER-BOTTOM: #f0f0f0; BORDER-LEFT: #f0f0f0;
>PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 0cm;
>WIDTH: 97.5pt; PADDING-R
>
>______________________
>This message including any attachments may contain confidential 
>information, according to our Information Security Management System,
> and intended solely for a specific individual to whom they are
> addressed. Any unauthorised copy, disclosure or distribution of this
> message is strictly forbidden. If you have received this transmission
> in error, please notify the sender immediately and delete it.
>
>______________________
>Este mensaje, y en su caso, cualquier fichero anexo al mismo,
> puede contener informacion clasificada por su emisor como confidencial
> en el marco de su Sistema de Gestion de Seguridad de la 
>Informacion siendo para uso exclusivo del destinatario, quedando 
>prohibida su divulgacion copia o distribucion a terceros sin la 
>autorizacion expresa del remitente. Si Vd. ha recibido este mensaje 
> erroneamente, se ruega lo notifique al remitente y proceda a su
> borrado. 
>Gracias por su colaboracion.
>
>______________________
>

_______________________________________________
Fusioninventory-devel mailing list
Fusioninventory-devel@...
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/fusioninventory-devel

David DURIEUX | 14 Oct 09:45
Favicon
Gravatar

Releases number change for plugins FusionInventory

Hello,

Yesterday, the core team has decided to modify release number of
plugins to be easier to see what version is for what version of GLPI.

In this new number, we will have (GLPI major release) + release of
FusionInventory

So, in practice, we have : 

old => new

released : 2.4.0 => 2.4.0
not yet released : 2.4.1 => 0.80+1.1
not yet released : 2.4.2 => 0.80+1.2
not yet released : 2.5.0 => 0.83+1.0
not yet released : 2.6.0 => 0.84+1.0
not yet released : 2.7.0 => 0.85+1.0
....

For each new major release of GLPI, we restart FusionInventory version
to 1.0. We will be able to maintened many version and can backport
features of current version to an older GLPI release; for example,
possibility to release version 0.80+2.0 if we are in 0.83+1.1.

Best regards,

David Durieux
++
Oliver Tuschhoff | 4 Oct 15:32
Picon

Proposed enhancements/corrections

Dear FusionInventory-Team,

thank you for providing such a great piece of software. While deploying the Agent into our environment I had to make several enhancements/corrections which I wanted to give back (against Version 2.1.10):

fusioninventory-win32-service.patch:
Correcting the name of a utilized function of the Win32::Daemon package from LastControlMessage() to QueryLastMessage().
The change in the underlying package seems to have happened in version 20101014 and is still current (http://cpansearch.perl.org/src/JDB/Win32-Daemon-20110117/Changes).

solaris-plugins-zonename.patch:
While calling zonename to detect the zone-type, a newline-char (outputted by zonename) prevents the correct detection.
The proposed patch sanitizes the output of zonename by piping its output into tr -d [[:cntrl:]].
Affected solaris-plugins: CPU, Bios, Memory, Networks

solaris-network-plugin.patch:
While checking the autospeed-status of a bge network-adapter, the called system-app (ndd) seems to be given bogus variables, which prevents correct detection. The proposed patch aligns the variables of the affected call with the rest of the plugin.

CPU.pm:
In our solaris-environment, the current CPU-plugin had severe problems detecting the correct values. The proposed patch exchanges the whole memconf-based plugin for a kstat-based plugin. As an added benefit, the plugin-size and complexity is severely shrunk.

The respective patches have been tested on:
- Windows 2003 R2/2008
- Solaris 10: x86/SPARC, global/local zone

I'd love to hear your feedback and would be thankful for including these proposed patches.
Please notify me if I could be of any assistance.

Best regards,
Oliver Tuschhoff

--
Oliver Tuschhoff - Beratung und Training
Steinackerstr. 17, 64285 Darmstadt
Tel.:      +49 176 2378 0610
E-Mail:  mail-rEBS05WrsvVs/eKCV5ZUKRvVK+yQ3ZXh@public.gmane.org
Skype:  oliver.tuschhoff
URL:     www.oliver-tuschhoff.de

Attachment (CPU.pm): application/octet-stream, 1220 bytes
Attachment (fusioninventory-win32-service.patch): application/octet-stream, 642 bytes
Attachment (solaris-network-plugin.patch): application/octet-stream, 546 bytes
Attachment (solaris-plugins-zonename.patch): application/octet-stream, 1609 bytes
_______________________________________________
Fusioninventory-devel mailing list
Fusioninventory-devel@...
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/fusioninventory-devel
Picon

Re : Fusioninventory-devel Digest, Vol 20, Issue 2

Bonjour

Je peux me connecter ce soir sur irc. Les sources qui compilent pas sont sur le git ?

Sébastien LACROIX / Erufu

----- Reply message -----
De : fusioninventory-devel-request <at> lists.alioth.debian.org
Pour : <fusioninventory-devel <at> lists.alioth.debian.org>
Objet : Fusioninventory-devel Digest, Vol 20, Issue 2
Date : mer., sept. 14, 2011 2:00 soir


Send Fusioninventory-devel mailing list submissions to
fusioninventory-devel <at> lists.alioth.debian.org

To subscribe or unsubscribe via the World Wide Web, visit
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/fusioninventory-devel

or, via email, send a message with subject or body 'help' to
fusioninventory-devel-request <at> lists.alioth.debian.org

You can reach the person managing the list at
fusioninventory-devel-owner <at> lists.alioth.debian.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Fusioninventory-devel digest..."


Today's Topics:

  1. Re: Fusioninventory-devel Digest, Vol 19, Issue 10 (Walid nouh)


----------------------------------------------------------------------

Message: 1
Date: Tue, 13 Sep 2011 19:04:24 +0200
From: Walid nouh <walid.nouh <at> gmail.com>
To: FusionInventory Developer discussion
<fusioninventory-devel <at> lists.alioth.debian.org>
Subject: Re: [Fusioninventory-devel] Fusioninventory-devel Digest, Vol
19, Issue 10
Message-ID: <4E6F8D18.4000507 <at> gmail.com>
Content-Type: text/plain; charset="iso-8859-1"; Format="flowed"

Salut,
Gon?ri a appliqu? ton patch, mais j'ai des soucis il y a des erreurs de
compilation.
Aurais-tu 5 min que l'on regarde ?

A bient?t,
Walid.

On 24/08/2011 17:04, Erufu wrote:
> Hello,
>
> New version with Login/password and Tag options.
>
> Find in attachment the apk and the patch.
>
> Best regards,
>
> Erufu - Sebastien Lacroix
> --------------------------------
> Di5 Polytech'Tours
>
>
> On 24/08/2011 15:14,
> fusioninventory-devel-request <at> lists.alioth.debian.org wrote:
>> Send Fusioninventory-devel mailing list submissions to
>>     fusioninventory-devel <at> lists.alioth.debian.org
>>
>> To subscribe or unsubscribe via the World Wide Web, visit
>>     http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/fusioninventory-devel
>>
>>
>> or, via email, send a message with subject or body 'help' to
>>     fusioninventory-devel-request <at> lists.alioth.debian.org
>>
>> You can reach the person managing the list at
>>     fusioninventory-devel-owner <at> lists.alioth.debian.org
>>
>> When replying, please edit your Subject line so it is more specific
>> than "Re: Contents of Fusioninventory-devel digest..."
>>
>>
>> Today's Topics:
>>
>>     1. Re: Fusioninventory-devel Digest, Vol 19,    Issue 9 (Erufu)
>>
>>
>> ----------------------------------------------------------------------
>>
>> Message: 1
>> Date: Wed, 24 Aug 2011 15:13:57 +0200
>> From: Erufu<erufu.sennin <at> gmail.com>
>> To: fusioninventory-devel <at> lists.alioth.debian.org
>> Subject: Re: [Fusioninventory-devel] Fusioninventory-devel Digest, Vol
>>     19,    Issue 9
>> Message-ID:<4E54F915.1060506 <at> gmail.com>
>> Content-Type: text/plain; charset="iso-8859-1"; Format="flowed"
>>
>> Hello,
>>
>> When I checked the apk file it doesn't work ... I forget to modify a
>> file in my patch. So please find in attachment the good patch and the
>> apk file.
>>
>> Best regards,
>>
>> Erufu - Sebastien Lacroix
>> --------------------------------
>> Di5 Polytech'Tours
>> --------------------------------
>>
>>
>> On 24/08/2011 14:00,
>> fusioninventory-devel-request <at> lists.alioth.debian.org wrote:
>>> Send Fusioninventory-devel mailing list submissions to
>>>     fusioninventory-devel <at> lists.alioth.debian.org
>>>
>>> To subscribe or unsubscribe via the World Wide Web, visit
>>>     http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/fusioninventory-devel
>>>
>>>
>>> or, via email, send a message with subject or body 'help' to
>>>     fusioninventory-devel-request <at> lists.alioth.debian.org
>>>
>>> You can reach the person managing the list at
>>>     fusioninventory-devel-owner <at> lists.alioth.debian.org
>>>
>>> When replying, please edit your Subject line so it is more specific
>>> than "Re: Contents of Fusioninventory-devel digest..."
>>>
>>>
>>> Today's Topics:
>>>
>>>      1. Re: android agent ui improvements (Gon?ri Le Bouder)
>>>      2. Re: android agent ui improvements (Walid nouh)
>>>
>>>
>>> ----------------------------------------------------------------------
>>>
>>> Message: 1
>>> Date: Tue, 23 Aug 2011 23:37:24 +0200
>>> From: Gon?ri Le Bouder<goneri <at> rulezlan.org>
>>> To: FusionInventory Developer discussion
>>> <fusioninventory-devel <at> lists.alioth.debian.org>
>>> Subject: Re: [Fusioninventory-devel] android agent ui improvements
>>> Message-ID:
>>> <CA+1jmBy0-_fdAi8Xce81_kYJOPeAO-U8fKw2z-pRkDk=Us6XRQ <at> mail.gmail.com>
>>> Content-Type: text/plain; charset="utf-8"
>>>
>>> Hello S?bastien,
>>>
>>> Thank you for the patch. The Android agent maintainers a too busy
>>> this week
>>> i'm afraid and I don't have the Android SDK installed to build the
>>> agent.
>>> Can you please publish a package somewhere so i can have a look on your
>>> changes?
>>>
>>> Best regards,
>>> --
>>>      Gon?ri
>>> -------------- next part --------------
>>> An HTML attachment was scrubbed...
>>> URL:<http://lists.alioth.debian.org/pipermail/fusioninventory-devel/attachments/20110823/32128cac/attachment-0001.html>
>>>
>>>
>>> ------------------------------
>>>
>>> Message: 2
>>> Date: Wed, 24 Aug 2011 09:20:06 +0200
>>> From: Walid nouh<walid.nouh <at> gmail.com>
>>> To: FusionInventory Developer discussion
>>> <fusioninventory-devel <at> lists.alioth.debian.org>
>>> Subject: Re: [Fusioninventory-devel] android agent ui improvements
>>> Message-ID:<4E54A626.9020703 <at> gmail.com>
>>> Content-Type: text/plain; charset="utf-8"; Format="flowed"
>>>
>>> Hi S?bastien,
>>>
>>> I'm really sorry, I'm a little bit busy this week.
>>> I'll check your patch as soon as possible !
>>>
>>> Thanks a lot for your contributon. As Gon?ri proposed, if you can
>>> provide us an apk, it would be great.
>>>
>>> Walid;
>>>
>>> On 23/08/2011 23:37, Gon?ri Le Bouder wrote:
>>>> Hello S?bastien,
>>>>
>>>> Thank you for the patch. The Android agent maintainers a too busy this
>>>> week i'm afraid and I don't have the Android SDK installed to build
>>>> the agent. Can you please publish a package somewhere so i can have a
>>>> look on your changes?
>>>>
>>>> Best regards,
>>>> --
>>>>      Gon?ri
>>>>
>>>>
>>>> _______________________________________________
>>>> Fusioninventory-devel mailing list
>>>> Fusioninventory-devel <at> lists.alioth.debian.org
>>>> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/fusioninventory-devel
>>>>
>>> -------------- next part --------------
>>> An HTML attachment was scrubbed...
>>> URL:<http://lists.alioth.debian.org/pipermail/fusioninventory-devel/attachments/20110824/863b7532/attachment-0001.html>
>>>
>>>
>>> ------------------------------
>>>
>>> _______________________________________________
>>> Fusioninventory-devel mailing list
>>> Fusioninventory-devel <at> lists.alioth.debian.org
>>> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/fusioninventory-devel
>>>
>>>
>>> End of Fusioninventory-devel Digest, Vol 19, Issue 9
>>> ****************************************************
>> -------------- next part --------------
>> A non-text attachment was scrubbed...
>> Name: FusionInventoryPatch.patch
>> Type: text/x-patch
>> Size: 73139 bytes
>> Desc: not available
>> URL:<http://lists.alioth.debian.org/pipermail/fusioninventory-devel/attachments/20110824/91c85ee6/attachment.bin>
>>
>> -------------- next part --------------
>> A non-text attachment was scrubbed...
>> Name: fusioninventory.apk
>> Type: application/vnd.android.package-archive
>> Size: 83662 bytes
>> Desc: not available
>> URL:<http://lists.alioth.debian.org/pipermail/fusioninventory-devel/attachments/20110824/91c85ee6/attachment.apk>
>>
>>
>> ------------------------------
>>
>> _______________________________________________
>> Fusioninventory-devel mailing list
>> Fusioninventory-devel <at> lists.alioth.debian.org
>> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/fusioninventory-devel
>>
>>
>> End of Fusioninventory-devel Digest, Vol 19, Issue 10
>> *****************************************************
>
>
> _______________________________________________
> Fusioninventory-devel mailing list
> Fusioninventory-devel <at> lists.alioth.debian.org
> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/fusioninventory-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/fusioninventory-devel/attachments/20110913/613e5cba/attachment-0001.html>

------------------------------

_______________________________________________
Fusioninventory-devel mailing list
Fusioninventory-devel <at> lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/fusioninventory-devel

End of Fusioninventory-devel Digest, Vol 20, Issue 2
****************************************************

_______________________________________________
Fusioninventory-devel mailing list
Fusioninventory-devel@...
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/fusioninventory-devel
Erufu | 24 Aug 17:04
Picon

Re: Fusioninventory-devel Digest, Vol 19, Issue 10

Hello,

New version with Login/password and Tag options.

Find in attachment the apk and the patch.

Best regards,

Erufu - Sebastien Lacroix
--------------------------------
Di5 Polytech'Tours

On 24/08/2011 15:14, 
fusioninventory-devel-request@... wrote:
> Send Fusioninventory-devel mailing list submissions to
> 	fusioninventory-devel@...
>
> To subscribe or unsubscribe via the World Wide Web, visit
> 	http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/fusioninventory-devel
>
> or, via email, send a message with subject or body 'help' to
> 	fusioninventory-devel-request@...
>
> You can reach the person managing the list at
> 	fusioninventory-devel-owner@...
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Fusioninventory-devel digest..."
>
>
> Today's Topics:
>
>     1. Re: Fusioninventory-devel Digest, Vol 19,	Issue 9 (Erufu)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Wed, 24 Aug 2011 15:13:57 +0200
> From: Erufu<erufu.sennin@...>
> To: fusioninventory-devel@...
> Subject: Re: [Fusioninventory-devel] Fusioninventory-devel Digest, Vol
> 	19,	Issue 9
> Message-ID:<4E54F915.1060506@...>
> Content-Type: text/plain; charset="iso-8859-1"; Format="flowed"
>
> Hello,
>
> When I checked the apk file it doesn't work ... I forget to modify a
> file in my patch. So please find in attachment the good patch and the
> apk file.
>
> Best regards,
>
> Erufu - Sebastien Lacroix
> --------------------------------
> Di5 Polytech'Tours
> --------------------------------
>
>
> On 24/08/2011 14:00,
> fusioninventory-devel-request@... wrote:
>> Send Fusioninventory-devel mailing list submissions to
>> 	fusioninventory-devel@...
>>
>> To subscribe or unsubscribe via the World Wide Web, visit
>> 	http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/fusioninventory-devel
>>
>> or, via email, send a message with subject or body 'help' to
>> 	fusioninventory-devel-request@...
>>
>> You can reach the person managing the list at
>> 	fusioninventory-devel-owner@...
>>
>> When replying, please edit your Subject line so it is more specific
>> than "Re: Contents of Fusioninventory-devel digest..."
>>
>>
>> Today's Topics:
>>
>>      1. Re: android agent ui improvements (Gon?ri Le Bouder)
>>      2. Re: android agent ui improvements (Walid nouh)
>>
>>
>> ----------------------------------------------------------------------
>>
>> Message: 1
>> Date: Tue, 23 Aug 2011 23:37:24 +0200
>> From: Gon?ri Le Bouder<goneri@...>
>> To: FusionInventory Developer discussion
>> 	<fusioninventory-devel@...>
>> Subject: Re: [Fusioninventory-devel] android agent ui improvements
>> Message-ID:
>> 	<CA+1jmBy0-_fdAi8Xce81_kYJOPeAO-U8fKw2z-pRkDk=Us6XRQ@...>
>> Content-Type: text/plain; charset="utf-8"
>>
>> Hello S?bastien,
>>
>> Thank you for the patch. The Android agent maintainers a too busy this week
>> i'm afraid and I don't have the Android SDK installed to build the agent.
>> Can you please publish a package somewhere so i can have a look on your
>> changes?
>>
>> Best regards,
>> --
>>      Gon?ri
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>> URL:<http://lists.alioth.debian.org/pipermail/fusioninventory-devel/attachments/20110823/32128cac/attachment-0001.html>
>>
>> ------------------------------
>>
>> Message: 2
>> Date: Wed, 24 Aug 2011 09:20:06 +0200
>> From: Walid nouh<walid.nouh@...>
>> To: FusionInventory Developer discussion
>> 	<fusioninventory-devel@...>
>> Subject: Re: [Fusioninventory-devel] android agent ui improvements
>> Message-ID:<4E54A626.9020703@...>
>> Content-Type: text/plain; charset="utf-8"; Format="flowed"
>>
>> Hi S?bastien,
>>
>> I'm really sorry, I'm a little bit busy this week.
>> I'll check your patch as soon as possible !
>>
>> Thanks a lot for your contributon. As Gon?ri proposed, if you can
>> provide us an apk, it would be great.
>>
>> Walid;
>>
>> On 23/08/2011 23:37, Gon?ri Le Bouder wrote:
>>> Hello S?bastien,
>>>
>>> Thank you for the patch. The Android agent maintainers a too busy this
>>> week i'm afraid and I don't have the Android SDK installed to build
>>> the agent. Can you please publish a package somewhere so i can have a
>>> look on your changes?
>>>
>>> Best regards,
>>> --
>>>      Gon?ri
>>>
>>>
>>> _______________________________________________
>>> Fusioninventory-devel mailing list
>>> Fusioninventory-devel@...
>>> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/fusioninventory-devel
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>> URL:<http://lists.alioth.debian.org/pipermail/fusioninventory-devel/attachments/20110824/863b7532/attachment-0001.html>
>>
>> ------------------------------
>>
>> _______________________________________________
>> Fusioninventory-devel mailing list
>> Fusioninventory-devel@...
>> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/fusioninventory-devel
>>
>> End of Fusioninventory-devel Digest, Vol 19, Issue 9
>> ****************************************************
> -------------- next part --------------
> A non-text attachment was scrubbed...
> Name: FusionInventoryPatch.patch
> Type: text/x-patch
> Size: 73139 bytes
> Desc: not available
> URL:<http://lists.alioth.debian.org/pipermail/fusioninventory-devel/attachments/20110824/91c85ee6/attachment.bin>
> -------------- next part --------------
> A non-text attachment was scrubbed...
> Name: fusioninventory.apk
> Type: application/vnd.android.package-archive
> Size: 83662 bytes
> Desc: not available
> URL:<http://lists.alioth.debian.org/pipermail/fusioninventory-devel/attachments/20110824/91c85ee6/attachment.apk>
>
> ------------------------------
>
> _______________________________________________
> Fusioninventory-devel mailing list
> Fusioninventory-devel@...
> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/fusioninventory-devel
>
> End of Fusioninventory-devel Digest, Vol 19, Issue 10
> *****************************************************
Attachment (Fusioninventory.apk): application/vnd.android.package-archive, 81 KiB
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index c2196ae..dd80a62 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
 <at>  <at>  -31,7 +31,7  <at>  <at> 
 		android:name="android.permission.BLUETOOTH" />
 	<uses-permission
 		android:name="android.permission.INSTALL_PACKAGES" />
-   <uses-permission 
+   <uses-permission
       android:name="android.permission.READ_PHONE_STATE"/>
 	<uses-permission
 		android:name="android.permission.GET_PACKAGE_SIZE" />
 <at>  <at>  -43,7 +43,7  <at>  <at> 
 		android:label=" <at> string/app_name"
 		android:name="FusionInventoryApp" android:debuggable="true" android:vmSafeMode="true" android:icon=" <at> drawable/icon">
 		<activity
-			android:name=".FusionInventory"
+			android:name=".Accueil"
 			android:label=" <at> string/app_name" android:launchMode="standard">
 			<intent-filter>
 				<action
 <at>  <at>  -66,6 +66,19  <at>  <at> 
 					android:name="org.fusioninventory.Agent" />
 			</intent-filter>
 		</service>
+        <service
+            android:enabled="true"
+            android:label="Agent Auto"
+            android:description=" <at> string/agent_description"
+            android:icon=" <at> drawable/icon"
+            android:name=".AutoInventory"
+        >
+            <!-- android:process=":Auto agent" -->
+            <intent-filter>
+                <action
+                    android:name="org.fusioninventory.AutoInventory" />
+            </intent-filter>
+        </service>
 		<receiver
 			android:name="BootStartAgent"
 		>
 <at>  <at>  -83,4 +96,4  <at>  <at> 
 	</application>
 
 
-</manifest>
\ No newline at end of file
+</manifest>
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..a45322b
--- /dev/null
+++ b/INSTALL
 <at>  <at>  -0,0 +1,10  <at>  <at> 
+To build project you need Ant and Android SDK.
+
+To be sure of the content of build.xml you need to perform at the root of the project :
+
+    android update project
+
+Then to build project :
+
+    ant clean debug
+
diff --git a/build.xml b/build.xml
index ea3b9ae..c7ba803 100644
--- a/build.xml
+++ b/build.xml
 <at>  <at>  -1,8 +1,6  <at>  <at> 
 <?xml version="1.0" encoding="UTF-8"?>
-<!--<project name="FusionInventory" default="help">-->
-<project default="help">
+<project name="Accueil" default="help">
 
-    <property name="project.name" value="FusionInventory" />
 <!-- The local.properties file is created and updated by the 'android'
      tool.
      It contains the path to the SDK. It should *NOT* be checked into
 <at>  <at>  -38,25 +36,7  <at>  <at> 
     <!-- Required pre-setup import -->
     <import file="${sdk.dir}/tools/ant/pre_setup.xml" />
 
-    <exec outputproperty="build.gitbranch" executable="git">
-        <arg line="symbolic-ref HEAD" />
-        <redirector>
-            <outputfilterchain>
-                <tokenfilter>
-                    <replaceregex pattern="refs/heads/" replace="" flags="" />
-                </tokenfilter>
-            </outputfilterchain>
-        </redirector>
-    </exec>
-
-    <exec outputproperty="build.gitrev" executable="git">
-        <arg line="log -1 --pretty=format:%h ${build.gitbranch}" />
-    </exec>
-
-    <echo>Git branch ${build.gitbranch}</echo>
-    <echo>Git revision ${build.gitrev}</echo>
-    <property name="project.suffix" value="-${build.gitbranch} <at> ${build.gitrev}" />
-    <property name="ant.project.name" value="${project.name}${project.suffix}" />
+
 <!-- extension targets. Uncomment the ones where you want to do custom work
      in between standard targets -->
 <!--
 <at>  <at>  -94,8 +74,6  <at>  <at> 
                below to <setup import="false" />.
              - customize to your needs.
     -->
-    <echo>${ant.project.name}</echo>
     <setup />
-    <echo>${ant.project.name}</echo>
 
 </project>
diff --git a/proguard.cfg b/proguard.cfg
index 12dd039..b1cdf17 100644
--- a/proguard.cfg
+++ b/proguard.cfg
 <at>  <at>  -18,14 +18,18  <at>  <at> 
     native <methods>;
 }
 
--keepclasseswithmembernames class * {
+-keepclasseswithmembers class * {
     public <init>(android.content.Context, android.util.AttributeSet);
 }
 
--keepclasseswithmembernames class * {
+-keepclasseswithmembers class * {
     public <init>(android.content.Context, android.util.AttributeSet, int);
 }
 
+-keepclassmembers class * extends android.app.Activity {
+   public void *(android.view.View);
+}
+
 -keepclassmembers enum * {
     public static **[] values();
     public static ** valueOf(java.lang.String);
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 6178c40..2a63d46 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
 <at>  <at>  -2,13 +2,16  <at>  <at> 
 <resources>
 	<string
 		name="app_name"
-	>FusionInventory</string>
+	>Fusioninventory</string>
 	<string
 		name="agent_started"
-	>FusionInventory Agent is started</string>
+	>Fusioninventory Agent is started</string>
 	<string
 		name="agent_stopped"
-	>FusionInventory Agent is stopped</string>
+	>Fusioninventory Agent is stopped</string>
+	<string
+		name="agent_reboot"
+	>Fusioninventory Agent is restarted</string>
 	<string
 		name="agent_description"
 	>The inventory agent running in background</string>
 <at>  <at>  -40,6 +43,9  <at>  <at> 
 		name="inventory_started"
 	>Starting inventory...</string>
 	<string
+		name="inventory_sended"
+	>Sending inventory...</string>
+	<string
 		name="inventory_ended"
 	>End of inventory.</string>
 	<string
 <at>  <at>  -48,9 +54,21  <at>  <at> 
 	<string
 		name="button_disconnect_agent"
 	>Disconnect Agent</string>
+    <string
+		name="error_inventory"
+	>Inventory not complet</string>
+    <string
+		name="ok_inventory"
+	>Inventory complet</string>
+    <string
+		name="error_send_inventoryi"
+	>Inventory not send</string>
+    <string
+		name="ok_send_inventory"
+	>Inventory send</string>
 	<string
 		name="service_notif_id"
-	>FusionInventory Agent</string>
+	>FusioninventoryInventory Agent</string>
 	<string-array
 		name="agent_status"
 	>
diff --git a/res/values/strings_pref_accueil.xml b/res/values/strings_pref_accueil.xml
new file mode 100644
index 0000000..6590c61
--- /dev/null
+++ b/res/values/strings_pref_accueil.xml
 <at>  <at>  -0,0 +1,40  <at>  <at> 
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+<!-- Accueil Preferences -->
+
+	<string name="AccueilTitle">Agent Fusioninventory settings</string>
+
+	<!-- Inventory part -->
+
+		<string name="AccueilInventoryTitle">Inventory</string>
+		<string name="AccueilInventorySummaryOn">Click to disable inventory</string>
+		<string name="AccueilInventorySummaryOff">Click to enable inventory</string>
+		<string name="AccueilInventoryRun">Run inventory</string>
+		<string name="AccueilInventoryRunSummary">Run now</string>
+		<string name="AccueilInventoryParam">Parameters inventory</string>
+		<string name="AccueilInventoryParamSummary">Setup inventory frequencies</string>
+
+	<!-- Remote view part -->
+
+		<string name="AccueilRemoteTitle">Remote view</string>
+		<string name="AccueilRemoteSummaryOn">Click to disable remote view</string>
+		<string name="AccueilRemoteSummaryOff">Click to enable remote view</string>
+		<string name="AccueilRemoteParam">Parameters remote view</string>
+		<string name="AccueilRemoteParamSummary">Setup remote view settings</string>
+
+	<!-- SSH part -->
+
+		<string name="AccueilSshTitle">Secure Shell</string>
+		<string name="AccueilSshSummaryOn">Click to disable SSH</string>
+		<string name="AccueilSshSummaryOff">Click to enable SSH</string>
+
+	<!-- global part -->
+
+		<string name="AccueilGlobalTitle">Global</string>
+		<string name="AccueilGlobalParam">Global settings</string>
+		<string name="AccueilGlobalParamSummary">Setup certificates, server ...</string>
+
+
+
+</resources>
diff --git a/res/values/strings_pref_advanced.xml b/res/values/strings_pref_advanced.xml
new file mode 100644
index 0000000..4628d35
--- /dev/null
+++ b/res/values/strings_pref_advanced.xml
 <at>  <at>  -0,0 +1,26  <at>  <at> 
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+<!-- Advanced settings part -->
+
+	<string name="AdvancedCatDebug">Debug tools</string>
+
+	<string name="AdvancedDaemon">Run daemon as root</string>
+	<string name="AdvancedDaemonSummaryOff">Click to run daemon as user</string>
+	<string name="AdvancedDaemonSummaryOn">Click to run daemon as root</string>
+	<string name="AdvancedNotify">Notify clients connected</string>
+	<string name="AdvancedNotifySummaryOff">Click to enable notifications</string>
+	<string name="AdvancedNotifySummaryOn">Click to disable notifications</string>
+	<string name="AdvancedDebug">Debug messages</string>
+	<string name="AdvancedDebugSummaryOff">Click to enable debug messages</string>
+	<string name="AdvancedDebugSummaryOn">Click to disable debug messages</string>
+
+	<string name="AdvancedCatBin">Path to binaries</string>
+
+	<string name="AdvancedSU">Path to SU</string>
+	<string name="AdvancedSUSummary">Define path to SU binarie</string>
+	<string name="AdvancedSH">Path to SH</string>
+	<string name="AdvancedSHSummary">Define path to SH binarie</string>
+
+
+</resources>
diff --git a/res/values/strings_pref_auth.xml b/res/values/strings_pref_auth.xml
new file mode 100644
index 0000000..aeb8ac9
--- /dev/null
+++ b/res/values/strings_pref_auth.xml
 <at>  <at>  -0,0 +1,22  <at>  <at> 
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+<!-- Auth settings part -->
+
+	<string name="AuthCatCertif">Certificate</string>
+
+	<string name="AuthCertif">User certificate</string>
+	<string name="AuthCertifSummary">Define path to user certificate</string>
+	<string name="AuthCA">CA certificate</string>
+	<string name="AuthCASummary">Define path to CA certificate</string>
+
+
+	<string name="AuthCatPass">Passwords and keys</string>
+
+	<string name="AuthPrivateKey">Private key</string>
+	<string name="AuthPrivateKeySummary">Define path to private key</string>
+	<string name="AuthPrivatePass">Private key password</string>
+	<string name="AuthPrivatePassSummary">Define the private key password</string>
+
+</resources>
+
diff --git a/res/values/strings_pref_global.xml b/res/values/strings_pref_global.xml
new file mode 100644
index 0000000..c44e6c0
--- /dev/null
+++ b/res/values/strings_pref_global.xml
 <at>  <at>  -0,0 +1,30  <at>  <at> 
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+<!-- Global settings part -->
+
+	<string name="GlobalCat">Global</string>
+
+	<string name="GlobalBoot">Boot options</string>
+	<string name="GlobalBootSummaryOn">Click to disable automatic boot</string>
+	<string name="GlobalBootSummaryOff">Click to enable automatic boot</string>
+
+	<string name="GlobalNotif">Notifications</string>
+	<string name="GlobalNotifSummaryOn">Click to disable notifications</string>
+	<string name="GlobalNotifSummaryOff">Click to enable notifications</string>
+
+	<string name="GlobalCatSet">Server settings</string>
+
+	<string name="GlobalServer">Server address</string>
+	<string name="GlobalServerSummary">Define server address</string>
+
+	<string name="GlobalService">Authentication</string>
+	<string name="GlobalServiceSummary">Setup password, public keys ...</string>
+
+	<string name="GlobalCatAdvanced">Advanced settings</string>
+
+	<string name="GlobalAdvanced">Advanced Settings</string>
+	<string name="GlobalAdvancedSummary">Setup daemon settings, path to binaries ...</string>
+
+</resources>
+
diff --git a/res/values/strings_pref_inventory.xml b/res/values/strings_pref_inventory.xml
new file mode 100644
index 0000000..0f68c3a
--- /dev/null
+++ b/res/values/strings_pref_inventory.xml
 <at>  <at>  -0,0 +1,17  <at>  <at> 
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+<!-- Inventory Preferences -->
+
+	<string name="InventoryCat">Inventory</string>
+
+	<string name="InventoryAuto">Automatic inventory</string>
+	<string name="InventoryAutoSummaryOn">Click to disable automatic inventory</string>
+	<string name="InventoryAutoSummaryOff">Click to enable automatic inventory</string>
+
+	<string name="InventoryFrequency">Frequency</string>
+	<string name="InventoryFrequencyDialog">Every :</string>
+	<string name="InventoryFrequencySummary">Define frequency</string>
+
+</resources>
+
diff --git a/res/values/value_time.xml b/res/values/value_time.xml
new file mode 100644
index 0000000..1d198f8
--- /dev/null
+++ b/res/values/value_time.xml
 <at>  <at>  -0,0 +1,14  <at>  <at> 
+<?xml version="1.0" encoding="utf-8"?>
+	<resources>
+		 <string-array name="Time">
+		         <item>day</item>
+		         <item>week</item>
+		         <item>month</item>
+		 </string-array>
+		 <string-array name="TimeValue">
+		         <item>Day</item>
+		         <item>Week</item>
+		         <item>Month</item>
+		 </string-array>
+	</resources>
+
diff --git a/res/xml/accueil.xml b/res/xml/accueil.xml
new file mode 100644
index 0000000..cc6e6a7
--- /dev/null
+++ b/res/xml/accueil.xml
 <at>  <at>  -0,0 +1,94  <at>  <at> 
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+    android:title=" <at> string/AccueilTitle">
+
+    <PreferenceCategory android:title=" <at> string/AccueilInventoryTitle"/>
+
+    <!-- Inventory part -->
+
+    <CheckBoxPreference
+        android:summary="CheckBox summary"
+        android:title=" <at> string/AccueilInventoryTitle"
+        android:summaryOn=" <at> string/AccueilInventorySummaryOn"
+        android:summaryOff=" <at> string/AccueilInventorySummaryOff"
+        android:key="autoInventory"
+        android:defaultValue="true"
+        />
+    <Preference
+        android:title=" <at> string/AccueilInventoryRun"
+        android:summary=" <at> string/AccueilInventoryRunSummary"
+        android:key="runInventory"
+        android:dependency="autoInventory"
+        />
+    <PreferenceScreen
+        android:title=" <at> string/AccueilInventoryParam"
+        android:summary=" <at> string/AccueilInventoryParamSummary"
+        android:dependency="autoInventory"
+        >
+
+        <PreferenceCategory android:title=" <at> string/InventoryCat"/>
+
+        <CheckBoxPreference
+            android:summary="CheckBox summary"
+            android:title=" <at> string/InventoryAuto"
+            android:summaryOn=" <at> string/InventoryAutoSummaryOn"
+            android:summaryOff=" <at> string/InventoryAutoSummaryOff"
+            android:key="autoStartInventory" android:defaultValue="true"
+            />
+        <ListPreference
+            android:key="timeInventory"
+            android:title=" <at> string/InventoryFrequency"
+            android:dialogTitle=" <at> string/InventoryFrequency"
+            android:dependency="autoStartInventory"
+            android:entries=" <at> array/Time"
+            android:entryValues=" <at> array/TimeValue"
+            android:defaultValue="Week"
+            android:summary=" <at> string/InventoryFrequencySummary"
+            />
+
+    </PreferenceScreen>
+
+    <PreferenceCategory android:title=" <at> string/AccueilGlobalTitle"/>
+
+    <PreferenceScreen
+        android:title=" <at> string/AccueilGlobalParam"
+        android:summary=" <at> string/AccueilGlobalParamSummary">
+
+        <PreferenceCategory android:title=" <at> string/GlobalCat"/>
+
+        <CheckBoxPreference
+            android:summary="CheckBox summary"
+            android:title=" <at> string/GlobalBoot"
+            android:summaryOn=" <at> string/GlobalBootSummaryOn"
+            android:summaryOff=" <at> string/GlobalBootSummaryOff"
+            android:key="boot" android:defaultValue="true"
+            />
+
+        <CheckBoxPreference
+            android:summary="CheckBox summary"
+            android:title=" <at> string/GlobalNotif"
+            android:summaryOn=" <at> string/GlobalNotifSummaryOn"
+            android:summaryOff=" <at> string/GlobalNotifSummaryOff"
+            android:key="notif" android:defaultValue="false"
+            />
+
+        <PreferenceCategory android:title=" <at> string/GlobalCatSet"/>
+
+        <EditTextPreference
+            android:title=" <at> string/GlobalServer"
+            android:key="url"
+            android:summary=" <at> string/GlobalServerSummary"
+            android:persistent="true"
+            />
+        <EditTextPreference android:dialogMessage=" <at> string/tag" android:persistent="true" android:enabled="true" android:selectable="true" android:dialogTitle=" <at> string/tag" android:title=" <at> string/tag" android:key="tag"></EditTextPreference>
+
+
+
+        <PreferenceCategory android:title=" <at> string/authentication_credentials">
+            <EditTextPreference android:dialogMessage=" <at> string/login" android:enabled="true" android:persistent="true" android:title=" <at> string/login" android:key="login"></EditTextPreference>
+            <EditTextPreference android:dialogMessage=" <at> string/password" android:persistent="true" android:title=" <at> string/password" android:key="password" android:enabled="true"></EditTextPreference>
+        </PreferenceCategory>
+
+
+    </PreferenceScreen>
+
+</PreferenceScreen>
diff --git a/src/org/fusioninventory/Accueil.java b/src/org/fusioninventory/Accueil.java
new file mode 100644
index 0000000..cbee4d6
--- /dev/null
+++ b/src/org/fusioninventory/Accueil.java
 <at>  <at>  -0,0 +1,297  <at>  <at> 
+package org.fusioninventory;
+
+import java.util.Iterator;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.ServiceConnection;
+import android.content.SharedPreferences;
+import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Message;
+import android.os.Messenger;
+import android.os.RemoteException;
+import android.preference.EditTextPreference;
+import android.preference.ListPreference;
+import android.preference.Preference;
+import android.preference.PreferenceManager;
+import android.preference.Preference.OnPreferenceChangeListener;
+import android.preference.Preference.OnPreferenceClickListener;
+import android.preference.PreferenceActivity;
+import android.util.Log;
+import android.widget.Toast;
+
+public class Accueil extends PreferenceActivity implements
+OnSharedPreferenceChangeListener {
+
+    private Messenger mAgentService = null;
+
+    private String[] STATUS_AGENT = null;
+    private boolean isAgentOk = false;
+    private String barcode = null;
+
+    private boolean notif = false;
+
+    private boolean ssh = false;
+
+    private SharedPreferences customSharedPreference;
+
+    private static final String TAG = "DroidSSHd";
+    final Handler mHandler = new Handler();
+    private long mUpdateUIdelay = 500L;
+    private Intent mDropbearDaemonHandlerService;
+
+    public Messenger getmAgentService(){
+        return mAgentService;
+    }
+
+    public static void log(Object obj, String msg, int level) {
+        String final_msg = String.format("[%s] %s", obj.getClass().getName(), msg);
+        Log.println(level, "FusionInventory", final_msg);
+    }
+
+    class IncomingHandler
+            extends Handler {
+             <at> Override
+                public void handleMessage(Message msg) {
+                    // TODO Auto-generated method stub
+                    Accueil.log(this, " message received " + msg.toString(), Log.INFO);
+
+                    switch (msg.what) {
+
+                        case Agent.MSG_AGENT_STATUS:
+
+                            Accueil.log(this, STATUS_AGENT[msg.arg1], Log.INFO);
+                            isAgentOk = (msg.arg1 == 0 ? true : false);
+                            break;
+                        case Agent.MSG_INVENTORY_FINISHED:
+
+                            try {
+                                mAgentService.send(Message.obtain(null, Agent.MSG_INVENTORY_RESULT));
+                            } catch (RemoteException e) {
+                                // TODO Auto-generated catch block
+                                e.printStackTrace();
+                            }
+                            break;
+
+                        case Agent.MSG_INVENTORY_RESULT:
+                            Bundle bXML = msg.peekData();
+                            if (bXML != null) {
+                                try {
+                                    mAgentService.send(Message.obtain(null, Agent.MSG_AGENT_STATUS));
+                                } catch (RemoteException e) {
+                                    // TODO Auto-generated catch block
+                                    e.printStackTrace();
+                                }
+                            }
+                            break;
+
+                        default:
+                            super.handleMessage(msg);
+                    }
+                }
+    }
+
+    final Messenger mMessenger = new Messenger(new IncomingHandler());
+
+    private ServiceConnection mConnection = new ServiceConnection() {
+
+         <at> Override
+            public void onServiceConnected(ComponentName name, IBinder service) {
+
+                mAgentService = new Messenger(service);
+
+                try {
+                    Message msg = Message.obtain();
+                    msg.replyTo = mMessenger;
+                    msg.what = Agent.MSG_CLIENT_REGISTER;
+                    mAgentService.send(msg);
+
+                    mAgentService.send(Message.obtain(null, Agent.MSG_AGENT_STATUS));
+                } catch (RemoteException e) {
+                    // TODO Auto-generated catch block
+                    e.printStackTrace();
+                }
+
+                if (notif){
+                    Toast.makeText(Accueil.this, R.string.agent_connected, Toast.LENGTH_SHORT).show();
+                }
+            }
+
+         <at> Override
+            public void onServiceDisconnected(ComponentName name) {
+                isAgentOk = false;
+                mAgentService = null;
+
+                if (notif){
+                    Toast.makeText(Accueil.this, R.string.agent_disconnected, Toast.LENGTH_SHORT).show();
+                }
+            }
+    };
+
+    private boolean mIsBound = false;
+
+    void doBindService() {
+        // Establish a connection with the service. We use an explicit
+        // class name because we want a specific service implementation that
+        // we know will be running in our own process (and thus won't be
+        // supporting component replacement by other applications).
+
+        // mIsBound = bindService(new Intent(FusionInventory.this, Agent.class),
+        // mConnection, Context.BIND_AUTO_CREATE);
+
+        ComponentName result = startService(new Intent("org.fusioninventory.Agent"));
+        if (result != null) {
+            Accueil.log(this, " Agent started ", Log.INFO);
+        } else {
+            Accueil.log(this, " Agent already started ", Log.ERROR);
+        }
+
+        mIsBound = bindService(new Intent(Accueil.this, Agent.class), mConnection, Context.BIND_NOT_FOREGROUND);
+
+        if (mIsBound) {
+            Accueil.log(this, "Connected sucessfully to Agent service", Log.INFO);
+        } else {
+            Accueil.log(this, "Failed to connect to Agent service", Log.ERROR);
+        }
+
+    }
+
+    void doUnbindService() {
+        if (mIsBound) {
+            // Detach our existing connection.
+            unbindService(mConnection);
+            mIsBound = false;
+        }
+    }
+
+
+     <at> Override
+        protected void onCreate(Bundle savedInstanceState) {
+            super.onCreate(savedInstanceState);
+            STATUS_AGENT = getResources().getStringArray(R.array.agent_status);
+
+            addPreferencesFromResource(R.xml.accueil);
+
+            doBindService();
+
+            customSharedPreference = PreferenceManager.getDefaultSharedPreferences(this);
+            notif = customSharedPreference.getBoolean("notif", false);
+
+            Preference autoStartInventory = findPreference("autoStartInventory");
+            autoStartInventory.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
+                public boolean onPreferenceChange(Preference arg0,
+                    Object arg1) {
+                    // TODO Auto-generated method stub
+
+                    notif = customSharedPreference.getBoolean("notif", false);
+
+                    if (notif){
+                        Toast.makeText(getBaseContext(), R.string.agent_reboot, Toast.LENGTH_SHORT).show();
+                    }
+
+                    stopService(new Intent("org.fusioninventory.Agent"));
+                    startService(new Intent("org.fusioninventory.Agent"));
+
+                    return true;
+                }
+
+            });
+
+            Preference timeInventory = findPreference("timeInventory");
+            timeInventory.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
+                public boolean onPreferenceChange(Preference arg0,
+                    Object arg1) {
+                    // TODO Auto-generated method stub
+
+                    notif = customSharedPreference.getBoolean("notif", false);
+
+                    if (notif){
+                        Toast.makeText(getBaseContext(), R.string.agent_reboot,Toast.LENGTH_SHORT).show();
+                    }
+
+                    stopService(new Intent("org.fusioninventory.Agent"));
+                    startService(new Intent("org.fusioninventory.Agent"));
+
+                    return true;
+                }
+
+            });
+
+            Preference runInventory = findPreference("runInventory");
+            runInventory.setOnPreferenceClickListener(new OnPreferenceClickListener() {
+                public boolean onPreferenceClick(Preference preference) {
+                    Message msg;
+
+                    if (isAgentOk) {
+                        try {
+
+                            Toast.makeText(Accueil.this, R.string.inventory_started, Toast.LENGTH_LONG).show();
+
+                            isAgentOk = false;
+
+                            msg = Message.obtain(null, Agent.MSG_INVENTORY_START);
+                            msg.replyTo = mMessenger;
+                            if (barcode != null) {
+                                Bundle b = new Bundle();
+                                b.putString("BARCODE", barcode);
+                                msg.setData(b);
+                            }
+                            mAgentService.send(msg);
+
+
+                        } catch (RemoteException e) {
+                            // TODO Auto-generated catch block
+                            e.printStackTrace();
+                        }
+
+                        isAgentOk = true;
+                    }
+
+                    if (isAgentOk) {
+
+                        isAgentOk = false;
+
+                        msg = Message.obtain(null, Agent.MSG_INVENTORY_SEND);
+                        msg.replyTo = mMessenger;
+                        try {
+                            mAgentService.send(msg);
+                        } catch (RemoteException e) {
+                            // TODO Auto-generated catch block
+                            e.printStackTrace();
+                        }
+
+                        isAgentOk = true;
+                    }
+
+                    return true;
+                }
+
+            });
+        }
+
+    protected void onResume() {
+        super.onResume();
+        getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener( this );
+    }
+
+    protected void onPause() {
+        super.onPause();
+        getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener( this );
+    }
+
+    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
+        Preference pref = findPreference(key);
+        if (pref instanceof EditTextPreference) {
+            EditTextPreference editextp = (EditTextPreference) pref;
+            pref.setSummary(editextp.getText());
+        }
+        if (pref instanceof ListPreference) {
+            ListPreference listp = (ListPreference) pref;
+            pref.setSummary(listp.getValue());
+        }
+    }
+}
diff --git a/src/org/fusioninventory/Agent.java b/src/org/fusioninventory/Agent.java
index 36a71b3..e527a62 100644
--- a/src/org/fusioninventory/Agent.java
+++ b/src/org/fusioninventory/Agent.java
 <at>  <at>  -7,6 +7,7  <at>  <at>  import java.io.InputStreamReader;
 import java.io.UnsupportedEncodingException;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.util.Calendar;
 
 import org.apache.http.Header;
 import org.apache.http.HttpException;
 <at>  <at>  -34,11 +35,14  <at>  <at>  import org.apache.http.protocol.BasicHttpContext;
 import org.apache.http.protocol.HttpContext;
 import org.fusioninventory.utils.EasySSLSocketFactory;
 
+import android.app.AlarmManager;
 import android.app.Notification;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
 import android.app.Service;
+import android.content.Context;
 import android.content.Intent;
+import android.content.SharedPreferences;
 import android.os.Binder;
 import android.os.Bundle;
 import android.os.Handler;
 <at>  <at>  -46,11 +50,12  <at>  <at>  import android.os.IBinder;
 import android.os.Message;
 import android.os.Messenger;
 import android.os.RemoteException;
+import android.preference.PreferenceManager;
 import android.util.Log;
 import android.widget.Toast;
 
 public class Agent
-        extends Service {
+    extends Service {
 
     private NotificationManager mNM;
 
 <at>  <at>  -85,99 +90,104  <at>  <at>  public class Agent
 
     private FusionInventoryApp mFusionApp = null;
 
-    class IncomingHandler
-            extends Handler {
-         <at> Override
-        public void handleMessage(Message msg) {
-
-            Message reply = Message.obtain();
-
-            FusionInventory.log(this, "message received " + msg.toString(), Log.INFO);
-
-            switch (msg.what) {
-
-            case Agent.MSG_CLIENT_REGISTER:
-                client = msg.replyTo;
-                break;
-
-            case Agent.MSG_AGENT_STATUS:
-
-                status_agent = inventory.running ? 1 : 0;
-                reply.what = MSG_AGENT_STATUS;
-                reply.arg1 = status_agent;
-                FusionInventory.log(this, "URL server = " + mFusionApp.getUrl(), Log.VERBOSE);
-                FusionInventory.log(this, "shouldAutostart = " + mFusionApp.getShouldAutoStart(), Log.VERBOSE);
-                FusionInventory.log(this, "mFusionApp = " + mFusionApp.toString(), Log.VERBOSE);
-
-                try {
-                    FusionInventory.log(this, "message sent " + msg.toString(), Log.INFO);
-                    if (client != null) {
-                        client.send(reply);
-                    } else {
-                        FusionInventory.log(this, "No client registered", Log.ERROR);
-                    }
-                } catch (RemoteException e) {
-                    // TODO Auto-generated catch block
-                    e.printStackTrace();
-                }
-                break;
-
-            case Agent.MSG_INVENTORY_START:
-
-                FusionInventory.log(this, " received starting inventory task", Log.INFO);
-
-                if (inventory != null) {
-
-                    if (inventory.running) {
-
-                        FusionInventory.log(this, " inventory task is already running ...", Log.WARN);
-                    } else {
-                        FusionInventory.log(this, " inventory task not running ...", Log.INFO);
-                        start_inventory();
-                    }
-                }
-
-                break;
-            case Agent.MSG_INVENTORY_RESULT:
-                if (client != null) {
-                    reply.what = Agent.MSG_INVENTORY_RESULT;
+    AlarmManager am;
+    private	Calendar cal = Calendar.getInstance();
 
-                    Bundle bXML = new Bundle();
-                    bXML.putString("result", lastXMLResult);
-                    reply.setData(bXML);
-                    try {
+    private boolean notif = false;
 
-                        client.send(reply);
-
-                    } catch (RemoteException e) {
-                        // TODO Auto-generated catch block
-                        e.printStackTrace();
-                    }
-                }
-                break;
-
-            case Agent.MSG_INVENTORY_SEND:
-                send_inventory();
-                if (client != null) {
-                    reply.what = Agent.MSG_INVENTORY_RESULT;
-
-                    Bundle bXML = new Bundle();
-                    bXML.putString("html", lastSendResult);
-                    reply.setData(bXML);
-                    try {
-
-                        client.send(reply);
-
-                    } catch (RemoteException e) {
-                        // TODO Auto-generated catch block
-                        e.printStackTrace();
+    class IncomingHandler
+            extends Handler {
+             <at> Override
+                public void handleMessage(Message msg) {
+
+                    Message reply = Message.obtain();
+
+                    Accueil.log(this, "message received " + msg.toString(), Log.INFO);
+
+                    switch (msg.what) {
+
+                        case Agent.MSG_CLIENT_REGISTER:
+                            client = msg.replyTo;
+                            break;
+
+                        case Agent.MSG_AGENT_STATUS:
+
+                            status_agent = inventory.running ? 1 : 0;
+                            reply.what = MSG_AGENT_STATUS;
+                            reply.arg1 = status_agent;
+                            Accueil.log(this, "URL server = " + mFusionApp.getUrl(), Log.VERBOSE);
+                            Accueil.log(this, "shouldAutostart = " + mFusionApp.getShouldAutoStart(), Log.VERBOSE);
+                            Accueil.log(this, "mFusionApp = " + mFusionApp.toString(), Log.VERBOSE);
+
+                            try {
+                                Accueil.log(this, "message sent " + msg.toString(), Log.INFO);
+                                if (client != null) {
+                                    client.send(reply);
+                                } else {
+                                    Accueil.log(this, "No client registered", Log.ERROR);
+                                }
+                            } catch (RemoteException e) {
+                                // TODO Auto-generated catch block
+                                e.printStackTrace();
+                            }
+                            break;
+
+                        case Agent.MSG_INVENTORY_START:
+
+                            Accueil.log(this, " received starting inventory task", Log.INFO);
+
+                            if (inventory != null) {
+
+                                if (inventory.running) {
+
+                                    Accueil.log(this, " inventory task is already running ...", Log.WARN);
+                                } else {
+                                    Accueil.log(this, " inventory task not running ...", Log.INFO);
+                                    start_inventory();
+                                }
+                            }
+
+                            break;
+                        case Agent.MSG_INVENTORY_RESULT:
+                            if (client != null) {
+                                reply.what = Agent.MSG_INVENTORY_RESULT;
+
+                                Bundle bXML = new Bundle();
+                                bXML.putString("result", lastXMLResult);
+                                reply.setData(bXML);
+                                try {
+
+                                    client.send(reply);
+
+                                } catch (RemoteException e) {
+                                    // TODO Auto-generated catch block
+                                    e.printStackTrace();
+                                }
+                            }
+                            break;
+
+                        case Agent.MSG_INVENTORY_SEND:
+                            send_inventory();
+                            if (client != null) {
+                                reply.what = Agent.MSG_INVENTORY_RESULT;
+
+                                Bundle bXML = new Bundle();
+                                bXML.putString("html", lastSendResult);
+                                reply.setData(bXML);
+                                try {
+
+                                    client.send(reply);
+
+                                } catch (RemoteException e) {
+                                    // TODO Auto-generated catch block
+                                    e.printStackTrace();
+                                }
+                            }
+                            break;
+                        default:
+                            super.handleMessage(msg);
                     }
                 }
-                break;
-            default:
-                super.handleMessage(msg);
-            }
-        }
     }
 
     final Messenger mMessenger = new Messenger(new IncomingHandler());
 <at>  <at>  -186,88 +196,131  <at>  <at>  public class Agent
 
     public class AgentBinder
             extends Binder {
-        Agent getService() {
-            return Agent.this;
-        }
+            Agent getService() {
+                return Agent.this;
+            }
     }
 
      <at> Override
-    public void onCreate() {
-
-        FusionInventory.log(this, "creating inventory task", Log.INFO);
+        public void onCreate() {
+
+            SharedPreferences customSharedPreference = PreferenceManager.getDefaultSharedPreferences(this);
+            boolean autoInventory = customSharedPreference.getBoolean("autoStartInventory", false);
+            String timeInventory = customSharedPreference.getString("timeInventory", "Week");
+            notif = customSharedPreference.getBoolean("notif", false);
+
+            if (autoInventory)
+            {
+                if (timeInventory.equals("Day"))
+                {
+                    cal.set(Calendar.HOUR_OF_DAY, 18);
+                    cal.set(Calendar.MINUTE, 0);
+                    cal.set(Calendar.SECOND, 0);
+                    cal.set(Calendar.MILLISECOND, 0);
+                }
+                else if(timeInventory.equals("Week"))
+                {
+                    cal.set(Calendar.DAY_OF_WEEK, 1);
+                    cal.set(Calendar.HOUR_OF_DAY, 18);
+                    cal.set(Calendar.MINUTE, 33);
+                    cal.set(Calendar.SECOND, 0);
+                    cal.set(Calendar.MILLISECOND, 0);
+                }
+                else if(timeInventory.equals("Month"))
+                {
+                    cal.set(Calendar.WEEK_OF_MONTH, 1);
+                    cal.set(Calendar.DAY_OF_WEEK, 1);
+                    cal.set(Calendar.HOUR_OF_DAY, 18);
+                    cal.set(Calendar.MINUTE, 0);
+                    cal.set(Calendar.SECOND, 0);
+                    cal.set(Calendar.MILLISECOND, 0);
+                }
 
-        mFusionApp = (FusionInventoryApp) getApplication();
-        FusionInventory.log(this, "FusionInventoryApp = " + mFusionApp.toString(), Log.VERBOSE);
+                am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
+                setRepeatingAlarm();
+            }
 
-        inventory = new InventoryTask(this);
+            Accueil.log(this, "creating inventory task", Log.INFO);
 
-        mNM = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
+            mFusionApp = (FusionInventoryApp) getApplication();
+            Accueil.log(this, "FusionInventoryApp = " + mFusionApp.toString(), Log.VERBOSE);
 
-        contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, FusionInventory.class), 0);
+            inventory = new InventoryTask(this);
 
-        notification = new Notification();
-        notification.icon = R.drawable.icon;
+            mNM = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
 
-        notification.tickerText = getText(R.string.agent_started).toString();
-        updateNotification(getText(R.string.agent_started).toString());
+            contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, Accueil.class), 0);
 
-        mNM.notify(NOTIFICATION, notification);
+            if (notif){
+                notification = new Notification();
+                notification.icon = R.drawable.icon;
 
-        Handler h = new Handler();
-        h.postDelayed(new Runnable() {
+                notification.tickerText = getText(R.string.agent_started).toString();
+                updateNotification(getText(R.string.agent_started).toString());
 
-             <at> Override
-            public void run() {
-                // TODO Auto-generated method stub
-                mNM.cancel(NOTIFICATION);
+                mNM.notify(NOTIFICATION, notification);
             }
-        }, 1000);
 
-    }
+            Handler h = new Handler();
+            h.postDelayed(new Runnable() {
+
+                 <at> Override
+                public void run() {
+                    // TODO Auto-generated method stub
+                    mNM.cancel(NOTIFICATION);
+                }
+            }, 1000);
+
+
+        }
 
     public void updateNotification(String text) {
-        notification.setLatestEventInfo(this, getText(R.string.app_name), text, contentIntent);
+         SharedPreferences customSharedPreference = PreferenceManager.getDefaultSharedPreferences(this);
+         notif = customSharedPreference.getBoolean("notif", false);
+
+        if (notif){
+            notification.setLatestEventInfo(this, getText(R.string.app_name), text, contentIntent);
+        }
     }
 
      <at> Override
-    public int onStartCommand(Intent intent, int flags, int startId) {
-        FusionInventory.log(this, "Received start id " + startId + ": " + intent, Log.INFO);
+        public int onStartCommand(Intent intent, int flags, int startId) {
+            Accueil.log(this, "Received start id " + startId + ": " + intent, Log.INFO);
 
-        // We want this service to continue running until it is explicitly
-        // stopped, so return sticky.
+            // We want this service to continue running until it is explicitly
+            // stopped, so return sticky.
 
-        // mNM.cancel(NOTIFICATION);
+            // mNM.cancel(NOTIFICATION);
 
-        return START_STICKY;
-    }
+            return START_STICKY;
+        }
 
     public void start_inventory() {
 
-        Thread t = new Thread(new Runnable() {
-            public void run() {
 
-                inventory.run();
+        inventory.run();
 
-                lastXMLResult = inventory.toXML();
+        lastXMLResult = inventory.toXML();
 
-                if (client != null) {
-                    try {
-                        client.send(Message.obtain(null, Agent.MSG_INVENTORY_FINISHED));
-                    } catch (RemoteException e) {
-                        // TODO Auto-generated catch block
-                        e.printStackTrace();
-                    }
-                }
+        if (client != null) {
+            try {
+                client.send(Message.obtain(null, Agent.MSG_INVENTORY_FINISHED));
+            } catch (RemoteException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
             }
-        });
-        t.start();
+        }
+
     }
 
     public void send_inventory() {
 
         if (lastXMLResult == null) {
-            FusionInventory.log(this, "No XML Inventory ", Log.ERROR);
-            return;
+            Accueil.log(this, "No XML Inventory ", Log.ERROR);
+            Toast.makeText(this, R.string.error_inventory, Toast.LENGTH_SHORT).show();
+        }
+        else{
+            Toast.makeText(this, R.string.ok_inventory, Toast.LENGTH_SHORT).show();
         }
         URL url = null;
 
 <at>  <at>  -275,11 +328,13  <at>  <at>  public class Agent
             url = new URL(mFusionApp.getUrl());
         } catch (MalformedURLException e) {
             // TODO Auto-generated catch block
-            FusionInventory.log(this, "inventory server url is malformed " + e.getLocalizedMessage(), Log.ERROR);
+            Accueil.log(this, "inventory server url is malformed " + e.getLocalizedMessage(), Log.ERROR);
+            Toast.makeText(this, "Server adress is malformed", Toast.LENGTH_SHORT).show();
         }
 
         if (url == null) {
-            FusionInventory.log(this, "No URL found ", Log.ERROR);
+            Accueil.log(this, "No URL found ", Log.ERROR);
+            Toast.makeText(this, "Server adress not found", Toast.LENGTH_SHORT).show();
             return;
         }
 
 <at>  <at>  -292,7 +347,7  <at>  <at>  public class Agent
         HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
         HttpProtocolParams.setContentCharset(params, "UTF-8");
         HttpProtocolParams.setUseExpectContinue(params, true);
-        
+
         //Send FusionInventory specific user agent
         //TODO get App version from manifest or somewhere else
         HttpProtocolParams.setUserAgent(params, "FusionInventory-Agent-Android_v1.0");
 <at>  <at>  -303,11 +358,11  <at>  <at>  public class Agent
         // ignore that the ssl cert is self signed
         String login = mFusionApp.getCredentialsLogin();
         if (!login.equals("")) {
-            FusionInventory.log(this, "HTTP credentials given : use it if necessary", Log.VERBOSE);
+            Accueil.log(this, "HTTP credentials given : use it if necessary", Log.VERBOSE);
             CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
             credentialsProvider.setCredentials(new AuthScope(url.getHost(), AuthScope.ANY_PORT),
-                    new UsernamePasswordCredentials(mFusionApp.getCredentialsLogin(), 
-                                                    mFusionApp.getCredentialsPassword()));
+                    new UsernamePasswordCredentials(mFusionApp.getCredentialsLogin(),
+                        mFusionApp.getCredentialsPassword()));
             context.setAttribute("http.auth.credentials-provider", credentialsProvider);
         }
 
 <at>  <at>  -315,20 +370,20  <at>  <at>  public class Agent
 
         HttpPost post = new HttpPost(url.toExternalForm());
         httpclient.addRequestInterceptor(new HttpRequestInterceptor() {
-            
+
              <at> Override
             public void process(HttpRequest request, HttpContext context) throws HttpException, IOException {
                 // TODO Auto-generated method stub
-                
-                
+
+
                 for( Header h : request.getAllHeaders()) {
-                    
-                    FusionInventory.log(this, "HEADER : "+ h.getName() + "=" + h.getValue(), Log.VERBOSE);
+
+                    Accueil.log(this, "HEADER : "+ h.getName() + "=" + h.getValue(), Log.VERBOSE);
                 }
-                
+
             }
         });
-        
+
         try {
             post.setEntity(new StringEntity(lastXMLResult));
         } catch (UnsupportedEncodingException e1) {
 <at>  <at>  -340,21 +395,24  <at>  <at>  public class Agent
             response = httpclient.execute(post, context);
         } catch (ClientProtocolException e) {
             // TODO Auto-generated catch block
-            FusionInventory.log(this, "Protocol Exception Error : " + e.getLocalizedMessage(), Log.ERROR);
+            Accueil.log(this, "Protocol Exception Error : " + e.getLocalizedMessage(), Log.ERROR);
+            Toast.makeText(this, "Server doesn't reply", Toast.LENGTH_SHORT).show();
             e.printStackTrace();
         } catch (IOException e) {
             // TODO Auto-generated catch block
-            FusionInventory.log(this, "IO error : " + e.getLocalizedMessage(), Log.ERROR);
-            FusionInventory.log(this, "IO error : " + url.toExternalForm(), Log.ERROR);
+            Accueil.log(this, "IO error : " + e.getLocalizedMessage(), Log.ERROR);
+            Accueil.log(this, "IO error : " + url.toExternalForm(), Log.ERROR);
+            Toast.makeText(this, "Server doesn't reply", Toast.LENGTH_SHORT).show();
             e.printStackTrace();
         }
         if (response == null) {
-            FusionInventory.log(this, "No HTTP response ", Log.ERROR);
+            Accueil.log(this, "No HTTP response ", Log.ERROR);
+            Toast.makeText(this, "Server doesn't reply", Toast.LENGTH_SHORT).show();
             return;
         }
         Header[] headers = response.getAllHeaders();
         for (Header header : headers) {
-            FusionInventory.log(this, header.getName() + " -> " + header.getValue(), Log.INFO);
+            Accueil.log(this, header.getName() + " -> " + header.getValue(), Log.INFO);
         }
         try {
             InputStream mIS = response.getEntity().getContent();
 <at>  <at>  -362,10 +420,10  <at>  <at>  public class Agent
             BufferedReader r = new BufferedReader(new InputStreamReader(mIS));
             String line;
             StringBuilder sb = new StringBuilder();
-            
+
             while ((line = r.readLine()) != null) {
                 //content.append(line);
-                FusionInventory.log(this, line, Log.VERBOSE);
+                Accueil.log(this, line, Log.VERBOSE);
                 sb.append(line + "\n");
             }
             this.lastSendResult = sb.toString();
 <at>  <at>  -377,23 +435,39  <at>  <at>  public class Agent
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
+        Toast.makeText(this, "Inventory sent", Toast.LENGTH_SHORT).show();
     }
 
      <at> Override
-    public void onDestroy() {
-        // Cancel the persistent notification.
+        public void onDestroy() {
+            // Cancel the persistent notification.
 
-        mNM.cancel(NOTIFICATION);
+            SharedPreferences customSharedPreference = PreferenceManager.getDefaultSharedPreferences(this);
+            notif = customSharedPreference.getBoolean("notif", false);
 
-        // Tell the user we stopped.
-        Toast.makeText(this, R.string.agent_stopped, Toast.LENGTH_SHORT).show();
-    }
+            mNM.cancel(NOTIFICATION);
+
+            // Tell the user we stopped.
+            if (notif){
+                Toast.makeText(this, R.string.agent_stopped, Toast.LENGTH_SHORT).show();
+            }
+        }
 
      <at> Override
-    public IBinder onBind(Intent intent) {
+        public IBinder onBind(Intent intent) {
+
+            return mMessenger.getBinder();
+        }
+
+    public void setRepeatingAlarm() {
+        Intent intent = new Intent(this, TimeAlarm.class);
+        PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,
+                intent, PendingIntent.FLAG_CANCEL_CURRENT);
+
+        am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
 
-        return mMessenger.getBinder();
     }
 
+
     // private final IBinder mBinder = new AgentBinder();
 }
diff --git a/src/org/fusioninventory/AutoInventory.java b/src/org/fusioninventory/AutoInventory.java
new file mode 100644
index 0000000..290efa2
--- /dev/null
+++ b/src/org/fusioninventory/AutoInventory.java
 <at>  <at>  -0,0 +1,378  <at>  <at> 
+package org.fusioninventory;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.UnsupportedEncodingException;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.apache.http.Header;
+import org.apache.http.HttpException;
+import org.apache.http.HttpRequest;
+import org.apache.http.HttpRequestInterceptor;
+import org.apache.http.HttpResponse;
+import org.apache.http.HttpVersion;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.conn.ClientConnectionManager;
+import org.apache.http.conn.scheme.PlainSocketFactory;
+import org.apache.http.conn.scheme.Scheme;
+import org.apache.http.conn.scheme.SchemeRegistry;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.conn.SingleClientConnManager;
+import org.apache.http.params.BasicHttpParams;
+import org.apache.http.params.HttpParams;
+import org.apache.http.params.HttpProtocolParams;
+import org.apache.http.protocol.BasicHttpContext;
+import org.apache.http.protocol.HttpContext;
+import org.fusioninventory.utils.EasySSLSocketFactory;
+
+import android.app.Service;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.os.Binder;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Message;
+import android.os.Messenger;
+import android.os.RemoteException;
+import android.preference.PreferenceManager;
+import android.util.Log;
+import android.widget.Toast;
+
+public class AutoInventory
+    extends Service {
+
+    private Messenger client = null;
+    public InventoryTaskAuto inventory = null;
+
+    static final int MSG_CLIENT_REGISTER = 0;
+    static final int MSG_AGENT_STATUS = 1;
+    static final int MSG_INVENTORY_START = 2;
+    static final int MSG_INVENTORY_PROGRESS = 3;
+    static final int MSG_INVENTORY_FINISHED = 4;
+    static final int MSG_REQUEST_INVENTORY = 5;
+    static final int MSG_INVENTORY_RESULT = 6;
+    static final int MSG_INVENTORY_SEND = 7;
+
+    static final int STATUS_AGENT_IDLE = 0;
+    static final int STATUS_AGENT_WORKING = 1;
+
+    private int status_agent = 0;
+
+    private String lastXMLResult = null;
+    private String lastSendResult = null;
+
+    private ClientConnectionManager clientConnectionManager;
+    private HttpContext context;
+    private HttpParams params;
+    private SchemeRegistry mSchemeRegistry = new SchemeRegistry();
+
+    private FusionInventoryApp mFusionApp = null;
+
+    private boolean notif = false;
+
+    class IncomingHandler
+            extends Handler {
+             <at> Override
+                public void handleMessage(Message msg) {
+
+                    Message reply = Message.obtain();
+
+                    Accueil.log(this, "message received " + msg.toString(), Log.INFO);
+
+                    switch (msg.what) {
+
+                        case Agent.MSG_CLIENT_REGISTER:
+                            client = msg.replyTo;
+                            break;
+
+                        case Agent.MSG_AGENT_STATUS:
+
+                            status_agent = inventory.running ? 1 : 0;
+                            reply.what = MSG_AGENT_STATUS;
+                            reply.arg1 = status_agent;
+                            Accueil.log(this, "URL server = " + mFusionApp.getUrl(), Log.VERBOSE);
+                            Accueil.log(this, "shouldAutostart = " + mFusionApp.getShouldAutoStart(), Log.VERBOSE);
+                            Accueil.log(this, "mFusionApp = " + mFusionApp.toString(), Log.VERBOSE);
+
+                            try {
+                                Accueil.log(this, "message sent " + msg.toString(), Log.INFO);
+                                if (client != null) {
+                                    client.send(reply);
+                                } else {
+                                    Accueil.log(this, "No client registered", Log.ERROR);
+                                }
+                            } catch (RemoteException e) {
+                                // TODO Auto-generated catch block
+                                e.printStackTrace();
+                            }
+                            break;
+
+                        case Agent.MSG_INVENTORY_RESULT:
+                            if (client != null) {
+                                reply.what = Agent.MSG_INVENTORY_RESULT;
+
+                                Bundle bXML = new Bundle();
+                                bXML.putString("result", lastXMLResult);
+                                reply.setData(bXML);
+                                try {
+
+                                    client.send(reply);
+
+                                } catch (RemoteException e) {
+                                    // TODO Auto-generated catch block
+                                    e.printStackTrace();
+                                }
+                            }
+                            break;
+
+                        case Agent.MSG_INVENTORY_SEND:
+                            send_inventory();
+                            if (client != null) {
+                                reply.what = Agent.MSG_INVENTORY_RESULT;
+
+                                Bundle bXML = new Bundle();
+                                bXML.putString("html", lastSendResult);
+                                reply.setData(bXML);
+                                try {
+
+                                    client.send(reply);
+
+                                } catch (RemoteException e) {
+                                    // TODO Auto-generated catch block
+                                    e.printStackTrace();
+                                }
+                            }
+                            break;
+                        default:
+                            super.handleMessage(msg);
+                    }
+                }
+    }
+
+    final Messenger mMessenger = new Messenger(new IncomingHandler());
+
+    public class AgentBinder
+            extends Binder {
+            AutoInventory getService() {
+                return AutoInventory.this;
+            }
+    }
+
+     <at> Override
+        public void onCreate() {
+
+            inventory = new InventoryTaskAuto(this);
+
+            mFusionApp = (FusionInventoryApp) getApplication();
+
+            SharedPreferences customSharedPreference =
+                PreferenceManager.getDefaultSharedPreferences(this);
+            boolean notif = customSharedPreference.getBoolean("notif", false);
+
+            if (notif){
+                Toast.makeText(this,R.string.inventory_started,Toast.LENGTH_LONG).show();
+            }
+
+            inventory();
+
+            send_inventory();
+
+        }
+
+
+     <at> Override
+        public int onStartCommand(Intent intent, int flags, int startId) {
+            Accueil.log(this, "Received start id " + startId + ": " + intent, Log.INFO);
+
+            // We want this service to continue running until it is explicitly
+            // stopped, so return sticky.
+
+            // mNM.cancel(NOTIFICATION);
+
+            return START_STICKY;
+        }
+
+    public void send_inventory() {
+
+        SharedPreferences customSharedPreference = PreferenceManager.getDefaultSharedPreferences(this);
+        notif = customSharedPreference.getBoolean("notif", false);
+
+        if (lastXMLResult == null) {
+            Accueil.log(this, "No XML Inventory ", Log.ERROR);
+            if (notif){
+                Toast.makeText(this, R.string.error_inventory, Toast.LENGTH_SHORT).show();
+            }
+        }
+        else{
+            if (notif){
+                Toast.makeText(this, R.string.ok_inventory, Toast.LENGTH_SHORT).show();
+            }
+        }
+        URL url = null;
+
+        try {
+            url = new URL(mFusionApp.getUrl());
+        } catch (MalformedURLException e) {
+            // TODO Auto-generated catch block
+            Accueil.log(this, "inventory server url is malformed " + e.getLocalizedMessage(), Log.ERROR);
+            if (notif){
+                Toast.makeText(this, "Server adress is malformed", Toast.LENGTH_SHORT).show();
+            }
+        }
+
+        if (url == null) {
+            Accueil.log(this, "No URL found ", Log.ERROR);
+            if (notif){
+                Toast.makeText(this, "Server adress not found", Toast.LENGTH_SHORT).show();
+            }
+            return;
+        }
+
+        mSchemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
+        // https scheme
+        mSchemeRegistry.register(new Scheme("https", new EasySSLSocketFactory(), 443));
+
+        params = new BasicHttpParams();
+
+        HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
+        HttpProtocolParams.setContentCharset(params, "UTF-8");
+        HttpProtocolParams.setUseExpectContinue(params, true);
+
+        //Send FusionInventory specific user agent
+        //TODO get App version from manifest or somewhere else
+        HttpProtocolParams.setUserAgent(params, "FusionInventory-Agent-Android_v1.0");
+
+        clientConnectionManager = new SingleClientConnManager(params, mSchemeRegistry);
+        context = new BasicHttpContext();
+
+        // ignore that the ssl cert is self signed
+        String login = mFusionApp.getCredentialsLogin();
+        if (!login.equals("")) {
+            Accueil.log(this, "HTTP credentials given : use it if necessary", Log.VERBOSE);
+            CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
+            credentialsProvider.setCredentials(new AuthScope(url.getHost(), AuthScope.ANY_PORT),
+                    new UsernamePasswordCredentials(mFusionApp.getCredentialsLogin(),
+                        mFusionApp.getCredentialsPassword()));
+            context.setAttribute("http.auth.credentials-provider", credentialsProvider);
+        }
+
+        DefaultHttpClient httpclient = new DefaultHttpClient(clientConnectionManager, params);
+
+        HttpPost post = new HttpPost(url.toExternalForm());
+        httpclient.addRequestInterceptor(new HttpRequestInterceptor() {
+
+             <at> Override
+            public void process(HttpRequest request, HttpContext context) throws HttpException, IOException {
+                // TODO Auto-generated method stub
+
+
+                for( Header h : request.getAllHeaders()) {
+
+                    Accueil.log(this, "HEADER : "+ h.getName() + "=" + h.getValue(), Log.VERBOSE);
+                }
+
+            }
+        });
+
+        try {
+            post.setEntity(new StringEntity(lastXMLResult));
+        } catch (UnsupportedEncodingException e1) {
+            // TODO Auto-generated catch block
+            e1.printStackTrace();
+        }
+        HttpResponse response = null;
+        try {
+            response = httpclient.execute(post, context);
+        } catch (ClientProtocolException e) {
+            // TODO Auto-generated catch block
+            Accueil.log(this, "Protocol Exception Error : " + e.getLocalizedMessage(), Log.ERROR);
+            if (notif){
+                Toast.makeText(this, "Server doesn't reply", Toast.LENGTH_SHORT).show();
+            }
+            e.printStackTrace();
+        } catch (IOException e) {
+            // TODO Auto-generated catch block
+            Accueil.log(this, "IO error : " + e.getLocalizedMessage(), Log.ERROR);
+            Accueil.log(this, "IO error : " + url.toExternalForm(), Log.ERROR);
+            if (notif){
+                Toast.makeText(this, "Server doesn't reply", Toast.LENGTH_SHORT).show();
+            }
+            e.printStackTrace();
+        }
+        if (response == null) {
+            Accueil.log(this, "No HTTP response ", Log.ERROR);
+            if (notif){
+                Toast.makeText(this, "Server doesn't reply", Toast.LENGTH_SHORT).show();
+            }
+            return;
+        }
+        Header[] headers = response.getAllHeaders();
+        for (Header header : headers) {
+            Accueil.log(this, header.getName() + " -> " + header.getValue(), Log.INFO);
+        }
+        try {
+            InputStream mIS = response.getEntity().getContent();
+            //StringBuilder content = new StringBuilder();
+            BufferedReader r = new BufferedReader(new InputStreamReader(mIS));
+            String line;
+            StringBuilder sb = new StringBuilder();
+
+            while ((line = r.readLine()) != null) {
+                //content.append(line);
+                Accueil.log(this, line, Log.VERBOSE);
+                sb.append(line + "\n");
+            }
+            this.lastSendResult = sb.toString();
+
+        } catch (IllegalStateException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        } catch (IOException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        if (notif){
+            Toast.makeText(this, "Inventory sent", Toast.LENGTH_SHORT).show();
+        }
+    }
+
+    public void inventory() {
+
+        inventory.run();
+
+        lastXMLResult = inventory.toXML();
+
+        if (client != null) {
+            try {
+                client.send(Message.obtain(null, Agent.MSG_INVENTORY_FINISHED));
+            } catch (RemoteException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            }
+        }
+
+    }
+
+     <at> Override
+        public void onDestroy() {
+
+        }
+
+     <at> Override
+        public IBinder onBind(Intent intent) {
+
+            return mMessenger.getBinder();
+        }
+
+    // private final IBinder mBinder = new AgentBinder();
+}
diff --git a/src/org/fusioninventory/FusionInventory.java b/src/org/fusioninventory/FusionInventory.java
index 4d6a52f..c80f9f8 100644
--- a/src/org/fusioninventory/FusionInventory.java
+++ b/src/org/fusioninventory/FusionInventory.java
 <at>  <at>  -1,6 +1,7  <at>  <at> 
 package org.fusioninventory;
 
 import android.app.Activity;
+
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 <at>  <at>  -31,7 +32,7  <at>  <at>  public class FusionInventory
     private String[] STATUS_AGENT = null;
     private boolean isAgentOk = false;
     private String barcode = null;
-
+    
     public static void log(Object obj, String msg, int level) {
         String final_msg = String.format("[%s] %s", obj.getClass().getName(), msg);
         Log.println(level, "FusionInventory", final_msg);
 <at>  <at>  -160,7 +161,7  <at>  <at>  public class FusionInventory
      <at> Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        STATUS_AGENT = getResources().getStringArray(R.array.agent_status);
+        STATUS_AGENT = getResources().getStringArray(R.array.agent_status);       
 
         setContentView(R.layout.main);
 
diff --git a/src/org/fusioninventory/InventoryTaskAuto.java b/src/org/fusioninventory/InventoryTaskAuto.java
new file mode 100644
index 0000000..cda5d2a
--- /dev/null
+++ b/src/org/fusioninventory/InventoryTaskAuto.java
 <at>  <at>  -0,0 +1,190  <at>  <at> 
+package org.fusioninventory;
+
+import java.io.StringWriter;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+import java.util.Date;
+
+import org.fusioninventory.categories.Categories;
+import org.xmlpull.v1.XmlSerializer;
+
+import android.content.Context;
+import android.text.format.DateFormat;
+import android.util.Log;
+import android.util.Xml;
+
+public class InventoryTaskAuto {
+
+    /*
+     * TODO: Implémenter l'inventaire sous forme de Hashmap/Hashtable
+     * <string,string> pour le moment
+     */
+
+    public ArrayList<Categories> mContent = null;
+    public Date mStart = null, mEnd = null;
+    public Context ctx = null;
+    static final int OK = 0;
+    static final int NOK = 1;
+
+    public Boolean running = false;
+    public int progress = 0;
+
+    private AutoInventory mAgent;
+    private FusionInventoryApp mFusionApp;
+
+    public InventoryTaskAuto(AutoInventory test) {
+        mAgent= test;
+        ctx = mAgent.getApplicationContext();
+        mFusionApp = (FusionInventoryApp) mAgent.getApplication();
+        Accueil.log(this, "FusionInventoryApp = " + mFusionApp.toString(), Log.VERBOSE);
+    }
+
+    public String toXML() {
+
+        if (mContent != null) {
+
+            XmlSerializer serializer = Xml.newSerializer();
+            StringWriter writer = new StringWriter();
+
+            try {
+                serializer.setOutput(writer);
+                serializer
+                    .setFeature(
+                            "http://xmlpull.org/v1/doc/features.html#indent-output",
+                            true);
+                // indentation as 3 spaces
+
+                serializer.startDocument("utf-8", true);
+                // Start REQUEST
+                serializer.startTag(null, "REQUEST");
+                // Start CONTENT
+                serializer.startTag(null, "QUERY");
+                serializer.text("INVENTORY");
+                serializer.endTag(null, "QUERY");
+
+                serializer.startTag(null, "DEVICEID");
+                serializer.text(mFusionApp.getDeviceID());
+                serializer.endTag(null, "DEVICEID");
+
+                serializer.startTag(null, "CONTENT");
+                // Start ACCESSLOG
+                serializer.startTag(null, "ACCESSLOG");
+
+                serializer.startTag(null, "LOGDATE");
+
+                serializer.text(DateFormat.format("yyyy-mm-dd hh:MM:ss", mStart)
+                        .toString());
+                serializer.endTag(null, "LOGDATE");
+
+                serializer.startTag(null, "USERID");
+                serializer.text("N/A");
+                serializer.endTag(null, "USERID");
+
+                serializer.endTag(null, "ACCESSLOG");
+                // End ACCESSLOG
+
+                //Manage accountinfos :: TAG
+                if (!mFusionApp.getTag().equals("")) {
+                    serializer.startTag(null, "ACCOUNTINFO");
+                    serializer.startTag(null, "KEYNAME");
+                    serializer.text("TAG");
+                    serializer.endTag(null, "KEYNAME");
+                    serializer.startTag(null, "KEYVALUE");
+                    serializer.text(mFusionApp.getTag());
+                    serializer.endTag(null, "KEYVALUE");
+                    serializer.endTag(null, "ACCOUNTINFO");
+                }
+
+                for (Categories cat : mContent) {
+
+                    cat.toXML(serializer);
+                }
+
+                serializer.endTag(null, "CONTENT");
+                serializer.endTag(null, "REQUEST");
+                serializer.endDocument();
+                return (writer.toString());
+            } catch (Exception e) {
+                // TODO: handle exception
+                throw new RuntimeException(e);
+            }
+
+        }
+        return null;
+    }
+
+
+     <at> SuppressWarnings("unchecked")
+        public synchronized void run() {
+
+            running = true;
+            mStart = new Date();
+
+            mContent = new ArrayList<Categories>();
+
+            String [] categories = {
+                //                "PhoneStatus",
+                "Hardware",
+                "Bios",
+                "Memory",
+                "Inputs",
+                "Sensors",
+                "Drives",
+                "Cpus",
+                "Simcards",
+                "Videos",
+                "Cameras",
+                "Networks",
+                //                "LocationProviders",
+                "Envs",
+                "Jvm",
+                "Softwares"
+                    //                "Usbs",
+                    //              "Battery",
+                    //              "BluetoothAdapterCategory", // <- there is already a BluetoothAdapter class in android SDK
+            };
+
+            Class<Categories> cat_class;
+
+            for(String c : categories) {
+                cat_class = null;
+                Accueil.log(this, String.format("INVENTORY of %s", c),Log.VERBOSE);
+                try {
+                    cat_class = (Class <Categories>) Class.forName(String.format("org.fusioninventory.categories.%s",c));
+                } catch (ClassNotFoundException e) {
+                    // TODO Auto-generated catch block
+                    e.printStackTrace();
+                }
+                if(cat_class!=null) {
+                    try {
+                        Constructor<Categories> co = cat_class.getConstructor(Context.class);
+                        mContent.add(co.newInstance(mFusionApp));
+                    } catch (SecurityException e) {
+                        // TODO Auto-generated catch block
+                        e.printStackTrace();
+                    } catch (NoSuchMethodException e) {
+                        // TODO Auto-generated catch block
+                        e.printStackTrace();
+                    } catch (IllegalArgumentException e) {
+                        // TODO Auto-generated catch block
+                        e.printStackTrace();
+                    } catch (InstantiationException e) {
+                        // TODO Auto-generated catch block
+                        e.printStackTrace();
+                    } catch (IllegalAccessException e) {
+                        // TODO Auto-generated catch block
+                        e.printStackTrace();
+                    } catch (InvocationTargetException e) {
+                        // TODO Auto-generated catch block
+                        e.printStackTrace();
+                    }
+                }
+            }
+
+
+            Accueil.log(this, "end of inventory", Log.INFO);
+            mEnd = new Date();
+            running = false;
+        }
+}
diff --git a/src/org/fusioninventory/TimeAlarm.java b/src/org/fusioninventory/TimeAlarm.java
new file mode 100644
index 0000000..0786ff2
--- /dev/null
+++ b/src/org/fusioninventory/TimeAlarm.java
 <at>  <at>  -0,0 +1,16  <at>  <at> 
+package org.fusioninventory;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+
+public class TimeAlarm extends BroadcastReceiver {
+
+     <at> Override
+        public void onReceive(Context context, Intent intent) {
+            Intent serviceIntent = new Intent();
+            serviceIntent.setAction("org.fusioninventory.AutoInventory");
+            context.startService(serviceIntent);
+            context.stopService(serviceIntent);
+        }
+}
_______________________________________________
Fusioninventory-devel mailing list
Fusioninventory-devel@...
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/fusioninventory-devel

Gmane