X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fdaemon%2Fcalllistener.h;h=16b6218d423318236e00712b72d8cc7e8d0ff7aa;hb=d97cbb873b74e7a9a9ecf3363a14d8a33a251cdc;hp=8d098c8e0cf5e8d233f4c1d56e9e5c75bf1687a6;hpb=3cf99b9a19050f2fdde9ffd69af65a7d58576ca1;p=jenirok diff --git a/src/daemon/calllistener.h b/src/daemon/calllistener.h index 8d098c8..16b6218 100644 --- a/src/daemon/calllistener.h +++ b/src/daemon/calllistener.h @@ -25,9 +25,7 @@ #include #include #include "informationbox.h" -#include "eniro.h" -#include "contactmanager.h" -#include "connectionmanager.h" +#include "source.h" class CallListener: public QObject { @@ -36,35 +34,63 @@ class CallListener: public QObject public: CallListener(); ~CallListener(); - void begin(); + bool begin(); void end(); - static const int REQUEST_TIMEOUT = 10000; - static const int BANNER_DELAY = 400; - static const int NUMBER_OF_RETRIES = 3; + static const int REQUEST_TIMEOUT = 8000; + static const int BANNER_DELAY = 350; + static const int SEARCH_RETRIES = 2; + static const int CONNECT_RETRIES = 1; + static const int CONNECTION_LOOKUP_RETRIES = 7; + static const int GPRS_SCANS = 2; + static const int WLAN_SCANS = 4; + static const int WAIT_BETWEEN_RETRIES = 400; + static const int ERROR_BANNER_TIMEOUT = 4500; + +protected: + virtual void timerEvent(QTimerEvent* event); private slots: - void requestFinished(QVector const& results, Eniro::SearchDetails const& details, bool error); + void requestFinished(QVector const& results, Source::SearchDetails const& details, bool error); void incomingCall(QDBusObjectPath path, QString numbe); void callTerminate(); void showTimedMessage(); + void handleAnswer(); + void closeConnection(); private: Q_DISABLE_COPY(CallListener); - void search(Eniro::SearchDetails const& details); + struct CallDetails + { + QString number; + Source::Result result; + bool answered; + unsigned int time; + }; + + void search(Source::SearchDetails const& details); void showResult(QString const& text); void showDelayedResult(QString const& text, int delay); + void searchInit(); + void searchClose(); + bool handleConnection(); + void showError(QString const& msg, int delay = 0); + bool is3g(); + void sleep(int ms); + void sendRetrySignal(QString const& iap, bool retry); QString createResult(QString const& name, QString const& street, QString const& city); QString timedMessage_; - Eniro* eniro_; - ContactManager* contactManager_; - ConnectionManager* connectionManager_; + Source* source_; + Source::SourceId sourceId_; + QMap sourceConfig_; bool closeConnection_; + bool initialized_; InformationBox* box_; QLabel* label_; static QDBusConnection systemBus_; int retries_; - QString currentSearch_; + int timer_; + CallDetails* currentCall_; }; #endif // CALLLISTENER_H