--- /dev/null
+/*
+@version: 0.6
+@author: Sudheer K. <scifi1947 at gmail.com>
+@license: GNU General Public License
+*/
+
+#include "telepathyutility.h"
+#include "databaseutility.h"
+#include "vicarprofiletypes.h"
+#include "connectioninterfacerequeststypes.h"
+#include "harmattanaccountutility.h"
+#include <QDebug>
+#include <QCoreApplication> //DEBUG - Delete this
+#include "dbusutility.h"
+#include <QDBusMetaType>
+#include <QDBusConnection>
+
+int main(int argc, char *argv[])
+{
+
+ QCoreApplication app(argc,argv);
+
+ qDBusRegisterMetaType<org::freedesktop::Telepathy::SimplePresence>();
+ //From Connection Interface Requests
+ qDBusRegisterMetaType<org::freedesktop::Telepathy::ChannelDetails>();
+ qDBusRegisterMetaType<org::freedesktop::Telepathy::ChannelDetailsList>();
+ qDBusRegisterMetaType<org::freedesktop::Telepathy::RequestableChannelClass>();
+ qDBusRegisterMetaType<org::freedesktop::Telepathy::RequestableChannelClassList>();
+ //From Vicar Profile Types
+ //qDBusRegisterMetaType<org::maemo::vicar::Profile>();
+ //qDBusRegisterMetaType<org::maemo::vicar::ProfileList>();
+
+ TelepathyUtility *tpUtility = new TelepathyUtility();
+ DatabaseUtility *databaseUtility = new DatabaseUtility();
+ HarmattanAccountUtility *accountUtility = new HarmattanAccountUtility();
+
+ if (argc > 1 && argv[1]){
+ QString instruction = QString(argv[1]);
+ if (instruction == "INSTALL"){
+ //Check if Account already exists
+ if (!tpUtility->accountExists()){
+ qDebug() << "VICaR account not found. Creating ..";
+ bool result = tpUtility->createAccount();
+ if (!result) exit(1);
+ }
+ else{
+ qDebug() << "VICaR account found.";
+ }
+ }
+ else if (instruction == "REMOVE"){
+ bool result = tpUtility->deleteAccount();
+ if (!result) exit(2);
+ }
+
+ else if (instruction == "CREATEDB"){
+ bool result = databaseUtility->openDatabase();
+ if (!result){
+ qDebug() <<"Error creating profiles database. "
+ <<databaseUtility->lastError();
+ exit(3);
+ }
+ qDebug() << "VICaR profiles database opened.";
+
+ if (!databaseUtility->tableExists("profiles")){
+ qDebug() << "Creating VICaR profiles table..";
+ result = databaseUtility->createProfilesTable();
+ if (!result){
+ qDebug() <<"Error creating profiles table. "
+ <<databaseUtility->lastError();
+ exit(4);
+ }
+ }
+ else{
+ qDebug()<<"Profiles table exists";
+ }
+ databaseUtility->closeDatabase();
+ }
+ else if (instruction == "DROPDB"){
+ bool result = databaseUtility->deleteDatabase();
+ if (!result){
+ qDebug() <<"Error deleting profiles database. "
+ <<databaseUtility->lastError();
+ exit(5);
+ }
+ qDebug() << "VICaR profiles database deleted.";
+ }
+ else if (instruction == "TPACCOUNTSTATUS"){
+ QString status = tpUtility->getAccountStatus();
+ qDebug() << "Account Status is "<< status;
+ }
+ else if (instruction == "--create-account"){
+#if defined(Q_WS_MAEMO_6)
+ qDebug() << "Creating account";
+ accountUtility->addAccount();
+#else
+ qDebug() << "This command is applicable only in harmattan";
+#endif
+ }
+ else if (instruction == "--delete-account"){
+#if defined(Q_WS_MAEMO_6)
+ qDebug() << "Deleting account";
+ accountUtility->removeAccount();
+#else
+ qDebug() << "This command is applicable only in harmattan";
+#endif
+ }
+ else if (instruction == "TESTING"){
+ tpUtility->callNumberWithRing(argv[2]);
+ }
+ }
+ else{
+
+ qDebug() << "Sending Introspect method call";
+
+ DbusUtility dbusUtility(&app);
+ QList<QVariant> argsToSend;
+
+
+ bool success = dbusUtility.sendMethodCall("org.freedesktop.Telepathy.Connection.ring.tel.ring",
+ "/org/freedesktop/Telepathy/Connection/ring/tel/ring",
+ "org.freedesktop.DBus.Introspectable",
+ "Introspect",argsToSend,false);
+
+ success = dbusUtility.sendMethodCall("org.freedesktop.Telepathy.ConnectionManager.ring",
+ "/org/freedesktop/Telepathy/ConnectionManager/ring",
+ "org.freedesktop.DBus.Introspectable",
+ "Introspect",argsToSend,false);
+
+ /*
+
+ bool success = dbusUtility.sendMethodCall("org.freedesktop.Telepathy.AccountManager",
+ "/org/freedesktop/Telepathy/Account/ring/tel/ring",
+ "org.freedesktop.Telepathy.Account",
+ "Reconnect",argsToSend,false);
+ */
+
+ if (!success){
+ qDebug() << dbusUtility.getErrorMessage();
+ }
+ else{
+ qDebug() << "Method call executed successfully";
+ }
+ app.exec();
+ }
+
+ delete (tpUtility);
+ delete (databaseUtility);
+ delete (accountUtility);
+ tpUtility = 0;
+ databaseUtility = 0;
+ accountUtility = 0;
+}