Changes to Gain/Loss and add better handling for device type (Phone vs Tablet)
This commit is contained in:
@@ -53,6 +53,14 @@ namespace Navigator.Core
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public double ScreenDensity
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return DeviceScreenInfo.GetScreenDimensions().Density;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected bool SetProperty<T>(ref T backingStore, T value,[CallerMemberName] string propertyName = "",Action onChanged = null)
|
protected bool SetProperty<T>(ref T backingStore, T value,[CallerMemberName] string propertyName = "",Action onChanged = null)
|
||||||
{
|
{
|
||||||
if (EqualityComparer<T>.Default.Equals(backingStore, value))return false;
|
if (EqualityComparer<T>.Default.Equals(backingStore, value))return false;
|
||||||
|
|||||||
@@ -1,17 +1,41 @@
|
|||||||
using Xamarin.Essentials;
|
using System;
|
||||||
|
using Xamarin.Essentials;
|
||||||
|
|
||||||
namespace Navigator.Services
|
namespace Navigator.Services
|
||||||
{
|
{
|
||||||
public class DeviceScreenInfo : IDeviceScreenInfo
|
public class DeviceScreenInfo : IDeviceScreenInfo
|
||||||
{
|
{
|
||||||
public (double Width, double Height) GetScreenDimensions()
|
public (double Width, double Height, double Density) GetScreenDimensions()
|
||||||
{
|
{
|
||||||
return (DeviceDisplay.MainDisplayInfo.Width, DeviceDisplay.MainDisplayInfo.Height);
|
return (DeviceDisplay.MainDisplayInfo.Width, DeviceDisplay.MainDisplayInfo.Height, DeviceDisplay.MainDisplayInfo.Density);
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsDeviceTablet()
|
public bool IsDeviceTablet()
|
||||||
{
|
{
|
||||||
return DeviceInfo.Idiom.Equals(DeviceIdiom.Tablet);
|
// return DeviceInfo.Idiom.Equals(DeviceIdiom.Tablet); // Idiom not working
|
||||||
|
// return GetDiagonalScreenSize()<=8.0?true:false; // Diagonal not working
|
||||||
|
return DeviceDisplay.MainDisplayInfo.Density<=2.00?true:false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get android device default orientation diagonal screen size
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>Return diagonal screen size in inches</returns>
|
||||||
|
//private double GetDiagonalScreenSize()
|
||||||
|
//{
|
||||||
|
// double width = DeviceDisplay.MainDisplayInfo.Width;
|
||||||
|
// double height = DeviceDisplay.MainDisplayInfo.Height;
|
||||||
|
// double density = DeviceDisplay.MainDisplayInfo.Density*100.00;
|
||||||
|
// double sizeDiagonal=0.00;
|
||||||
|
|
||||||
|
// height/=density;
|
||||||
|
// height=Math.Pow(height, 2.00);
|
||||||
|
|
||||||
|
// width/=density;
|
||||||
|
// width=Math.Pow(width, 2.00);
|
||||||
|
|
||||||
|
// sizeDiagonal = Math.Sqrt(width + height);
|
||||||
|
// return sizeDiagonal;
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ namespace Navigator.Services
|
|||||||
{
|
{
|
||||||
public interface IDeviceScreenInfo
|
public interface IDeviceScreenInfo
|
||||||
{
|
{
|
||||||
(double Width, double Height) GetScreenDimensions();
|
(double Width, double Height, double Density) GetScreenDimensions();
|
||||||
|
|
||||||
bool IsDeviceTablet();
|
bool IsDeviceTablet();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ namespace Navigator.ViewModels
|
|||||||
{
|
{
|
||||||
Title = "About";
|
Title = "About";
|
||||||
Message=MarketDataServiceClient.GetInstance().GetBaseUri();
|
Message=MarketDataServiceClient.GetInstance().GetBaseUri();
|
||||||
|
|
||||||
Status="";
|
Status="";
|
||||||
PropertyChanged+=OnViewModelPropertyChanged;
|
PropertyChanged+=OnViewModelPropertyChanged;
|
||||||
}
|
}
|
||||||
@@ -106,6 +107,18 @@ namespace Navigator.ViewModels
|
|||||||
set{SetProperty(ref status,value);}
|
set{SetProperty(ref status,value);}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String Date
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
DateTime latestPricingDate = Utility.Epoch;
|
||||||
|
ServiceResult serviceResult = MarketDataServiceClient.GetInstance().GetLatestPricingDate();
|
||||||
|
if(serviceResult.Success)latestPricingDate=(DateTime)serviceResult.ContextSpecificResult;
|
||||||
|
if(Utility.IsEpoch(latestPricingDate))return "Latest Pricing Date: ---";
|
||||||
|
return "Latest Pricing Date: "+latestPricingDate.ToShortDateString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public String ScreenDimensions
|
public String ScreenDimensions
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -115,6 +128,8 @@ namespace Navigator.ViewModels
|
|||||||
sb.Append(Utility.FormatNumber(ScreenWidth,0));
|
sb.Append(Utility.FormatNumber(ScreenWidth,0));
|
||||||
sb.Append("x");
|
sb.Append("x");
|
||||||
sb.Append(Utility.FormatNumber(ScreenHeight,0));
|
sb.Append(Utility.FormatNumber(ScreenHeight,0));
|
||||||
|
sb.Append("x");
|
||||||
|
sb.Append(Utility.FormatNumber(ScreenDensity,0));
|
||||||
sb.Append(")");
|
sb.Append(")");
|
||||||
sb.Append(IsDeviceTablet?"Tablet":"Phone");
|
sb.Append(IsDeviceTablet?"Tablet":"Phone");
|
||||||
return sb.ToString();
|
return sb.ToString();
|
||||||
|
|||||||
@@ -56,25 +56,27 @@ namespace Navigator.ViewModels
|
|||||||
if(!String.IsNullOrEmpty(listViewSelectedItem))
|
if(!String.IsNullOrEmpty(listViewSelectedItem))
|
||||||
{
|
{
|
||||||
ServiceResult serviceResult=null;
|
ServiceResult serviceResult=null;
|
||||||
if("ALL".Equals(listViewSelectedItem))serviceResult=MarketDataServiceClient.GetInstance().GetGainLossDetails(DateTime.Now);
|
|
||||||
else serviceResult=MarketDataServiceClient.GetInstance().GetGainLossDetails(DateTime.Now,listViewSelectedItem);
|
|
||||||
|
|
||||||
|
serviceResult = MarketDataServiceClient.GetInstance().GetLatestPricingDate();
|
||||||
if(serviceResult.Success)
|
if(serviceResult.Success)
|
||||||
{
|
{
|
||||||
List<GainLossSummaryItemDetail> gainLossSummaryItems=(List<GainLossSummaryItemDetail>)serviceResult.ContextSpecificResult;
|
DateTime currentDate = (DateTime)serviceResult.ContextSpecificResult;
|
||||||
if(null!=gainLossSummaryItems)
|
if("ALL".Equals(listViewSelectedItem))serviceResult=MarketDataServiceClient.GetInstance().GetGainLossDetails(currentDate);
|
||||||
|
else serviceResult=MarketDataServiceClient.GetInstance().GetGainLossDetails(currentDate,listViewSelectedItem);
|
||||||
|
|
||||||
|
if(serviceResult.Success)
|
||||||
{
|
{
|
||||||
foreach(GainLossSummaryItemDetail gainLossSummaryItem in gainLossSummaryItems)
|
List<GainLossSummaryItemDetail> gainLossSummaryItems=(List<GainLossSummaryItemDetail>)serviceResult.ContextSpecificResult;
|
||||||
|
if(null!=gainLossSummaryItems)
|
||||||
{
|
{
|
||||||
if(!String.IsNullOrEmpty(gainLossSummaryItem.CompanyName)&&gainLossSummaryItem.CompanyName.Length>30)gainLossSummaryItem.CompanyName=gainLossSummaryItem.CompanyName.Substring(0,30)+"...";
|
foreach(GainLossSummaryItemDetail gainLossSummaryItem in gainLossSummaryItems)
|
||||||
|
{
|
||||||
|
if(!String.IsNullOrEmpty(gainLossSummaryItem.CompanyName)&&gainLossSummaryItem.CompanyName.Length>30)gainLossSummaryItem.CompanyName=gainLossSummaryItem.CompanyName.Substring(0,30)+"...";
|
||||||
|
}
|
||||||
|
GainLossSummary=new ObservableCollection<GainLossSummaryItemDetail>(gainLossSummaryItems);
|
||||||
}
|
}
|
||||||
GainLossSummary=new ObservableCollection<GainLossSummaryItemDetail>(gainLossSummaryItems);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//else
|
|
||||||
//{
|
|
||||||
// Debug.WriteLine(serviceResult.Message);
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
@@ -118,7 +120,6 @@ namespace Navigator.ViewModels
|
|||||||
List<String> accounts = (List<String>)serviceResult.ContextSpecificResult;
|
List<String> accounts = (List<String>)serviceResult.ContextSpecificResult;
|
||||||
accounts.Insert(0, "ALL");
|
accounts.Insert(0, "ALL");
|
||||||
Accounts = new ObservableCollection<string>(accounts);
|
Accounts = new ObservableCollection<string>(accounts);
|
||||||
// ListViewSelectedItem="ALL";
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
workerTask.ContinueWith((continuation)=>
|
workerTask.ContinueWith((continuation)=>
|
||||||
@@ -173,7 +174,6 @@ namespace Navigator.ViewModels
|
|||||||
refreshCommand=new RelayCommand(param=>
|
refreshCommand=new RelayCommand(param=>
|
||||||
{
|
{
|
||||||
HandleListViewSelectedItem();
|
HandleListViewSelectedItem();
|
||||||
// IsRefreshing=false;
|
|
||||||
},param=>{return !IsRefreshing;});
|
},param=>{return !IsRefreshing;});
|
||||||
}
|
}
|
||||||
return refreshCommand;
|
return refreshCommand;
|
||||||
|
|||||||
@@ -74,6 +74,7 @@
|
|||||||
</Button>
|
</Button>
|
||||||
<Label Text="{Binding Status,Mode=TwoWay}" />
|
<Label Text="{Binding Status,Mode=TwoWay}" />
|
||||||
<Label Text="{Binding ScreenDimensions, Mode=OneWay}"/>
|
<Label Text="{Binding ScreenDimensions, Mode=OneWay}"/>
|
||||||
|
<Label Text="{Binding Date, Mode=OneWay}"/>
|
||||||
</StackLayout>
|
</StackLayout>
|
||||||
</StackLayout>
|
</StackLayout>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
|
|||||||
Reference in New Issue
Block a user