capi-appfw-widget-application
capi-base-utils-i18n
capi-system-system-settings
+ capi-telephony
contacts-service2
dlog
efl-extension
<privilege>http://tizen.org/privilege/externalstorage</privilege>
<privilege>http://tizen.org/privilege/mediastorage</privilege>
<privilege>http://tizen.org/privilege/notification</privilege>
+ <privilege>http://tizen.org/privilege/telephony</privilege>
</privileges>
</manifest>
<privilege>http://tizen.org/privilege/externalstorage</privilege>
<privilege>http://tizen.org/privilege/mediastorage</privilege>
<privilege>http://tizen.org/privilege/notification</privilege>
+ <privilege>http://tizen.org/privilege/telephony</privilege>
</privileges>
</manifest>
void update();
private:
+ static const char *fetchNumber();
static contacts_record_h fetchRecord();
static void onChanged(const char *uri, void *data);
static void onNameFormatChanged(contacts_name_display_order_e order, void *data);
*/
#include "Contacts/List/Model/MyProfile.h"
+#include "Common/Database/ChildRecordIterator.h"
#include "Common/Database/RecordUtils.h"
+#include "Utils/Logger.h"
+
+#include <string>
+#include <telephony.h>
using namespace Common::Database;
using namespace Contacts::List::Model;
const char *MyProfile::getNumber() const
{
- return nullptr;
+ for (auto &&record : makeRange(m_Record, _contacts_my_profile.number)) {
+ if (getRecordBool(record, _contacts_number.is_default)) {
+ return getRecordStr(record, _contacts_number.number);
+ }
+ }
+
+ return fetchNumber();
}
const char *MyProfile::getImagePath() const
onUpdated(changes);
}
+const char *MyProfile::fetchNumber()
+{
+ static bool isInitialized = false;
+ static std::string number;
+
+ if (!isInitialized) {
+ isInitialized = true;
+
+ telephony_handle_list_s handles;
+ int err = telephony_init(&handles);
+ RETVM_IF_ERR(err, nullptr, "telephony_init() failed.", err);
+
+ for (size_t i = 0; i < handles.count; ++i) {
+ char *simNumber = nullptr;
+ err = telephony_sim_get_subscriber_number(handles.handle[i], &simNumber);
+ WARN_IF_ERR(err, "telephony_sim_get_subscriber_number() failed.");
+
+ if (simNumber && *simNumber) {
+ number = simNumber;
+ free(simNumber);
+ break;
+ }
+ free(simNumber);
+ }
+ telephony_deinit(&handles);
+ }
+
+ return !number.empty() ? number.c_str() : nullptr;
+}
+
contacts_record_h MyProfile::fetchRecord()
{
contacts_list_h list = nullptr;
{
if (strcmp(part, PART_CONTACT_NAME) == 0) {
const char *name = m_MyProfile.getName();
- return strdup(name ? name : _("IDS_PB_MBODY_SET_MY_PROFILE"));
+ const char *text = name ? name : m_MyProfile.getNumber();
+ return strdup(text ? text : _("IDS_PB_MBODY_SET_MY_PROFILE"));
}
return nullptr;
if (id > 0) {
navigator->navigateTo(new DetailsView(id, DetailsView::TypeMyProfile));
} else {
- navigator->navigateTo(new InputView(id, InputView::TypeMyProfile));
+ InputView *view = new InputView(id, InputView::TypeMyProfile);
+ view->addField(Contacts::Model::FieldNumber, m_MyProfile.getNumber());
+ navigator->navigateTo(view);
}
}
BuildRequires: pkgconfig(capi-appfw-widget-application)
BuildRequires: pkgconfig(capi-base-utils-i18n)
BuildRequires: pkgconfig(capi-system-system-settings)
+BuildRequires: pkgconfig(capi-telephony)
BuildRequires: pkgconfig(contacts-service2)
BuildRequires: pkgconfig(dlog)
BuildRequires: pkgconfig(efl-extension)