/// <summary> /// Initializes the EthereumTransactionManager by initializing all collections and adding the proper methods to the events needed. /// </summary> /// <param name="disposableComponentManager"> The active DisposableComponentManager. </param> /// <param name="periodicUpdateManager"> The PeriodicUpdateManager to use when periodically checking for new transactions. </param> /// <param name="updateManager"> The UpdateManager to use when getting the transactions for each asset. </param> /// <param name="userWalletManager"> The active UserWalletManager. </param> /// <param name="apiService"> The active EtherscanApiService. </param> /// <param name="tradableAssetManager"> The active TradableAssetManager. </param> public EthereumTransactionManager( DisposableComponentManager disposableComponentManager, PeriodicUpdateManager periodicUpdateManager, UpdateManager updateManager, TradableAssetManager tradableAssetManager, UserWalletManager userWalletManager, EtherscanApiService apiService) { tradableAssetManager.OnTradableAssetAdded += AddAssetToScrape; OptimizedScrollview.OnOptimizedScrollviewInitialized += optimizedScrollview => { if (optimizedScrollview.scrollviewKey.Equals("asset_scrollview")) { scrollview = optimizedScrollview; scrollview.OnVisibleItemsChanged += OnVisibleAssetsChanged; periodicUpdateManager.AddPeriodicUpdater(this); } }; this.tradableAssetManager = tradableAssetManager; this.userWalletManager = userWalletManager; this.apiService = apiService; disposableComponentManager.AddDisposable(this); updateManager.AddUpdater(this); }
/// <summary> /// Adds a asset button to the list of asset buttons visible. /// </summary> /// <param name="tradableAsset"> The TokenContract which will be assigned to this button. </param> private void AddAssetButton(TradableAsset tradableAsset) { ITradableAssetButton assetButton; if (tradableAsset is EtherAsset) { assetButton = etherAssetButtonFactory.Create().SetButtonInfo(tradableAsset); EnableNewTokenButton(assetButton); } else { assetButton = erc20TokenButtonFactory.Create().SetButtonInfo(tradableAsset); } assetButtons.Add(assetButton); SortButtons(); OptimizedScrollview.GetScrollview("asset_scrollview")?.Refresh(); OnTradableAssetButtonCreated?.Invoke(assetButton); }
/// <summary> /// Resets the value of the scroll bar once an asset changes. /// Also refreshes the scrollview. /// </summary> private void RefreshScrollBar() { settings.scrollBar.value = 1; OptimizedScrollview.GetScrollview("transactions_scrollview").Refresh(); }