*/
AppControl EXPORT_API requestShareMyProfile(int recordId);
+ /**
+ * @brief Request share of multiple contacts via other application
+ * @param[in] personIds Contact's person IDs
+ * @param[in] count Person IDs count
+ * @return AppControl wrapper
+ */
+ AppControl EXPORT_API requestMultiShareContacts(const char **personIds, int count);
+
/**
* @brief Request pick vcard(s) from filesystem
* @param[in] path Path of storage from where files should be picked
return request;
}
+AppControl App::requestMultiShareContacts(const char **personIds, int count)
+{
+ AppControl request(APP_CONTROL_OPERATION_MULTI_SHARE, APP_CONTROL_MIME_CONTACT);
+ request.addExtra(APP_CONTROL_DATA_ID, personIds, count);
+ return request;
+}
+
AppControl App::requestPickVcard(const char *path)
{
//TODO: Replace it with AppControl which will not use application id.
public:
/**
* @brief Create new person list view
- * @param]in] filterType Defines how to filter person list
+ * @param[in] filterType Defines how to filter person list
*/
ListView(int filterType = FilterNone);
/**
* @brief Create new vcard contact list view
- * @param]in] vcardPath Path of the vcard file
+ * @param[in] vcardPath Path of the vcard file
*/
explicit ListView(const char *vcardPath);
virtual void onCreated() override;
virtual void onMenuPressed() override;
+ void onSharePressed();
+
virtual const char *getPageTitle() const override;
virtual void onSelectAllInsert(Ui::GenlistItem *item) override;
virtual void onSelectModeChanged(SelectMode selectMode) override;
#include "Contacts/Input/InputView.h"
#include "Contacts/Settings/MainView.h"
+#include "App/AppControlRequest.h"
#include "Ui/Genlist.h"
#include "Ui/Menu.h"
#include "Ui/Navigator.h"
getNavigator()->navigateTo(view);
});
+ menu->addItem("IDS_PB_OPT_SHARE", std::bind(&ListView::onSharePressed, this));
+
menu->addItem("IDS_PB_OPT_MANAGE_FAVOURITES_ABB", [this] {
auto manageFavPopup = new ManageFavoritesPopup(getNavigator());
manageFavPopup->create(getEvasObject());
menu->show();
}
+void ListView::onSharePressed()
+{
+ ListView *view = new ListView();
+ view->setSelectMode(SelectMulti);
+ view->setSelectCallback([](SelectResults results) {
+ size_t count = results.count();
+
+ std::vector<std::string> idString(count);
+ idString.reserve(count);
+ std::vector<const char *> ids(count);
+ ids.reserve(count);
+
+ for (size_t i = 0; i < count; ++i) {
+ idString[i] = std::to_string(results[i].value.id);
+ ids[i] = idString[i].c_str();
+ }
+ App::AppControl control = App::requestMultiShareContacts(ids.data(), count);
+ control.launch();
+ control.detach();
+
+ return true;
+ });
+ getNavigator()->navigateTo(view);
+}
+
const char *ListView::getPageTitle() const
{
switch (getSelectMode()) {