{
namespace Model
{
- class ContactRecordData;
+ class ContactData;
}
namespace List
public:
/**
* @brief Create contact item
- * @param[in] contact Contact object
+ * @param[in] contactData Contact data
*/
- explicit ContactItem(Contacts::Model::ContactRecordData &contact);
+ explicit ContactItem(Contacts::Model::ContactData &contactData);
/**
- * @return Contact object.
+ * @return Contact data.
*/
- Contacts::Model::ContactRecordData &getContact();
+ Contacts::Model::ContactData &getContactData() const;
+
+ /**
+ * @brief Update item using ContactData values.
+ * @param[in] changes Change info
+ */
+ void update(int changes);
private:
virtual char *getText(Evas_Object *parent, const char *part) override;
virtual Evas_Object *getContent(Evas_Object *parent, const char *part) override;
virtual Ux::SelectResult getDefaultResult() const override;
- Contacts::Model::ContactRecordData &m_Contact;
+ Contacts::Model::ContactData &m_ContactData;
};
}
}
#define CONTACTS_LIST_MY_PROFILE_ITEM_H
#include "Contacts/List/Model/MyProfile.h"
-#include "Ui/GenlistItem.h"
+#include "Contacts/List/ContactItem.h"
namespace Contacts
{
namespace List
{
- class MyProfileItem : public Ui::GenlistItem
+ class MyProfileItem : public ContactItem
{
public:
MyProfileItem();
- /**
- * @return My profile object
- */
- Model::MyProfile &getMyProfile();
-
private:
virtual char *getText(Evas_Object *parent, const char *part) override;
- virtual Evas_Object *getContent(Evas_Object *parent, const char *part) override;
virtual void onSelected() override;
void onUpdated(int changes);
/**
* @return Person object.
*/
- Model::Person &getPerson();
-
- /**
- * @brief Update item
- * @param[in] changes Changed info
- */
- void update(int changes);
+ Model::Person &getPerson() const;
private:
virtual Ux::SelectResult getDefaultResult() const override;
-
- Model::Person &m_Person;
};
}
}
*/
#include "Contacts/List/ContactItem.h"
-#include "Contacts/Model/ContactRecordData.h"
+#include "Contacts/Model/ContactData.h"
#include "Ui/Thumbnail.h"
#include <app_i18n.h>
using namespace Contacts::List;
using namespace Contacts::Model;
-ContactItem::ContactItem(ContactRecordData &contact)
- : m_Contact(contact)
+ContactItem::ContactItem(ContactData &contactData)
+ : m_ContactData(contactData)
{
}
-ContactRecordData &ContactItem::getContact()
+ContactData &ContactItem::getContactData() const
{
- return m_Contact;
+ return m_ContactData;
+}
+
+void ContactItem::update(int changes)
+{
+ if (changes & ContactData::ChangedName) {
+ elm_genlist_item_fields_update(getObjectItem(),
+ PART_CONTACT_NAME, ELM_GENLIST_ITEM_FIELD_TEXT);
+ }
+
+ if (changes & ContactData::ChangedImage) {
+ elm_genlist_item_fields_update(getObjectItem(),
+ PART_CONTACT_THUMBNAIL, ELM_GENLIST_ITEM_FIELD_CONTENT);
+ }
}
char *ContactItem::getText(Evas_Object *parent, const char *part)
{
if (strcmp(part, PART_CONTACT_NAME) == 0) {
- const char *name = m_Contact.getName();
+ const char *name = m_ContactData.getName();
return strdup(name ? name : _("IDS_LOGS_MBODY_UNKNOWN"));
}
if (strcmp(part, PART_CONTACT_THUMBNAIL) == 0) {
Thumbnail *thumbnail = Thumbnail::create(parent, Thumbnail::SizeSmall,
- m_Contact.getImagePath());
+ m_ContactData.getImagePath());
thumbnail->setSizeHint(true);
return thumbnail->getEvasObject();
} else if (strcmp(part, PART_CONTACT_CHECK) == 0) {
Ux::SelectResult ContactItem::getDefaultResult() const
{
- return { 0, (void *) m_Contact.getContactRecord() };
+ return { 0, &m_ContactData };
}
#include "Ui/Genlist.h"
#include "Ui/Navigator.h"
-#include "Ui/Thumbnail.h"
#include <app_i18n.h>
-#define PART_MY_PROFILE_NAME "elm.text"
-#define PART_MY_PROFILE_THUMBNAIL "elm.swallow.icon"
-
using namespace Contacts::Details;
using namespace Contacts::Input;
using namespace Contacts::List;
using namespace std::placeholders;
MyProfileItem::MyProfileItem()
+ : ContactItem(m_MyProfile)
{
- m_MyProfile.setUpdateCallback(std::bind(&MyProfileItem::onUpdated, this, _1));
-}
-
-MyProfile &MyProfileItem::getMyProfile()
-{
- return m_MyProfile;
+ m_MyProfile.setUpdateCallback(std::bind(&MyProfileItem::update, this, _1));
}
char *MyProfileItem::getText(Evas_Object *parent, const char *part)
{
- if (strcmp(part, PART_MY_PROFILE_NAME) == 0) {
+ if (strcmp(part, PART_CONTACT_NAME) == 0) {
const char *name = m_MyProfile.getName();
- if (!(name && *name)) {
- name = _("IDS_PB_MBODY_SET_MY_PROFILE");
- }
-
- return strdup(name);
- }
-
- return nullptr;
-}
-
-Evas_Object *MyProfileItem::getContent(Evas_Object *parent, const char *part)
-{
- using Ui::Thumbnail;
-
- if (strcmp(part, PART_MY_PROFILE_THUMBNAIL) == 0) {
- Thumbnail *thumbnail = Thumbnail::create(parent, Thumbnail::SizeSmall,
- m_MyProfile.getImagePath());
- thumbnail->setSizeHint(true);
- return thumbnail->getEvasObject();
+ return strdup(name ? name : _("IDS_PB_MBODY_SET_MY_PROFILE"));
}
return nullptr;
navigator->navigateTo(new InputView(id, InputView::TypeMyProfile));
}
}
-
-void MyProfileItem::onUpdated(int changes)
-{
- if (changes & MyProfile::ChangedName) {
- elm_genlist_item_fields_update(getObjectItem(),
- PART_MY_PROFILE_NAME, ELM_GENLIST_ITEM_FIELD_TEXT);
- }
-
- if (changes & MyProfile::ChangedImage) {
- elm_genlist_item_fields_update(getObjectItem(),
- PART_MY_PROFILE_THUMBNAIL, ELM_GENLIST_ITEM_FIELD_CONTENT);
- }
-}
using namespace Contacts::List::Model;
PersonItem::PersonItem(Person &person)
- : ContactItem(person), m_Person(person)
+ : ContactItem(person)
{
}
-Person &PersonItem::getPerson()
+Person &PersonItem::getPerson() const
{
- return m_Person;
-}
-
-void PersonItem::update(int changes)
-{
- if (changes & Person::ChangedName) {
- elm_genlist_item_fields_update(getObjectItem(),
- PART_CONTACT_NAME, ELM_GENLIST_ITEM_FIELD_TEXT);
- }
-
- if (changes & Person::ChangedImage) {
- elm_genlist_item_fields_update(getObjectItem(),
- PART_CONTACT_THUMBNAIL, ELM_GENLIST_ITEM_FIELD_CONTENT);
- }
+ return static_cast<Person &>(getContactData());
}
Ux::SelectResult PersonItem::getDefaultResult() const
{
- return { ResultPerson, m_Person.getId() };
+ return { ResultPerson, getPerson().getId() };
}
{
std::vector<contacts_record_h> records;
for (auto &&result : results) {
- records.push_back((contacts_record_h) result.value.data);
+ ContactRecordData *contact = (ContactRecordData *) result.value.data;
+ records.push_back(contact->getContactRecord());
}
Settings::ImportController *importer = new Settings::ImportController(getEvasObject(),