diff --git a/CollectionViewChallenge.sln b/CollectionViewChallenge.sln
index 1b8dd9b..43f16a8 100644
--- a/CollectionViewChallenge.sln
+++ b/CollectionViewChallenge.sln
@@ -80,4 +80,25 @@ Global
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {63071C55-3C4B-43FA-8EA1-DA7EA4CA408F}
EndGlobalSection
+ GlobalSection(MonoDevelopProperties) = preSolution
+ Policies = $0
+ $0.TextStylePolicy = $1
+ $1.inheritsSet = null
+ $1.scope = text/x-csharp
+ $0.CSharpFormattingPolicy = $2
+ $2.scope = text/x-csharp
+ $0.TextStylePolicy = $3
+ $3.FileWidth = 80
+ $3.TabsToSpaces = True
+ $3.scope = text/plain
+ $0.TextStylePolicy = $4
+ $4.inheritsSet = null
+ $4.scope = application/xml
+ $0.XmlFormattingPolicy = $5
+ $5.DefaultFormat = $6
+ $6.AttributesInNewLine = True
+ $6.WrapAttributes = True
+ $6.AlignAttributes = True
+ $5.scope = application/xml
+ EndGlobalSection
EndGlobal
diff --git a/CollectionViewChallenge/CollectionViewChallenge.Android/CollectionViewChallenge.Android.csproj b/CollectionViewChallenge/CollectionViewChallenge.Android/CollectionViewChallenge.Android.csproj
index d2c42fc..214d84b 100644
--- a/CollectionViewChallenge/CollectionViewChallenge.Android/CollectionViewChallenge.Android.csproj
+++ b/CollectionViewChallenge/CollectionViewChallenge.Android/CollectionViewChallenge.Android.csproj
@@ -15,7 +15,6 @@
Properties\AndroidManifest.xml
Resources
Assets
- false
v8.1
true
Xamarin.Android.Net.AndroidClientHandler
@@ -93,6 +92,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -102,7 +119,7 @@
- {BA39825E-3CF8-4A31-B120-782B2A651542}
+ {9A9DDEE5-8C48-4274-82D7-22EB79C97206}
CollectionViewChallenge
diff --git a/CollectionViewChallenge/CollectionViewChallenge.Android/Properties/AndroidManifest.xml b/CollectionViewChallenge/CollectionViewChallenge.Android/Properties/AndroidManifest.xml
index 8a8223a..0a62e2d 100644
--- a/CollectionViewChallenge/CollectionViewChallenge.Android/Properties/AndroidManifest.xml
+++ b/CollectionViewChallenge/CollectionViewChallenge.Android/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
-
+
-
-
-
+
+
+
\ No newline at end of file
diff --git a/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-hdpi/cast.png b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-hdpi/cast.png
new file mode 100644
index 0000000..bf5b261
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-hdpi/cast.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-hdpi/more.png b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-hdpi/more.png
new file mode 100644
index 0000000..f553759
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-hdpi/more.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-hdpi/search.png b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-hdpi/search.png
new file mode 100644
index 0000000..433e2de
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-hdpi/search.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-mdpi/cast.png b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-mdpi/cast.png
new file mode 100644
index 0000000..40383cd
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-mdpi/cast.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-mdpi/more.png b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-mdpi/more.png
new file mode 100644
index 0000000..1ca83cd
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-mdpi/more.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-mdpi/search.png b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-mdpi/search.png
new file mode 100644
index 0000000..03cabb5
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-mdpi/search.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xhdpi/cast.png b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xhdpi/cast.png
new file mode 100644
index 0000000..8712767
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xhdpi/cast.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xhdpi/more.png b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xhdpi/more.png
new file mode 100644
index 0000000..3c3ebf4
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xhdpi/more.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xhdpi/search.png b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xhdpi/search.png
new file mode 100644
index 0000000..f15f3cc
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xhdpi/search.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xxhdpi/cast.png b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xxhdpi/cast.png
new file mode 100644
index 0000000..46e382a
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xxhdpi/cast.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xxhdpi/more.png b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xxhdpi/more.png
new file mode 100644
index 0000000..e7b40c5
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xxhdpi/more.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xxhdpi/search.png b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xxhdpi/search.png
new file mode 100644
index 0000000..576b517
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xxhdpi/search.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xxxhdpi/cast.png b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xxxhdpi/cast.png
new file mode 100644
index 0000000..fdda575
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xxxhdpi/cast.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xxxhdpi/more.png b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xxxhdpi/more.png
new file mode 100644
index 0000000..0953835
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xxxhdpi/more.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xxxhdpi/search.png b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xxxhdpi/search.png
new file mode 100644
index 0000000..4c1bc0b
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable-xxxhdpi/search.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable/cast.png b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable/cast.png
new file mode 100644
index 0000000..40383cd
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable/cast.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable/more.png b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable/more.png
new file mode 100644
index 0000000..1ca83cd
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable/more.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable/search.png b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable/search.png
new file mode 100644
index 0000000..03cabb5
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.Android/Resources/drawable/search.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/cast.imageset/Contents.json b/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/cast.imageset/Contents.json
new file mode 100644
index 0000000..5c14d8f
--- /dev/null
+++ b/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/cast.imageset/Contents.json
@@ -0,0 +1,96 @@
+{
+ "images": [
+ {
+ "idiom": "universal"
+ },
+ {
+ "filename": "cast.png",
+ "scale": "1x",
+ "idiom": "universal"
+ },
+ {
+ "filename": "cast@2x.png",
+ "scale": "2x",
+ "idiom": "universal"
+ },
+ {
+ "filename": "cast@3x.png",
+ "scale": "3x",
+ "idiom": "universal"
+ },
+ {
+ "idiom": "iphone"
+ },
+ {
+ "scale": "1x",
+ "idiom": "iphone"
+ },
+ {
+ "scale": "2x",
+ "idiom": "iphone"
+ },
+ {
+ "subtype": "retina4",
+ "scale": "2x",
+ "idiom": "iphone"
+ },
+ {
+ "scale": "3x",
+ "idiom": "iphone"
+ },
+ {
+ "idiom": "ipad"
+ },
+ {
+ "scale": "1x",
+ "idiom": "ipad"
+ },
+ {
+ "scale": "2x",
+ "idiom": "ipad"
+ },
+ {
+ "idiom": "watch"
+ },
+ {
+ "scale": "2x",
+ "idiom": "watch"
+ },
+ {
+ "screenWidth": "{130,145}",
+ "scale": "2x",
+ "idiom": "watch"
+ },
+ {
+ "screenWidth": "{146,165}",
+ "scale": "2x",
+ "idiom": "watch"
+ },
+ {
+ "idiom": "mac"
+ },
+ {
+ "scale": "1x",
+ "idiom": "mac"
+ },
+ {
+ "scale": "2x",
+ "idiom": "mac"
+ },
+ {
+ "idiom": "car"
+ },
+ {
+ "scale": "2x",
+ "idiom": "car"
+ },
+ {
+ "scale": "3x",
+ "idiom": "car"
+ }
+ ],
+ "info": {
+ "version": 1,
+ "author": "xcode"
+ }
+}
\ No newline at end of file
diff --git a/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/cast.imageset/cast.png b/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/cast.imageset/cast.png
new file mode 100644
index 0000000..40383cd
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/cast.imageset/cast.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/cast.imageset/cast@2x.png b/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/cast.imageset/cast@2x.png
new file mode 100644
index 0000000..8712767
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/cast.imageset/cast@2x.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/cast.imageset/cast@3x.png b/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/cast.imageset/cast@3x.png
new file mode 100644
index 0000000..46e382a
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/cast.imageset/cast@3x.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/more.imageset/Contents.json b/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/more.imageset/Contents.json
new file mode 100644
index 0000000..50dc378
--- /dev/null
+++ b/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/more.imageset/Contents.json
@@ -0,0 +1,96 @@
+{
+ "images": [
+ {
+ "idiom": "universal"
+ },
+ {
+ "filename": "more.png",
+ "scale": "1x",
+ "idiom": "universal"
+ },
+ {
+ "filename": "more@2x.png",
+ "scale": "2x",
+ "idiom": "universal"
+ },
+ {
+ "filename": "more@3x.png",
+ "scale": "3x",
+ "idiom": "universal"
+ },
+ {
+ "idiom": "iphone"
+ },
+ {
+ "scale": "1x",
+ "idiom": "iphone"
+ },
+ {
+ "scale": "2x",
+ "idiom": "iphone"
+ },
+ {
+ "subtype": "retina4",
+ "scale": "2x",
+ "idiom": "iphone"
+ },
+ {
+ "scale": "3x",
+ "idiom": "iphone"
+ },
+ {
+ "idiom": "ipad"
+ },
+ {
+ "scale": "1x",
+ "idiom": "ipad"
+ },
+ {
+ "scale": "2x",
+ "idiom": "ipad"
+ },
+ {
+ "idiom": "watch"
+ },
+ {
+ "scale": "2x",
+ "idiom": "watch"
+ },
+ {
+ "screenWidth": "{130,145}",
+ "scale": "2x",
+ "idiom": "watch"
+ },
+ {
+ "screenWidth": "{146,165}",
+ "scale": "2x",
+ "idiom": "watch"
+ },
+ {
+ "idiom": "mac"
+ },
+ {
+ "scale": "1x",
+ "idiom": "mac"
+ },
+ {
+ "scale": "2x",
+ "idiom": "mac"
+ },
+ {
+ "idiom": "car"
+ },
+ {
+ "scale": "2x",
+ "idiom": "car"
+ },
+ {
+ "scale": "3x",
+ "idiom": "car"
+ }
+ ],
+ "info": {
+ "version": 1,
+ "author": "xcode"
+ }
+}
\ No newline at end of file
diff --git a/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/more.imageset/more.png b/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/more.imageset/more.png
new file mode 100644
index 0000000..1ca83cd
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/more.imageset/more.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/more.imageset/more@2x.png b/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/more.imageset/more@2x.png
new file mode 100644
index 0000000..3c3ebf4
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/more.imageset/more@2x.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/more.imageset/more@3x.png b/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/more.imageset/more@3x.png
new file mode 100644
index 0000000..e7b40c5
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/more.imageset/more@3x.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/search.imageset/Contents.json b/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/search.imageset/Contents.json
new file mode 100644
index 0000000..651af9e
--- /dev/null
+++ b/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/search.imageset/Contents.json
@@ -0,0 +1,96 @@
+{
+ "images": [
+ {
+ "idiom": "universal"
+ },
+ {
+ "filename": "search.png",
+ "scale": "1x",
+ "idiom": "universal"
+ },
+ {
+ "filename": "search@2x.png",
+ "scale": "2x",
+ "idiom": "universal"
+ },
+ {
+ "filename": "search@3x.png",
+ "scale": "3x",
+ "idiom": "universal"
+ },
+ {
+ "idiom": "iphone"
+ },
+ {
+ "scale": "1x",
+ "idiom": "iphone"
+ },
+ {
+ "scale": "2x",
+ "idiom": "iphone"
+ },
+ {
+ "subtype": "retina4",
+ "scale": "2x",
+ "idiom": "iphone"
+ },
+ {
+ "scale": "3x",
+ "idiom": "iphone"
+ },
+ {
+ "idiom": "ipad"
+ },
+ {
+ "scale": "1x",
+ "idiom": "ipad"
+ },
+ {
+ "scale": "2x",
+ "idiom": "ipad"
+ },
+ {
+ "idiom": "watch"
+ },
+ {
+ "scale": "2x",
+ "idiom": "watch"
+ },
+ {
+ "screenWidth": "{130,145}",
+ "scale": "2x",
+ "idiom": "watch"
+ },
+ {
+ "screenWidth": "{146,165}",
+ "scale": "2x",
+ "idiom": "watch"
+ },
+ {
+ "idiom": "mac"
+ },
+ {
+ "scale": "1x",
+ "idiom": "mac"
+ },
+ {
+ "scale": "2x",
+ "idiom": "mac"
+ },
+ {
+ "idiom": "car"
+ },
+ {
+ "scale": "2x",
+ "idiom": "car"
+ },
+ {
+ "scale": "3x",
+ "idiom": "car"
+ }
+ ],
+ "info": {
+ "version": 1,
+ "author": "xcode"
+ }
+}
\ No newline at end of file
diff --git a/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/search.imageset/search.png b/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/search.imageset/search.png
new file mode 100644
index 0000000..03cabb5
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/search.imageset/search.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/search.imageset/search@2x.png b/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/search.imageset/search@2x.png
new file mode 100644
index 0000000..f15f3cc
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/search.imageset/search@2x.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/search.imageset/search@3x.png b/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/search.imageset/search@3x.png
new file mode 100644
index 0000000..576b517
Binary files /dev/null and b/CollectionViewChallenge/CollectionViewChallenge.iOS/Assets.xcassets/search.imageset/search@3x.png differ
diff --git a/CollectionViewChallenge/CollectionViewChallenge.iOS/CollectionViewChallenge.iOS.csproj b/CollectionViewChallenge/CollectionViewChallenge.iOS/CollectionViewChallenge.iOS.csproj
index 49a7105..542e056 100644
--- a/CollectionViewChallenge/CollectionViewChallenge.iOS/CollectionViewChallenge.iOS.csproj
+++ b/CollectionViewChallenge/CollectionViewChallenge.iOS/CollectionViewChallenge.iOS.csproj
@@ -123,6 +123,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
@@ -139,8 +151,13 @@
- {BA39825E-3CF8-4A31-B120-782B2A651542}
+ {9A9DDEE5-8C48-4274-82D7-22EB79C97206}
CollectionViewChallenge
+
+
+
+
+
\ No newline at end of file
diff --git a/CollectionViewChallenge/CollectionViewChallenge/App.xaml.cs b/CollectionViewChallenge/CollectionViewChallenge/App.xaml.cs
index c0a3329..18c5a1a 100644
--- a/CollectionViewChallenge/CollectionViewChallenge/App.xaml.cs
+++ b/CollectionViewChallenge/CollectionViewChallenge/App.xaml.cs
@@ -2,6 +2,7 @@
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
using CollectionViewChallenge.Views;
+using System.Threading.Tasks;
namespace CollectionViewChallenge
{
@@ -29,5 +30,36 @@ protected override void OnResume()
{
// Handle when your app resumes
}
+
+ private static NavigableElement navigationRoot;
+ public static NavigableElement NavigationRoot
+ {
+ get => GetShellSection(navigationRoot) ?? navigationRoot;
+ set => navigationRoot = value;
+ }
+
+ internal static ShellSection GetShellSection(Element element)
+ {
+ if (element == null)
+ {
+ return null;
+ }
+
+ var parent = element;
+ var parentSection = parent as ShellSection;
+
+ while (parentSection == null && parent != null)
+ {
+ parent = parent.Parent;
+ parentSection = parent as ShellSection;
+ }
+
+ return parentSection;
+ }
+
+ internal static async Task NavigateToAsync(Page page)
+ {
+ await NavigationRoot.Navigation.PushAsync(page, true).ConfigureAwait(false);
+ }
}
}
diff --git a/CollectionViewChallenge/CollectionViewChallenge/AppShell.xaml b/CollectionViewChallenge/CollectionViewChallenge/AppShell.xaml
index 9364c60..9414580 100644
--- a/CollectionViewChallenge/CollectionViewChallenge/AppShell.xaml
+++ b/CollectionViewChallenge/CollectionViewChallenge/AppShell.xaml
@@ -52,14 +52,14 @@
-->
- #2196F3
+ #4285F4