From 32bcccffca94e9f7a55d316a78b6273730e56371 Mon Sep 17 00:00:00 2001 From: jeremy-jang <35089715+jeremy-jang@users.noreply.github.com> Date: Wed, 30 Dec 2020 15:48:30 +0900 Subject: [PATCH] [Packagemanager] Fix registering internal event callback (#2477) Do not reset internal event callback. This can cause unexpected result when user add event handler during package installation. (user may not be able to listen the package event completely.) Signed-off-by: Sangyoon Jang --- .../Tizen.Applications/PackageManager.cs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/Tizen.Applications.PackageManager/Tizen.Applications/PackageManager.cs b/src/Tizen.Applications.PackageManager/Tizen.Applications/PackageManager.cs index d6b57a3..89a9968 100755 --- a/src/Tizen.Applications.PackageManager/Tizen.Applications/PackageManager.cs +++ b/src/Tizen.Applications.PackageManager/Tizen.Applications/PackageManager.cs @@ -43,7 +43,7 @@ namespace Tizen.Applications private static event EventHandler s_clearDataEventHandler; private static readonly object s_pkgEventLock = new object(); - private static Interop.PackageManager.PackageManagerEventCallback s_packageManagerEventCallback = new Interop.PackageManager.PackageManagerEventCallback(InternalEventCallback); + private static Interop.PackageManager.PackageManagerEventCallback s_packageManagerEventCallback; private static Dictionary s_totalSizeInfoCallbackDict = new Dictionary(); private static int s_callbackId = 0; @@ -1290,13 +1290,10 @@ namespace Tizen.Applications { lock (Handle) { - Log.Debug(LogTag, "Reset Package Event"); - err = Interop.PackageManager.PackageManagerUnsetEvent(Handle); - if (err != Interop.PackageManager.ErrorCode.None) - { - throw PackageManagerErrorFactory.GetException(err, "Failed to unregister package manager event event."); - } + if (s_packageManagerEventCallback != null) + return; + s_packageManagerEventCallback = new Interop.PackageManager.PackageManagerEventCallback(InternalEventCallback); err = Interop.PackageManager.PackageManagerSetEvent(Handle, s_packageManagerEventCallback, IntPtr.Zero); } } @@ -1361,6 +1358,7 @@ namespace Tizen.Applications { throw PackageManagerErrorFactory.GetException(err, "Failed to unregister package manager event event."); } + s_packageManagerEventCallback = null; } } } -- 2.7.4