namespace
{
- const char *sRingtoneKeyPath = "path";
const char *sRingtoneValuePath = "/opt/share/settings/Alerts";
const char *sRingtoneKeySelectType = "select_type";
- const char *sRingtoneValueSingleFile = "SINGLE_FILE";
const char *sRingtoneKeyFileType = "file_type";
const char *sRingtoneValueSound = "SOUND";
const char *sRingtoneKeySilent = "silent";
const char *sRingtoneKeyDefault = "default";
const char *sRingtoneValueDefaultShow = "default show";
const char *sRingtoneAppId = "org.tizen.setting-ringtone";
- const char *sRingtoneKeyResult = "result";
const char* sRingtoneKeyDrmType = "drm_type";
const char* sRingtoneValueDrmAll = "DRM_ALL";
const char* sRingtoneKeyDomain = "domain";
static void soundPickerCb(app_control_h request, app_control_h reply, app_control_result_e result, void *user_data)
{
- char *ringtone = nullptr;
+ char **ringtones = nullptr;
+ int count = 0;
+ app_control_get_extra_data_array(reply, APP_CONTROL_DATA_SELECTED, &ringtones, &count);
- app_control_get_extra_data(reply, sRingtoneKeyResult, &ringtone);
- if (!ringtone)
+ if (!ringtones || !ringtones[0])
return;
+ char *ringtone = ringtones[0];
auto *settings = static_cast<MsgSettings*>(user_data);
if (strcmp(ringtone, sRingtoneKeySilent) == 0)
settings->setRingtone(ringtone);
}
- free(ringtone);
+ for (int i = 0; i < count; ++i) {
+ free (ringtones[i]);
+ }
+ free(ringtones);
}
void SettingsSound::launchSoundPicker()
app_control_create(&h);
app_control_set_launch_mode(h, APP_CONTROL_LAUNCH_MODE_GROUP);
- app_control_add_extra_data(h, sRingtoneKeyPath, sRingtoneValuePath);
+ app_control_add_extra_data(h, APP_CONTROL_DATA_PATH, sRingtoneValuePath);
app_control_add_extra_data(h, sRingtoneKeyDomain, PACKAGE_NAME);
- app_control_add_extra_data(h, sRingtoneKeySelectType, sRingtoneValueSingleFile);
app_control_add_extra_data(h, sRingtoneKeyFileType, sRingtoneValueSound);
app_control_add_extra_data(h, sRingtoneKeySilent, sRingtoneValueSilentShow);
app_control_add_extra_data(h, sRingtoneKeyDefault, sRingtoneValueDefaultShow);