Skip to content

Commit 6b5a0ed

Browse files
authored
Refresh sample. (xamarin#714)
1 parent 70d12eb commit 6b5a0ed

28 files changed

+139
-254
lines changed

UserInterface/Xaminals/Xaminals.Android/Xaminals.Android.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@
4848
<Reference Include="System.Xml" />
4949
</ItemGroup>
5050
<ItemGroup>
51-
<PackageReference Include="Xamarin.Forms" Version="5.0.0.1874" />
52-
<PackageReference Include="Xamarin.Essentials" Version="1.3.1" />
51+
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2012" />
52+
<PackageReference Include="Xamarin.Essentials" Version="1.6.1" />
5353
</ItemGroup>
5454
<ItemGroup>
5555
<Compile Include="MainActivity.cs" />

UserInterface/Xaminals/Xaminals.UWP/Xaminals.UWP.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,10 +181,10 @@
181181
<Version>6.2.9</Version>
182182
</PackageReference>
183183
<PackageReference Include="Xamarin.Essentials">
184-
<Version>1.3.1</Version>
184+
<Version>1.6.1</Version>
185185
</PackageReference>
186186
<PackageReference Include="Xamarin.Forms">
187-
<Version>5.0.0.1874</Version>
187+
<Version>5.0.0.2012</Version>
188188
</PackageReference>
189189
</ItemGroup>
190190
<ItemGroup>

UserInterface/Xaminals/Xaminals.iOS/AppDelegate.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ public override bool FinishedLaunching(UIApplication app, NSDictionary options)
1010
{
1111
global::Xamarin.Forms.Forms.Init();
1212
LoadApplication(new App());
13-
1413
return base.FinishedLaunching(app, options);
1514
}
1615
}

UserInterface/Xaminals/Xaminals.iOS/Xaminals.iOS.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,8 +155,8 @@
155155
</ProjectReference>
156156
</ItemGroup>
157157
<ItemGroup>
158-
<PackageReference Include="Xamarin.Forms" Version="5.0.0.1874" />
159-
<PackageReference Include="Xamarin.Essentials" Version="1.3.1" />
158+
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2012" />
159+
<PackageReference Include="Xamarin.Essentials" Version="1.6.1" />
160160
</ItemGroup>
161161
<ItemGroup>
162162
<BundleResource Include="Resources\bear.png" />

UserInterface/Xaminals/Xaminals/App.xaml

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,11 @@
55
x:Class="Xaminals.App"
66
windows:Application.ImageDirectory="Assets">
77
<Application.Resources>
8+
89
<DataTemplate x:Key="AnimalTemplate">
9-
<Grid Padding="10">
10-
<Grid.RowDefinitions>
11-
<RowDefinition Height="Auto" />
12-
<RowDefinition Height="Auto" />
13-
</Grid.RowDefinitions>
14-
<Grid.ColumnDefinitions>
15-
<ColumnDefinition Width="Auto" />
16-
<ColumnDefinition Width="Auto" />
17-
</Grid.ColumnDefinitions>
10+
<Grid Padding="10"
11+
RowDefinitions="Auto,Auto"
12+
ColumnDefinitions="Auto,Auto">
1813
<Image Grid.RowSpan="2"
1914
Source="{Binding ImageUrl}"
2015
Aspect="AspectFill"
@@ -32,18 +27,15 @@
3227
</DataTemplate>
3328

3429
<DataTemplate x:Key="AnimalSearchTemplate">
35-
<Grid Padding="10">
36-
<Grid.ColumnDefinitions>
37-
<ColumnDefinition Width="0.15*" />
38-
<ColumnDefinition Width="0.85*" />
39-
</Grid.ColumnDefinitions>
40-
<Image Source="{Binding ImageUrl}"
41-
Aspect="AspectFill"
42-
HeightRequest="40"
30+
<Grid Padding="10"
31+
ColumnDefinitions="0.15*,0.85*">
32+
<Image Source="{Binding ImageUrl}"
33+
HeightRequest="40"
4334
WidthRequest="40" />
4435
<Label Grid.Column="1"
4536
Text="{Binding Name}"
46-
FontAttributes="Bold" />
37+
FontAttributes="Bold"
38+
VerticalOptions="Center" />
4739
</Grid>
4840
</DataTemplate>
4941

UserInterface/Xaminals/Xaminals/App.xaml.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
using Xamarin.Forms;
2-
using Xamarin.Forms.Xaml;
32

4-
[assembly: XamlCompilation(XamlCompilationOptions.Compile)]
53
namespace Xaminals
64
{
75
public partial class App : Application

UserInterface/Xaminals/Xaminals/AppShell.xaml

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -136,11 +136,7 @@
136136
<!-- Template each FlyoutItem -->
137137
<!-- <Shell.ItemTemplate>
138138
<DataTemplate>
139-
<Grid>
140-
<Grid.ColumnDefinitions>
141-
<ColumnDefinition Width="0.2*" />
142-
<ColumnDefinition Width="0.8*" />
143-
</Grid.ColumnDefinitions>
139+
<Grid ColumnDefinitions="0.2*,0.8*">
144140
<Image Source="{Binding Icon}"
145141
Margin="5"
146142
HeightRequest="45" />
@@ -155,11 +151,7 @@
155151
<!-- Template each MenuItem -->
156152
<!-- <Shell.MenuItemTemplate>
157153
<DataTemplate>
158-
<Grid>
159-
<Grid.ColumnDefinitions>
160-
<ColumnDefinition Width="0.2*" />
161-
<ColumnDefinition Width="0.8*" />
162-
</Grid.ColumnDefinitions>
154+
<Grid ColumnDefinitions="0.2*,0.8*">
163155
<Image Source="{Binding Icon}"
164156
Margin="5"
165157
HeightRequest="45" />
@@ -172,7 +164,6 @@
172164
</Shell.MenuItemTemplate>-->
173165

174166
<FlyoutItem Route="animals"
175-
Title="Animals"
176167
FlyoutDisplayOptions="AsMultipleItems">
177168
<Tab Title="Domestic"
178169
Route="domestic"
@@ -223,9 +214,6 @@
223214
Icon="info.png"
224215
ContentTemplate="{DataTemplate views:AboutPage}" />
225216

226-
<MenuItem Text="Random"
227-
IconImageSource="random.png"
228-
Command="{Binding RandomPageCommand}" />
229217
<MenuItem Text="Help"
230218
IconImageSource="help.png"
231219
Command="{Binding HelpCommand}"

UserInterface/Xaminals/Xaminals/AppShell.xaml.cs

Lines changed: 7 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,16 @@
11
using System;
22
using System.Collections.Generic;
3-
using System.Linq;
4-
using System.Threading.Tasks;
53
using System.Windows.Input;
64
using Xamarin.Essentials;
75
using Xamarin.Forms;
8-
using Xaminals.Data;
96
using Xaminals.Views;
107

118
namespace Xaminals
129
{
1310
public partial class AppShell : Shell
1411
{
15-
Random rand = new Random();
16-
Dictionary<string, Type> routes = new Dictionary<string, Type>();
17-
public Dictionary<string, Type> Routes { get { return routes; } }
18-
12+
public Dictionary<string, Type> Routes { get; private set; } = new Dictionary<string, Type>();
1913
public ICommand HelpCommand => new Command<string>(async (url) => await Launcher.OpenAsync(url));
20-
public ICommand RandomPageCommand => new Command(async () => await NavigateToRandomPageAsync());
2114

2215
public AppShell()
2316
{
@@ -28,47 +21,18 @@ public AppShell()
2821

2922
void RegisterRoutes()
3023
{
31-
routes.Add("monkeydetails", typeof(MonkeyDetailPage));
32-
routes.Add("beardetails", typeof(BearDetailPage));
33-
routes.Add("catdetails", typeof(CatDetailPage));
34-
routes.Add("dogdetails", typeof(DogDetailPage));
35-
routes.Add("elephantdetails", typeof(ElephantDetailPage));
24+
Routes.Add("monkeydetails", typeof(MonkeyDetailPage));
25+
Routes.Add("beardetails", typeof(BearDetailPage));
26+
Routes.Add("catdetails", typeof(CatDetailPage));
27+
Routes.Add("dogdetails", typeof(DogDetailPage));
28+
Routes.Add("elephantdetails", typeof(ElephantDetailPage));
3629

37-
foreach (var item in routes)
30+
foreach (var item in Routes)
3831
{
3932
Routing.RegisterRoute(item.Key, item.Value);
4033
}
4134
}
4235

43-
async Task NavigateToRandomPageAsync()
44-
{
45-
string destinationRoute = routes.ElementAt(rand.Next(0, routes.Count)).Key;
46-
string animalName = null;
47-
48-
switch (destinationRoute)
49-
{
50-
case "monkeydetails":
51-
animalName = MonkeyData.Monkeys.ElementAt(rand.Next(0, MonkeyData.Monkeys.Count)).Name;
52-
break;
53-
case "beardetails":
54-
animalName = BearData.Bears.ElementAt(rand.Next(0, BearData.Bears.Count)).Name;
55-
break;
56-
case "catdetails":
57-
animalName = CatData.Cats.ElementAt(rand.Next(0, CatData.Cats.Count)).Name;
58-
break;
59-
case "dogdetails":
60-
animalName = DogData.Dogs.ElementAt(rand.Next(0, DogData.Dogs.Count)).Name;
61-
break;
62-
case "elephantdetails":
63-
animalName = ElephantData.Elephants.ElementAt(rand.Next(0, ElephantData.Elephants.Count)).Name;
64-
break;
65-
}
66-
67-
ShellNavigationState state = Shell.Current.CurrentState;
68-
await Shell.Current.GoToAsync($"{state.Location}/{destinationRoute}?name={animalName}");
69-
Shell.Current.FlyoutIsPresented = false;
70-
}
71-
7236
//protected override void OnNavigating(ShellNavigatingEventArgs args)
7337
//{
7438
// base.OnNavigating(args);
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
using Xamarin.Forms.Xaml;
2+
3+
[assembly: XamlCompilation(XamlCompilationOptions.Compile)]

UserInterface/Xaminals/Xaminals/Controls/AnimalSearchHandler.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,12 @@ protected override void OnQueryChanged(string oldValue, string newValue)
3131
protected override async void OnItemSelected(object item)
3232
{
3333
base.OnItemSelected(item);
34+
35+
// Let the animation complete
3436
await Task.Delay(1000);
3537

3638
ShellNavigationState state = (App.Current.MainPage as Shell).CurrentState;
37-
// Note: strings will be URL encoded for navigation (e.g. "Blue Monkey" becomes "Blue%20Monkey"). Therefore, decode at the receiver.
38-
// This works because route names are unique in this application.
39+
// The following route works because route names are unique in this application.
3940
await Shell.Current.GoToAsync($"{GetNavigationTarget()}?name={((Animal)item).Name}");
4041
}
4142

0 commit comments

Comments
 (0)