diff --git a/Signal-Windows/ViewModels/AddContactPageViewModel.cs b/Signal-Windows/ViewModels/AddContactPageViewModel.cs index 1c76d67..dee27e9 100644 --- a/Signal-Windows/ViewModels/AddContactPageViewModel.cs +++ b/Signal-Windows/ViewModels/AddContactPageViewModel.cs @@ -126,7 +126,7 @@ internal async void PickButton_Click(object sender, RoutedEventArgs e) if (originalNumber[0] != '+') { // need a better way of determining the "default" country code here - var formattedPhoneNumber = PhoneNumberFormatter.formatE164("1", originalNumber); + var formattedPhoneNumber = PhoneNumberFormatter.FormatE164("1", originalNumber); if (string.IsNullOrEmpty(formattedPhoneNumber)) { ContactNumber = originalNumber; diff --git a/Signal-Windows/ViewModels/RegisterPageViewModel.cs b/Signal-Windows/ViewModels/RegisterPageViewModel.cs index 8b217ec..27352a3 100644 --- a/Signal-Windows/ViewModels/RegisterPageViewModel.cs +++ b/Signal-Windows/ViewModels/RegisterPageViewModel.cs @@ -12,13 +12,15 @@ using Windows.UI.Core; using libsignalservice.util; using Windows.UI.Popups; +using PhoneNumbers; namespace Signal_Windows.ViewModels { public class RegisterPageViewModel : ViewModelBase { public CancellationTokenSource CancelSource = new CancellationTokenSource(); - public IEnumerable CountriesList { get; set; } = CountryArrays.Names; + public List CountriesList { get; set; } = new List(250); + private List CountriesPrefixList { get; set; } = new List(250); public RegisterPage View { get; set; } public string FinalNumber { get; set; } private string _PhonePrefix { get; set; } @@ -35,12 +37,29 @@ public string PhonePrefix } } + public RegisterPageViewModel() + { + HashSet set = PhoneNumberUtil.GetInstance().GetSupportedRegions(); + var phoneUtil = PhoneNumberUtil.GetInstance(); + foreach (var region in set) + { + if(region != "AC" && region != "SX" && region != "CW" && region != "BQ" && region != "TA" && region != "SS") + { + string s = new Locale("en", region).GetDisplayCountry("en"); + int prefix = phoneUtil.GetCountryCodeForRegion(region); + CountriesList.Add(s); + CountriesPrefixList.Add(prefix); + } + } + } + internal void RegisterPage_Loaded() { var c = Windows.System.UserProfile.GlobalizationPreferences.HomeGeographicRegion; - for (int i = 0; i < CountryArrays.Abbreviations.Length; i++) + for (int i=0;i 0 && number[0] == '+') { FinalNumber = number; @@ -104,8 +123,10 @@ private void BackButton_Click(object sender, BackRequestedEventArgs e) public void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { - int index = (sender as ComboBox).SelectedIndex; - PhonePrefix = Utils.GetCountryCode(CountryArrays.Abbreviations[index]); + ComboBox dropdown = (ComboBox)sender; + string region = (string)dropdown.SelectedItem; + int prefix = CountriesPrefixList[dropdown.SelectedIndex]; + PhonePrefix = "+" + prefix; } } } \ No newline at end of file diff --git a/Signal-Windows/project.json b/Signal-Windows/project.json index 983cb69..3dcdf26 100644 --- a/Signal-Windows/project.json +++ b/Signal-Windows/project.json @@ -1,6 +1,6 @@ { "dependencies": { - "libsignal-service-dotnet": "1.5.6", + "libsignal-service-dotnet": "1.5.6.1", "Microsoft.EntityFrameworkCore": "1.1.2", "Microsoft.EntityFrameworkCore.Design": "1.1.2", "Microsoft.EntityFrameworkCore.Sqlite": "1.1.2",