diff --git a/src/TravelMonkey.Android/Resources/Resource.designer.cs b/src/TravelMonkey.Android/Resources/Resource.designer.cs
index 5e6cbf4..4eedfe7 100644
--- a/src/TravelMonkey.Android/Resources/Resource.designer.cs
+++ b/src/TravelMonkey.Android/Resources/Resource.designer.cs
@@ -1,10 +1,11 @@
#pragma warning disable 1591
//------------------------------------------------------------------------------
//
-// This code was generated by a tool.
+// Este código fue generado por una herramienta.
+// Versión de runtime:4.0.30319.42000
//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
+// Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si
+// se vuelve a generar el código.
//
//------------------------------------------------------------------------------
diff --git a/src/TravelMonkey.iOS/TravelMonkey.iOS.csproj b/src/TravelMonkey.iOS/TravelMonkey.iOS.csproj
index 479887f..3fd599a 100644
--- a/src/TravelMonkey.iOS/TravelMonkey.iOS.csproj
+++ b/src/TravelMonkey.iOS/TravelMonkey.iOS.csproj
@@ -75,24 +75,60 @@
false
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
diff --git a/src/TravelMonkey.sln b/src/TravelMonkey.sln
index 222f516..10d910a 100644
--- a/src/TravelMonkey.sln
+++ b/src/TravelMonkey.sln
@@ -1,57 +1,65 @@
-
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.30011.22
+MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TravelMonkey.Android", "TravelMonkey.Android\TravelMonkey.Android.csproj", "{A06A377B-F901-4238-88BD-A92726C715C2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TravelMonkey.iOS", "TravelMonkey.iOS\TravelMonkey.iOS.csproj", "{8C00CCB8-214B-4B88-8042-4C8D31284CD3}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TravelMonkey", "TravelMonkey\TravelMonkey.csproj", "{04991790-FBB2-415A-9531-268B4193DB3E}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TravelMonkey", "TravelMonkey\TravelMonkey.csproj", "{04991790-FBB2-415A-9531-268B4193DB3E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- Debug|iPhoneSimulator = Debug|iPhoneSimulator
- Release|iPhoneSimulator = Release|iPhoneSimulator
Debug|iPhone = Debug|iPhone
+ Debug|iPhoneSimulator = Debug|iPhoneSimulator
+ Release|Any CPU = Release|Any CPU
Release|iPhone = Release|iPhone
+ Release|iPhoneSimulator = Release|iPhoneSimulator
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A06A377B-F901-4238-88BD-A92726C715C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A06A377B-F901-4238-88BD-A92726C715C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A06A377B-F901-4238-88BD-A92726C715C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A06A377B-F901-4238-88BD-A92726C715C2}.Release|Any CPU.Build.0 = Release|Any CPU
- {A06A377B-F901-4238-88BD-A92726C715C2}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {A06A377B-F901-4238-88BD-A92726C715C2}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {A06A377B-F901-4238-88BD-A92726C715C2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {A06A377B-F901-4238-88BD-A92726C715C2}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {A06A377B-F901-4238-88BD-A92726C715C2}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{A06A377B-F901-4238-88BD-A92726C715C2}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{A06A377B-F901-4238-88BD-A92726C715C2}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {A06A377B-F901-4238-88BD-A92726C715C2}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {A06A377B-F901-4238-88BD-A92726C715C2}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {A06A377B-F901-4238-88BD-A92726C715C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A06A377B-F901-4238-88BD-A92726C715C2}.Release|Any CPU.Build.0 = Release|Any CPU
{A06A377B-F901-4238-88BD-A92726C715C2}.Release|iPhone.ActiveCfg = Release|Any CPU
{A06A377B-F901-4238-88BD-A92726C715C2}.Release|iPhone.Build.0 = Release|Any CPU
+ {A06A377B-F901-4238-88BD-A92726C715C2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {A06A377B-F901-4238-88BD-A92726C715C2}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
{8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator
- {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
- {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Release|Any CPU.Build.0 = Release|iPhoneSimulator
- {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
- {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
- {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
- {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
{8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Debug|iPhone.ActiveCfg = Debug|iPhone
{8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Debug|iPhone.Build.0 = Debug|iPhone
+ {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
+ {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
+ {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
+ {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Release|Any CPU.Build.0 = Release|iPhoneSimulator
{8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Release|iPhone.ActiveCfg = Release|iPhone
{8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Release|iPhone.Build.0 = Release|iPhone
+ {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
+ {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
{04991790-FBB2-415A-9531-268B4193DB3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{04991790-FBB2-415A-9531-268B4193DB3E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {04991790-FBB2-415A-9531-268B4193DB3E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {04991790-FBB2-415A-9531-268B4193DB3E}.Release|Any CPU.Build.0 = Release|Any CPU
- {04991790-FBB2-415A-9531-268B4193DB3E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {04991790-FBB2-415A-9531-268B4193DB3E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {04991790-FBB2-415A-9531-268B4193DB3E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {04991790-FBB2-415A-9531-268B4193DB3E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{04991790-FBB2-415A-9531-268B4193DB3E}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{04991790-FBB2-415A-9531-268B4193DB3E}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {04991790-FBB2-415A-9531-268B4193DB3E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {04991790-FBB2-415A-9531-268B4193DB3E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {04991790-FBB2-415A-9531-268B4193DB3E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {04991790-FBB2-415A-9531-268B4193DB3E}.Release|Any CPU.Build.0 = Release|Any CPU
{04991790-FBB2-415A-9531-268B4193DB3E}.Release|iPhone.ActiveCfg = Release|Any CPU
{04991790-FBB2-415A-9531-268B4193DB3E}.Release|iPhone.Build.0 = Release|Any CPU
+ {04991790-FBB2-415A-9531-268B4193DB3E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {04991790-FBB2-415A-9531-268B4193DB3E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {22BAEAC3-A8AD-42DE-B6AD-67ABEC0D42B8}
EndGlobalSection
EndGlobal
diff --git a/src/TravelMonkey/Models/OldSearchs.cs b/src/TravelMonkey/Models/OldSearchs.cs
new file mode 100644
index 0000000..b1dce74
--- /dev/null
+++ b/src/TravelMonkey/Models/OldSearchs.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace TravelMonkey.Models
+{
+ public class OldSearchs
+ {
+ public string Phrase { get; set; }
+ public Dictionary Resultados { get; set; }
+ }
+}
diff --git a/src/TravelMonkey/Services/DataTranslationsService.cs b/src/TravelMonkey/Services/DataTranslationsService.cs
new file mode 100644
index 0000000..232b9e8
--- /dev/null
+++ b/src/TravelMonkey/Services/DataTranslationsService.cs
@@ -0,0 +1,40 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Text;
+using TravelMonkey.Models;
+
+namespace TravelMonkey.Services
+{
+ internal class DataTranslationsService
+ {
+ static DataTranslationsService item;
+ public static DataTranslationsService Instance
+ {
+ get
+ {
+ if (item == null)
+ {
+ item = new DataTranslationsService();
+ }
+ return item;
+ }
+ }
+ public List Listado = new List();
+ public void Add(string phrase, Dictionary results)
+ {
+ try
+ {
+ Listado.Add(new OldSearchs()
+ {
+ Phrase = phrase,
+ Resultados = results
+ });
+ }
+ catch (Exception)
+ {
+
+ }
+ }
+ }
+}
diff --git a/src/TravelMonkey/TravelMonkey.csproj b/src/TravelMonkey/TravelMonkey.csproj
index de0691b..6c7964f 100644
--- a/src/TravelMonkey/TravelMonkey.csproj
+++ b/src/TravelMonkey/TravelMonkey.csproj
@@ -22,11 +22,7 @@
-
-
-
-
@@ -50,5 +46,8 @@
MainPage.xaml
Code
+
+ OldTranslationsPage.xaml
+
\ No newline at end of file
diff --git a/src/TravelMonkey/ViewModels/MainPageViewModel.cs b/src/TravelMonkey/ViewModels/MainPageViewModel.cs
index 187ec60..35170e0 100644
--- a/src/TravelMonkey/ViewModels/MainPageViewModel.cs
+++ b/src/TravelMonkey/ViewModels/MainPageViewModel.cs
@@ -1,8 +1,11 @@
-using System.Collections.Generic;
+using System;
+using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Timers;
+using System.Windows.Input;
using TravelMonkey.Data;
using TravelMonkey.Models;
+using TravelMonkey.Views;
using Xamarin.Essentials;
using Xamarin.Forms;
@@ -33,6 +36,7 @@ public Destination CurrentDestination
});
});
+ public ICommand BTgoLastSearchs { get; }
public MainPageViewModel()
{
if (Destinations.Count > 0)
@@ -49,6 +53,12 @@ public MainPageViewModel()
CurrentDestination = Destinations[currentIdx + 1];
};
}
+ BTgoLastSearchs = new Command(()=>GoLast());
+ }
+
+ private void GoLast()
+ {
+ App.Current.MainPage.Navigation.PushModalAsync(new OldTranslationsPage());
}
public void StartSlideShow()
diff --git a/src/TravelMonkey/ViewModels/OldTranslationsViewModel.cs b/src/TravelMonkey/ViewModels/OldTranslationsViewModel.cs
new file mode 100644
index 0000000..9bae4df
--- /dev/null
+++ b/src/TravelMonkey/ViewModels/OldTranslationsViewModel.cs
@@ -0,0 +1,44 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq.Expressions;
+using System.Net.Http.Headers;
+using System.Windows.Input;
+using TravelMonkey.Models;
+using TravelMonkey.Services;
+using TravelMonkey.Views;
+using Xamarin.Forms;
+
+namespace TravelMonkey.ViewModels
+{
+ public class OldTranslationsViewModel : BaseViewModel
+ {
+ private string _inputText;
+ private List _searchs;
+
+ public List Searchs
+ {
+ get => _searchs;
+ set
+ {
+ Set(ref _searchs, value);
+ }
+ }
+ public ICommand BTGo { get; }
+ public OldTranslationsViewModel()
+ {
+ BTGo = new Command(dat => Goto(dat));
+ }
+ internal void Refresh()
+ {
+ Searchs = DataTranslationsService.Instance.Listado;
+ }
+
+ internal async void Goto(object dat)
+ {
+ OldSearchs item = dat as OldSearchs;
+ if (item == null) return;
+ await App.Current.MainPage.Navigation.PushModalAsync(new TranslationResultPage(item.Phrase));
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/TravelMonkey/ViewModels/TranslateResultPageViewModel.cs b/src/TravelMonkey/ViewModels/TranslateResultPageViewModel.cs
index 137b899..0e67dc0 100644
--- a/src/TravelMonkey/ViewModels/TranslateResultPageViewModel.cs
+++ b/src/TravelMonkey/ViewModels/TranslateResultPageViewModel.cs
@@ -1,53 +1,75 @@
using System.Collections.Generic;
-using TravelMonkey.Services;
-using Xamarin.Forms;
-
-namespace TravelMonkey.ViewModels
-{
- public class TranslateResultPageViewModel : BaseViewModel
- {
- private readonly TranslationService _translationService =
- new TranslationService();
-
- private string _inputText;
- private Dictionary _translations;
-
- public string InputText
- {
- get => _inputText;
- set
- {
- if (_inputText == value)
- return;
-
- Set(ref _inputText, value);
-
- TranslateText();
- }
- }
-
- public Dictionary Translations
- {
- get => _translations;
- set
- {
- Set(ref _translations, value);
- }
- }
-
- public Command TranslateTextCommand => new Command((inputText) =>
- {
- InputText = inputText;
- });
-
- private async void TranslateText()
- {
- var result = await _translationService.TranslateText(_inputText);
-
- if (!result.Succeeded)
- MessagingCenter.Send(this, Constants.TranslationFailedMessage);
-
- Translations = result.Translations;
- }
- }
+using TravelMonkey.Models;
+using TravelMonkey.Services;
+using Xamarin.Forms;
+
+namespace TravelMonkey.ViewModels
+{
+ public class TranslateResultPageViewModel : BaseViewModel
+ {
+ private readonly TranslationService _translationService =
+ new TranslationService();
+
+ private string _inputText;
+ private Dictionary _translations;
+
+ public string InputText
+ {
+ get => _inputText;
+ set
+ {
+ if (_inputText == value)
+ return;
+
+ Set(ref _inputText, value);
+
+ TranslateText();
+ }
+ }
+
+ public Dictionary Translations
+ {
+ get => _translations;
+ set
+ {
+ Set(ref _translations, value);
+ }
+ }
+
+ public Command TranslateTextCommand => new Command((inputText) =>
+ {
+ InputText = inputText;
+ });
+
+ private async void TranslateText()
+ {
+ OldSearchs old = null;
+ foreach(var item in DataTranslationsService.Instance.Listado)
+ {
+ if (item.Phrase.Equals(_inputText))
+ {
+ old = item;
+ break;
+ }
+ }
+ if (old == null)
+ {
+ var result = await _translationService.TranslateText(_inputText);
+
+ if (!result.Succeeded)
+ {
+ MessagingCenter.Send(this, Constants.TranslationFailedMessage);
+ }
+ else
+ {
+ DataTranslationsService.Instance.Add(_inputText, result.Translations);
+ }
+ Translations = result.Translations;
+ }
+ else
+ {
+ Translations = old.Resultados;
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/src/TravelMonkey/Views/MainPage.xaml b/src/TravelMonkey/Views/MainPage.xaml
index ee8eb69..53cbaea 100644
--- a/src/TravelMonkey/Views/MainPage.xaml
+++ b/src/TravelMonkey/Views/MainPage.xaml
@@ -42,10 +42,17 @@
-
-
-
-
+
+
+
+
+
+
+
diff --git a/src/TravelMonkey/Views/OldTranslationsPage.xaml b/src/TravelMonkey/Views/OldTranslationsPage.xaml
new file mode 100644
index 0000000..25cf3f4
--- /dev/null
+++ b/src/TravelMonkey/Views/OldTranslationsPage.xaml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/TravelMonkey/Views/OldTranslationsPage.xaml.cs b/src/TravelMonkey/Views/OldTranslationsPage.xaml.cs
new file mode 100644
index 0000000..0e6c496
--- /dev/null
+++ b/src/TravelMonkey/Views/OldTranslationsPage.xaml.cs
@@ -0,0 +1,35 @@
+using System;
+using TravelMonkey.Models;
+using TravelMonkey.ViewModels;
+using Xamarin.Forms;
+
+namespace TravelMonkey.Views
+{
+ public partial class OldTranslationsPage : ContentPage
+ {
+ private readonly OldTranslationsViewModel viewModel =
+ new OldTranslationsViewModel();
+
+ public OldTranslationsPage()
+ {
+ InitializeComponent();
+
+ BindingContext = viewModel;
+ }
+ protected override void OnAppearing()
+ {
+ base.OnAppearing();
+ viewModel.Refresh();
+ }
+
+ private async void Button_Clicked(object sender, EventArgs e)
+ {
+ await Navigation.PopModalAsync();
+ }
+
+ private void ListView_ItemTapped(object sender, ItemTappedEventArgs e)
+ {
+ viewModel.Goto(e.Item as OldSearchs);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/TravelMonkey/Views/TranslationResultPage.xaml.cs b/src/TravelMonkey/Views/TranslationResultPage.xaml.cs
index bf8553c..682a814 100644
--- a/src/TravelMonkey/Views/TranslationResultPage.xaml.cs
+++ b/src/TravelMonkey/Views/TranslationResultPage.xaml.cs
@@ -1,33 +1,33 @@
using System;
-using TravelMonkey.ViewModels;
-using Xamarin.Forms;
-
-namespace TravelMonkey.Views
-{
- public partial class TranslationResultPage : ContentPage
- {
- private readonly TranslateResultPageViewModel _translateResultPageViewModel =
- new TranslateResultPageViewModel();
-
- public TranslationResultPage(string inputText)
- {
- InitializeComponent();
-
- MessagingCenter.Subscribe(this,
- Constants.TranslationFailedMessage,
- async (s) =>
- {
- await DisplayAlert("Whoops!", "We lost our dictionary, something went wrong while translating", "OK");
- });
-
- _translateResultPageViewModel.InputText = inputText;
-
- BindingContext = _translateResultPageViewModel;
- }
-
- private async void Button_Clicked(object sender, EventArgs e)
- {
- await Navigation.PopModalAsync();
- }
- }
+using TravelMonkey.ViewModels;
+using Xamarin.Forms;
+
+namespace TravelMonkey.Views
+{
+ public partial class TranslationResultPage : ContentPage
+ {
+ private readonly TranslateResultPageViewModel _translateResultPageViewModel =
+ new TranslateResultPageViewModel();
+
+ public TranslationResultPage(string inputText)
+ {
+ InitializeComponent();
+
+ MessagingCenter.Subscribe(this,
+ Constants.TranslationFailedMessage,
+ async (s) =>
+ {
+ await DisplayAlert("Whoops!", "We lost our dictionary, something went wrong while translating", "OK");
+ });
+
+ _translateResultPageViewModel.InputText = inputText;
+
+ BindingContext = _translateResultPageViewModel;
+ }
+
+ private async void Button_Clicked(object sender, EventArgs e)
+ {
+ await Navigation.PopModalAsync();
+ }
+ }
}
\ No newline at end of file