mirror of
https://github.com/mgroves/MonodroidStockPortfolio.git
synced 2025-04-04 17:00:21 -09:00
refactored MainActivity to utilize itemId in listview instead of querying with portfolio name for context menu...still not happy with this, but I did learn about .NET's lack of Anonymous Inner Classes, so that's something
This commit is contained in:
parent
e145282a52
commit
c94d7e36cb
9 changed files with 34 additions and 30 deletions
MonoStockPortfolio.Entities
MonoStockPortfolio
|
@ -1,7 +1,3 @@
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Runtime.Serialization;
|
|
||||||
|
|
||||||
namespace MonoStockPortfolio.Entities
|
namespace MonoStockPortfolio.Entities
|
||||||
{
|
{
|
||||||
public class Portfolio
|
public class Portfolio
|
||||||
|
@ -11,11 +7,5 @@ namespace MonoStockPortfolio.Entities
|
||||||
|
|
||||||
public long? ID { get; private set; }
|
public long? ID { get; private set; }
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
||||||
public void GetObjectData(SerializationInfo info, StreamingContext context)
|
|
||||||
{
|
|
||||||
info.AddValue("ID", this.ID);
|
|
||||||
info.AddValue("Name", this.Name);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -10,6 +10,5 @@
|
||||||
void EditPortfolio(int itemId);
|
void EditPortfolio(int itemId);
|
||||||
void GotoConfig();
|
void GotoConfig();
|
||||||
void ExitApplication();
|
void ExitApplication();
|
||||||
int GetPortfolioIdForContextMenu(string selectedPortfolioName);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,10 +1,11 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using MonoStockPortfolio.Entities;
|
||||||
|
|
||||||
namespace MonoStockPortfolio.Activites.MainScreen
|
namespace MonoStockPortfolio.Activites.MainScreen
|
||||||
{
|
{
|
||||||
public interface IMainView
|
public interface IMainView
|
||||||
{
|
{
|
||||||
void RefreshList(IList<string> portfolioNames);
|
void RefreshList(IList<Portfolio> portfolios);
|
||||||
void StartAddPortfolioActivity();
|
void StartAddPortfolioActivity();
|
||||||
void StartViewPortfolioActivity(long portfolioId);
|
void StartViewPortfolioActivity(long portfolioId);
|
||||||
void StartEditPortfolioActivity(int itemId);
|
void StartEditPortfolioActivity(int itemId);
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
using Android.App;
|
using Android.App;
|
||||||
using Android.Content;
|
using Android.Content;
|
||||||
using Android.OS;
|
using Android.OS;
|
||||||
|
@ -8,6 +9,7 @@ using Android.Widget;
|
||||||
using MonoStockPortfolio.Activites.ConfigScreen;
|
using MonoStockPortfolio.Activites.ConfigScreen;
|
||||||
using MonoStockPortfolio.Activites.EditPortfolioScreen;
|
using MonoStockPortfolio.Activites.EditPortfolioScreen;
|
||||||
using MonoStockPortfolio.Activites.PortfolioScreen;
|
using MonoStockPortfolio.Activites.PortfolioScreen;
|
||||||
|
using MonoStockPortfolio.Entities;
|
||||||
using MonoStockPortfolio.Framework;
|
using MonoStockPortfolio.Framework;
|
||||||
|
|
||||||
namespace MonoStockPortfolio.Activites.MainScreen
|
namespace MonoStockPortfolio.Activites.MainScreen
|
||||||
|
@ -33,9 +35,10 @@ namespace MonoStockPortfolio.Activites.MainScreen
|
||||||
|
|
||||||
#region IMainView implementation
|
#region IMainView implementation
|
||||||
|
|
||||||
public void RefreshList(IList<string> portfolioNames)
|
public void RefreshList(IList<Portfolio> portfolios)
|
||||||
{
|
{
|
||||||
var listAdapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, portfolioNames);
|
var portfolioLabels = portfolios.Select(p => p.Name).ToArray();
|
||||||
|
var listAdapter = new PortfolioArrayAdapter(this, Android.Resource.Layout.SimpleListItem1, portfolios, portfolioLabels);
|
||||||
PortfolioListView.Adapter = listAdapter;
|
PortfolioListView.Adapter = listAdapter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,9 +85,7 @@ namespace MonoStockPortfolio.Activites.MainScreen
|
||||||
base.OnCreateContextMenu(menu, v, menuInfo);
|
base.OnCreateContextMenu(menu, v, menuInfo);
|
||||||
|
|
||||||
var info = (AdapterView.AdapterContextMenuInfo)menuInfo;
|
var info = (AdapterView.AdapterContextMenuInfo)menuInfo;
|
||||||
var selectedPortfolioName = ((TextView)info.TargetView).Text.ToS();
|
var id = (int)info.Id;
|
||||||
|
|
||||||
var id = _presenter.GetPortfolioIdForContextMenu(selectedPortfolioName);
|
|
||||||
|
|
||||||
menu.SetHeaderTitle("Options".ToJ());
|
menu.SetHeaderTitle("Options".ToJ());
|
||||||
menu.Add(0, id, 1, "Rename".ToJ());
|
menu.Add(0, id, 1, "Rename".ToJ());
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Android.Runtime;
|
|
||||||
using MonoStockPortfolio.Core.PortfolioRepositories;
|
using MonoStockPortfolio.Core.PortfolioRepositories;
|
||||||
using System.Linq;
|
|
||||||
using MonoStockPortfolio.Entities;
|
using MonoStockPortfolio.Entities;
|
||||||
|
|
||||||
namespace MonoStockPortfolio.Activites.MainScreen
|
namespace MonoStockPortfolio.Activites.MainScreen
|
||||||
|
@ -35,8 +33,7 @@ namespace MonoStockPortfolio.Activites.MainScreen
|
||||||
public void RefreshPortfolioList()
|
public void RefreshPortfolioList()
|
||||||
{
|
{
|
||||||
_portfolios = null;
|
_portfolios = null;
|
||||||
var portfolioNames = Portfolios.Select(p => p.Name).ToList();
|
_currentView.RefreshList(Portfolios);
|
||||||
_currentView.RefreshList(portfolioNames);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddNewPortfolio()
|
public void AddNewPortfolio()
|
||||||
|
@ -68,12 +65,5 @@ namespace MonoStockPortfolio.Activites.MainScreen
|
||||||
{
|
{
|
||||||
_currentView.ExitApplication();
|
_currentView.ExitApplication();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int GetPortfolioIdForContextMenu(string selectedPortfolioName)
|
|
||||||
{
|
|
||||||
var selectedPortfolio = _repo.GetPortfolioByName(selectedPortfolioName);
|
|
||||||
var id = (int)(selectedPortfolio.ID ?? -1);
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Android.Content;
|
||||||
|
using Android.Widget;
|
||||||
|
using MonoStockPortfolio.Entities;
|
||||||
|
|
||||||
|
namespace MonoStockPortfolio.Activites.MainScreen
|
||||||
|
{
|
||||||
|
public class PortfolioArrayAdapter : ArrayAdapter<string>
|
||||||
|
{
|
||||||
|
private readonly IList<Portfolio> _results;
|
||||||
|
|
||||||
|
public PortfolioArrayAdapter(Context context, int resource, IList<Portfolio> results, IList<string> labels)
|
||||||
|
: base(context, resource, labels)
|
||||||
|
{
|
||||||
|
_results = results;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override long GetItemId(int position)
|
||||||
|
{
|
||||||
|
return _results[position].ID ?? -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -10,7 +10,7 @@ namespace MonoStockPortfolio.Activites.PortfolioScreen
|
||||||
{
|
{
|
||||||
public class PositionArrayAdapter : GenericArrayAdapter<PositionResultsViewModel>
|
public class PositionArrayAdapter : GenericArrayAdapter<PositionResultsViewModel>
|
||||||
{
|
{
|
||||||
private IEnumerable<StockDataItem> _configItems;
|
private readonly IEnumerable<StockDataItem> _configItems;
|
||||||
|
|
||||||
public PositionArrayAdapter(Context context, IEnumerable<PositionResultsViewModel> results, IEnumerable<StockDataItem> configItems)
|
public PositionArrayAdapter(Context context, IEnumerable<PositionResultsViewModel> results, IEnumerable<StockDataItem> configItems)
|
||||||
: base(context, results)
|
: base(context, results)
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Java.Lang;
|
using Java.Lang;
|
||||||
using StringBuilder = System.Text.StringBuilder;
|
|
||||||
|
|
||||||
namespace MonoStockPortfolio.Framework
|
namespace MonoStockPortfolio.Framework
|
||||||
{
|
{
|
||||||
|
|
|
@ -66,6 +66,7 @@
|
||||||
<Compile Include="Activites\EditPositionScreen\IEditPositionPresenter.cs" />
|
<Compile Include="Activites\EditPositionScreen\IEditPositionPresenter.cs" />
|
||||||
<Compile Include="Activites\EditPositionScreen\IEditPositionView.cs" />
|
<Compile Include="Activites\EditPositionScreen\IEditPositionView.cs" />
|
||||||
<Compile Include="Activites\EditPositionScreen\PositionInputModel.cs" />
|
<Compile Include="Activites\EditPositionScreen\PositionInputModel.cs" />
|
||||||
|
<Compile Include="Activites\MainScreen\PortfolioArrayAdapter.cs" />
|
||||||
<Compile Include="Framework\FormValidator.cs" />
|
<Compile Include="Framework\FormValidator.cs" />
|
||||||
<Compile Include="Activites\MainScreen\IMainPresenter.cs" />
|
<Compile Include="Activites\MainScreen\IMainPresenter.cs" />
|
||||||
<Compile Include="Activites\MainScreen\IMainView.cs" />
|
<Compile Include="Activites\MainScreen\IMainView.cs" />
|
||||||
|
|
Loading…
Add table
Reference in a new issue