[TSAM-12240] 2 MiniControllers appearing 14/125714/1
authorbhutani.92 <bhutani.92@samsung.com>
Tue, 27 Dec 2016 12:41:22 +0000 (18:11 +0530)
committerbhutani.92 <bhutani.92@samsung.com>
Tue, 18 Apr 2017 12:15:35 +0000 (17:45 +0530)
Change-Id: I188fc6383003190d4e1b331b2c4337786a6a4aee
Signed-off-by: bhutani.92 <bhutani.92@samsung.com>
src/common/include/mp-util.h
src/common/mp-app.c
src/mp-main.c
src/widget/mp-minicontroller.c

index df34acd..adaa01f 100644 (file)
@@ -47,11 +47,19 @@ enum {
        PREF_MUSIC_STATE_MAX
 };
 
+enum {
+       PREF_NO_MINICONTROLLER = -1,
+       PREF_MUSIC_PLAYER_MINICONTROLLER,
+       PREF_SOUND_PLAYER_MINICONTROLLER,
+       PREF_MINICONTROLLER_MAX
+};
+
 #define GET_WINDOW() ((mp_util_get_appdata()) ? mp_util_get_appdata()->win_main : NULL)
 #define CHECK_STORE    mp_util_is_store_enable()
 #define PREF_MUSIC_STATE "preference/org.tizen.music-player/state"
 #define PREF_SOUND_PLAYER_LAUNCH "preference/org.tizen.sound-player/launch_state"
 #define PREF_MUSIC_PLAYER_LAUNCH "preference/org.tizen.music-player/launch_state"
+#define PREF_MINICONTROLLER "preference/minicontrol_state"
 
 void mp_to_lower(char *str);
 int mp_setting_get_nowplaying_id(void);
index 875754d..42e28e6 100644 (file)
@@ -275,21 +275,6 @@ _mp_app_active_device_chaged_cb(sound_device_h in,
        EVENT_TRACE("input=[0x%x], output=[0x%x]", in, out);
        MP_CHECK(gNotiPipe);
 
-       struct appdata *ad = user_data;
-       MP_CHECK(ad);
-
-       int current_pid = mp_setting_get_nowplaying_id();
-       if (current_pid && current_pid != getpid()) {
-               DEBUG_TRACE("Some other player playing currently");
-               ad->paused_by_user = true;
-               if (ad->win_minicon) {
-                       mp_minicontroller_hide(ad);
-               }
-               if (ad->win_lockmini) {
-                       mp_lockscreenmini_hide(ad);
-               }
-       }
-
        mp_app_pipe_data_s pipe_data;
        memset(&pipe_data, 0, sizeof(mp_app_pipe_data_s));
        pipe_data.type = MP_APP_PIPE_CB_ACTIVE_DEVICE_CHANGED;
index c3eab12..c936e59 100644 (file)
@@ -114,11 +114,53 @@ void mp_recorder_state_cb(recorder_type_e type,
        ad->recorder_type = type;
 }
 
+void _mp_app_minicontroller_state_changed_cb(const char *key, void *data)
+{
+       int minictrl_state = PREF_NO_MINICONTROLLER;
+       int ret = preference_get_int(key, &minictrl_state);
+       if (ret != PREFERENCE_ERROR_NONE) {
+               ERROR_TRACE("Cannot get minicontroller state");
+               return;
+       }
+
+#ifdef MP_SOUND_PLAYER
+       if (minictrl_state == PREF_MUSIC_PLAYER_MINICONTROLLER) {
+#else
+       if (minictrl_state == PREF_SOUND_PLAYER_MINICONTROLLER) {
+#endif
+               DEBUG_TRACE("Some other player playing currently");
+               struct appdata *ad = mp_util_get_appdata();
+               MP_CHECK(ad);
+               ad->paused_by_user = true;
+               if (ad->win_minicon) {
+                       mp_minicontroller_hide(ad);
+               }
+               if (ad->win_lockmini) {
+                       mp_lockscreenmini_hide(ad);
+               }
+       }
+}
+
 static bool _mp_main_init(struct appdata *ad)
 {
        ad->music_setting_change_flag = false;
        ad->paused_by_user = true;
 
+       bool key_exists = FALSE;
+       int ret_p = preference_is_existing(PREF_MINICONTROLLER, &key_exists);
+       if (ret_p != PREFERENCE_ERROR_NONE) {
+               ERROR_TRACE("Could not find MiniController State Key");
+       }
+
+       if (!key_exists) {
+               preference_set_int(PREF_MINICONTROLLER, PREF_NO_MINICONTROLLER);
+       }
+
+       if (preference_set_changed_cb
+                       (PREF_MINICONTROLLER, _mp_app_minicontroller_state_changed_cb, ad) < 0) {
+               ERROR_TRACE("Fail to register PREF_MINICONTROLLER key callback");
+       }
+
 #ifdef MP_SOUND_PLAYER
        preference_set_int(PREF_SOUND_PLAYER_LAUNCH, PREF_PLAYER_ON);
 #else
index d1a846e..52bb93d 100644 (file)
@@ -310,8 +310,6 @@ int mp_minicontroller_create(struct appdata *ad)
                        DEBUG_TRACE("ERROR");
                        return -1;
                }
-               //mp_language_mgr_register_object(ad->minicontroller_layout, OBJ_TYPE_EDJE_OBJECT, "elm.text.app_name", "IDS_COM_BODY_MUSIC");
-               //elm_object_part_text_set(ad->minicontroller_layout, "elm.text.app_name", GET_SYS_STR("IDS_COM_BODY_MUSIC"));
        }
 
        mp_minicontroller_update_winmini_size(ad);
@@ -332,6 +330,12 @@ int mp_minicontroller_show(struct appdata *ad)
        /* Not show minicontrol when current track not exsit */
        MP_CHECK_VAL(ad->current_track_info, -1);
 
+#ifdef MP_SOUND_PLAYER
+       preference_set_int(PREF_MINICONTROLLER, PREF_SOUND_PLAYER_MINICONTROLLER);
+#else
+       preference_set_int(PREF_MINICONTROLLER, PREF_MUSIC_PLAYER_MINICONTROLLER);
+#endif
+
        ad->b_minicontroller_show = TRUE;
        mp_minicontroller_update(ad, false);
        evas_object_show(ad->win_minicon);