From 07df207448d1e105a570ab986d31b135cd61e029 Mon Sep 17 00:00:00 2001 From: Seungkeun Lee Date: Tue, 5 Apr 2016 16:38:29 +0900 Subject: [PATCH] Refactoring InstalledApplication[Metadata]Filter - Use property initializer Change-Id: Ib044038d1eddcb4417246c1b86a539bd42c60ddf --- .../ApplicationManagerImpl.cs | 183 ++++++++++++++------- .../InstalledApplicationFilter.cs | 76 +-------- .../InstalledApplicationMetadataFilter.cs | 60 +------ 3 files changed, 134 insertions(+), 185 deletions(-) diff --git a/Tizen.Applications/Tizen.Applications.Managers/ApplicationManagerImpl.cs b/Tizen.Applications/Tizen.Applications.Managers/ApplicationManagerImpl.cs index a912941..fee3245 100755 --- a/Tizen.Applications/Tizen.Applications.Managers/ApplicationManagerImpl.cs +++ b/Tizen.Applications/Tizen.Applications.Managers/ApplicationManagerImpl.cs @@ -6,6 +6,7 @@ /// it only in accordance with the terms of the license agreement /// you entered into with Samsung. + using System; using System.Collections.Generic; using System.Threading.Tasks; @@ -15,13 +16,13 @@ namespace Tizen.Applications.Managers { internal class ApplicationManagerImpl : IDisposable { - private static ApplicationManagerImpl _instance = new ApplicationManagerImpl(); + private static ApplicationManagerImpl s_instance = new ApplicationManagerImpl(); private bool _disposed = false; private Interop.ApplicationManager.AppManagerAppContextEventCallback _applicationChangedEventCallback; private const string LogTag = "Tizen.Applications.Managers"; - private int ret = 0; + private int _ret = 0; private ApplicationManagerImpl() { @@ -44,7 +45,7 @@ namespace Tizen.Applications.Managers { get { - return _instance; + return s_instance; } } @@ -79,10 +80,10 @@ namespace Tizen.Applications.Managers if (handle != IntPtr.Zero) { IntPtr clonedHandle = IntPtr.Zero; - ret = Interop.ApplicationManager.AppInfoClone(out clonedHandle, handle); - if (ret != 0) + _ret = Interop.ApplicationManager.AppInfoClone(out clonedHandle, handle); + if (_ret != 0) { - ApplicationManagerErrorFactory.ExceptionChecker(ret, clonedHandle, "GetInstalledAppsAsync() failed."); + ApplicationManagerErrorFactory.ExceptionChecker(_ret, clonedHandle, "GetInstalledAppsAsync() failed."); } InstalledApplication app = new InstalledApplication(clonedHandle); Result.Add(app); @@ -90,10 +91,10 @@ namespace Tizen.Applications.Managers } return false; }; - ret = Interop.ApplicationManager.AppManagerForeachAppInfo(cb, IntPtr.Zero); - if (ret != 0) + _ret = Interop.ApplicationManager.AppManagerForeachAppInfo(cb, IntPtr.Zero); + if (_ret != 0) { - ApplicationManagerErrorFactory.ExceptionChecker(ret, IntPtr.Zero, "GetInstalledAppsAsync() failed."); + ApplicationManagerErrorFactory.ExceptionChecker(_ret, IntPtr.Zero, "GetInstalledAppsAsync() failed."); } return Result; }); @@ -112,10 +113,10 @@ namespace Tizen.Applications.Managers if (handle != IntPtr.Zero) { IntPtr clonedHandle = IntPtr.Zero; - ret = Interop.ApplicationManager.AppInfoClone(out clonedHandle, handle); - if (ret != 0) + _ret = Interop.ApplicationManager.AppInfoClone(out clonedHandle, handle); + if (_ret != 0) { - ApplicationManagerErrorFactory.ExceptionChecker(ret, clonedHandle, "GetInstalledAppsAsync(InstalledApplicationFilter) failed."); + ApplicationManagerErrorFactory.ExceptionChecker(_ret, clonedHandle, "GetInstalledAppsAsync(InstalledApplicationFilter) failed."); } InstalledApplication app = new InstalledApplication(clonedHandle); Result.Add(app); @@ -124,10 +125,13 @@ namespace Tizen.Applications.Managers return false; }; - ret = Interop.ApplicationManager.AppInfoFilterForeachAppinfo(filter.Handle, cb, IntPtr.Zero); - if (ret != 0) + IntPtr appInfoFilter = MakeNativeAppInfoFilter(filter.Filter); + _ret = Interop.ApplicationManager.AppInfoFilterForeachAppinfo(appInfoFilter, cb, IntPtr.Zero); + if (appInfoFilter != IntPtr.Zero) + Interop.ApplicationManager.AppInfoFilterDestroy(appInfoFilter); + if (_ret != 0) { - ApplicationManagerErrorFactory.ExceptionChecker(ret, IntPtr.Zero, "GetInstalledAppsAsync(InstalledApplicationFilter) failed."); + ApplicationManagerErrorFactory.ExceptionChecker(_ret, IntPtr.Zero, "GetInstalledAppsAsync(InstalledApplicationFilter) failed."); } return Result; }); @@ -147,10 +151,10 @@ namespace Tizen.Applications.Managers if (handle != IntPtr.Zero) { IntPtr clonedHandle = IntPtr.Zero; - ret = Interop.ApplicationManager.AppInfoClone(out clonedHandle, handle); - if (ret != 0) + _ret = Interop.ApplicationManager.AppInfoClone(out clonedHandle, handle); + if (_ret != 0) { - ApplicationManagerErrorFactory.ExceptionChecker(ret, clonedHandle, "GetInstalledAppsAsync(InstalledApplicationMetadataFilter) failed."); + return false; } InstalledApplication app = new InstalledApplication(clonedHandle); Result.Add(app); @@ -158,11 +162,13 @@ namespace Tizen.Applications.Managers } return false; }; - - ret = Interop.ApplicationManager.AppInfoMetadataFilterForeach(filter.Handle, cb, IntPtr.Zero); - if (ret != 0) + IntPtr appMedataFilter = MakeNativeAppMetadataFilter(filter.Filter); + _ret = Interop.ApplicationManager.AppInfoMetadataFilterForeach(appMedataFilter, cb, IntPtr.Zero); + if (appMedataFilter != IntPtr.Zero) + Interop.ApplicationManager.AppInfoMetadataFilterDestroy(appMedataFilter); + if (_ret != 0) { - ApplicationManagerErrorFactory.ExceptionChecker(ret, filter.Handle, "GetInstalledAppsAsync(InstalledApplicationMetadataFilter) failed."); + ApplicationManagerErrorFactory.ExceptionChecker(_ret, appMedataFilter, "GetInstalledAppsAsync(InstalledApplicationMetadataFilter) failed."); } return Result; }); @@ -182,17 +188,17 @@ namespace Tizen.Applications.Managers if (handle != IntPtr.Zero) { IntPtr ptr = IntPtr.Zero; - ret = Interop.ApplicationManager.AppContextGetAppId(handle, out ptr); - if (ret != 0) + _ret = Interop.ApplicationManager.AppContextGetAppId(handle, out ptr); + if (_ret != 0) { - ApplicationManagerErrorFactory.ExceptionChecker(ret, handle, "GetRunningAppsAsync() failed."); + return false; } string appid = Marshal.PtrToStringAuto(ptr); int pid = 0; - ret = Interop.ApplicationManager.AppContextGetPid(handle, out pid); - if (ret != 0) + _ret = Interop.ApplicationManager.AppContextGetPid(handle, out pid); + if (_ret != 0) { - ApplicationManagerErrorFactory.ExceptionChecker(ret, handle, "GetRunningAppsAsync() failed."); + return false; } RunningApplication app = new RunningApplication(appid, pid); Result.Add(app); @@ -201,10 +207,10 @@ namespace Tizen.Applications.Managers return false; }; - ret = Interop.ApplicationManager.AppManagerForeachAppContext(cb, IntPtr.Zero); - if (ret != 0) + _ret = Interop.ApplicationManager.AppManagerForeachAppContext(cb, IntPtr.Zero); + if (_ret != 0) { - ApplicationManagerErrorFactory.ExceptionChecker(ret, IntPtr.Zero, "GetRunningAppsAsync() failed."); + ApplicationManagerErrorFactory.ExceptionChecker(_ret, IntPtr.Zero, "GetRunningAppsAsync() failed."); } return Result; }); @@ -214,10 +220,10 @@ namespace Tizen.Applications.Managers { Log.Debug(LogTag, "GetInstalledApp(applicationId)"); IntPtr handle = IntPtr.Zero; - ret = Interop.ApplicationManager.AppManagerGetAppInfo(applicationId, out handle); - if (ret != 0) + _ret = Interop.ApplicationManager.AppManagerGetAppInfo(applicationId, out handle); + if (_ret != 0) { - ApplicationManagerErrorFactory.ExceptionChecker(ret, handle, "GetInstalledApp(applicationId) failed."); + ApplicationManagerErrorFactory.ExceptionChecker(_ret, handle, "GetInstalledApp(applicationId) failed."); } if (handle != IntPtr.Zero) { @@ -231,18 +237,18 @@ namespace Tizen.Applications.Managers { Log.Debug(LogTag, "GetRunningApp(applicationId)"); IntPtr handle = IntPtr.Zero; - ret = Interop.ApplicationManager.AppManagerGetAppContext(applicationId, out handle); - if (ret != 0) + _ret = Interop.ApplicationManager.AppManagerGetAppContext(applicationId, out handle); + if (_ret != 0) { - ApplicationManagerErrorFactory.ExceptionChecker(ret, handle, "GetRunningApp(applicationId) failed."); + ApplicationManagerErrorFactory.ExceptionChecker(_ret, handle, "GetRunningApp(applicationId) failed."); } if (handle != IntPtr.Zero) { int pid = 0; - ret = Interop.ApplicationManager.AppContextGetPid(handle, out pid); - if (ret != 0) + _ret = Interop.ApplicationManager.AppContextGetPid(handle, out pid); + if (_ret != 0) { - ApplicationManagerErrorFactory.ExceptionChecker(ret, handle, "GetRunningApp(applicationId) failed."); + ApplicationManagerErrorFactory.ExceptionChecker(_ret, handle, "GetRunningApp(applicationId) failed."); } RunningApplication app = new RunningApplication(applicationId, pid); return app; @@ -254,10 +260,10 @@ namespace Tizen.Applications.Managers { Log.Debug(LogTag, "GetRunningApp(processId)"); string appid = ""; - ret = Interop.ApplicationManager.AppManagerGetAppId(processId, out appid); - if (ret != 0) + _ret = Interop.ApplicationManager.AppManagerGetAppId(processId, out appid); + if (_ret != 0) { - ApplicationManagerErrorFactory.ExceptionChecker(ret, IntPtr.Zero, "GetRunningApp(processId) failed."); + ApplicationManagerErrorFactory.ExceptionChecker(_ret, IntPtr.Zero, "GetRunningApp(processId) failed."); } RunningApplication app = new RunningApplication(appid, processId); return app; @@ -267,8 +273,8 @@ namespace Tizen.Applications.Managers { Log.Debug(LogTag, "IsRunningApp(applicationId)"); bool running = false; - ret = Interop.ApplicationManager.AppManagerIsRunning(applicationId, out running); - if (ret != 0) + _ret = Interop.ApplicationManager.AppManagerIsRunning(applicationId, out running); + if (_ret != 0) { Log.Warn(LogTag, "IsRunningApp(applicationId) failed."); } @@ -279,14 +285,14 @@ namespace Tizen.Applications.Managers { Log.Debug(LogTag, "IsRunningApp(processId)"); string appid = ""; - ret = Interop.ApplicationManager.AppManagerGetAppId(processId, out appid); - if (ret != 0) + _ret = Interop.ApplicationManager.AppManagerGetAppId(processId, out appid); + if (_ret != 0) { - ApplicationManagerErrorFactory.ExceptionChecker(ret, IntPtr.Zero, "IsRunningApp(processId) failed."); + ApplicationManagerErrorFactory.ExceptionChecker(_ret, IntPtr.Zero, "IsRunningApp(processId) failed."); } bool running = false; - ret = Interop.ApplicationManager.AppManagerIsRunning(appid, out running); - if (ret != 0) + _ret = Interop.ApplicationManager.AppManagerIsRunning(appid, out running); + if (_ret != 0) { Log.Warn(LogTag, "IsRunningApp(processId) failed."); } @@ -302,17 +308,17 @@ namespace Tizen.Applications.Managers if (handle == IntPtr.Zero) return; IntPtr ptr = IntPtr.Zero; - ret = Interop.ApplicationManager.AppContextGetAppId(handle, out ptr); - if (ret != 0) + _ret = Interop.ApplicationManager.AppContextGetAppId(handle, out ptr); + if (_ret != 0) { - ApplicationManagerErrorFactory.ExceptionChecker(ret, handle, "RegisterApplicationChangedEvent() failed."); + ApplicationManagerErrorFactory.ExceptionChecker(_ret, handle, "RegisterApplicationChangedEvent() failed."); } string appid = Marshal.PtrToStringAuto(ptr); int pid = 0; - ret = Interop.ApplicationManager.AppContextGetPid(handle, out pid); - if (ret != 0) + _ret = Interop.ApplicationManager.AppContextGetPid(handle, out pid); + if (_ret != 0) { - ApplicationManagerErrorFactory.ExceptionChecker(ret, handle, "RegisterApplicationChangedEvent() failed."); + ApplicationManagerErrorFactory.ExceptionChecker(_ret, handle, "RegisterApplicationChangedEvent() failed."); } if (state == 0) { @@ -335,10 +341,10 @@ namespace Tizen.Applications.Managers } } }; - ret = Interop.ApplicationManager.AppManagerSetAppContextEvent(_applicationChangedEventCallback, IntPtr.Zero); - if (ret != 0) + _ret = Interop.ApplicationManager.AppManagerSetAppContextEvent(_applicationChangedEventCallback, IntPtr.Zero); + if (_ret != 0) { - ApplicationManagerErrorFactory.ExceptionChecker(ret, IntPtr.Zero, "RegisterApplicationChangedEvent() register failed."); + ApplicationManagerErrorFactory.ExceptionChecker(_ret, IntPtr.Zero, "RegisterApplicationChangedEvent() register failed."); } } @@ -347,5 +353,64 @@ namespace Tizen.Applications.Managers Log.Debug(LogTag, "UnRegisterApplicationChangedEvent()"); Interop.ApplicationManager.AppManagerUnSetAppContextEvent(); } + + private static IntPtr MakeNativeAppInfoFilter(IDictionary filter) + { + if (filter == null) + throw new ArgumentException("Filter dose not added"); + IntPtr handle; + int ret = Interop.ApplicationManager.AppInfoFilterCreate(out handle); + if (ret != 0) + { + ApplicationManagerErrorFactory.ExceptionChecker(ret, handle, "AppInfoFilter creation failed."); + } + + foreach (var item in filter) + { + if ((item.Key == InstalledApplicationFilter.Keys.Id) || + (item.Key == InstalledApplicationFilter.Keys.Type) || + (item.Key == InstalledApplicationFilter.Keys.Category)) + { + ret = Interop.ApplicationManager.AppInfoFilterAddString(handle, item.Key, item.Value); + } + else if ((item.Key == InstalledApplicationFilter.Keys.NoDisplay) || + (item.Key == InstalledApplicationFilter.Keys.TaskManage)) + { + ret = Interop.ApplicationManager.AppInfoFilterAddBool(handle, item.Key, Convert.ToBoolean(item.Value)); + } + else + { + Log.Warn(LogTag, "InstalledApplicationFilter is NOT supported " + item.Key + " key."); + } + if (ret != 0) + { + Interop.ApplicationManager.AppInfoFilterDestroy(handle); + ApplicationManagerErrorFactory.ExceptionChecker(ret, handle, "InstalledApplicationFilter item add failed."); + } + } + return handle; + } + + private static IntPtr MakeNativeAppMetadataFilter(IDictionary filter) + { + if (filter == null) + throw new ArgumentException("Filter dose not added"); + IntPtr handle; + int ret = Interop.ApplicationManager.AppInfoMetadataFilterCreate(out handle); + if (ret != 0) + { + ApplicationManagerErrorFactory.ExceptionChecker(ret, handle, "InstalledApplicationMetadataFilter creation failed."); + } + foreach (var item in filter) + { + ret = Interop.ApplicationManager.AppInfoMetadataFilterAdd(handle, item.Key, item.Value); + if (ret != 0) + { + Interop.ApplicationManager.AppInfoMetadataFilterDestroy(handle); + ApplicationManagerErrorFactory.ExceptionChecker(ret, handle, "InstalledApplicationMetadataFilter item add failed."); + } + } + return handle; + } } } diff --git a/Tizen.Applications/Tizen.Applications.Managers/InstalledApplicationFilter.cs b/Tizen.Applications/Tizen.Applications.Managers/InstalledApplicationFilter.cs index 8f54666..0f43c39 100755 --- a/Tizen.Applications/Tizen.Applications.Managers/InstalledApplicationFilter.cs +++ b/Tizen.Applications/Tizen.Applications.Managers/InstalledApplicationFilter.cs @@ -6,6 +6,7 @@ /// it only in accordance with the terms of the license agreement /// you entered into with Samsung. + using System; using System.Collections.Generic; @@ -14,7 +15,7 @@ namespace Tizen.Applications.Managers /// /// InstalledApplicationFilter class. This class is a parameter of InstallerApplicationAppsAsync method. /// - public class InstalledApplicationFilter : IDisposable + public class InstalledApplicationFilter { /// /// Keys class. This class is a possible key to use in the InstalledApplicationFilter. @@ -43,77 +44,10 @@ namespace Tizen.Applications.Managers public const string TaskManage = "PACKAGE_INFO_PROP_APP_TASKMANAGE"; } - private IntPtr _handle; - private bool disposed = false; - - private const string LogTag = "Tizen.Applications.Managers"; - private int ret = 0; - - public InstalledApplicationFilter(IDictionary filter) - { - ret = Interop.ApplicationManager.AppInfoFilterCreate(out _handle); - if (ret != 0) - { - ApplicationManagerErrorFactory.ExceptionChecker(ret, _handle, "InstalledApplicationFilter creation failed."); - } - foreach (var item in filter) - { - if ((item.Key == Keys.Id) || (item.Key == Keys.Type) || (item.Key == Keys.Category)) - { - ret = Interop.ApplicationManager.AppInfoFilterAddString(_handle, item.Key, item.Value); - if (ret != 0) - { - ApplicationManagerErrorFactory.ExceptionChecker(ret, _handle, "InstalledApplicationFilter item add failed."); - } - } - else if ((item.Key == Keys.NoDisplay) || (item.Key == Keys.TaskManage)) - { - ret = Interop.ApplicationManager.AppInfoFilterAddBool(_handle, item.Key, Convert.ToBoolean(item.Value)); - if (ret != 0) - { - ApplicationManagerErrorFactory.ExceptionChecker(ret, _handle, "InstalledApplicationFilter item add failed."); - } - } - else - { - Log.Warn(LogTag, "InstalledApplicationFilter is NOT supported " + item.Key + " key."); - } - } - } - - internal IntPtr Handle - { - get - { - return _handle; - } - } - - ~InstalledApplicationFilter() - { - Dispose(false); - } - - public void Dispose() + public IDictionary Filter { - Dispose(true); - GC.SuppressFinalize(this); - } - - private void Dispose(bool disposing) - { - if (disposed) - return; - if (disposing) - { - // to be used if there are any other disposable objects - } - if (_handle != IntPtr.Zero) - { - Interop.ApplicationManager.AppInfoFilterDestroy(_handle); - } - disposed = true; + get; + set; } } - } diff --git a/Tizen.Applications/Tizen.Applications.Managers/InstalledApplicationMetadataFilter.cs b/Tizen.Applications/Tizen.Applications.Managers/InstalledApplicationMetadataFilter.cs index c75158f..59093d8 100755 --- a/Tizen.Applications/Tizen.Applications.Managers/InstalledApplicationMetadataFilter.cs +++ b/Tizen.Applications/Tizen.Applications.Managers/InstalledApplicationMetadataFilter.cs @@ -6,6 +6,7 @@ /// it only in accordance with the terms of the license agreement /// you entered into with Samsung. + using System; using System.Collections.Generic; @@ -14,63 +15,12 @@ namespace Tizen.Applications.Managers /// /// InstalledApplicationMetadataFilter class. This class is a parameter of InstallerApplicationAppsAsync method. /// - public class InstalledApplicationMetadataFilter : IDisposable + public class InstalledApplicationMetadataFilter { - private IntPtr _handle; - private bool disposed = false; - - private const string LogTag = "Tizen.Applications.Managers"; - private int ret = 0; - - public InstalledApplicationMetadataFilter(IDictionary filter) - { - ret = Interop.ApplicationManager.AppInfoMetadataFilterCreate(out _handle); - if (ret != 0) - { - ApplicationManagerErrorFactory.ExceptionChecker(ret, _handle, "InstalledApplicationMetadataFilter creation failed."); - } - foreach (var item in filter) - { - ret = Interop.ApplicationManager.AppInfoMetadataFilterAdd(_handle, item.Key, item.Value); - if (ret != 0) - { - ApplicationManagerErrorFactory.ExceptionChecker(ret, _handle, "InstalledApplicationMetadataFilter item add failed."); - } - } - } - - internal IntPtr Handle - { - get - { - return _handle; - } - } - - ~InstalledApplicationMetadataFilter() - { - Dispose(false); - } - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - private void Dispose(bool disposing) + public IDictionary Filter { - if (disposed) - return; - if (disposing) - { - // to be used if there are any other disposable objects - } - if (_handle != IntPtr.Zero) - { - Interop.ApplicationManager.AppInfoMetadataFilterDestroy(_handle); - } - disposed = true; + get; + set; } } } -- 2.7.4