Fixed: SettingsSound ringtone. 66/100266/1
authorDenis Dolzhenko <d.dolzhenko@samsung.com>
Fri, 25 Nov 2016 12:45:58 +0000 (14:45 +0200)
committerDenis Dolzhenko <d.dolzhenko@samsung.com>
Fri, 25 Nov 2016 12:45:58 +0000 (14:45 +0200)
Change-Id: Idd1c112333c9c8089d41da2137fb0ba1cfcef0f1
Signed-off-by: Denis Dolzhenko <d.dolzhenko@samsung.com>
src/Settings/Controller/src/SettingsSound.cpp

index 161c77b..ec40ed8 100644 (file)
@@ -24,10 +24,8 @@ using namespace Msg;
 
 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";
@@ -35,7 +33,6 @@ namespace
     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";
@@ -53,12 +50,14 @@ SettingsSound::~SettingsSound()
 
 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)
@@ -71,7 +70,10 @@ static void soundPickerCb(app_control_h request, app_control_h reply, app_contro
         settings->setRingtone(ringtone);
     }
 
-    free(ringtone);
+    for (int i = 0; i < count; ++i) {
+        free (ringtones[i]);
+    }
+    free(ringtones);
 }
 
 void SettingsSound::launchSoundPicker()
@@ -80,9 +82,8 @@ 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);