#include <QtDBus/QDBusConnection>
#include <QtDBus/QDBusObjectPath>
#include "informationbox.h"
-#include "eniro.h"
-#include "contactmanager.h"
+#include "source.h"
class CallListener: public QObject
{
-
Q_OBJECT
public:
CallListener();
~CallListener();
- void begin();
+ bool begin();
void end();
- static const int REQUEST_TIMEOUT = 10000;
+ 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 <Eniro::Result> const& results, Eniro::SearchDetails const& details, bool error);
+ void requestFinished(QVector <Source::Result> 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);
- Eniro* eniro_;
- ContactManager* contactManager_;
+ QString timedMessage_;
+ Source* source_;
+ Source::SourceId sourceId_;
+ QMap<QString, QString> sourceConfig_;
+ bool closeConnection_;
+ bool initialized_;
InformationBox* box_;
QLabel* label_;
static QDBusConnection systemBus_;
+ int retries_;
+ int timer_;
+ CallDetails* currentCall_;
};
#endif // CALLLISTENER_H