mirror of
				https://github.com/Kopano-dev/kopano-ol-extension.git
				synced 2023-10-10 11:37:40 +00:00 
			
		
		
		
	Cleaned up more TODOs
This commit is contained in:
		@@ -327,7 +327,7 @@ namespace Acacia.Features.GAB
 | 
			
		||||
                return null;
 | 
			
		||||
 | 
			
		||||
            // Scan a few of the newest items, in case there is some junk in the ZPush folder
 | 
			
		||||
            // TODO: this shouldn't happen in production.
 | 
			
		||||
            // This shouldn't happen in production, but check anyway.
 | 
			
		||||
            int i = 0;
 | 
			
		||||
            foreach(IItem item in Folder.Items.Sort("LastModificationTime", true))
 | 
			
		||||
            {
 | 
			
		||||
 
 | 
			
		||||
@@ -33,7 +33,6 @@ namespace Acacia.Stubs.OutlookWrappers
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // TODO: it would be nice if this could return IAddressBook
 | 
			
		||||
        public override IFolder Clone()
 | 
			
		||||
        {
 | 
			
		||||
            return new AddressBookWrapper(CloneComObject());
 | 
			
		||||
 
 | 
			
		||||
@@ -343,10 +343,8 @@ namespace Acacia.Stubs.OutlookWrappers
 | 
			
		||||
            {
 | 
			
		||||
                if (_beforeItemMove != null)
 | 
			
		||||
                {
 | 
			
		||||
                    // TODO: there is a tiny potential for a leak here, if there is an exception in the wrap methods. Should
 | 
			
		||||
                    //       only happen if Outlook sends the wrong type object though
 | 
			
		||||
                    using (IItem itemWrapped = Mapping.Wrap<IItem>(item))
 | 
			
		||||
                    using (IFolder targetWrapped = Mapping.Wrap<IFolder>(target))
 | 
			
		||||
                    using (IItem itemWrapped = Mapping.Wrap<IItem>(item, false))
 | 
			
		||||
                    using (IFolder targetWrapped = Mapping.Wrap<IFolder>(target, false))
 | 
			
		||||
                    {
 | 
			
		||||
                        if (itemWrapped != null && targetWrapped != null)
 | 
			
		||||
                        {
 | 
			
		||||
@@ -354,11 +352,6 @@ namespace Acacia.Stubs.OutlookWrappers
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
                    // TODO: check this
 | 
			
		||||
                    ComRelease.Release(item, target);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            catch(System.Exception e)
 | 
			
		||||
            {
 | 
			
		||||
 
 | 
			
		||||
@@ -105,7 +105,7 @@ namespace Acacia.Stubs.OutlookWrappers
 | 
			
		||||
            if (wrapped is Type)
 | 
			
		||||
                return (Type)wrapped;
 | 
			
		||||
 | 
			
		||||
            // TODO: release if required
 | 
			
		||||
            // Release if required
 | 
			
		||||
            if (wrapped != null)
 | 
			
		||||
                wrapped.Dispose();
 | 
			
		||||
            return default(Type);
 | 
			
		||||
 
 | 
			
		||||
@@ -124,7 +124,7 @@ namespace Acacia.Stubs.OutlookWrappers
 | 
			
		||||
                    return null;
 | 
			
		||||
                return val;
 | 
			
		||||
            }
 | 
			
		||||
            catch(System.Exception) { return null; } // TODO: is this fine everywhere?
 | 
			
		||||
            catch(System.Exception) { return null; }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void SetProperty(string property, object value)
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,6 @@ namespace Acacia.Stubs.OutlookWrappers
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                return _item.Address;
 | 
			
		||||
                // TODO:? return _item.AddressEntry.Address
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -49,17 +49,18 @@ namespace Acacia.Stubs.OutlookWrappers
 | 
			
		||||
        public void Start()
 | 
			
		||||
        {
 | 
			
		||||
            // Check existing stores
 | 
			
		||||
            // TODO: do this in background?
 | 
			
		||||
            foreach(NSOutlook.Store store in _item)
 | 
			
		||||
            {
 | 
			
		||||
                Tasks.Task(null, "AddStore", () =>
 | 
			
		||||
                {
 | 
			
		||||
                    StoreAdded(store);
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // Register for new stores
 | 
			
		||||
            // The store remove event is not sent, so don't bother registering for that
 | 
			
		||||
            _item.StoreAdd += StoreAdded;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            if (GlobalOptions.INSTANCE.AccountTimer)
 | 
			
		||||
            {
 | 
			
		||||
                // Set up timer to check for removed accounts
 | 
			
		||||
@@ -70,18 +71,36 @@ namespace Acacia.Stubs.OutlookWrappers
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// Event handler for Stores.StoreAdded event.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        private void StoreAdded(NSOutlook.Store s)
 | 
			
		||||
        private void Event_StoreAdded(NSOutlook.Store _)
 | 
			
		||||
        {
 | 
			
		||||
            IStore store = null;
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                // Accessing the store object causes random crashes, simply iterate to find new stores
 | 
			
		||||
                Logger.Instance.Trace(this, "StoreAdded: {0}", s.StoreID);
 | 
			
		||||
                Logger.Instance.Trace(this, "StoreAdded");
 | 
			
		||||
                foreach (NSOutlook.Store rawStore in _item)
 | 
			
		||||
                {
 | 
			
		||||
                    if (!_accountsByStoreId.ContainsKey(rawStore.StoreID))
 | 
			
		||||
                    {
 | 
			
		||||
                        store = new StoreWrapper(rawStore);
 | 
			
		||||
                        StoreAdded(rawStore);
 | 
			
		||||
                    }
 | 
			
		||||
                    else ComRelease.Release(rawStore);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            catch (System.Exception e)
 | 
			
		||||
            {
 | 
			
		||||
                Logger.Instance.Error(this, "Event_StoreAdded Exception: {0}", e);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// Performs the actions required to handle a new store.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        /// <param name="rawStore">The new store. Ownership is transferred</param>
 | 
			
		||||
        private void StoreAdded(NSOutlook.Store rawStore)
 | 
			
		||||
        {
 | 
			
		||||
            IStore store = new StoreWrapper(rawStore);
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                Logger.Instance.Trace(this, "New store: {0}", rawStore.DisplayName);
 | 
			
		||||
                AccountWrapper account = TryCreateFromRegistry(store);
 | 
			
		||||
                if (account == null)
 | 
			
		||||
@@ -89,23 +108,22 @@ namespace Acacia.Stubs.OutlookWrappers
 | 
			
		||||
                    // Add it to the cache so it is not evaluated again.
 | 
			
		||||
                    _accountsByStoreId.Add(store.StoreID, null);
 | 
			
		||||
                    Logger.Instance.Trace(this, "Not an account store: {0}", store.DisplayName);
 | 
			
		||||
                            store.Dispose();
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
                            // Account has taken ownership of the store
 | 
			
		||||
                    Logger.Instance.Trace(this, "New account store: {0}: {1}", store.DisplayName, account);
 | 
			
		||||
                    // Account has taken ownership of the store
 | 
			
		||||
                    store = null;
 | 
			
		||||
                    OnAccountDiscovered(account);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
                    else ComRelease.Release(rawStore);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            catch (System.Exception e)
 | 
			
		||||
            {
 | 
			
		||||
                Logger.Instance.Error(this, "StoreAdded Exception: {0}", e);
 | 
			
		||||
                if (store != null)
 | 
			
		||||
                    store.Dispose();
 | 
			
		||||
                Logger.Instance.Error(this, "Event_StoreAdded Exception: {0}", e);
 | 
			
		||||
            }
 | 
			
		||||
            finally
 | 
			
		||||
            {
 | 
			
		||||
                store?.Dispose();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user