summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRui Marinho <me@ruimarinho.net>2016-12-16 18:05:28 (GMT)
committerGitHub <noreply@github.com>2016-12-16 18:05:28 (GMT)
commit3216ce4ccd096f8b9f909bbeea572dcf2a8c4466 (patch)
tree8087cb06ae7ef4d5ff954f61ab16891d6148645c
parentdb4486db8f41642dcd2948c929bee54500d23938 (diff)
downloadxamarin-forms-3216ce4ccd096f8b9f909bbeea572dcf2a8c4466.zip
xamarin-forms-3216ce4ccd096f8b9f909bbeea572dcf2a8c4466.tar.gz
xamarin-forms-3216ce4ccd096f8b9f909bbeea572dcf2a8c4466.tar.bz2
Add sample HanselForms and TwitterDemo to ControlGallery (#651)
* [Controls] Add Hanselforms sample * Remove extra twitter sample * [Controls]Add TwitterDemo sample * [Controls] Fix build
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/Icon-60@2x.pngbin0 -> 31394 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/Icon-Small-40@2x.pngbin0 -> 15212 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/Icon-Small.pngbin0 -> 2472 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/Icon-Small@2x.pngbin0 -> 8527 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/Icon.pngbin0 -> 8273 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/Icon@2x.pngbin0 -> 28639 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/about.pngbin0 -> 615 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/about@2x.pngbin0 -> 1433 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/blog.pngbin0 -> 232 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/blog@2x.pngbin0 -> 478 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/facebook.pngbin0 -> 317 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/facebook@2x.pngbin0 -> 589 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/favorite.pngbin0 -> 5228 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/googleplus.pngbin0 -> 671 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/googleplus@2x.pngbin0 -> 1407 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/hm.pngbin0 -> 936 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/hm@2x.pngbin0 -> 2544 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/hm_full.jpgbin0 -> 15576 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/home.pngbin0 -> 8035 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/ic_pause.pngbin0 -> 255 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/ic_pause@2x.pngbin0 -> 663 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/ic_play.pngbin0 -> 605 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/ic_play@2x.pngbin0 -> 1474 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/ic_share.pngbin0 -> 219 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/ic_share@2x.pngbin0 -> 316 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/ic_stop.pngbin0 -> 227 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/ic_stop@2x.pngbin0 -> 555 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/instagram.pngbin0 -> 430 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/instagram@2x.pngbin0 -> 911 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/lists.pngbin0 -> 5722 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/messages.pngbin0 -> 5534 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/notifications.pngbin0 -> 5416 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/profile.pngbin0 -> 6797 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/ratchet.pngbin0 -> 1509 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/ratchet@2x.pngbin0 -> 3648 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/ratchet_full.jpgbin0 -> 21702 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/refresh.pngbin0 -> 380 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/refresh@2x.pngbin0 -> 893 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/reply.pngbin0 -> 4978 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/retweet.pngbin0 -> 5694 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/rui.jpgbin0 -> 453311 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/scott.pngbin0 -> 154836 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/scott159.pngbin0 -> 54579 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/search.pngbin0 -> 7117 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/slideout.pngbin0 -> 181 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/slideout@2x.pngbin0 -> 224 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/tdl.pngbin0 -> 1533 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/tdl@2x.pngbin0 -> 4594 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/tdl_full.jpgbin0 -> 9750 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/tweet.pngbin0 -> 6778 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/twitter.pngbin0 -> 539 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/twitter@2x.pngbin0 -> 1092 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/twitternav.pngbin0 -> 539 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/twitternav@2x.pngbin0 -> 1092 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Resources/xamarinlogo.pngbin0 -> 20607 bytes
-rw-r--r--Xamarin.Forms.ControlGallery.iOS/Xamarin.Forms.ControlGallery.iOS.csproj58
-rw-r--r--Xamarin.Forms.Controls/GalleryPages/MacTwitterDemo.xaml68
-rw-r--r--Xamarin.Forms.Controls/GalleryPages/MacTwitterDemo.xaml.cs16
-rw-r--r--Xamarin.Forms.Controls/HanselForms/BaseView.cs32
-rw-r--r--Xamarin.Forms.Controls/HanselForms/BlogPage.xaml30
-rw-r--r--Xamarin.Forms.Controls/HanselForms/BlogPage.xaml.cs336
-rw-r--r--Xamarin.Forms.Controls/HanselForms/HBaseViewModel.cs120
-rw-r--r--Xamarin.Forms.Controls/HanselForms/MyAbout.xaml18
-rw-r--r--Xamarin.Forms.Controls/HanselForms/MyAbout.xaml.cs42
-rw-r--r--Xamarin.Forms.Controls/HanselForms/RootPage.cs181
-rw-r--r--Xamarin.Forms.Controls/HanselForms/TwitterPage.xaml44
-rw-r--r--Xamarin.Forms.Controls/HanselForms/TwitterPage.xaml.cs185
-rw-r--r--Xamarin.Forms.Controls/HanselForms/WebsiteView.cs21
-rw-r--r--Xamarin.Forms.Controls/Xamarin.Forms.Controls.csproj675
-rw-r--r--Xamarin.Forms.Controls/packages.config3
70 files changed, 1510 insertions, 319 deletions
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/Icon-60@2x.png b/Xamarin.Forms.ControlGallery.iOS/Resources/Icon-60@2x.png
new file mode 100644
index 0000000..facef87
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/Icon-60@2x.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/Icon-Small-40@2x.png b/Xamarin.Forms.ControlGallery.iOS/Resources/Icon-Small-40@2x.png
new file mode 100644
index 0000000..679f7d7
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/Icon-Small-40@2x.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/Icon-Small.png b/Xamarin.Forms.ControlGallery.iOS/Resources/Icon-Small.png
new file mode 100644
index 0000000..15a51ec
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/Icon-Small.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/Icon-Small@2x.png b/Xamarin.Forms.ControlGallery.iOS/Resources/Icon-Small@2x.png
new file mode 100644
index 0000000..194d318
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/Icon-Small@2x.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/Icon.png b/Xamarin.Forms.ControlGallery.iOS/Resources/Icon.png
new file mode 100644
index 0000000..c1f17a3
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/Icon.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/Icon@2x.png b/Xamarin.Forms.ControlGallery.iOS/Resources/Icon@2x.png
new file mode 100644
index 0000000..d0cdef5
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/Icon@2x.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/about.png b/Xamarin.Forms.ControlGallery.iOS/Resources/about.png
new file mode 100644
index 0000000..44affcd
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/about.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/about@2x.png b/Xamarin.Forms.ControlGallery.iOS/Resources/about@2x.png
new file mode 100644
index 0000000..093aded
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/about@2x.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/blog.png b/Xamarin.Forms.ControlGallery.iOS/Resources/blog.png
new file mode 100644
index 0000000..a5a0c79
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/blog.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/blog@2x.png b/Xamarin.Forms.ControlGallery.iOS/Resources/blog@2x.png
new file mode 100644
index 0000000..e38e331
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/blog@2x.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/facebook.png b/Xamarin.Forms.ControlGallery.iOS/Resources/facebook.png
new file mode 100644
index 0000000..8c9211f
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/facebook.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/facebook@2x.png b/Xamarin.Forms.ControlGallery.iOS/Resources/facebook@2x.png
new file mode 100644
index 0000000..c23e0e9
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/facebook@2x.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/favorite.png b/Xamarin.Forms.ControlGallery.iOS/Resources/favorite.png
new file mode 100644
index 0000000..469f475
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/favorite.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/googleplus.png b/Xamarin.Forms.ControlGallery.iOS/Resources/googleplus.png
new file mode 100644
index 0000000..2be030f
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/googleplus.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/googleplus@2x.png b/Xamarin.Forms.ControlGallery.iOS/Resources/googleplus@2x.png
new file mode 100644
index 0000000..fa4ed36
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/googleplus@2x.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/hm.png b/Xamarin.Forms.ControlGallery.iOS/Resources/hm.png
new file mode 100644
index 0000000..5a89782
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/hm.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/hm@2x.png b/Xamarin.Forms.ControlGallery.iOS/Resources/hm@2x.png
new file mode 100644
index 0000000..d5013b1
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/hm@2x.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/hm_full.jpg b/Xamarin.Forms.ControlGallery.iOS/Resources/hm_full.jpg
new file mode 100644
index 0000000..2ab0ad3
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/hm_full.jpg
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/home.png b/Xamarin.Forms.ControlGallery.iOS/Resources/home.png
new file mode 100644
index 0000000..a60929f
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/home.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/ic_pause.png b/Xamarin.Forms.ControlGallery.iOS/Resources/ic_pause.png
new file mode 100644
index 0000000..5acfe84
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/ic_pause.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/ic_pause@2x.png b/Xamarin.Forms.ControlGallery.iOS/Resources/ic_pause@2x.png
new file mode 100644
index 0000000..68743a6
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/ic_pause@2x.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/ic_play.png b/Xamarin.Forms.ControlGallery.iOS/Resources/ic_play.png
new file mode 100644
index 0000000..df1d2e4
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/ic_play.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/ic_play@2x.png b/Xamarin.Forms.ControlGallery.iOS/Resources/ic_play@2x.png
new file mode 100644
index 0000000..9eaec68
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/ic_play@2x.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/ic_share.png b/Xamarin.Forms.ControlGallery.iOS/Resources/ic_share.png
new file mode 100644
index 0000000..ea0ce74
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/ic_share.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/ic_share@2x.png b/Xamarin.Forms.ControlGallery.iOS/Resources/ic_share@2x.png
new file mode 100644
index 0000000..2566f50
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/ic_share@2x.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/ic_stop.png b/Xamarin.Forms.ControlGallery.iOS/Resources/ic_stop.png
new file mode 100644
index 0000000..75f43d7
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/ic_stop.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/ic_stop@2x.png b/Xamarin.Forms.ControlGallery.iOS/Resources/ic_stop@2x.png
new file mode 100644
index 0000000..4376500
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/ic_stop@2x.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/instagram.png b/Xamarin.Forms.ControlGallery.iOS/Resources/instagram.png
new file mode 100644
index 0000000..d133f3c
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/instagram.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/instagram@2x.png b/Xamarin.Forms.ControlGallery.iOS/Resources/instagram@2x.png
new file mode 100644
index 0000000..f26f7a7
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/instagram@2x.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/lists.png b/Xamarin.Forms.ControlGallery.iOS/Resources/lists.png
new file mode 100644
index 0000000..c0bcbd1
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/lists.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/messages.png b/Xamarin.Forms.ControlGallery.iOS/Resources/messages.png
new file mode 100644
index 0000000..4234c13
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/messages.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/notifications.png b/Xamarin.Forms.ControlGallery.iOS/Resources/notifications.png
new file mode 100644
index 0000000..998074e
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/notifications.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/profile.png b/Xamarin.Forms.ControlGallery.iOS/Resources/profile.png
new file mode 100644
index 0000000..e49c45d
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/profile.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/ratchet.png b/Xamarin.Forms.ControlGallery.iOS/Resources/ratchet.png
new file mode 100644
index 0000000..5c379cc
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/ratchet.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/ratchet@2x.png b/Xamarin.Forms.ControlGallery.iOS/Resources/ratchet@2x.png
new file mode 100644
index 0000000..c28b590
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/ratchet@2x.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/ratchet_full.jpg b/Xamarin.Forms.ControlGallery.iOS/Resources/ratchet_full.jpg
new file mode 100644
index 0000000..544520b
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/ratchet_full.jpg
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/refresh.png b/Xamarin.Forms.ControlGallery.iOS/Resources/refresh.png
new file mode 100644
index 0000000..b0d4da6
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/refresh.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/refresh@2x.png b/Xamarin.Forms.ControlGallery.iOS/Resources/refresh@2x.png
new file mode 100644
index 0000000..37298c1
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/refresh@2x.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/reply.png b/Xamarin.Forms.ControlGallery.iOS/Resources/reply.png
new file mode 100644
index 0000000..283863f
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/reply.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/retweet.png b/Xamarin.Forms.ControlGallery.iOS/Resources/retweet.png
new file mode 100644
index 0000000..678f90e
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/retweet.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/rui.jpg b/Xamarin.Forms.ControlGallery.iOS/Resources/rui.jpg
new file mode 100644
index 0000000..6ea4cc1
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/rui.jpg
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/scott.png b/Xamarin.Forms.ControlGallery.iOS/Resources/scott.png
new file mode 100644
index 0000000..b1e9f5d
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/scott.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/scott159.png b/Xamarin.Forms.ControlGallery.iOS/Resources/scott159.png
new file mode 100644
index 0000000..5699f39
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/scott159.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/search.png b/Xamarin.Forms.ControlGallery.iOS/Resources/search.png
new file mode 100644
index 0000000..9bfbb98
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/search.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/slideout.png b/Xamarin.Forms.ControlGallery.iOS/Resources/slideout.png
new file mode 100644
index 0000000..d2cba6c
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/slideout.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/slideout@2x.png b/Xamarin.Forms.ControlGallery.iOS/Resources/slideout@2x.png
new file mode 100644
index 0000000..26f51d2
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/slideout@2x.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/tdl.png b/Xamarin.Forms.ControlGallery.iOS/Resources/tdl.png
new file mode 100644
index 0000000..dc0d5a8
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/tdl.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/tdl@2x.png b/Xamarin.Forms.ControlGallery.iOS/Resources/tdl@2x.png
new file mode 100644
index 0000000..5839aef
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/tdl@2x.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/tdl_full.jpg b/Xamarin.Forms.ControlGallery.iOS/Resources/tdl_full.jpg
new file mode 100644
index 0000000..295ef2d
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/tdl_full.jpg
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/tweet.png b/Xamarin.Forms.ControlGallery.iOS/Resources/tweet.png
new file mode 100644
index 0000000..e7dea33
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/tweet.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/twitter.png b/Xamarin.Forms.ControlGallery.iOS/Resources/twitter.png
new file mode 100644
index 0000000..82f6a80
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/twitter.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/twitter@2x.png b/Xamarin.Forms.ControlGallery.iOS/Resources/twitter@2x.png
new file mode 100644
index 0000000..505d35b
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/twitter@2x.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/twitternav.png b/Xamarin.Forms.ControlGallery.iOS/Resources/twitternav.png
new file mode 100644
index 0000000..82f6a80
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/twitternav.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/twitternav@2x.png b/Xamarin.Forms.ControlGallery.iOS/Resources/twitternav@2x.png
new file mode 100644
index 0000000..505d35b
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/twitternav@2x.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Resources/xamarinlogo.png b/Xamarin.Forms.ControlGallery.iOS/Resources/xamarinlogo.png
new file mode 100644
index 0000000..a115e0f
--- /dev/null
+++ b/Xamarin.Forms.ControlGallery.iOS/Resources/xamarinlogo.png
Binary files differ
diff --git a/Xamarin.Forms.ControlGallery.iOS/Xamarin.Forms.ControlGallery.iOS.csproj b/Xamarin.Forms.ControlGallery.iOS/Xamarin.Forms.ControlGallery.iOS.csproj
index 3d672cd..848addd 100644
--- a/Xamarin.Forms.ControlGallery.iOS/Xamarin.Forms.ControlGallery.iOS.csproj
+++ b/Xamarin.Forms.ControlGallery.iOS/Xamarin.Forms.ControlGallery.iOS.csproj
@@ -235,6 +235,61 @@
<BundleResource Include="Images\Vegetables%402x.jpg" />
<BundleResource Include="toolbar_close.png" />
<BundleResource Include="test.jpg" />
+ <BundleResource Include="Resources\about.png" />
+ <BundleResource Include="Resources\about%402x.png" />
+ <BundleResource Include="Resources\blog.png" />
+ <BundleResource Include="Resources\blog%402x.png" />
+ <BundleResource Include="Resources\facebook.png" />
+ <BundleResource Include="Resources\facebook%402x.png" />
+ <BundleResource Include="Resources\favorite.png" />
+ <BundleResource Include="Resources\googleplus.png" />
+ <BundleResource Include="Resources\googleplus%402x.png" />
+ <BundleResource Include="Resources\hm_full.jpg" />
+ <BundleResource Include="Resources\hm.png" />
+ <BundleResource Include="Resources\hm%402x.png" />
+ <BundleResource Include="Resources\home.png" />
+ <BundleResource Include="Resources\ic_pause.png" />
+ <BundleResource Include="Resources\ic_pause%402x.png" />
+ <BundleResource Include="Resources\ic_play.png" />
+ <BundleResource Include="Resources\ic_play%402x.png" />
+ <BundleResource Include="Resources\ic_share.png" />
+ <BundleResource Include="Resources\ic_share%402x.png" />
+ <BundleResource Include="Resources\ic_stop.png" />
+ <BundleResource Include="Resources\ic_stop%402x.png" />
+ <BundleResource Include="Resources\Icon-60%402x.png" />
+ <BundleResource Include="Resources\Icon-Small-40%402x.png" />
+ <BundleResource Include="Resources\Icon-Small.png" />
+ <BundleResource Include="Resources\Icon-Small%402x.png" />
+ <BundleResource Include="Resources\Icon.png" />
+ <BundleResource Include="Resources\Icon%402x.png" />
+ <BundleResource Include="Resources\instagram.png" />
+ <BundleResource Include="Resources\instagram%402x.png" />
+ <BundleResource Include="Resources\lists.png" />
+ <BundleResource Include="Resources\messages.png" />
+ <BundleResource Include="Resources\notifications.png" />
+ <BundleResource Include="Resources\profile.png" />
+ <BundleResource Include="Resources\ratchet_full.jpg" />
+ <BundleResource Include="Resources\ratchet.png" />
+ <BundleResource Include="Resources\ratchet%402x.png" />
+ <BundleResource Include="Resources\refresh.png" />
+ <BundleResource Include="Resources\refresh%402x.png" />
+ <BundleResource Include="Resources\reply.png" />
+ <BundleResource Include="Resources\retweet.png" />
+ <BundleResource Include="Resources\rui.jpg" />
+ <BundleResource Include="Resources\scott.png" />
+ <BundleResource Include="Resources\scott159.png" />
+ <BundleResource Include="Resources\search.png" />
+ <BundleResource Include="Resources\slideout.png" />
+ <BundleResource Include="Resources\slideout%402x.png" />
+ <BundleResource Include="Resources\tdl_full.jpg" />
+ <BundleResource Include="Resources\tdl.png" />
+ <BundleResource Include="Resources\tdl%402x.png" />
+ <BundleResource Include="Resources\tweet.png" />
+ <BundleResource Include="Resources\twitter.png" />
+ <BundleResource Include="Resources\twitter%402x.png" />
+ <BundleResource Include="Resources\twitternav.png" />
+ <BundleResource Include="Resources\twitternav%402x.png" />
+ <BundleResource Include="Resources\xamarinlogo.png" />
</ItemGroup>
<ItemGroup>
<Reference Include="AdvancedColorPicker">
@@ -269,5 +324,8 @@
<Visible>False</Visible>
</XamarinComponentReference>
</ItemGroup>
+ <ItemGroup>
+ <Folder Include="Resources\" />
+ </ItemGroup>
<Import Project="..\packages\Xamarin.Insights.1.12.3\build\Xamarin.iOS10\Xamarin.Insights.targets" Condition="Exists('..\packages\Xamarin.Insights.1.12.3\build\Xamarin.iOS10\Xamarin.Insights.targets')" />
</Project> \ No newline at end of file
diff --git a/Xamarin.Forms.Controls/GalleryPages/MacTwitterDemo.xaml b/Xamarin.Forms.Controls/GalleryPages/MacTwitterDemo.xaml
new file mode 100644
index 0000000..50793f8
--- /dev/null
+++ b/Xamarin.Forms.Controls/GalleryPages/MacTwitterDemo.xaml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="Xamarin.Forms.Controls.MacTwitterDemo">
+ <MasterDetailPage.Master>
+ <ContentPage BackgroundColor="#24456e" Title="Master">
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition />
+ <RowDefinition Height="50" />
+ </Grid.RowDefinitions>
+ <ScrollView Margin="0,55,0,0" BackgroundColor="Transparent">
+ <StackLayout>
+ <Image Source="rui.jpg" WidthRequest="50" HeightRequest="50" HorizontalOptions="Center" />
+ <Image Source="home.png" Margin="0,20,0,0" WidthRequest="25"/>
+ <Image Source="notifications.png" Margin="0,20,0,0" WidthRequest="25" />
+ <Image Source="messages.png" Margin="0,20,0,0" WidthRequest="22" />
+ <Image Source="profile.png" Margin="0,20,0,0" WidthRequest="25" />
+ <Image Source="lists.png" Margin="0,20,0,0" WidthRequest="25" />
+ <Image Source="search.png" Margin="0,20,0,0" WidthRequest="25" />
+ </StackLayout>
+ </ScrollView>
+ <Image Grid.Row="1" Source="tweet.png" WidthRequest="25" HeightRequest="25" VerticalOptions="Start" />
+ </Grid>
+ </ContentPage>
+ </MasterDetailPage.Master>
+ <MasterDetailPage.Detail>
+ <ContentPage BackgroundColor="#ffffff" Title="Home">
+ <ListView x:Name="lstTweets" RowHeight="125" BackgroundColor="#ffffff">
+ <ListView.Header>
+ <Grid HeightRequest="45" BackgroundColor="#ffffff">
+ <Grid.RowDefinitions>
+ <RowDefinition />
+ <RowDefinition Height="0.5" />
+ </Grid.RowDefinitions>
+ <Label Text="Home" FontFamily="Helvetica" FontSize="14" VerticalOptions="CenterAndExpand" VerticalTextAlignment="Center" HorizontalOptions="CenterAndExpand" />
+ <BoxView Color="#cbd5dd" Grid.Row="1" />
+ </Grid>
+ </ListView.Header>
+ <ListView.ItemTemplate>
+ <DataTemplate>
+ <ViewCell>
+ <Grid BackgroundColor="White" Padding="0,5,0,5" RowSpacing="3">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="*" />
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="0.5" />
+ </Grid.RowDefinitions>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="50" />
+ <ColumnDefinition Width="*" />
+ </Grid.ColumnDefinitions>
+ <Image Source="xamarinlogo.png" Grid.RowSpan="3" Margin="0,5,0,0" WidthRequest="50" HeightRequest="50" VerticalOptions="Start" />
+ <Label FontFamily="Helvetica" FontSize="15" Grid.Column="1" Grid.Row="0" Text="Xamarin" VerticalOptions="Start" VerticalTextAlignment="Start" />
+ <Label FontFamily="Helvetica" FontSize="14" Grid.Column="1" Grid.Row="1" Text="Download the source code for the #XamarinEvolve 2016 app, leveraging 93% codeshare across iOS, Android, and Windows: http://xmn.io/26xD51i" />
+ <StackLayout HorizontalOptions="Start" Spacing="40" VerticalOptions="Center" Orientation="Horizontal" Grid.Column="1" Grid.Row="2" Padding="0,10,0,10">
+ <Image Source="reply.png" WidthRequest="15" />
+ <Image Source="retweet.png" WidthRequest="15" />
+ <Image Source="favorite.png" WidthRequest="15" />
+ </StackLayout>
+ <BoxView Color="#cbd5dd" Grid.Row="3" Grid.ColumnSpan="2" />
+ </Grid>
+ </ViewCell>
+ </DataTemplate>
+ </ListView.ItemTemplate>
+ </ListView>
+ </ContentPage>
+ </MasterDetailPage.Detail>
+</MasterDetailPage> \ No newline at end of file
diff --git a/Xamarin.Forms.Controls/GalleryPages/MacTwitterDemo.xaml.cs b/Xamarin.Forms.Controls/GalleryPages/MacTwitterDemo.xaml.cs
new file mode 100644
index 0000000..2a6b63c
--- /dev/null
+++ b/Xamarin.Forms.Controls/GalleryPages/MacTwitterDemo.xaml.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+
+using Xamarin.Forms;
+
+namespace Xamarin.Forms.Controls
+{
+ public partial class MacTwitterDemo : MasterDetailPage
+ {
+ public MacTwitterDemo()
+ {
+ InitializeComponent();
+ lstTweets.ItemsSource = new string[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" };
+ }
+ }
+}
diff --git a/Xamarin.Forms.Controls/HanselForms/BaseView.cs b/Xamarin.Forms.Controls/HanselForms/BaseView.cs
new file mode 100644
index 0000000..926dbc9
--- /dev/null
+++ b/Xamarin.Forms.Controls/HanselForms/BaseView.cs
@@ -0,0 +1,32 @@
+namespace Xamarin.Forms.Controls
+{
+ public class BaseView : ContentPage
+ {
+ public BaseView()
+ {
+ SetBinding(Page.TitleProperty, new Binding(HBaseViewModel.TitlePropertyName));
+ SetBinding(Page.IconProperty, new Binding(HBaseViewModel.IconPropertyName));
+ }
+ }
+
+ public class HanselmanNavigationPage : NavigationPage
+ {
+ public HanselmanNavigationPage(Page root) : base(root)
+ {
+ Init();
+ }
+
+ public HanselmanNavigationPage()
+ {
+ Init();
+ }
+
+ void Init()
+ {
+
+ BarBackgroundColor = Color.FromHex("#03A9F4");
+ BarTextColor = Color.White;
+ }
+ }
+
+} \ No newline at end of file
diff --git a/Xamarin.Forms.Controls/HanselForms/BlogPage.xaml b/Xamarin.Forms.Controls/HanselForms/BlogPage.xaml
new file mode 100644
index 0000000..c4d6c2c
--- /dev/null
+++ b/Xamarin.Forms.Controls/HanselForms/BlogPage.xaml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="Xamarin.Forms.Controls.BlogPage" Title="{Binding Title}" Icon="{Binding Icon}" IsBusy="{Binding IsBusy}">
+ <AbsoluteLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
+ <ListView x:Name="listView" CachingStrategy="RecycleElement" ItemsSource="{Binding FeedItems}" HasUnevenRows="True" RowHeight="175" IsPullToRefreshEnabled="True" RefreshCommand="{Binding LoadItemsCommand}" IsRefreshing="{Binding IsBusy, Mode=OneWay}" AbsoluteLayout.LayoutFlags="All" AbsoluteLayout.LayoutBounds="0,0,1,1">
+ <ListView.ItemTemplate>
+ <DataTemplate>
+ <ViewCell>
+ <Grid Padding="10">
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="80" />
+ <ColumnDefinition Width="*" />
+ </Grid.ColumnDefinitions>
+ <StackLayout Grid.Column="1" Spacing="4" VerticalOptions="Center">
+ <Label Text="{Binding Title}" FontSize="Small" LineBreakMode="WordWrap" />
+ <Label Text="{Binding PublishDate}" TextColor="#3498DB" FontSize="Small" LineBreakMode="NoWrap" />
+ <Label Text="{Binding Caption}" FontSize="Small" LineBreakMode="WordWrap" />
+ </StackLayout>
+ <Image HeightRequest="80" WidthRequest="80" Source="{Binding FirstImage}" Aspect="AspectFill" VerticalOptions="Center" />
+ </Grid>
+ </ViewCell>
+ </DataTemplate>
+ </ListView.ItemTemplate>
+ </ListView>
+ <StackLayout IsVisible="{Binding IsBusy}" BackgroundColor="#80000000" Padding="12" AbsoluteLayout.LayoutFlags="PositionProportional" AbsoluteLayout.LayoutBounds="0.5,0.5,-1,-1">
+ <ActivityIndicator IsRunning="{Binding IsBusy}" Color="White">
+ </ActivityIndicator>
+ <Label Text="Loading Blog..." HorizontalOptions="Center" TextColor="White" />
+ </StackLayout>
+ </AbsoluteLayout>
+</ContentPage> \ No newline at end of file
diff --git a/Xamarin.Forms.Controls/HanselForms/BlogPage.xaml.cs b/Xamarin.Forms.Controls/HanselForms/BlogPage.xaml.cs
new file mode 100644
index 0000000..67afb59
--- /dev/null
+++ b/Xamarin.Forms.Controls/HanselForms/BlogPage.xaml.cs
@@ -0,0 +1,336 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.ComponentModel;
+using System.Net.Http;
+using System.Text.RegularExpressions;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using System.Linq;
+using Xamarin.Forms;
+
+namespace Xamarin.Forms.Controls
+{
+ public partial class BlogPage : ContentPage
+ {
+
+ private BlogFeedViewModel ViewModel
+ {
+ get { return BindingContext as BlogFeedViewModel; }
+ }
+
+ public BlogPage()
+ {
+ InitializeComponent();
+ BindingContext = new BlogFeedViewModel();
+
+ listView.ItemTapped += (sender, args) =>
+ {
+ if (listView.SelectedItem == null)
+ return;
+ this.Navigation.PushAsync(new BlogDetailsView(listView.SelectedItem as FeedItem));
+ listView.SelectedItem = null;
+ };
+ }
+
+ protected override void OnAppearing()
+ {
+ base.OnAppearing();
+ if (ViewModel == null || !ViewModel.CanLoadMore || ViewModel.IsBusy || ViewModel.FeedItems.Count > 0)
+ return;
+
+ ViewModel.LoadItemsCommand.Execute(null);
+ }
+ }
+
+
+ public class BlogDetailsView : BaseView
+ {
+ public BlogDetailsView(FeedItem item)
+ {
+ BindingContext = item;
+ var webView = new WebView
+ {
+ VerticalOptions = LayoutOptions.FillAndExpand,
+ HorizontalOptions = LayoutOptions.FillAndExpand
+ };
+ webView.Source = new HtmlWebViewSource
+ {
+ Html = item.Description
+ };
+ Content = new StackLayout
+ {
+ Children =
+ {
+ webView
+ }
+ };
+ var share = new ToolbarItem
+ {
+ Icon = "ic_share.png",
+ Text = "Share",
+ //Command = new Command(() => CrossShare.Current
+ // .Share("Be sure to read @shanselman's " + item.Title + " " + item.Link))
+ };
+
+ ToolbarItems.Add(share);
+ }
+ }
+
+
+ public class BlogFeedViewModel : HBaseViewModel
+ {
+ public BlogFeedViewModel()
+ {
+ Title = "Blog";
+ Icon = "blog.png";
+ }
+
+ private ObservableCollection<FeedItem> feedItems = new ObservableCollection<FeedItem>();
+
+ /// <summary>
+ /// gets or sets the feed items
+ /// </summary>
+ public ObservableCollection<FeedItem> FeedItems
+ {
+ get { return feedItems; }
+ set { feedItems = value; OnPropertyChanged(); }
+ }
+
+ private FeedItem selectedFeedItem;
+ /// <summary>
+ /// Gets or sets the selected feed item
+ /// </summary>
+ public FeedItem SelectedFeedItem
+ {
+ get { return selectedFeedItem; }
+ set
+ {
+ selectedFeedItem = value;
+ OnPropertyChanged();
+ }
+ }
+
+ private Command loadItemsCommand;
+ /// <summary>
+ /// Command to load/refresh items
+ /// </summary>
+ public Command LoadItemsCommand
+ {
+ get { return loadItemsCommand ?? (loadItemsCommand = new Command(async () => await ExecuteLoadItemsCommand())); }
+ }
+
+ private async Task ExecuteLoadItemsCommand()
+ {
+ if (IsBusy)
+ return;
+
+ IsBusy = true;
+ var error = false;
+ try
+ {
+ var responseString = string.Empty;
+ using (var httpClient = new HttpClient())
+ {
+ var feed = "http://feeds.hanselman.com/ScottHanselman";
+ responseString = await httpClient.GetStringAsync(feed);
+ }
+
+ FeedItems.Clear();
+ var items = await ParseFeed(responseString);
+ foreach (var item in items)
+ {
+ FeedItems.Add(item);
+ }
+ }
+ catch
+ {
+ error = true;
+ }
+
+ if (error)
+ {
+ var page = new ContentPage();
+ await page.DisplayAlert("Error", "Unable to load blog.", "OK");
+
+ }
+
+ IsBusy = false;
+ }
+
+
+
+ /// <summary>
+ /// Parse the RSS Feed
+ /// </summary>
+ /// <param name="rss"></param>
+ /// <returns></returns>
+ private async Task<List<FeedItem>> ParseFeed(string rss)
+ {
+ return await Task.Run(() =>
+ {
+ var xdoc = XDocument.Parse(rss);
+ var id = 0;
+ return (from item in xdoc.Descendants("item")
+ select new FeedItem
+ {
+ Title = (string)item.Element("title"),
+ Description = (string)item.Element("description"),
+ Link = (string)item.Element("link"),
+ PublishDate = (string)item.Element("pubDate"),
+ Category = (string)item.Element("category"),
+ Id = id++
+ }).ToList();
+ });
+ }
+
+ /// <summary>
+ /// Gets a specific feed item for an Id
+ /// </summary>
+ /// <param name="id"></param>
+ /// <returns></returns>
+ public FeedItem GetFeedItem(int id)
+ {
+ return FeedItems.FirstOrDefault(i => i.Id == id);
+ }
+ }
+
+ public class FeedItem : INotifyPropertyChanged
+ {
+
+
+
+ public string Description { get; set; }
+ public string Link { get; set; }
+ private string publishDate;
+ public string PublishDate
+ {
+ get { return publishDate; }
+ set
+ {
+ DateTime time;
+ if (DateTime.TryParse(value, out time))
+ publishDate = time.ToLocalTime().ToString("D");
+ else
+ publishDate = value;
+ }
+ }
+ public string Author { get; set; }
+ public string AuthorEmail { get; set; }
+ public int Id { get; set; }
+ public string CommentCount { get; set; }
+ public string Category { get; set; }
+
+ public string Mp3Url { get; set; }
+
+ private string title;
+ public string Title
+ {
+ get
+ {
+ return title;
+ }
+ set
+ {
+ title = value;
+
+ }
+ }
+
+ private string caption;
+
+ public string Caption
+ {
+ get
+ {
+ if (!string.IsNullOrWhiteSpace(caption))
+ return caption;
+
+
+ //get rid of HTML tags
+ caption = Regex.Replace(Description, "<[^>]*>", string.Empty);
+
+
+ //get rid of multiple blank lines
+ caption = Regex.Replace(caption, @"^\s*$\n", string.Empty, RegexOptions.Multiline);
+
+ caption = caption.Substring(0, caption.Length < 200 ? caption.Length : 200).Trim() + "...";
+ return caption;
+ }
+ }
+
+ public string Length { get; set; }
+
+ private bool showImage = true;
+
+ public bool ShowImage
+ {
+ get { return showImage; }
+ set { showImage = value; }
+ }
+
+ private string image = @"https://secure.gravatar.com/avatar/70148d964bb389d42547834e1062c886?s=60&r=x&d=http%3a%2f%2fd1iqk4d73cu9hh.cloudfront.net%2fcomponents%2fimg%2fuser-icon.png";
+
+ /// <summary>
+ /// When we set the image, mark show image as true
+ /// </summary>
+ public string Image
+ {
+ get { return image; }
+ set
+ {
+ image = value;
+ showImage = true;
+ }
+
+ }
+
+ private string firstImage;
+ public string FirstImage
+ {
+ get
+ {
+ if (!string.IsNullOrWhiteSpace(firstImage))
+ return firstImage;
+
+
+ var regx = new Regex("http://([\\w+?\\.\\w+])+([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&amp;\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;\\'\\,]*)?.(?:jpg|bmp|gif|png)", RegexOptions.IgnoreCase);
+ var matches = regx.Matches(Description);
+
+ if (matches.Count == 0)
+ firstImage = ScottHead;
+ else
+ firstImage = matches[0].Value;
+
+ return firstImage;
+ }
+ }
+
+ public ImageSource FirstImageSource
+ {
+ get
+ {
+ var image = FirstImage;
+ return UriImageSource.FromUri(new Uri(image));
+ }
+ }
+
+ public string ScottHead { get { return "http://www.hanselman.com/images/photo-scott-tall.jpg"; } }
+
+ private decimal progress = 0.0M;
+ public decimal Progress
+ {
+ get { return progress; }
+ set { progress = value; OnPropertyChanged("Progress"); }
+ }
+
+
+ public event PropertyChangedEventHandler PropertyChanged;
+ private void OnPropertyChanged(string name)
+ {
+ if (PropertyChanged == null)
+ return;
+ PropertyChanged(this, new PropertyChangedEventArgs(name));
+ }
+ }
+}
diff --git a/Xamarin.Forms.Controls/HanselForms/HBaseViewModel.cs b/Xamarin.Forms.Controls/HanselForms/HBaseViewModel.cs
new file mode 100644
index 0000000..ed0c208
--- /dev/null
+++ b/Xamarin.Forms.Controls/HanselForms/HBaseViewModel.cs
@@ -0,0 +1,120 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Runtime.CompilerServices;
+
+namespace Xamarin.Forms.Controls
+{
+ public class HBaseViewModel : INotifyPropertyChanged
+ {
+ public HBaseViewModel()
+ {
+ }
+
+ private string title = string.Empty;
+ public const string TitlePropertyName = "Title";
+
+ /// <summary>
+ /// Gets or sets the "Title" property
+ /// </summary>
+ /// <value>The title.</value>
+ public string Title
+ {
+ get { return title; }
+ set { SetProperty(ref title, value); }
+ }
+
+ private string subtitle = string.Empty;
+ /// <summary>
+ /// Gets or sets the "Subtitle" property
+ /// </summary>
+ public const string SubtitlePropertyName = "Subtitle";
+ public string Subtitle
+ {
+ get { return subtitle; }
+ set { SetProperty(ref subtitle, value); }
+ }
+
+ private string icon = null;
+ /// <summary>
+ /// Gets or sets the "Icon" of the viewmodel
+ /// </summary>
+ public const string IconPropertyName = "Icon";
+ public string Icon
+ {
+ get { return icon; }
+ set { SetProperty(ref icon, value); }
+ }
+
+ bool isBusy;
+
+ /// <summary>
+ /// Gets or sets a value indicating whether this instance is busy.
+ /// </summary>
+ /// <value><c>true</c> if this instance is busy; otherwise, <c>false</c>.</value>
+ public bool IsBusy
+ {
+ get { return isBusy; }
+ set
+ {
+ if (SetProperty(ref isBusy, value))
+ IsNotBusy = !isBusy;
+ }
+ }
+
+ bool isNotBusy = true;
+
+ /// <summary>
+ /// Gets or sets a value indicating whether this instance is not busy.
+ /// </summary>
+ /// <value><c>true</c> if this instance is not busy; otherwise, <c>false</c>.</value>
+ public bool IsNotBusy
+ {
+ get { return isNotBusy; }
+ private set { SetProperty(ref isNotBusy, value); }
+ }
+
+ private bool canLoadMore = true;
+ /// <summary>
+ /// Gets or sets if we can load more.
+ /// </summary>
+ public const string CanLoadMorePropertyName = "CanLoadMore";
+ public bool CanLoadMore
+ {
+ get { return canLoadMore; }
+ set { SetProperty(ref canLoadMore, value); }
+ }
+
+ protected bool SetProperty<T>(
+ ref T backingStore, T value,
+ [CallerMemberName]string propertyName = "",
+ Action onChanged = null)
+ {
+
+
+ if (EqualityComparer<T>.Default.Equals(backingStore, value))
+ return false;
+
+ backingStore = value;
+
+ if (onChanged != null)
+ onChanged();
+
+ OnPropertyChanged(propertyName);
+ return true;
+ }
+
+ #region INotifyPropertyChanged implementation
+ public event PropertyChangedEventHandler PropertyChanged;
+ #endregion
+
+ public void OnPropertyChanged([CallerMemberName] string propertyName = "")
+ {
+ var changed = PropertyChanged;
+ if (changed == null)
+ return;
+
+ changed(this, new PropertyChangedEventArgs(propertyName));
+ }
+ }
+} \ No newline at end of file
diff --git a/Xamarin.Forms.Controls/HanselForms/MyAbout.xaml b/Xamarin.Forms.Controls/HanselForms/MyAbout.xaml
new file mode 100644
index 0000000..151bd7c
--- /dev/null
+++ b/Xamarin.Forms.Controls/HanselForms/MyAbout.xaml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ContentPage Title="Scott Hanselman" xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="Xamarin.Forms.Controls.MyAbout">
+ <ContentPage.Content>
+ <ScrollView>
+ <StackLayout Orientation="Vertical" Spacing="10">
+ <Image Aspect="AspectFill" Source="scott.png" />
+ <StackLayout Spacing="10" Padding="10" VerticalOptions="FillAndExpand">
+ <Label Text="My name is Scott Hanselman. I'm a programmer, teacher, and speaker. I work out of my home office in Portland, Oregon for the Web Platform Team at Microsoft, but this blog, its content and opinions are my own. I blog about technology, culture, gadgets, diversity, code, the web, where we're going and where we've been. I'm excited about community, social equity, media, entrepreneurship and above all, the open web." LineBreakMode="WordWrap" />
+ <StackLayout Orientation="Horizontal" HorizontalOptions="CenterAndExpand" Spacing="10">
+ <Image x:Name="twitter" Source="twitter.png" />
+ <Image x:Name="facebook" Source="facebook.png" />
+ <Image x:Name="instagram" Source="instagram.png" />
+ </StackLayout>
+ </StackLayout>
+ </StackLayout>
+ </ScrollView>
+ </ContentPage.Content>
+</ContentPage> \ No newline at end of file
diff --git a/Xamarin.Forms.Controls/HanselForms/MyAbout.xaml.cs b/Xamarin.Forms.Controls/HanselForms/MyAbout.xaml.cs
new file mode 100644
index 0000000..c332453
--- /dev/null
+++ b/Xamarin.Forms.Controls/HanselForms/MyAbout.xaml.cs
@@ -0,0 +1,42 @@
+using System;
+using System.Collections.Generic;
+
+using Xamarin.Forms;
+
+namespace Xamarin.Forms.Controls
+{
+ public partial class MyAbout : ContentPage
+ {
+ public MyAbout()
+ {
+ InitializeComponent();
+
+ twitter.GestureRecognizers.Add(new TapGestureRecognizer()
+ {
+ Command = new Command(async () =>
+ {
+
+ await this.Navigation.PushAsync(new WebsiteView("https://m.twitter.com/shanselman", "@shanselman"));
+ })
+ });
+
+ facebook.GestureRecognizers.Add(new TapGestureRecognizer()
+ {
+ Command = new Command(async () =>
+ {
+
+ await this.Navigation.PushAsync(new WebsiteView("https://facebook.com/scott.hanselman", "Scott @Facebook"));
+ })
+ });
+
+ instagram.GestureRecognizers.Add(new TapGestureRecognizer()
+ {
+ Command = new Command(async () =>
+ {
+
+ await this.Navigation.PushAsync(new WebsiteView("https://instagram.com/shanselman", "Scott @Instagram"));
+ })
+ });
+ }
+ }
+}
diff --git a/Xamarin.Forms.Controls/HanselForms/RootPage.cs b/Xamarin.Forms.Controls/HanselForms/RootPage.cs
new file mode 100644
index 0000000..7d71076
--- /dev/null
+++ b/Xamarin.Forms.Controls/HanselForms/RootPage.cs
@@ -0,0 +1,181 @@
+using System;
+using System.Collections.Generic;
+
+namespace Xamarin.Forms.Controls
+{
+ public enum HMenuType
+ {
+ About,
+ Blog,
+ Twitter,
+ Hanselminutes,
+ Ratchet,
+ DeveloperLife
+ }
+
+ public class HomeMenuItem : BaseModel
+ {
+ public HomeMenuItem()
+ {
+ MenuType = HMenuType.About;
+ }
+ public string Icon { get; set; }
+ public HMenuType MenuType { get; set; }
+ }
+
+ public class BaseModel
+ {
+ public string Title { get; set; }
+ public string Details { get; set; }
+ public int Id { get; set; }
+ }
+
+ public class RootPage : MasterDetailPage
+ {
+ public static bool IsUWPDesktop { get; set; }
+ Dictionary<HMenuType, NavigationPage> Pages { get; set; }
+ public RootPage()
+ {
+ Pages = new Dictionary<HMenuType, NavigationPage>();
+ Master = new MenuPage1(this);
+
+ BindingContext = new HBaseViewModel
+ {
+ Title = "Hanselman",
+ Icon = "slideout.png"
+ };
+ Navigate(HMenuType.About);
+ }
+
+ public void Navigate(HMenuType id)
+ {
+ Page newPage;
+ if (!Pages.ContainsKey(id))
+ {
+ switch (id)
+ {
+ case HMenuType.About:
+ Pages.Add(id, new HanselmanNavigationPage(new MyAbout()));
+ break;
+ case HMenuType.Blog:
+ Pages.Add(id, new HanselmanNavigationPage(new BlogPage()));
+ break;
+ case HMenuType.DeveloperLife:
+ Pages.Add(id, new HanselmanNavigationPage(new ContentPage() { Title = "Page 3" }));
+ break;
+ case HMenuType.Hanselminutes:
+ Pages.Add(id, new HanselmanNavigationPage(new ContentPage() { Title = "Page 4" }));
+ break;
+ case HMenuType.Ratchet:
+ Pages.Add(id, new HanselmanNavigationPage(new ContentPage() { Title = "Page 5" }));
+ break;
+ case HMenuType.Twitter:
+ Pages.Add(id, new HanselmanNavigationPage(new ContentPage() { Title = "Page 6" }));
+ break;
+ }
+ }
+
+ newPage = Pages[id];
+ if (newPage == null)
+ return;
+
+ Detail = newPage;
+ }
+ }
+
+ public class MenuPage1 : ContentPage
+ {
+ RootPage mdp;
+ ListView ListViewMenu;
+ List<HomeMenuItem> menuItems;
+ public MenuPage1(RootPage page)
+ {
+ Title = "Master";
+ mdp = page;
+ ListViewMenu = new ListView(ListViewCachingStrategy.RecycleElement)
+ {
+ HasUnevenRows = true,
+ SeparatorColor = Color.Transparent,
+ ItemTemplate = new DataTemplate(typeof(MenuViewCell))
+ };
+ ListViewMenu.ItemsSource = menuItems = new List<HomeMenuItem>
+ {
+ new HomeMenuItem { Title = "About", MenuType = HMenuType.About, Icon ="about.png" },
+ new HomeMenuItem { Title = "Blog", MenuType = HMenuType.Blog, Icon = "blog.png" },
+ new HomeMenuItem { Title = "Twitter", MenuType = HMenuType.Twitter, Icon = "twitternav.png" },
+ new HomeMenuItem { Title = "Hanselminues", MenuType = HMenuType.Hanselminutes, Icon = "hm.png" },
+ new HomeMenuItem { Title = "Ratchet", MenuType = HMenuType.Ratchet, Icon = "ratchet.png" },
+ new HomeMenuItem { Title = "Developers Life", MenuType = HMenuType.DeveloperLife, Icon = "tdl.png"},
+ };
+
+ ListViewMenu.Header = GetHeader();
+
+ ListViewMenu.SelectedItem = menuItems[0];
+
+ ListViewMenu.ItemSelected += (sender, e) =>
+ {
+ if (ListViewMenu.SelectedItem == null)
+ return;
+
+ mdp.Navigate(((HomeMenuItem)e.SelectedItem).MenuType);
+ };
+ Content = ListViewMenu;
+ }
+
+ static Grid GetHeader()
+ {
+ var grd = new Grid { Padding = new Thickness() };
+ grd.ColumnDefinitions.Add(new ColumnDefinition { Width = 10 });
+ grd.ColumnDefinitions.Add(new ColumnDefinition { Width = GridLength.Star });
+ grd.ColumnDefinitions.Add(new ColumnDefinition { Width = 10 });
+
+ grd.RowDefinitions.Add(new RowDefinition { Height = 30 });
+ grd.RowDefinitions.Add(new RowDefinition { Height = 80 });
+ grd.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
+ grd.RowDefinitions.Add(new RowDefinition { Height = 5 });
+
+ var boxView = new BoxView { BackgroundColor = Color.FromHex("#03A9F4") };
+ Grid.SetRowSpan(boxView, 4);
+ Grid.SetColumnSpan(boxView, 3);
+
+ var image = new Image
+ {
+ Source = "scott159.png",
+ WidthRequest = 75,
+ HeightRequest = 75,
+ VerticalOptions = LayoutOptions.End,
+ HorizontalOptions = LayoutOptions.Start
+ };
+
+ Grid.SetRow(image, 1);
+ Grid.SetColumn(image, 1);
+
+ var lbl = new Label { Text = "Hanselman.Forms" };
+ Grid.SetRow(lbl, 2);
+ Grid.SetColumn(lbl, 1);
+
+ grd.Children.Add(boxView);
+ grd.Children.Add(image);
+ grd.Children.Add(lbl);
+ return grd;
+ }
+ }
+
+ class MenuViewCell : ViewCell
+ {
+ public MenuViewCell()
+ {
+ var grd = new Grid { Padding = new Thickness(5) };
+ grd.ColumnDefinitions.Add(new ColumnDefinition { Width = GridLength.Auto });
+ grd.ColumnDefinitions.Add(new ColumnDefinition { Width = GridLength.Star });
+ var img = new Image { HeightRequest = 25, WidthRequest = 25 };
+ img.SetBinding(Image.SourceProperty, nameof(HomeMenuItem.Icon));
+ var lbl = new Label { FontSize = 24, VerticalOptions = LayoutOptions.Center };
+ lbl.SetBinding(Label.TextProperty, nameof(HomeMenuItem.Title));
+ Grid.SetColumn(lbl, 1);
+ grd.Children.Add(img);
+ grd.Children.Add(lbl);
+ View = grd;
+ }
+ }
+}
diff --git a/Xamarin.Forms.Controls/HanselForms/TwitterPage.xaml b/Xamarin.Forms.Controls/HanselForms/TwitterPage.xaml
new file mode 100644
index 0000000..fb07279
--- /dev/null
+++ b/Xamarin.Forms.Controls/HanselForms/TwitterPage.xaml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="Xamarin.Forms.Controls.TwitterPage" Title="{Binding Title}" Icon="{Binding Icon}" IsBusy="{Binding IsBusy}">
+ <AbsoluteLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
+ <ListView CachingStrategy="RecycleElement" x:Name="listView" ItemsSource="{Binding Tweets}" HasUnevenRows="True" RowHeight="150" IsPullToRefreshEnabled="True" RefreshCommand="{Binding LoadTweetsCommand}" IsRefreshing="{Binding IsBusy, Mode=OneWay}" AbsoluteLayout.LayoutFlags="All" AbsoluteLayout.LayoutBounds="0,0,1,1">
+ <ListView.ItemTemplate>
+ <DataTemplate>
+ <ViewCell>
+ <Grid Padding="10,5">
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="Auto" />
+ <ColumnDefinition Width="*" />
+ </Grid.ColumnDefinitions>
+ <Image Source="{Binding Image}" VerticalOptions="Center">
+ <Image.WidthRequest>
+ <OnPlatform x:TypeArguments="x:Double">
+ <OnPlatform.iOS>55</OnPlatform.iOS>
+ <OnPlatform.Android>55 </OnPlatform.Android>
+ <OnPlatform.WinPhone>75</OnPlatform.WinPhone>
+ </OnPlatform>
+ </Image.WidthRequest>
+ <Image.HeightRequest>
+ <OnPlatform x:TypeArguments="x:Double">
+ <OnPlatform.iOS>55</OnPlatform.iOS>
+ <OnPlatform.Android>55</OnPlatform.Android>
+ <OnPlatform.WinPhone>75</OnPlatform.WinPhone>
+ </OnPlatform>
+ </Image.HeightRequest>
+ </Image>
+ <StackLayout Grid.Column="1" Padding="8" Spacing="4" VerticalOptions="Center">
+ <Label Text="{Binding Date}" FontSize="Medium" TextColor="#3498DB" LineBreakMode="NoWrap" />
+ <Label Text="{Binding Text}" x:Name="TweetText" FontSize="Small" LineBreakMode="WordWrap" />
+ </StackLayout>
+ </Grid>
+ </ViewCell>
+ </DataTemplate>
+ </ListView.ItemTemplate>
+ </ListView>
+ <StackLayout IsVisible="{Binding IsBusy}" BackgroundColor="#80000000" Padding="12" AbsoluteLayout.LayoutFlags="PositionProportional" AbsoluteLayout.LayoutBounds="0.5,0.5,-1,-1">
+ <ActivityIndicator IsRunning="{Binding IsBusy}" Color="White">
+ </ActivityIndicator>
+ <Label Text="Loading Twitter..." HorizontalOptions="Center" TextColor="White" />
+ </StackLayout>
+ </AbsoluteLayout>
+</ContentPage> \ No newline at end of file
diff --git a/Xamarin.Forms.Controls/HanselForms/TwitterPage.xaml.cs b/Xamarin.Forms.Controls/HanselForms/TwitterPage.xaml.cs
new file mode 100644
index 0000000..40e488e
--- /dev/null
+++ b/Xamarin.Forms.Controls/HanselForms/TwitterPage.xaml.cs
@@ -0,0 +1,185 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Threading.Tasks;
+
+namespace Xamarin.Forms.Controls
+{
+ public partial class TwitterPage : ContentPage
+ {
+
+ private TwitterViewModel ViewModel
+ {
+ get { return BindingContext as TwitterViewModel; }
+ }
+ public TwitterPage()
+ {
+ InitializeComponent();
+ BindingContext = new TwitterViewModel();
+
+
+ listView.ItemTapped += (sender, args) =>
+ {
+ if (listView.SelectedItem == null)
+ return;
+ var tweet = listView.SelectedItem as Tweet;
+ this.Navigation.PushAsync(new WebsiteView("http://m.twitter.com/shanselman/status/" + tweet.StatusID, tweet.Date));
+ listView.SelectedItem = null;
+ };
+ }
+
+
+ protected override void OnAppearing()
+ {
+ base.OnAppearing();
+ if (ViewModel == null || !ViewModel.CanLoadMore || ViewModel.IsBusy || ViewModel.Tweets.Count > 0)
+ return;
+
+ ViewModel.LoadTweetsCommand.Execute(null);
+ }
+ }
+
+ public class TwitterViewModel : HBaseViewModel
+ {
+
+ public ObservableCollection<Tweet> Tweets { get; set; }
+
+ public TwitterViewModel()
+ {
+ Title = "Twitter";
+ Icon = "slideout.png";
+ Tweets = new ObservableCollection<Tweet>();
+
+ }
+
+ private Command loadTweetsCommand;
+
+ public Command LoadTweetsCommand
+ {
+ get
+ {
+ return loadTweetsCommand ??
+ (loadTweetsCommand = new Command(async () =>
+ {
+ await ExecuteLoadTweetsCommand();
+ }, () =>
+ {
+ return !IsBusy;
+ }));
+ }
+ }
+
+ public async Task ExecuteLoadTweetsCommand()
+ {
+ if (IsBusy)
+ return;
+
+ IsBusy = true;
+ LoadTweetsCommand.ChangeCanExecute();
+ var error = false;
+ try
+ {
+
+ Tweets.Clear();
+ //var auth = new ApplicationOnlyAuthorizer()
+ //{
+ // CredentialStore = new InMemoryCredentialStore
+ // {
+ // ConsumerKey = "ZTmEODUCChOhLXO4lnUCEbH2I",
+ // ConsumerSecret = "Y8z2Wouc5ckFb1a0wjUDT9KAI6DUat5tFNdmIkPLl8T4Nyaa2J",
+ // },
+ //};
+ //await auth.AuthorizeAsync();
+
+ //var twitterContext = new TwitterContext(auth);
+
+ //var queryResponse = await
+ // (from tweet in twitterContext.Status
+ // where tweet.Type == StatusType.User &&
+ // tweet.ScreenName == "shanselman" &&
+ // tweet.Count == 100 &&
+ // tweet.IncludeRetweets == true &&
+ // tweet.ExcludeReplies == true
+ // select tweet).ToListAsync();
+
+ //var tweets =
+ // (from tweet in queryResponse
+ // select new Tweet
+ // {
+ // StatusID = tweet.StatusID,
+ // ScreenName = tweet.User.ScreenNameResponse,
+ // Text = tweet.Text,
+ // CurrentUserRetweet = tweet.CurrentUserRetweet,
+ // CreatedAt = tweet.CreatedAt,
+ // Image = tweet.RetweetedStatus != null && tweet.RetweetedStatus.User != null ?
+ // tweet.RetweetedStatus.User.ProfileImageUrl.Replace("http://", "https://") : (tweet.User.ScreenNameResponse == "shanselman" ? "scott159.png" : tweet.User.ProfileImageUrl.Replace("http://", "https://"))
+ // }).ToList();
+ //foreach (var tweet in tweets)
+ //{
+ // Tweets.Add(tweet);
+ //}
+
+ if (Device.OS == TargetPlatform.iOS)
+ {
+ // only does anything on iOS, for the Watch
+ // DependencyService.Get<ITweetStore>().Save(tweets);
+ }
+
+
+
+ }
+ catch
+ {
+ error = true;
+ }
+
+ if (error)
+ {
+ var page = new ContentPage();
+ await page.DisplayAlert("Error", "Unable to load tweets.", "OK");
+ }
+
+ IsBusy = false;
+ LoadTweetsCommand.ChangeCanExecute();
+ }
+ }
+
+ public class Tweet
+ {
+ public Tweet()
+ {
+ }
+
+
+ public ulong StatusID { get; set; }
+
+ public string ScreenName { get; set; }
+
+ public string Text { get; set; }
+
+ //[JsonIgnore]
+ public string Date { get { return CreatedAt.ToString("g"); } }
+ //[JsonIgnore]
+ public string RTCount { get { return CurrentUserRetweet == 0 ? string.Empty : CurrentUserRetweet + " RT"; } }
+
+ public string Image { get; set; }
+
+ public DateTime CreatedAt
+ {
+ get;
+ set;
+ }
+
+ public ulong CurrentUserRetweet
+ {
+ get;
+ set;
+ }
+ }
+
+ public interface ITweetStore
+ {
+ void Save(System.Collections.Generic.List<Tweet> tweets);
+ //System.Collections.Generic.List<Hanselman.Shared.Tweet> Load ();
+ }
+}
diff --git a/Xamarin.Forms.Controls/HanselForms/WebsiteView.cs b/Xamarin.Forms.Controls/HanselForms/WebsiteView.cs
new file mode 100644
index 0000000..38b35fe
--- /dev/null
+++ b/Xamarin.Forms.Controls/HanselForms/WebsiteView.cs
@@ -0,0 +1,21 @@
+using System;
+
+using Xamarin.Forms;
+
+namespace Xamarin.Forms.Controls
+{
+ public class WebsiteView : BaseView
+ {
+ public WebsiteView(string site, string title)
+ {
+ this.Title = title;
+ var webView = new WebView();
+ webView.Source = new UrlWebViewSource
+ {
+ Url = site
+ };
+ Content = webView;
+ }
+ }
+}
+
diff --git a/Xamarin.Forms.Controls/Xamarin.Forms.Controls.csproj b/Xamarin.Forms.Controls/Xamarin.Forms.Controls.csproj
index 7e8e64c..fa6da67 100644
--- a/Xamarin.Forms.Controls/Xamarin.Forms.Controls.csproj
+++ b/Xamarin.Forms.Controls/Xamarin.Forms.Controls.csproj
@@ -1,328 +1,365 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
- <PropertyGroup>
- <MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectGuid>{CB9C96CE-125C-4A68-B6A1-C3FF1FBF93E1}</ProjectGuid>
- <OutputType>Library</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>Xamarin.Forms.Controls</RootNamespace>
- <AssemblyName>Xamarin.Forms.Controls</AssemblyName>
- <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
- <TargetFrameworkProfile>Profile259</TargetFrameworkProfile>
- <FileAlignment>512</FileAlignment>
- <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
- <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
- <RestorePackages>true</RestorePackages>
- <NuGetPackageImportStamp>
- </NuGetPackageImportStamp>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>bin\Debug\</OutputPath>
- <DefineConstants>TRACE;DEBUG;PERF;APP</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
- <NoWarn>0114;0108;0109;4014;0649;0169;0472;0414;0168;0219;0429</NoWarn>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>bin\Release\</OutputPath>
- <DefineConstants>TRACE;APP</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
- <NoWarn>0114;0108;0109;4014;0649;0169;0472;0414;0168;0219;0429</NoWarn>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Turkey|AnyCPU'">
- <DebugSymbols>true</DebugSymbols>
- <OutputPath>bin\Turkey\</OutputPath>
- <DefineConstants>TRACE;DEBUG;PERF;APP</DefineConstants>
- <DebugType>full</DebugType>
- <PlatformTarget>AnyCPU</PlatformTarget>
- <ErrorReport>prompt</ErrorReport>
- <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
- <WarningLevel>4</WarningLevel>
- <Optimize>false</Optimize>
- <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
- <NoWarn>0114;0108;0109;4014;0649;0169;0472;0414;0168;0219;0429</NoWarn>
- </PropertyGroup>
- <ItemGroup>
- <!-- A reference to the entire .NET Framework is automatically included -->
- <ProjectReference Include="..\Xamarin.Forms.Core\Xamarin.Forms.Core.csproj">
- <Project>{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}</Project>
- <Name>Xamarin.Forms.Core</Name>
- </ProjectReference>
- <ProjectReference Include="..\Xamarin.Forms.Build.Tasks\Xamarin.Forms.Build.Tasks.csproj">
- <Project>{96D89208-4EB9-4451-BE73-8A9DF3D9D7B7}</Project>
- <Name>Xamarin.Forms.Build.Tasks</Name>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
- <ProjectReference Include="..\Xamarin.Forms.CustomAttributes\Xamarin.Forms.CustomAttributes.csproj">
- <Project>{4dcd0420-1168-4b77-86db-6196ee4bd491}</Project>
- <Name>Xamarin.Forms.CustomAttributes</Name>
- </ProjectReference>
- <ProjectReference Include="..\Xamarin.Forms.Maps\Xamarin.Forms.Maps.csproj">
- <Project>{7d13bac2-c6a4-416a-b07e-c169b199e52b}</Project>
- <Name>Xamarin.Forms.Maps</Name>
- </ProjectReference>
- <ProjectReference Include="..\Xamarin.Forms.Pages\Xamarin.Forms.Pages.csproj">
- <Project>{d6133dbd-6c60-4bd5-bea2-07e0a3927c31}</Project>
- <Name>Xamarin.Forms.Pages</Name>
- </ProjectReference>
- <ProjectReference Include="..\Xamarin.Forms.Xaml\Xamarin.Forms.Xaml.csproj">
- <Project>{9db2f292-8034-4e06-89ad-98bbda4306b9}</Project>
- <Name>Xamarin.Forms.Xaml</Name>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <Compile Include="App.cs" />
- <Compile Include="AppLifeCycle.cs" />
- <Compile Include="Bugzilla44596SplashPage.cs" />
- <Compile Include="ControlGalleryPages\CellForceUpdateSizeGalleryPage.cs" />
- <Compile Include="ControlGalleryPages\LayoutAddPerformance.xaml.cs">
- <DependentUpon>LayoutAddPerformance.xaml</DependentUpon>
- </Compile>
- <Compile Include="ControlGalleryPages\ListScrollTo.cs" />
- <Compile Include="ControlGalleryPages\NavBarTitleTestPage.cs" />
- <Compile Include="ControlGalleryPages\NestedNativeControlGalleryPage.cs" />
- <Compile Include="ControlGalleryPages\PanGestureGalleryPage.cs" />
- <Compile Include="CoreGalleryPages\KeyboardCoreGalleryPage.cs" />
- <Compile Include="GalleryPages\BackgroundImageGallery.cs" />
- <Compile Include="GalleryPages\ControlTemplatePage.cs" />
- <Compile Include="GalleryPages\ControlTemplateXamlPage.xaml.cs">
- <DependentUpon>ControlTemplateXamlPage.xaml</DependentUpon>
- </Compile>
- <Compile Include="GalleryPages\LayoutPerformanceGallery.cs" />
- <Compile Include="GalleryPages\NavigationPropertiesGallery.cs" />
- <Compile Include="ControlGalleryPages\ListViewSelectionColor.cs" />
- <Compile Include="GalleryPages\PlatformSpecificsGalleries\ApplicationAndroid.cs" />
- <Compile Include="GalleryPages\PlatformSpecificsGalleries\EntryPageiOS.cs" />
- <Compile Include="GalleryPages\PlatformSpecificsGalleries\MasterDetailPageiOS.cs" />
- <Compile Include="GalleryPages\PlatformSpecificsGalleries\MasterDetailPageWindows.cs" />
- <Compile Include="GalleryPages\PlatformSpecificsGalleries\NavigationPageiOS.cs" />
- <Compile Include="GalleryPages\PlatformSpecificsGalleries\NavigationPageWindows.cs" />
- <Compile Include="GalleryPages\PlatformSpecificsGalleries\TabbedPageAndroid.cs" />
- <Compile Include="GalleryPages\PlatformSpecificsGalleries\TabbedPageiOS.cs" />
- <Compile Include="GalleryPages\PlatformSpecificsGalleries\TabbedPageWindows.cs" />
- <Compile Include="GalleryPages\PlatformSpecificsGalleries\VisualElementiOS.cs" />
- <Compile Include="GalleryPages\PlatformSpecificsGalleries\WindowsPlatformSpecificsGalleryHelpers.cs" />
- <Compile Include="GalleryPages\PlatformSpecificsGallery.cs" />
- <Compile Include="LegacyRepro\Page1.xaml.cs">
- <DependentUpon>Page1.xaml</DependentUpon>
- </Compile>
- <Compile Include="MainPageLifeCycleTests.cs" />
- <Compile Include="NavReproApp.cs" />
- <Compile Include="RootPages\RootContentPage.cs" />
- <Compile Include="RootPages\SwapHierachyStackLayout.cs" />
- <Compile Include="GalleryPages\EditableList.cs" />
- <Compile Include="CoreGalleryPages\EditorCoreGalleryPage.cs" />
- <Compile Include="CoreGalleryPages\EntryCoreGalleryPage.cs" />
- <Compile Include="CoreGalleryPages\FrameCoreGalleryPage.cs" />
- <Compile Include="CoreGalleryPages\ImageCoreGalleryPage.cs" />
- <Compile Include="CoreGalleryPages\LabelCoreGalleryPage.cs" />
- <Compile Include="CoreGalleryPages\ListViewCoreGalleryPage.cs" />
- <Compile Include="CoreGalleryPages\OpenGLViewCoreGalleryPage.cs" />
- <Compile Include="CoreGalleryPages\PickerCoreGalleryPage.cs" />
- <Compile Include="CoreGalleryPages\ProgressBarCoreGalleryPage.cs" />
- <Compile Include="CoreGalleryPages\SearchBarCoreGalleryPage.cs" />
- <Compile Include="CoreGalleryPages\SliderCoreGalleryPage.cs" />
- <Compile Include="CoreGalleryPages\StepperCoreGalleryPage.cs" />
- <Compile Include="CoreGalleryPages\SwitchCoreGalleryPage.cs" />
- <Compile Include="CoreGalleryPages\TableViewCoreGalleryPage.cs" />
- <Compile Include="CoreGalleryPages\TimePickerCoreGalleryPage.cs" />
- <Compile Include="CoreGalleryPages\WebViewCoreGalleryPage.cs" />
- <Compile Include="LegacyRepro\SampleViewCell.xaml.cs">
- <DependentUpon>SampleViewCell.xaml</DependentUpon>
- </Compile>
- <Compile Include="SimpleApp.cs" />
- <Compile Include="ViewContainers\EventViewContainer.cs" />
- <Compile Include="ViewContainers\LayeredViewContainer.cs" />
- <Compile Include="ViewContainers\MultiBindingHack.cs" />
- <Compile Include="ViewContainers\StateViewContainer.cs" />
- <Compile Include="ViewContainers\ValueViewContainer.cs" />
- <Compile Include="ViewContainers\ViewContainer.cs" />
- <Compile Include="CoreGalleryPages\ActivityIndicatorCoreGalleryPage.cs" />
- <Compile Include="CoreGalleryPages\CoreBoxViewGalleryPage.cs" />
- <Compile Include="CoreGalleryPages\ButtonCoreGalleryPage.cs" />
- <Compile Include="CoreGallery.cs" />
- <Compile Include="CoreGalleryPages\DatePickerCoreGalleryPage.cs" />
- <Compile Include="CoreGalleryPages\CoreGalleryPage.cs" />
- <Compile Include="Properties\AssemblyInfo.cs" />
- <Compile Include="TestCases.cs" />
- <Compile Include="GalleryPages\GridGallery.cs" />
- <Compile Include="GalleryPages\PickerGallery.cs" />
- <Compile Include="GalleryPages\ImageLoadingGallery.cs" />
- <Compile Include="GalleryPages\CarouselPageGallery.cs" />
- <Compile Include="GalleryPages\StepperGallery.cs" />
- <Compile Include="GalleryPages\ScaleRotate.cs" />
- <Compile Include="GalleryPages\LineBreakModeGallery.cs" />
- <Compile Include="GalleryPages\ActionSheetGallery.cs" />
- <Compile Include="GalleryPages\XamlPage.xaml.cs">
- <DependentUpon>XamlPage.xaml</DependentUpon>
- </Compile>
- <Compile Include="RootPages\RootTabbedContentPage.cs" />
- <Compile Include="RootPages\RootTabbedNavigationContentPage.cs" />
- <Compile Include="RootPages\RootNavigationContentPage.cs" />
- <Compile Include="RootPages\RootNavigationTabbedContentPage.cs" />
- <Compile Include="RootPages\RootMDPNavigationContentPage.cs" />
- <Compile Include="RootPages\RootTabbedMDPNavigationContentPage.cs" />
- <Compile Include="RootPages\RootTabbedManyNavigationContentPage.cs" />
- <Compile Include="RootPages\RootNavigationManyTabbedPage.cs" />
- <Compile Include="ControlGalleryPages\BehaviorsAndTriggers.xaml.cs">
- <DependentUpon>BehaviorsAndTriggers.xaml</DependentUpon>
- </Compile>
- <Compile Include="GalleryPages\CellsGalleries\EntryCellListPage.cs" />
- <Compile Include="GalleryPages\CellsGalleries\EntryCellTablePage.cs" />
- <Compile Include="GalleryPages\CellsGalleries\ImageCellListPage.cs" />
- <Compile Include="GalleryPages\CellsGalleries\ImageCellTablePage.cs" />
- <Compile Include="GalleryPages\CellsGalleries\ProductViewCell.cs" />
- <Compile Include="GalleryPages\CellsGalleries\SwitchCellListPage.cs" />
- <Compile Include="GalleryPages\CellsGalleries\SwitchCellTablePage.cs" />
- <Compile Include="GalleryPages\CellsGalleries\TextCellListPage.cs" />
- <Compile Include="GalleryPages\CellsGalleries\TextCellTablePage.cs" />
- <Compile Include="GalleryPages\CellsGalleries\UnEvenViewCellGallery.cs" />
- <Compile Include="GalleryPages\CellsGalleries\ViewCellGallery.cs" />
- <Compile Include="GalleryPages\AbsoluteLayoutGallery.cs" />
- <Compile Include="GalleryPages\BoundContentPage.cs" />
- <Compile Include="GalleryPages\ButtonGallery.cs" />
- <Compile Include="GalleryPages\CellTypeList.cs" />
- <Compile Include="GalleryPages\ClipToBoundsGallery.cs" />
- <Compile Include="GalleryPages\DisposeGallery.cs" />
- <Compile Include="GalleryPages\EditorGallery.cs" />
- <Compile Include="GalleryPages\EntryGallery.cs" />
- <Compile Include="GalleryPages\FrameGallery.cs" />
- <Compile Include="GalleryPages\GroupedListActionsGallery.cs" />
- <Compile Include="GalleryPages\GroupedListContactsGallery.cs" />
- <Compile Include="GalleryPages\ImageGallery.cs" />
- <Compile Include="GalleryPages\InputIntentGallery.cs" />
- <Compile Include="GalleryPages\LabelGallery.cs" />
- <Compile Include="GalleryPages\LayoutOptionsGallery.cs" />
- <Compile Include="GalleryPages\ListPage.cs" />
- <Compile Include="GalleryPages\ListViewDemoPage.cs" />
- <Compile Include="GalleryPages\MapGallery.cs" />
- <Compile Include="GalleryPages\MinimumSizeGallery.cs" />
- <Compile Include="GalleryPages\MultiGallery.cs" />
- <Compile Include="GalleryPages\NavigationBarGallery.cs" />
- <Compile Include="GalleryPages\NavigationMenuGallery.cs" />
- <Compile Include="GalleryPages\OpenGLGallery.cs" />
- <Compile Include="GalleryPages\ProgressBarGallery.cs" />
- <Compile Include="GalleryPages\RelativeLayoutGallery.cs" />
- <Compile Include="GalleryPages\ScrollGallery.cs" />
- <Compile Include="GalleryPages\SearchBarGallery.cs" />
- <Compile Include="GalleryPages\SettingsPage.cs" />
- <Compile Include="GalleryPages\SliderGallery.cs" />
- <Compile Include="GalleryPages\StackLayoutGallery.cs" />
- <Compile Include="GalleryPages\SwitchGallery.cs" />
- <Compile Include="GalleryPages\TableViewGallery.cs" />
- <Compile Include="GalleryPages\TemplatedCarouselGallery.cs" />
- <Compile Include="GalleryPages\TemplatedTabbedGallery.cs" />
- <Compile Include="GalleryPages\UnevenListGallery.cs" />
- <Compile Include="GalleryPages\WebViewGallery.cs" />
- <Compile Include="GalleryPages\StyleGallery.cs" />
- <Compile Include="GalleryPages\StyleXamlGallery.xaml.cs">
- <DependentUpon>StyleXamlGallery.xaml</DependentUpon>
- </Compile>
- <Compile Include="GalleryPages\MasterDetailPageTabletPage.cs" />
- <Compile Include="Helpers\ITestCloudService.cs" />
- <Compile Include="ControlGalleryPages\ToolbarItems.cs" />
- <Compile Include="GalleryPages\AlertGallery.cs" />
- <Compile Include="RootPages\RootMDPNavigationTabbedContentPage.cs" />
- <Compile Include="Controls\Issue3076Button.cs" />
- <Compile Include="ControlGalleryPages\ListRefresh.cs" />
- <Compile Include="ControlGalleryPages\PinchGestureTestPage.cs" />
- <Compile Include="ControlGalleryPages\AppearingGalleryPage.cs" />
- <Compile Include="ControlGalleryPages\AutomationIDGallery.cs" />
- <Compile Include="GalleryPages\AppLinkPageGallery.cs" />
- <Compile Include="ControlGalleryPages\NativeBindingGalleryPage.cs" />
- <Compile Include="GalleryPages\XamlNativeViews.xaml.cs">
- <DependentUpon>XamlNativeViews.xaml</DependentUpon>
- </Compile>
- </ItemGroup>
- <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
- <Import Project="..\.nuspec\Xamarin.Forms.targets" />
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{CB9C96CE-125C-4A68-B6A1-C3FF1FBF93E1}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Xamarin.Forms.Controls</RootNamespace>
+ <AssemblyName>Xamarin.Forms.Controls</AssemblyName>
+ <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+ <TargetFrameworkProfile>Profile259</TargetFrameworkProfile>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
+ <RestorePackages>true</RestorePackages>
+ <NuGetPackageImportStamp>
+ </NuGetPackageImportStamp>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>TRACE;DEBUG;PERF;APP</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
+ <NoWarn>0114;0108;0109;4014;0649;0169;0472;0414;0168;0219;0429</NoWarn>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE;APP</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
+ <NoWarn>0114;0108;0109;4014;0649;0169;0472;0414;0168;0219;0429</NoWarn>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Turkey|AnyCPU'">
+ <DebugSymbols>true</DebugSymbols>
+ <OutputPath>bin\Turkey\</OutputPath>
+ <DefineConstants>TRACE;DEBUG;PERF;APP</DefineConstants>
+ <DebugType>full</DebugType>
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <ErrorReport>prompt</ErrorReport>
+ <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+ <WarningLevel>4</WarningLevel>
+ <Optimize>false</Optimize>
+ <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
+ <NoWarn>0114;0108;0109;4014;0649;0169;0472;0414;0168;0219;0429</NoWarn>
+ </PropertyGroup>
+ <ItemGroup>
+ <!-- A reference to the entire .NET Framework is automatically included -->
+ <ProjectReference Include="..\Xamarin.Forms.Core\Xamarin.Forms.Core.csproj">
+ <Project>{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}</Project>
+ <Name>Xamarin.Forms.Core</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\Xamarin.Forms.Build.Tasks\Xamarin.Forms.Build.Tasks.csproj">
+ <Project>{96D89208-4EB9-4451-BE73-8A9DF3D9D7B7}</Project>
+ <Name>Xamarin.Forms.Build.Tasks</Name>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\Xamarin.Forms.CustomAttributes\Xamarin.Forms.CustomAttributes.csproj">
+ <Project>{4dcd0420-1168-4b77-86db-6196ee4bd491}</Project>
+ <Name>Xamarin.Forms.CustomAttributes</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\Xamarin.Forms.Maps\Xamarin.Forms.Maps.csproj">
+ <Project>{7d13bac2-c6a4-416a-b07e-c169b199e52b}</Project>
+ <Name>Xamarin.Forms.Maps</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\Xamarin.Forms.Pages\Xamarin.Forms.Pages.csproj">
+ <Project>{d6133dbd-6c60-4bd5-bea2-07e0a3927c31}</Project>
+ <Name>Xamarin.Forms.Pages</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\Xamarin.Forms.Xaml\Xamarin.Forms.Xaml.csproj">
+ <Project>{9db2f292-8034-4e06-89ad-98bbda4306b9}</Project>
+ <Name>Xamarin.Forms.Xaml</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="App.cs" />
+ <Compile Include="AppLifeCycle.cs" />
+ <Compile Include="Bugzilla44596SplashPage.cs" />
+ <Compile Include="ControlGalleryPages\CellForceUpdateSizeGalleryPage.cs" />
+ <Compile Include="ControlGalleryPages\LayoutAddPerformance.xaml.cs">
+ <DependentUpon>LayoutAddPerformance.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="ControlGalleryPages\ListScrollTo.cs" />
+ <Compile Include="ControlGalleryPages\NavBarTitleTestPage.cs" />
+ <Compile Include="ControlGalleryPages\NestedNativeControlGalleryPage.cs" />
+ <Compile Include="ControlGalleryPages\PanGestureGalleryPage.cs" />
+ <Compile Include="CoreGalleryPages\KeyboardCoreGalleryPage.cs" />
+ <Compile Include="GalleryPages\BackgroundImageGallery.cs" />
+ <Compile Include="GalleryPages\ControlTemplatePage.cs" />
+ <Compile Include="GalleryPages\ControlTemplateXamlPage.xaml.cs">
+ <DependentUpon>ControlTemplateXamlPage.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="GalleryPages\LayoutPerformanceGallery.cs" />
+ <Compile Include="GalleryPages\NavigationPropertiesGallery.cs" />
+ <Compile Include="ControlGalleryPages\ListViewSelectionColor.cs" />
+ <Compile Include="GalleryPages\PlatformSpecificsGalleries\ApplicationAndroid.cs" />
+ <Compile Include="GalleryPages\PlatformSpecificsGalleries\EntryPageiOS.cs" />
+ <Compile Include="GalleryPages\PlatformSpecificsGalleries\MasterDetailPageiOS.cs" />
+ <Compile Include="GalleryPages\PlatformSpecificsGalleries\MasterDetailPageWindows.cs" />
+ <Compile Include="GalleryPages\PlatformSpecificsGalleries\NavigationPageiOS.cs" />
+ <Compile Include="GalleryPages\PlatformSpecificsGalleries\NavigationPageWindows.cs" />
+ <Compile Include="GalleryPages\PlatformSpecificsGalleries\TabbedPageAndroid.cs" />
+ <Compile Include="GalleryPages\PlatformSpecificsGalleries\TabbedPageiOS.cs" />
+ <Compile Include="GalleryPages\PlatformSpecificsGalleries\TabbedPageWindows.cs" />
+ <Compile Include="GalleryPages\PlatformSpecificsGalleries\VisualElementiOS.cs" />
+ <Compile Include="GalleryPages\PlatformSpecificsGalleries\WindowsPlatformSpecificsGalleryHelpers.cs" />
+ <Compile Include="GalleryPages\PlatformSpecificsGallery.cs" />
+ <Compile Include="LegacyRepro\Page1.xaml.cs">
+ <DependentUpon>Page1.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="MainPageLifeCycleTests.cs" />
+ <Compile Include="NavReproApp.cs" />
+ <Compile Include="RootPages\RootContentPage.cs" />
+ <Compile Include="RootPages\SwapHierachyStackLayout.cs" />
+ <Compile Include="GalleryPages\EditableList.cs" />
+ <Compile Include="CoreGalleryPages\EditorCoreGalleryPage.cs" />
+ <Compile Include="CoreGalleryPages\EntryCoreGalleryPage.cs" />
+ <Compile Include="CoreGalleryPages\FrameCoreGalleryPage.cs" />
+ <Compile Include="CoreGalleryPages\ImageCoreGalleryPage.cs" />
+ <Compile Include="CoreGalleryPages\LabelCoreGalleryPage.cs" />
+ <Compile Include="CoreGalleryPages\ListViewCoreGalleryPage.cs" />
+ <Compile Include="CoreGalleryPages\OpenGLViewCoreGalleryPage.cs" />
+ <Compile Include="CoreGalleryPages\PickerCoreGalleryPage.cs" />
+ <Compile Include="CoreGalleryPages\ProgressBarCoreGalleryPage.cs" />
+ <Compile Include="CoreGalleryPages\SearchBarCoreGalleryPage.cs" />
+ <Compile Include="CoreGalleryPages\SliderCoreGalleryPage.cs" />
+ <Compile Include="CoreGalleryPages\StepperCoreGalleryPage.cs" />
+ <Compile Include="CoreGalleryPages\SwitchCoreGalleryPage.cs" />
+ <Compile Include="CoreGalleryPages\TableViewCoreGalleryPage.cs" />
+ <Compile Include="CoreGalleryPages\TimePickerCoreGalleryPage.cs" />
+ <Compile Include="CoreGalleryPages\WebViewCoreGalleryPage.cs" />
+ <Compile Include="LegacyRepro\SampleViewCell.xaml.cs">
+ <DependentUpon>SampleViewCell.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="SimpleApp.cs" />
+ <Compile Include="ViewContainers\EventViewContainer.cs" />
+ <Compile Include="ViewContainers\LayeredViewContainer.cs" />
+ <Compile Include="ViewContainers\MultiBindingHack.cs" />
+ <Compile Include="ViewContainers\StateViewContainer.cs" />
+ <Compile Include="ViewContainers\ValueViewContainer.cs" />
+ <Compile Include="ViewContainers\ViewContainer.cs" />
+ <Compile Include="CoreGalleryPages\ActivityIndicatorCoreGalleryPage.cs" />
+ <Compile Include="CoreGalleryPages\CoreBoxViewGalleryPage.cs" />
+ <Compile Include="CoreGalleryPages\ButtonCoreGalleryPage.cs" />
+ <Compile Include="CoreGallery.cs" />
+ <Compile Include="CoreGalleryPages\DatePickerCoreGalleryPage.cs" />
+ <Compile Include="CoreGalleryPages\CoreGalleryPage.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="TestCases.cs" />
+ <Compile Include="GalleryPages\GridGallery.cs" />
+ <Compile Include="GalleryPages\PickerGallery.cs" />
+ <Compile Include="GalleryPages\ImageLoadingGallery.cs" />
+ <Compile Include="GalleryPages\CarouselPageGallery.cs" />
+ <Compile Include="GalleryPages\StepperGallery.cs" />
+ <Compile Include="GalleryPages\ScaleRotate.cs" />
+ <Compile Include="GalleryPages\LineBreakModeGallery.cs" />
+ <Compile Include="GalleryPages\ActionSheetGallery.cs" />
+ <Compile Include="GalleryPages\XamlPage.xaml.cs">
+ <DependentUpon>XamlPage.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="RootPages\RootTabbedContentPage.cs" />
+ <Compile Include="RootPages\RootTabbedNavigationContentPage.cs" />
+ <Compile Include="RootPages\RootNavigationContentPage.cs" />
+ <Compile Include="RootPages\RootNavigationTabbedContentPage.cs" />
+ <Compile Include="RootPages\RootMDPNavigationContentPage.cs" />
+ <Compile Include="RootPages\RootTabbedMDPNavigationContentPage.cs" />
+ <Compile Include="RootPages\RootTabbedManyNavigationContentPage.cs" />
+ <Compile Include="RootPages\RootNavigationManyTabbedPage.cs" />
+ <Compile Include="ControlGalleryPages\BehaviorsAndTriggers.xaml.cs">
+ <DependentUpon>BehaviorsAndTriggers.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="GalleryPages\CellsGalleries\EntryCellListPage.cs" />
+ <Compile Include="GalleryPages\CellsGalleries\EntryCellTablePage.cs" />
+ <Compile Include="GalleryPages\CellsGalleries\ImageCellListPage.cs" />
+ <Compile Include="GalleryPages\CellsGalleries\ImageCellTablePage.cs" />
+ <Compile Include="GalleryPages\CellsGalleries\ProductViewCell.cs" />
+ <Compile Include="GalleryPages\CellsGalleries\SwitchCellListPage.cs" />
+ <Compile Include="GalleryPages\CellsGalleries\SwitchCellTablePage.cs" />
+ <Compile Include="GalleryPages\CellsGalleries\TextCellListPage.cs" />
+ <Compile Include="GalleryPages\CellsGalleries\TextCellTablePage.cs" />
+ <Compile Include="GalleryPages\CellsGalleries\UnEvenViewCellGallery.cs" />
+ <Compile Include="GalleryPages\CellsGalleries\ViewCellGallery.cs" />
+ <Compile Include="GalleryPages\AbsoluteLayoutGallery.cs" />
+ <Compile Include="GalleryPages\BoundContentPage.cs" />
+ <Compile Include="GalleryPages\ButtonGallery.cs" />
+ <Compile Include="GalleryPages\CellTypeList.cs" />
+ <Compile Include="GalleryPages\ClipToBoundsGallery.cs" />
+ <Compile Include="GalleryPages\DisposeGallery.cs" />
+ <Compile Include="GalleryPages\EditorGallery.cs" />
+ <Compile Include="GalleryPages\EntryGallery.cs" />
+ <Compile Include="GalleryPages\FrameGallery.cs" />
+ <Compile Include="GalleryPages\GroupedListActionsGallery.cs" />
+ <Compile Include="GalleryPages\GroupedListContactsGallery.cs" />
+ <Compile Include="GalleryPages\ImageGallery.cs" />
+ <Compile Include="GalleryPages\InputIntentGallery.cs" />
+ <Compile Include="GalleryPages\LabelGallery.cs" />
+ <Compile Include="GalleryPages\LayoutOptionsGallery.cs" />
+ <Compile Include="GalleryPages\ListPage.cs" />
+ <Compile Include="GalleryPages\ListViewDemoPage.cs" />
+ <Compile Include="GalleryPages\MapGallery.cs" />
+ <Compile Include="GalleryPages\MinimumSizeGallery.cs" />
+ <Compile Include="GalleryPages\MultiGallery.cs" />
+ <Compile Include="GalleryPages\NavigationBarGallery.cs" />
+ <Compile Include="GalleryPages\NavigationMenuGallery.cs" />
+ <Compile Include="GalleryPages\OpenGLGallery.cs" />
+ <Compile Include="GalleryPages\ProgressBarGallery.cs" />
+ <Compile Include="GalleryPages\RelativeLayoutGallery.cs" />
+ <Compile Include="GalleryPages\ScrollGallery.cs" />
+ <Compile Include="GalleryPages\SearchBarGallery.cs" />
+ <Compile Include="GalleryPages\SettingsPage.cs" />
+ <Compile Include="GalleryPages\SliderGallery.cs" />
+ <Compile Include="GalleryPages\StackLayoutGallery.cs" />
+ <Compile Include="GalleryPages\SwitchGallery.cs" />
+ <Compile Include="GalleryPages\TableViewGallery.cs" />
+ <Compile Include="GalleryPages\TemplatedCarouselGallery.cs" />
+ <Compile Include="GalleryPages\TemplatedTabbedGallery.cs" />
+ <Compile Include="GalleryPages\UnevenListGallery.cs" />
+ <Compile Include="GalleryPages\WebViewGallery.cs" />
+ <Compile Include="GalleryPages\StyleGallery.cs" />
+ <Compile Include="GalleryPages\StyleXamlGallery.xaml.cs">
+ <DependentUpon>StyleXamlGallery.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="GalleryPages\MasterDetailPageTabletPage.cs" />
+ <Compile Include="Helpers\ITestCloudService.cs" />
+ <Compile Include="ControlGalleryPages\ToolbarItems.cs" />
+ <Compile Include="GalleryPages\AlertGallery.cs" />
+ <Compile Include="RootPages\RootMDPNavigationTabbedContentPage.cs" />
+ <Compile Include="Controls\Issue3076Button.cs" />
+ <Compile Include="ControlGalleryPages\ListRefresh.cs" />
+ <Compile Include="ControlGalleryPages\PinchGestureTestPage.cs" />
+ <Compile Include="ControlGalleryPages\AppearingGalleryPage.cs" />
+ <Compile Include="ControlGalleryPages\AutomationIDGallery.cs" />
+ <Compile Include="GalleryPages\AppLinkPageGallery.cs" />
+ <Compile Include="ControlGalleryPages\NativeBindingGalleryPage.cs" />
+ <Compile Include="GalleryPages\XamlNativeViews.xaml.cs">
+ <DependentUpon>XamlNativeViews.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="HanselForms\BaseView.cs" />
+ <Compile Include="HanselForms\HBaseViewModel.cs" />
+ <Compile Include="HanselForms\RootPage.cs" />
+ <Compile Include="HanselForms\WebsiteView.cs" />
+ <Compile Include="HanselForms\BlogPage.xaml.cs">
+ <DependentUpon>BlogPage.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="HanselForms\MyAbout.xaml.cs">
+ <DependentUpon>MyAbout.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="HanselForms\TwitterPage.xaml.cs">
+ <DependentUpon>TwitterPage.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="GalleryPages\MacTwitterDemo.xaml.cs">
+ <DependentUpon>MacTwitterDemo.xaml</DependentUpon>
+ </Compile>
+ </ItemGroup>
+ <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
+ <Import Project="..\.nuspec\Xamarin.Forms.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
- <ItemGroup>
- <EmbeddedResource Include="GalleryPages\crimson.jpg" />
- <EmbeddedResource Include="GalleryPages\XamlPage.xaml">
- <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
- </EmbeddedResource>
- <EmbeddedResource Include="ControlGalleryPages\BehaviorsAndTriggers.xaml">
- <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
- </EmbeddedResource>
- <EmbeddedResource Include="GalleryPages\StyleXamlGallery.xaml">
- <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
- </EmbeddedResource>
- <EmbeddedResource Include="GalleryPages\XamlNativeViews.xaml">
- <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
- </EmbeddedResource>
- </ItemGroup>
- <Import Project="..\Xamarin.Forms.Controls.Issues\Xamarin.Forms.Controls.Issues.Shared\Xamarin.Forms.Controls.Issues.Shared.projitems" Label="Shared" />
- <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
- <Import Project="..\packages\Xamarin.Insights.1.11.1\build\portable-win+net45+wp80+windows8+wpa+MonoAndroid10+MonoTouch10\Xamarin.Insights.targets" Condition="Exists('..\packages\Xamarin.Insights.1.11.1\build\portable-win+net45+wp80+windows8+wpa+MonoAndroid10+MonoTouch10\Xamarin.Insights.targets')" />
- <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
- <PropertyGroup>
- <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
- </PropertyGroup>
- <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
- </Target>
- <ItemGroup>
- <EmbeddedResource Include="ControlGalleryPages\LayoutAddPerformance.xaml">
- <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
- <SubType>Designer</SubType>
- </EmbeddedResource>
- </ItemGroup>
- <ItemGroup>
- <EmbeddedResource Include="GalleryPages\ControlTemplateXamlPage.xaml">
- <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
- <SubType>Designer</SubType>
- </EmbeddedResource>
- </ItemGroup>
- <ItemGroup>
- <None Include="app.config" />
- <EmbeddedResource Include="controlgallery.config" />
- <None Include="packages.config" />
- </ItemGroup>
- <ItemGroup>
- <EmbeddedResource Include="LegacyRepro\Page1.xaml">
- <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
- <SubType>Designer</SubType>
- </EmbeddedResource>
- <EmbeddedResource Include="LegacyRepro\SampleViewCell.xaml">
- <Generator>MSBuild:UpdateDeisgnTimeXaml</Generator>
- <SubType>Designer</SubType>
- </EmbeddedResource>
- </ItemGroup>
- <ItemGroup>
- <Reference Include="PCLStorage, Version=1.0.2.0, Culture=neutral, PublicKeyToken=286fe515a2c35b64, processorArchitecture=MSIL">
- <HintPath>..\packages\PCLStorage.1.0.2\lib\portable-net45+wp8+wpa81+win8+monoandroid+monotouch+Xamarin.iOS+Xamarin.Mac\PCLStorage.dll</HintPath>
- <Private>True</Private>
- </Reference>
- <Reference Include="PCLStorage.Abstractions, Version=1.0.2.0, Culture=neutral, PublicKeyToken=286fe515a2c35b64, processorArchitecture=MSIL">
- <HintPath>..\packages\PCLStorage.1.0.2\lib\portable-net45+wp8+wpa81+win8+monoandroid+monotouch+Xamarin.iOS+Xamarin.Mac\PCLStorage.Abstractions.dll</HintPath>
- <Private>True</Private>
- </Reference>
- <Reference Include="Xamarin.Insights">
- <HintPath>..\packages\Xamarin.Insights.1.12.3\lib\portable-win+net45+wp80+windows8+wpa+MonoAndroid10+MonoTouch10\Xamarin.Insights.dll</HintPath>
- </Reference>
- </ItemGroup>
- <Target Name="BeforeBuild">
- <CreateItem Include="blank.config">
- <Output TaskParameter="Include" ItemName="ConfigFile" />
- </CreateItem>
- <Copy SourceFiles="@(ConfigFile)" DestinationFiles="controlgallery.config" Condition="!Exists('controlgallery.config')" />
- </Target>
- <Import Project="..\packages\Xamarin.Insights.1.12.3\build\portable-win+net45+wp80+windows8+wpa+MonoAndroid10+MonoTouch10\Xamarin.Insights.targets" Condition="Exists('..\packages\Xamarin.Insights.1.12.3\build\portable-win+net45+wp80+windows8+wpa+MonoAndroid10+MonoTouch10\Xamarin.Insights.targets')" />
+ <ItemGroup>
+ <EmbeddedResource Include="GalleryPages\crimson.jpg" />
+ <EmbeddedResource Include="GalleryPages\XamlPage.xaml">
+ <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
+ </EmbeddedResource>
+ <EmbeddedResource Include="ControlGalleryPages\BehaviorsAndTriggers.xaml">
+ <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
+ </EmbeddedResource>
+ <EmbeddedResource Include="GalleryPages\StyleXamlGallery.xaml">
+ <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
+ </EmbeddedResource>
+ <EmbeddedResource Include="GalleryPages\XamlNativeViews.xaml">
+ <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
+ </EmbeddedResource>
+ <EmbeddedResource Include="GalleryPages\MacTwitterDemo.xaml">
+ <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
+ </EmbeddedResource>
+ <EmbeddedResource Include="HanselForms\MyAbout.xaml">
+ <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
+ </EmbeddedResource>
+ <EmbeddedResource Include="HanselForms\BlogPage.xaml">
+ <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
+ </EmbeddedResource>
+ <EmbeddedResource Include="HanselForms\TwitterPage.xaml">
+ <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
+ </EmbeddedResource>
+ </ItemGroup>
+ <Import Project="..\Xamarin.Forms.Controls.Issues\Xamarin.Forms.Controls.Issues.Shared\Xamarin.Forms.Controls.Issues.Shared.projitems" Label="Shared" />
+ <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
+ <Import Project="..\packages\Xamarin.Insights.1.11.1\build\portable-win+net45+wp80+windows8+wpa+MonoAndroid10+MonoTouch10\Xamarin.Insights.targets" Condition="Exists('..\packages\Xamarin.Insights.1.11.1\build\portable-win+net45+wp80+windows8+wpa+MonoAndroid10+MonoTouch10\Xamarin.Insights.targets')" />
+ <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+ <PropertyGroup>
+ <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
+ </PropertyGroup>
+ <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
+ </Target>
+ <ItemGroup>
+ <EmbeddedResource Include="ControlGalleryPages\LayoutAddPerformance.xaml">
+ <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
+ <SubType>Designer</SubType>
+ </EmbeddedResource>
+ </ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="GalleryPages\ControlTemplateXamlPage.xaml">
+ <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
+ <SubType>Designer</SubType>
+ </EmbeddedResource>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="app.config" />
+ <EmbeddedResource Include="controlgallery.config" />
+ <None Include="packages.config" />
+ </ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="LegacyRepro\Page1.xaml">
+ <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
+ <SubType>Designer</SubType>
+ </EmbeddedResource>
+ <EmbeddedResource Include="LegacyRepro\SampleViewCell.xaml">
+ <Generator>MSBuild:UpdateDeisgnTimeXaml</Generator>
+ <SubType>Designer</SubType>
+ </EmbeddedResource>
+ </ItemGroup>
+ <ItemGroup>
+ <Reference Include="PCLStorage, Version=1.0.2.0, Culture=neutral, PublicKeyToken=286fe515a2c35b64, processorArchitecture=MSIL">
+ <HintPath>..\packages\PCLStorage.1.0.2\lib\portable-net45+wp8+wpa81+win8+monoandroid+monotouch+Xamarin.iOS+Xamarin.Mac\PCLStorage.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="PCLStorage.Abstractions, Version=1.0.2.0, Culture=neutral, PublicKeyToken=286fe515a2c35b64, processorArchitecture=MSIL">
+ <HintPath>..\packages\PCLStorage.1.0.2\lib\portable-net45+wp8+wpa81+win8+monoandroid+monotouch+Xamarin.iOS+Xamarin.Mac\PCLStorage.Abstractions.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="Xamarin.Insights">
+ <HintPath>..\packages\Xamarin.Insights.1.12.3\lib\portable-win+net45+wp80+windows8+wpa+MonoAndroid10+MonoTouch10\Xamarin.Insights.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Net.Http">
+ <HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Net.Http.Extensions">
+ <HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.Extensions.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Net.Http.Primitives">
+ <HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.Primitives.dll</HintPath>
+ </Reference>
+ </ItemGroup>
+ <Target Name="BeforeBuild">
+ <CreateItem Include="blank.config">
+ <Output TaskParameter="Include" ItemName="ConfigFile" />
+ </CreateItem>
+ <Copy SourceFiles="@(ConfigFile)" DestinationFiles="controlgallery.config" Condition="!Exists('controlgallery.config')" />
+ </Target>
+ <Import Project="..\packages\Xamarin.Insights.1.12.3\build\portable-win+net45+wp80+windows8+wpa+MonoAndroid10+MonoTouch10\Xamarin.Insights.targets" Condition="Exists('..\packages\Xamarin.Insights.1.12.3\build\portable-win+net45+wp80+windows8+wpa+MonoAndroid10+MonoTouch10\Xamarin.Insights.targets')" />
</Project> \ No newline at end of file
diff --git a/Xamarin.Forms.Controls/packages.config b/Xamarin.Forms.Controls/packages.config
index 3d49891..3052506 100644
--- a/Xamarin.Forms.Controls/packages.config
+++ b/Xamarin.Forms.Controls/packages.config
@@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
+ <package id="Microsoft.Bcl" version="1.1.10" targetFramework="portable45-net45+win8+wp8+wpa81" />
+ <package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="portable45-net45+win8+wp8+wpa81" />
+ <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="portable45-net45+win8+wp8+wpa81" />
<package id="PCLStorage" version="1.0.2" targetFramework="portable45-net45+win8+wp8+wpa81" />
<package id="Xamarin.Insights" version="1.12.3" targetFramework="portable45-net45+win8+wp8+wpa81" />
</packages> \ No newline at end of file