[TSAM-9140]cancel on compress/decompress issue resolved 37/93437/1
authorshubham kumar <shubham.srib@samsung.com>
Mon, 24 Oct 2016 09:25:22 +0000 (14:55 +0530)
committershubham kumar <shubham.srib@samsung.com>
Mon, 24 Oct 2016 09:25:22 +0000 (14:55 +0530)
Change-Id: I3df3259409fc053e0956e9acd54e5a97047b0fdc
Signed-off-by: shubham kumar <shubham.srib@samsung.com>
inc/mf-callback.h
inc/mf-main.h
src/common/mf-callback.c
src/common/mf-util.c

index 7d66f54..867da71 100755 (executable)
@@ -41,6 +41,8 @@ void mf_callback_decompress_cb(void *data);
 void mf_callback_decompress_done_cb(void *data, Evas_Object *obj, void *event_info);
 void mfSearchbarCancelCallBack(void *data, Evas_Object *obj, void *event_info);
 void mf_callback_cancel_cb(void *data, Evas_Object *obj, void *event_info);
+void mf_callback_compress_cancel_cb(void *data, Evas_Object *obj, void *event_info);
+void mf_callback_decompress_cancel_cb(void *data, Evas_Object *obj, void *event_info);
 
 void mf_callback_move_here_cb(void *data, Evas_Object *obj, void *event_info);
 void mf_callback_paste_here_cb(void *data, Evas_Object *obj, void *event_info);
index 30f39a1..69f08e8 100755 (executable)
@@ -38,6 +38,7 @@
 #include "mf-search.h"
 #include "mf-copy.h"
 #include "mf-popup.h"
+#include "pthread.h"
 
 #include "mf-media-types.h"
 #include "mf-ug-detail.h"
@@ -340,6 +341,8 @@ struct appdata {
        myfileSharedGadget mf_SharedGadget;
        myfileOtg mf_Otg;
        myfileBundle mf_Bundle;
+       pthread_t thread;
+       pthread_t thread1;
        mf_genlist_item_class_s mf_gl_style;
        Eina_List *storage_list;
        Eina_List *file_list;
index 99422ea..e121685 100755 (executable)
@@ -621,6 +621,24 @@ void mf_rename_done_cb(void *data, Evas_Object *obj, void *event_info)
        mf_file_compression_start(ap);
 }
 
+void mf_callback_compress_cancel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       mf_debug("cancel pthread now");
+       struct appdata *ap = (struct appdata *)data;
+       int ret = pthread_cancel(ap->thread);
+       SAFE_FREE_OBJ(ap->mf_MainWindow.pProgressPopup);
+       mf_callback_cancel_cb(ap,NULL,NULL);
+}
+
+void mf_callback_decompress_cancel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       mf_debug("cancel pthread now");
+       struct appdata *ap = (struct appdata *)data;
+       int ret = pthread_cancel(ap->thread1);
+       SAFE_FREE_OBJ(ap->mf_MainWindow.pProgressPopup);
+       mf_callback_cancel_cb(ap,NULL,NULL);
+}
+
 void mf_callback_cancel_cb(void *data, Evas_Object *obj, void *event_info)
 {
        MF_TRACE_BEGIN;
index 5032a7a..42751c9 100755 (executable)
@@ -151,7 +151,7 @@ static int __mf_util_is_mmc_supported(int *supported)
 void mf_file_decompression_start(void *data)
 {
        struct appdata *ap = (struct appdata *)data;
-       ap->mf_MainWindow.pProgressPopup = mf_popup_create_progress_pb_popup(ap, MF_LABEL_DECOMPRESS, MF_LABEL_DECOMPRESSING, 10, mf_callback_cancel_cb, ap);;
+       ap->mf_MainWindow.pProgressPopup = mf_popup_create_progress_pb_popup(ap, MF_LABEL_DECOMPRESS, MF_LABEL_DECOMPRESSING, 10, mf_callback_compress_cancel_cb, ap);;
 
 
        evas_object_show(ap->mf_MainWindow.pProgressPopup);
@@ -163,14 +163,14 @@ void mf_file_decompression_start(void *data)
        ap->mf_FileOperation.sync_pipe = ecore_pipe_add(__mf_decompress_pipe_cb, ap);
 
 
-       pthread_t thread;
+       //pthread_t thread;
        pthread_attr_t attr;
        pthread_attr_init(&attr);
        int ret;
 
        ret = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
-       pthread_create(&thread, &attr,(void *)& mf_callback_decompress_cb, (void *) ap);
-       pthread_detach(thread);
+       pthread_create(&ap->thread1, &attr,(void *)& mf_callback_decompress_cb, (void *) ap);
+       pthread_detach(ap->thread1);
 
 }
 
@@ -179,7 +179,7 @@ void mf_file_compression_start(void *data)
        struct appdata *ap = (struct appdata *)data;
 
 
-       ap->mf_MainWindow.pProgressPopup = mf_popup_create_progress_pb_popup(ap, MF_LABEL_COMPRESS, MF_LABEL_COMPRESSING, 10, mf_callback_cancel_cb, ap);;
+       ap->mf_MainWindow.pProgressPopup = mf_popup_create_progress_pb_popup(ap, MF_LABEL_COMPRESS, MF_LABEL_COMPRESSING, 10, mf_callback_compress_cancel_cb, ap);;
 
 
        evas_object_show(ap->mf_MainWindow.pProgressPopup);
@@ -192,14 +192,14 @@ void mf_file_compression_start(void *data)
        ap->mf_FileOperation.sync_pipe = ecore_pipe_add(__mf_compress_pipe_cb, ap);
 
 
-       pthread_t thread;
+       //pthread_t thread;
        pthread_attr_t attr;
        pthread_attr_init(&attr);
        int ret;
 
        ret = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
-       pthread_create(&thread, NULL,(void *)& mf_callback_compress_cb, (void *) ap);
-       pthread_detach(thread);
+       pthread_create(&(ap->thread), NULL,(void *)& mf_callback_compress_cb, (void *) ap);
+       pthread_detach(ap->thread);
 }
 
 /******************************