Can now somewhat reliably join a party
This commit is contained in:
@ -20,11 +20,6 @@
|
||||
VerticalOptions="Center"/>
|
||||
<Entry
|
||||
x:Name="HostnameEntry"/>
|
||||
<Label
|
||||
Text="Port"
|
||||
VerticalOptions="Center"/>
|
||||
<Entry
|
||||
x:Name="PortEntry"/>
|
||||
<Button
|
||||
HorizontalOptions="Center"
|
||||
x:Name="buttonHost"
|
||||
|
@ -31,10 +31,6 @@ namespace Aurora.Design.Components.HostSelector
|
||||
{
|
||||
Hostname = e.NewTextValue;
|
||||
};
|
||||
PortEntry.TextChanged += (sender, e) =>
|
||||
{
|
||||
Port = e.NewTextValue;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@ -119,33 +115,6 @@ namespace Aurora.Design.Components.HostSelector
|
||||
|
||||
#endregion Hostname property
|
||||
|
||||
#region Port property
|
||||
public static readonly BindableProperty PortProperty =
|
||||
BindableProperty.Create(propertyName: "Port",
|
||||
returnType: typeof(string),
|
||||
declaringType: typeof(HostSelector),
|
||||
defaultBindingMode: BindingMode.TwoWay,
|
||||
propertyChanged: OnPortChanged);
|
||||
|
||||
public string Port
|
||||
{
|
||||
get { return (string)GetValue(PortProperty); }
|
||||
set { SetValue(PortProperty, value); }
|
||||
}
|
||||
|
||||
private static void OnPortChanged(BindableObject bindable, object oldValue, object newValue)
|
||||
{
|
||||
string newVal = newValue as string;
|
||||
HostSelector instance = bindable as HostSelector;
|
||||
if (instance.PortEntry.Text != newVal)
|
||||
{
|
||||
instance.PortEntry.Text = newVal;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endregion Port property
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -1,13 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Collections.Specialized;
|
||||
using Xamarin.Forms;
|
||||
using Aurora.Design.Components.HorizontalList;
|
||||
using Aurora.Models;
|
||||
using Aurora.Proto;
|
||||
|
||||
namespace Aurora.Design.Components.MemberList
|
||||
{
|
||||
public partial class MemberList : ContentView
|
||||
{
|
||||
private static ObservableCollection<PartyMember> _newSource;
|
||||
public MemberList()
|
||||
{
|
||||
InitializeComponent();
|
||||
@ -22,7 +23,7 @@ namespace Aurora.Design.Components.MemberList
|
||||
/// <returns></returns>
|
||||
public static readonly BindableProperty MembersProperty =
|
||||
BindableProperty.Create(propertyName: "Members",
|
||||
returnType: typeof(IEnumerable<PartyMember>),
|
||||
returnType: typeof(ObservableCollection<PartyMember>),
|
||||
declaringType: typeof(MemberList),
|
||||
defaultBindingMode: BindingMode.Default,
|
||||
propertyChanged: OnMembersChanged);
|
||||
@ -31,11 +32,11 @@ namespace Aurora.Design.Components.MemberList
|
||||
/// Backing property for MembersProperty
|
||||
/// </summary>
|
||||
/// <value></value>
|
||||
public IEnumerable<PartyMember> Members
|
||||
public ObservableCollection<PartyMember> Members
|
||||
{
|
||||
get
|
||||
{
|
||||
return (IEnumerable<PartyMember>)GetValue(MembersProperty);
|
||||
return (ObservableCollection<PartyMember>)GetValue(MembersProperty);
|
||||
}
|
||||
set
|
||||
{
|
||||
@ -55,8 +56,10 @@ namespace Aurora.Design.Components.MemberList
|
||||
var membersList = control.FindByName("MembersHorizontalList") as HorizontalList.HorizontalList;
|
||||
if (membersList != null)
|
||||
{
|
||||
membersList.ItemsSource = newValue as IEnumerable<PartyMember>;
|
||||
_newSource = newValue as ObservableCollection<PartyMember>;
|
||||
membersList.ItemsSource = newValue as ObservableCollection<PartyMember>;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -27,7 +27,6 @@
|
||||
<hs:HostSelector
|
||||
Grid.Row="0"
|
||||
Hostname="{Binding Hostname}"
|
||||
Port="{Binding Port}"
|
||||
HostCommand="{Binding HostCommand}"
|
||||
JoinCommand="{Binding JoinCommand}"
|
||||
IsVisible="{Binding IsSelectingHost}"/>
|
||||
|
@ -1,9 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.ObjectModel;
|
||||
using Aurora.Executors;
|
||||
using Aurora.Design.Components.HostSelector;
|
||||
using Aurora.Services;
|
||||
using Aurora.Models;
|
||||
using Aurora.Proto;
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace Aurora.Design.Views.Party
|
||||
@ -23,8 +21,6 @@ namespace Aurora.Design.Views.Party
|
||||
|
||||
private string _hostname;
|
||||
|
||||
private string _port;
|
||||
|
||||
private ObservableCollection<PartyMember> _members;
|
||||
|
||||
|
||||
@ -66,12 +62,6 @@ namespace Aurora.Design.Views.Party
|
||||
set { SetProperty(ref _hostname, value); }
|
||||
}
|
||||
|
||||
public string Port
|
||||
{
|
||||
get { return _port; }
|
||||
set { SetProperty(ref _port, value); }
|
||||
}
|
||||
|
||||
#endregion Properties
|
||||
|
||||
|
||||
@ -86,8 +76,10 @@ namespace Aurora.Design.Views.Party
|
||||
private void OnJoinExecute()
|
||||
{
|
||||
_executor = BaseExecutor.CreateExecutor<ClientExecutor>();
|
||||
Int32.TryParse(this.Port, out int intPort);
|
||||
_executor.Initialize();
|
||||
_executor.Connect(this.Hostname);
|
||||
|
||||
SetUpMembers();
|
||||
|
||||
State(PartyState.Connecting);
|
||||
}
|
||||
|
||||
@ -98,24 +90,12 @@ namespace Aurora.Design.Views.Party
|
||||
|
||||
private void OnHostExecute()
|
||||
{
|
||||
Int32.TryParse(this.Port, out int intPort);
|
||||
//Init gRPC server
|
||||
ServerService.Instance.Initialize(this.Hostname, intPort);
|
||||
|
||||
//Instantiate and initialize all executors
|
||||
_executor = BaseExecutor.CreateExecutor<HostExecutor>();
|
||||
_executor.Initialize();
|
||||
_executor.Connect(this.Hostname);
|
||||
|
||||
//start gRPC server
|
||||
|
||||
ServerService.Instance.Start();
|
||||
|
||||
_members = _executor.PartyMembers;
|
||||
OnPropertyChanged("Members");
|
||||
_executor.PartyMembers.CollectionChanged += (sender, e) =>
|
||||
{
|
||||
OnPropertyChanged("Members");
|
||||
};
|
||||
SetUpMembers();
|
||||
|
||||
//Change state
|
||||
State(PartyState.Connecting);
|
||||
@ -129,5 +109,18 @@ namespace Aurora.Design.Views.Party
|
||||
|
||||
#endregion Commands
|
||||
|
||||
private void SetUpMembers()
|
||||
{
|
||||
_members = _executor.PartyMembers;
|
||||
OnPropertyChanged("Members");
|
||||
_executor.PartyMembers.CollectionChanged += (sender, e) =>
|
||||
{
|
||||
if (_executor != null)
|
||||
{
|
||||
_members = _executor.PartyMembers;
|
||||
}
|
||||
OnPropertyChanged("Members");
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
@ -9,10 +9,19 @@
|
||||
<StackLayout
|
||||
Orientation="Horizontal">
|
||||
<Label
|
||||
VerticalOptions="Center"
|
||||
Text="Username"/>
|
||||
<Entry
|
||||
Text="{Binding Username}"/>
|
||||
</StackLayout>
|
||||
<StackLayout
|
||||
Orientation="Horizontal">
|
||||
<Label
|
||||
VerticalOptions="Center"
|
||||
Text="Default Port"/>
|
||||
<Entry
|
||||
Text="{Binding Port}"/>
|
||||
</StackLayout>
|
||||
</StackLayout>
|
||||
</ContentView.Content>
|
||||
</ContentView>
|
@ -19,5 +19,16 @@ namespace Aurora.Design.Views.Profile
|
||||
OnPropertyChanged("Username");
|
||||
}
|
||||
}
|
||||
|
||||
public string Port
|
||||
{
|
||||
get { return SettingsService.Instance.DefaultPort.ToString(); }
|
||||
set
|
||||
{
|
||||
Int32.TryParse(value, out int portNum);
|
||||
SettingsService.Instance.DefaultPort = portNum;
|
||||
OnPropertyChanged("Port");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user