void ApplicationUI::OnInvokeFinished() { InvokeTargetReply *reply = qobject_cast<InvokeTargetReply*>(sender()); if (reply->error()) { qDebug() << "Invoke Failed - Do something"; } reply->deleteLater(); }
void Card::on_invoked(const bb::system::InvokeRequest& request) { qDebug() << "==== Card::onInvoked() START ===="; emit load_configuration(); QVariantMap metadata = request.metadata(); QString source = request.source().installId() + " - " + request.source().groupId(); QString listId = QString::number(request.listId()); QString action = request.action(); QString target = request.target(); QString uri = request.uri().toString(); QString data = QString::fromUtf8(request.data()); qDebug() << "==== Card::onInvoked(): action: " << action << data << ", uri: " << uri; if(action == "bb.action.VIEW") { JsonDataAccess jda; QVariantMap objectMap = (jda.loadFromBuffer(data)).toMap(); QVariantMap itemMap = objectMap["attributes"].toMap(); QString messageID1 = itemMap["messageid"].toString(); QString sourceID1 = itemMap["sourceId"].toString(); QString itemsFromJSON = Utilities::get_string_from_file("data/hub_items.json"); QVariantList itemsFromJSONList = jda.loadFromBuffer(itemsFromJSON).toList(); qDebug() << "**** Card::onInvoked: itemsFromJSONList: " << itemsFromJSONList.size() << ", sourceId1: " << sourceID1 << ", messageID1: " << messageID1; for(int index = 0; index < itemsFromJSONList.size(); index++) { QVariantMap attributes = itemsFromJSONList.at(index).toMap(); QString pageName = attributes["thePage"].toString(); QString theData = attributes["theData"].toString(); QString sourceID2 = attributes["sourceId"].toString(); qDebug() << "**** Card::onInvoked: thePage" << pageName << ", theData: " << theData << ", sourceId2: " << sourceID2; if (sourceID2 == messageID1 || sourceID2 == sourceID1) { InvokeRequest request2; request2.setTarget("com.nemory.Insta10HeadlessService"); request2.setAction("bb.action.MARKREAD"); request2.setMimeType("hub/item"); request2.setUri(QUrl("pim:")); QByteArray bytes; jda.saveToBuffer(objectMap, &bytes); request2.setData(bytes); InvokeTargetReply *reply = _invoke_manager->invoke(request2); if (!reply) { qDebug() << "**** FAILED Card::onInvoked: " << reply->errorCode(); reply->deleteLater(); } QmlDocument *pageDocument = QmlDocument::create("asset:///pages/" + pageName).parent(this); _page = pageDocument->createRootObject<Page>(); _page->setProperty("is_card", true); //_page->setActionBarVisibility((getSetting("backButton", "false") == "false") ? ChromeVisibility::Hidden : ChromeVisibility::Default); _navigation_pane->push(_page); Application::instance()->setScene(_navigation_pane); emit initialize_card(); emit opened_item(attributes, theData); break; } } jda.deleteLater(); } else if(action == "bb.action.COMPOSE") { } else if(action == "bb.action.SHARE") { startHeadless(); } else { startHeadless(); } }