summaryrefslogtreecommitdiff
path: root/noncore/net/opietooth/lib/devicehandler.cpp
blob: 320ad44cb09c42d6d138bdcbaddc4e6a68bcafa2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89

#include <stdlib.h>

#include <qdir.h>
#include <qpe/config.h>
#include <opie2/odebug.h>
using namespace Opie::Core;

#include "devicehandler.h"

using namespace OpieTooth;

DeviceHandler::DeviceHandler() {

};
DeviceHandler::~DeviceHandler() {

}

RemoteDevice::ValueList DeviceHandler::load() {
    RemoteDevice::ValueList list;
QString path = QDir::homeDirPath() + "/Settings/bluetooth";
    QDir deviceListSave( path);

    // list of .conf files
    QStringList devicesFileList = deviceListSave.entryList();


    // cut .conf of to get the mac and also read the name entry in it.
    if (!devicesFileList.isEmpty() ) {
        QString name;
        QString mac;
        QStringList::Iterator it;
        for (it = devicesFileList.begin(); it != devicesFileList.end(); ++it ) {
            if ( (*it) == "." || (*it) == ".." )
                continue;

            odebug << (*it).latin1() << oendl; 
            Config conf(path + "/"+(*it),  Config::File);
            conf.setGroup("Info");
            name = conf.readEntry("name", "Error");
            mac = conf.readEntry("mac", QString::null);
            odebug << "MAC: " + mac << oendl; 
            odebug << "NAME: " + name << oendl; 
            if (mac.isEmpty() )
                continue;
            RemoteDevice currentDevice( mac , name  );
            list.append( currentDevice );
        }
    }
    return list;
};
/*
 * This is some how rude but make sure all old devices
 * are getting deleted
 */
void DeviceHandler::save( const RemoteDevice::ValueList& list) {
    QCString rm;
    rm += "rm -rf ";
    rm += QDir::homeDirPath() + "/Settings/bluetooth";
    system ( rm.data() );

    if (list.isEmpty() ) // no need to create the dir
        return;

    /**
     * Create a new dir
     */
    rm = "mkdir ";
    rm += QDir::homeDirPath() + "/Settings/bluetooth";
    owarn << "out " << rm.data() << "" << oendl; 
    system( rm.data() );

    RemoteDevice::ValueList::ConstIterator it;
    // write the config

    for ( it = list.begin(); it != list.end(); ++it ) {
        odebug << "/Settings/bluetooth/" + (*it).mac() + ".conf" << oendl; 

        Config conf( QDir::homeDirPath() +
                     "/Settings/bluetooth/" +
                     (*it).mac() + ".conf", Config::File );

        conf.setGroup( "Info" );
        conf.writeEntry( "name", (*it).name() );
        conf.writeEntry( "mac", (*it).mac() );
    }

}