├── .gitignore
├── CSS
├── font-awesome.min.css
├── fontawesome-webfont.woff2
└── main.css
├── Javascripts
├── interactions.js
├── jquery-2.1.4.min.js
├── main.js
├── materialize.min.js
├── packery.pkgd.min.js
└── search.js
├── MVP
├── .editorconfig
├── .gitattributes
├── .gitignore
├── Add java options.reg
├── Getting Started with MVP Site API.docx
├── MVP.VS2017.sln
├── MVP
│ ├── MVP.Droid
│ │ ├── Assets
│ │ │ └── AboutAssets.txt
│ │ ├── CookieHelper.cs
│ │ ├── Helpers
│ │ │ ├── Localize.cs
│ │ │ └── Settings.cs
│ │ ├── MVP.Droid.csproj
│ │ ├── MVP.Droid.csproj.bak
│ │ ├── MainActivity.cs
│ │ ├── MainApplication.cs
│ │ ├── Properties
│ │ │ ├── AndroidManifest.xml
│ │ │ └── AssemblyInfo.cs
│ │ ├── Resources
│ │ │ ├── Resource.Designer.cs
│ │ │ ├── drawable-hdpi
│ │ │ │ ├── BellNew.svg
│ │ │ │ ├── Blog.svg
│ │ │ │ ├── Book02.svg
│ │ │ │ ├── Cancel.svg
│ │ │ │ ├── ConferenceSpeaker.svg
│ │ │ │ ├── Free.svg
│ │ │ │ ├── HeadphoneMike.svg
│ │ │ │ ├── Media.svg
│ │ │ │ ├── People.svg
│ │ │ │ ├── SettingWF.svg
│ │ │ │ ├── SettingsWF.svg
│ │ │ │ ├── Support.svg
│ │ │ │ ├── UserLogin.svg
│ │ │ │ ├── fab_add.png
│ │ │ │ ├── icon.png
│ │ │ │ ├── image_blog.png
│ │ │ │ ├── image_book.png
│ │ │ │ ├── image_cancel.png
│ │ │ │ ├── image_code.png
│ │ │ │ ├── image_defaultactivity.png
│ │ │ │ ├── image_discussion.png
│ │ │ │ ├── image_feedback.png
│ │ │ │ ├── image_mvplogo.png
│ │ │ │ ├── image_notifications.png
│ │ │ │ ├── image_speaker.png
│ │ │ │ ├── image_splash_logo.png
│ │ │ │ ├── image_video.png
│ │ │ │ ├── toolbar_add.png
│ │ │ │ ├── toolbar_close.png
│ │ │ │ └── toolbar_settings.png
│ │ │ ├── drawable-mdpi
│ │ │ │ ├── fab_add.png
│ │ │ │ ├── icon.png
│ │ │ │ ├── image_blog.png
│ │ │ │ ├── image_book.png
│ │ │ │ ├── image_cancel.png
│ │ │ │ ├── image_code.png
│ │ │ │ ├── image_defaultactivity.png
│ │ │ │ ├── image_discussion.png
│ │ │ │ ├── image_feedback.png
│ │ │ │ ├── image_mvplogo.png
│ │ │ │ ├── image_notifications.png
│ │ │ │ ├── image_speaker.png
│ │ │ │ ├── image_splash_logo.png
│ │ │ │ ├── image_video.png
│ │ │ │ ├── toolbar_add.png
│ │ │ │ ├── toolbar_close.png
│ │ │ │ └── toolbar_settings.png
│ │ │ ├── drawable-xhdpi
│ │ │ │ ├── BellNew.svg
│ │ │ │ ├── Blog.svg
│ │ │ │ ├── Book02.svg
│ │ │ │ ├── Cancel.svg
│ │ │ │ ├── ConferenceSpeaker.svg
│ │ │ │ ├── Free.svg
│ │ │ │ ├── HeadphoneMike.svg
│ │ │ │ ├── Media.svg
│ │ │ │ ├── People.svg
│ │ │ │ ├── SettingWF.svg
│ │ │ │ ├── SettingsWF.svg
│ │ │ │ ├── Support.svg
│ │ │ │ ├── UserLogin.svg
│ │ │ │ ├── fab_add.png
│ │ │ │ ├── icon.png
│ │ │ │ ├── image_blog.png
│ │ │ │ ├── image_book.png
│ │ │ │ ├── image_cancel.png
│ │ │ │ ├── image_code.png
│ │ │ │ ├── image_defaultactivity.png
│ │ │ │ ├── image_discussion.png
│ │ │ │ ├── image_feedback.png
│ │ │ │ ├── image_mvplogo.png
│ │ │ │ ├── image_notifications.png
│ │ │ │ ├── image_speaker.png
│ │ │ │ ├── image_splash_logo.png
│ │ │ │ ├── image_video.png
│ │ │ │ ├── toolbar_add.png
│ │ │ │ ├── toolbar_close.png
│ │ │ │ └── toolbar_settings.png
│ │ │ ├── drawable-xxhdpi
│ │ │ │ ├── BellNew.svg
│ │ │ │ ├── Blog.svg
│ │ │ │ ├── Book02.svg
│ │ │ │ ├── Cancel.svg
│ │ │ │ ├── ConferenceSpeaker.svg
│ │ │ │ ├── Free.svg
│ │ │ │ ├── HeadphoneMike.svg
│ │ │ │ ├── Media.svg
│ │ │ │ ├── People.svg
│ │ │ │ ├── SettingWF.svg
│ │ │ │ ├── SettingsWF.svg
│ │ │ │ ├── Support.svg
│ │ │ │ ├── UserLogin.svg
│ │ │ │ ├── fab_add.png
│ │ │ │ ├── icon.png
│ │ │ │ ├── image_blog.png
│ │ │ │ ├── image_book.png
│ │ │ │ ├── image_cancel.png
│ │ │ │ ├── image_code.png
│ │ │ │ ├── image_defaultactivity.png
│ │ │ │ ├── image_discussion.png
│ │ │ │ ├── image_feedback.png
│ │ │ │ ├── image_mvplogo.png
│ │ │ │ ├── image_notifications.png
│ │ │ │ ├── image_speaker.png
│ │ │ │ ├── image_splash_logo.png
│ │ │ │ ├── image_video.png
│ │ │ │ ├── mvplogoplus.svg
│ │ │ │ ├── toolbar_add.png
│ │ │ │ ├── toolbar_close.png
│ │ │ │ └── toolbar_settings.png
│ │ │ ├── drawable-xxxhdpi
│ │ │ │ ├── fab_add.png
│ │ │ │ ├── image_splash_logo.png
│ │ │ │ ├── toolbar_add.png
│ │ │ │ ├── toolbar_close.png
│ │ │ │ └── toolbar_settings.png
│ │ │ ├── drawable
│ │ │ │ ├── icon.png
│ │ │ │ ├── image_benefits.png
│ │ │ │ ├── image_mvplogo.png
│ │ │ │ └── splash_screen.xml
│ │ │ ├── layout
│ │ │ │ ├── Tabbar.axml
│ │ │ │ ├── Toolbar.axml
│ │ │ │ ├── simple_spinner_dropdown_item.xml
│ │ │ │ └── simple_spinner_item.xml
│ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── values-v19
│ │ │ │ └── styles.xml
│ │ │ ├── values-v21
│ │ │ │ └── styles.xml
│ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ ├── SignoutHelper.cs
│ │ ├── SplashActivity.cs
│ │ ├── app.config
│ │ ├── mobile-center-post-clone.sh
│ │ ├── packages.config
│ │ └── proguard.cfg
│ ├── MVP.UWP
│ │ ├── App.xaml
│ │ ├── App.xaml.cs
│ │ ├── Assets
│ │ │ ├── BadgeLogo.scale-100.png
│ │ │ ├── BadgeLogo.scale-125.png
│ │ │ ├── BadgeLogo.scale-150.png
│ │ │ ├── BadgeLogo.scale-200.png
│ │ │ ├── BadgeLogo.scale-400.png
│ │ │ ├── LargeTile.scale-100.png
│ │ │ ├── LargeTile.scale-125.png
│ │ │ ├── LargeTile.scale-150.png
│ │ │ ├── LargeTile.scale-200.png
│ │ │ ├── LargeTile.scale-400.png
│ │ │ ├── LockScreenLogo.scale-200.png
│ │ │ ├── SmallTile.scale-100.png
│ │ │ ├── SmallTile.scale-125.png
│ │ │ ├── SmallTile.scale-150.png
│ │ │ ├── SmallTile.scale-200.png
│ │ │ ├── SmallTile.scale-400.png
│ │ │ ├── SplashScreen.scale-100.png
│ │ │ ├── SplashScreen.scale-125.png
│ │ │ ├── SplashScreen.scale-150.png
│ │ │ ├── SplashScreen.scale-200.png
│ │ │ ├── SplashScreen.scale-400.png
│ │ │ ├── Square150x150Logo.scale-100.png
│ │ │ ├── Square150x150Logo.scale-125.png
│ │ │ ├── Square150x150Logo.scale-150.png
│ │ │ ├── Square150x150Logo.scale-200.png
│ │ │ ├── Square150x150Logo.scale-400.png
│ │ │ ├── Square44x44Logo.altform-unplated_targetsize-16.png
│ │ │ ├── Square44x44Logo.altform-unplated_targetsize-256.png
│ │ │ ├── Square44x44Logo.altform-unplated_targetsize-32.png
│ │ │ ├── Square44x44Logo.altform-unplated_targetsize-48.png
│ │ │ ├── Square44x44Logo.scale-100.png
│ │ │ ├── Square44x44Logo.scale-125.png
│ │ │ ├── Square44x44Logo.scale-150.png
│ │ │ ├── Square44x44Logo.scale-200.png
│ │ │ ├── Square44x44Logo.scale-400.png
│ │ │ ├── Square44x44Logo.targetsize-16.png
│ │ │ ├── Square44x44Logo.targetsize-24.png
│ │ │ ├── Square44x44Logo.targetsize-24_altform-unplated.png
│ │ │ ├── Square44x44Logo.targetsize-256.png
│ │ │ ├── Square44x44Logo.targetsize-32.png
│ │ │ ├── Square44x44Logo.targetsize-48.png
│ │ │ ├── StoreLogo.png
│ │ │ ├── StoreLogo.scale-100.png
│ │ │ ├── StoreLogo.scale-125.png
│ │ │ ├── StoreLogo.scale-150.png
│ │ │ ├── StoreLogo.scale-200.png
│ │ │ ├── StoreLogo.scale-400.png
│ │ │ ├── Wide310x150Logo.scale-100.png
│ │ │ ├── Wide310x150Logo.scale-125.png
│ │ │ ├── Wide310x150Logo.scale-150.png
│ │ │ ├── Wide310x150Logo.scale-200.png
│ │ │ ├── Wide310x150Logo.scale-400.png
│ │ │ ├── icon.png
│ │ │ ├── image_benefits.png
│ │ │ ├── image_blog.png
│ │ │ ├── image_book.png
│ │ │ ├── image_cancel.png
│ │ │ ├── image_code.png
│ │ │ ├── image_defaultactivity.png
│ │ │ ├── image_discussion.png
│ │ │ ├── image_feedback.png
│ │ │ ├── image_mvplogo.png
│ │ │ ├── image_notifications.png
│ │ │ ├── image_speaker.png
│ │ │ ├── image_video.png
│ │ │ ├── toolbar_add.png
│ │ │ ├── toolbar_close.png
│ │ │ ├── toolbar_refresh.png
│ │ │ └── toolbar_settings.png
│ │ ├── Localize.cs
│ │ ├── MVP.UWP.csproj
│ │ ├── MainPage.xaml
│ │ ├── MainPage.xaml.cs
│ │ ├── Package.appxmanifest
│ │ ├── Properties
│ │ │ ├── AssemblyInfo.cs
│ │ │ └── Default.rd.xml
│ │ ├── Renders
│ │ │ └── CookieHelper.cs
│ │ └── project.json
│ ├── MVP.iOS
│ │ ├── AppDelegate.cs
│ │ ├── Assets.xcassets
│ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Icon-App-20x20@1x.png
│ │ │ │ ├── Icon-App-20x20@2x.png
│ │ │ │ ├── Icon-App-20x20@3x.png
│ │ │ │ ├── Icon-App-29x29@1x.png
│ │ │ │ ├── Icon-App-29x29@2x.png
│ │ │ │ ├── Icon-App-29x29@3x.png
│ │ │ │ ├── Icon-App-40x40@1x.png
│ │ │ │ ├── Icon-App-40x40@2x.png
│ │ │ │ ├── Icon-App-40x40@3x.png
│ │ │ │ ├── Icon-App-60x60@2x.png
│ │ │ │ ├── Icon-App-60x60@3x.png
│ │ │ │ ├── Icon-App-76x76@1x.png
│ │ │ │ ├── Icon-App-76x76@2x.png
│ │ │ │ ├── Icon-App-83.5x83.5@2x.png
│ │ │ │ └── iTunesArtwork@2x.png
│ │ │ └── Contents.json
│ │ ├── CustomControls
│ │ │ ├── CookieHelper.cs
│ │ │ └── SignOutHelper.cs
│ │ ├── Entitlements.plist
│ │ ├── Helpers
│ │ │ ├── Extensions.cs
│ │ │ ├── Localize.cs
│ │ │ └── Settings.cs
│ │ ├── Info.plist
│ │ ├── MVP.iOS.csproj
│ │ ├── Main.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── Renderers
│ │ │ ├── CustomEntryRenderer.cs
│ │ │ └── TabsRenderer.cs
│ │ ├── Resources
│ │ │ ├── LaunchScreen.storyboard
│ │ │ ├── image_blog.png
│ │ │ ├── image_book.png
│ │ │ ├── image_cancel.png
│ │ │ ├── image_code.png
│ │ │ ├── image_defaultactivity.png
│ │ │ ├── image_discussion.png
│ │ │ ├── image_feedback.png
│ │ │ ├── image_mvplaunch.png
│ │ │ ├── image_mvplogo.png
│ │ │ ├── image_speaker.png
│ │ │ ├── image_video.png
│ │ │ ├── tab_contribution@2x.png
│ │ │ ├── tab_contribution@3x.png
│ │ │ ├── tab_contribution_selected@2x.png
│ │ │ ├── tab_contribution_selected@3x.png
│ │ │ ├── tab_profile@2x.png
│ │ │ ├── tab_profile@3x.png
│ │ │ ├── tab_profile_selected@2x.png
│ │ │ ├── tab_profile_selected@3x.png
│ │ │ ├── toolbar_add@2x.png
│ │ │ ├── toolbar_add@3x.png
│ │ │ ├── toolbar_close@2x.png
│ │ │ ├── toolbar_close@3x.png
│ │ │ ├── toolbar_settings@2x.png
│ │ │ └── toolbar_settings@3x.png
│ │ ├── iTunesArtwork
│ │ ├── iTunesArtwork@2x
│ │ ├── mobile-center-post-clone.sh
│ │ └── packages.config
│ └── MVP
│ │ ├── Helpers
│ │ ├── CommonConstants.cs
│ │ ├── DesignMvpService.cs
│ │ ├── IMVPService.cs
│ │ ├── LiveMvpService.cs
│ │ ├── Logger.cs
│ │ ├── MvpHelper.cs
│ │ ├── Settings.cs
│ │ ├── TranslateExtension.cs
│ │ ├── TranslateExtensionConverter.cs
│ │ └── TranslateServices.cs
│ │ ├── Interfaces
│ │ ├── ILocalize.cs
│ │ ├── ISignOutHelper.cs
│ │ └── PlatformCulture.cs
│ │ ├── MVP.csproj
│ │ ├── Models
│ │ ├── ContributionModel.cs
│ │ ├── ContributionTechnologyModel.cs
│ │ ├── ContributionTypeModel.cs
│ │ ├── ProfileModel.cs
│ │ └── VisibilityModel.cs
│ │ ├── Properties
│ │ └── AssemblyInfo.cs
│ │ ├── Resources
│ │ ├── AppResources.Designer.cs
│ │ ├── AppResources.resx
│ │ ├── AppResources.zh-Hans.Designer.cs
│ │ └── AppResources.zh-Hans.resx
│ │ ├── ViewModels
│ │ ├── ContributionViewModel.cs
│ │ ├── LiveIdLogOnViewModel.cs
│ │ ├── LogOnViewModel.cs
│ │ ├── MyProfileViewModel.cs
│ │ ├── SettingsViewModel.cs
│ │ └── ViewModelBase.cs
│ │ └── packages.config
├── MVPUI
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── ContributionDetail.xaml
│ ├── ContributionDetail.xaml.cs
│ ├── ContributionsPage.xaml
│ ├── ContributionsPage.xaml.cs
│ ├── Converters
│ │ └── ContributionToIconConverter.cs
│ ├── CustomControls
│ │ ├── ICookieHelper.cs
│ │ ├── ILocationHelper.cs
│ │ └── MVPNavigationPage.cs
│ ├── Extensions
│ │ └── ResourceDictionaryExtensions.cs
│ ├── LiveIdLogOn.xaml
│ ├── LiveIdLogOn.xaml.cs
│ ├── LogOn.xaml
│ ├── LogOn.xaml.cs
│ ├── MVPUI.csproj
│ ├── MainTabPage.xaml
│ ├── MainTabPage.xaml.cs
│ ├── MainTabPageiOS.xaml
│ ├── MainTabPageiOS.xaml.cs
│ ├── MyProfile.xaml
│ ├── MyProfile.xaml.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── SettingsPage.xaml
│ ├── SettingsPage.xaml.cs
│ ├── XamlResources
│ │ ├── DataTemplates.xaml
│ │ ├── DataTemplates.xaml.cs
│ │ ├── Styles.xaml
│ │ └── Styles.xaml.cs
│ └── packages.config
└── mobile-center-post-clone.ps1
├── MobileAppGuidelines.md
├── README.md
├── images
├── find1.jpg
├── platform.png
└── platform_sprite.png
└── index.html
/.gitignore:
--------------------------------------------------------------------------------
1 | ################################################################################
2 | # This .gitignore file was automatically created by Microsoft(R) Visual Studio.
3 | ################################################################################
4 |
5 | /Back.png
6 | MVP/.droidres/.mvp.vs2017.droidres.db
7 | /.vs
8 |
--------------------------------------------------------------------------------
/CSS/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/CSS/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/Javascripts/interactions.js:
--------------------------------------------------------------------------------
1 | var interactions = (function () {
2 | var hitBottom = false,
3 | hasScrolled = false,
4 | hasTrackedScroll = false,
5 | interval, mod = {};
6 |
7 | function scrollListener() {
8 | hasScrolled = true;
9 | }
10 |
11 | function scrollInterval() {
12 | // Fixed error when appInsights is not defined
13 | if (typeof appInsights === 'undefined' || !appInsights || !hasScrolled) {
14 | return;
15 | }
16 |
17 | if (!hasTrackedScroll) {
18 | hasTrackedScroll = true;
19 | appInsights.trackEvent('Page:Scrolled');
20 | }
21 |
22 | if (!hitBottom && ((window.innerHeight + window.scrollY) >= document.body.scrollHeight)) {
23 | hitBottom = true;
24 | appInsights.trackEvent('Page:End');
25 |
26 | if (interval) {
27 | window.clearInterval(interval);
28 | }
29 | window.removeEventListener('scroll', scrollListener);
30 |
31 | }
32 |
33 | hasScrolled = false;
34 | }
35 |
36 | mod.setup = function () {
37 | window.addEventListener('scroll', scrollListener);
38 | interval = window.setInterval(scrollInterval, 100);
39 |
40 | document.body.addEventListener('copy', function (e) {
41 | appInsights.trackEvent('Clipboard:Copy');
42 | });
43 | document.body.addEventListener('cut', function (e) {
44 | appInsights.trackEvent('Clipboard:Cut');
45 | });
46 | }
47 |
48 | return mod;
49 | }());
50 |
--------------------------------------------------------------------------------
/Javascripts/main.js:
--------------------------------------------------------------------------------
1 | (function ($) {
2 | $(document).ready(function() {
3 | $('#container').packery();
4 |
5 | if (window.interactions) {
6 | window.interactions.setup();
7 | }
8 | var pickOne = Math.floor(Math.random() * 3 + 1);
9 | $('.wrap').addClass('pick-' + pickOne);
10 | });
11 | }(jQuery));
--------------------------------------------------------------------------------
/MVP/.gitattributes:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Set default behavior to automatically normalize line endings.
3 | ###############################################################################
4 | * text=auto
5 |
6 | ###############################################################################
7 | # Set default behavior for command prompt diff.
8 | #
9 | # This is need for earlier builds of msysgit that does not have it on by
10 | # default for csharp files.
11 | # Note: This is only used by command line
12 | ###############################################################################
13 | #*.cs diff=csharp
14 |
15 | ###############################################################################
16 | # Set the merge driver for project and solution files
17 | #
18 | # Merging from the command prompt will add diff markers to the files if there
19 | # are conflicts (Merging from VS is not affected by the settings below, in VS
20 | # the diff markers are never inserted). Diff markers may cause the following
21 | # file extensions to fail to load in VS. An alternative would be to treat
22 | # these files as binary and thus will always conflict and require user
23 | # intervention with every merge. To do so, just uncomment the entries below
24 | ###############################################################################
25 | #*.sln merge=binary
26 | #*.csproj merge=binary
27 | #*.vbproj merge=binary
28 | #*.vcxproj merge=binary
29 | #*.vcproj merge=binary
30 | #*.dbproj merge=binary
31 | #*.fsproj merge=binary
32 | #*.lsproj merge=binary
33 | #*.wixproj merge=binary
34 | #*.modelproj merge=binary
35 | #*.sqlproj merge=binary
36 | #*.wwaproj merge=binary
37 |
38 | ###############################################################################
39 | # behavior for image files
40 | #
41 | # image files are treated as binary by default.
42 | ###############################################################################
43 | #*.jpg binary
44 | #*.png binary
45 | #*.gif binary
46 |
47 | ###############################################################################
48 | # diff behavior for common document formats
49 | #
50 | # Convert binary document formats to text before diffing them. This feature
51 | # is only available from the command line. Turn it on by uncommenting the
52 | # entries below.
53 | ###############################################################################
54 | #*.doc diff=astextplain
55 | #*.DOC diff=astextplain
56 | #*.docx diff=astextplain
57 | #*.DOCX diff=astextplain
58 | #*.dot diff=astextplain
59 | #*.DOT diff=astextplain
60 | #*.pdf diff=astextplain
61 | #*.PDF diff=astextplain
62 | #*.rtf diff=astextplain
63 | #*.RTF diff=astextplain
64 |
--------------------------------------------------------------------------------
/MVP/Add java options.reg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/Add java options.reg
--------------------------------------------------------------------------------
/MVP/Getting Started with MVP Site API.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/Getting Started with MVP Site API.docx
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Assets/AboutAssets.txt:
--------------------------------------------------------------------------------
1 | Any raw assets you want to be deployed with your application can be placed in
2 | this directory (and child directories) and given a Build Action of "AndroidAsset".
3 |
4 | These files will be deployed with you package and will be accessible using Android's
5 | AssetManager, like this:
6 |
7 | public class ReadAsset : Contribution
8 | {
9 | protected override void OnCreate (Bundle bundle)
10 | {
11 | base.OnCreate (bundle);
12 |
13 | InputStream input = Assets.Open ("my_asset.txt");
14 | }
15 | }
16 |
17 | Additionally, some Android functions will automatically load asset files:
18 |
19 | Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf");
20 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/CookieHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Microsoft.Mvpui;
3 | using Xamarin.Forms;
4 | using Microsoft.Mvp.Droid;
5 | using Android.Webkit;
6 |
7 | [assembly: Dependency(typeof(CookieHelper))]
8 | namespace Microsoft.Mvp.Droid
9 | {
10 | public class CookieHelper : ICookieHelper
11 | {
12 | public string GetCookie(string url)
13 | {
14 | CookieManager cookManager = CookieManager.Instance;
15 | string cookie = cookManager.GetCookie(url);
16 | if (cookie != null)
17 | {
18 | String[] temps = cookie.Split(';');
19 | foreach (var temp in temps)
20 | {
21 | if (temp.Contains("WLSSC"))
22 | {
23 | return temp.Substring(temp.IndexOf("=")+1);
24 | }
25 | }
26 |
27 | }
28 |
29 | return "";
30 | }
31 |
32 | public void ClearCookie()
33 | {
34 | CookieManager cookManager = CookieManager.Instance;
35 | cookManager.SetCookie("https://mvpstaging.com/Account/SignIn", "");
36 | cookManager.RemoveAllCookie();
37 | }
38 |
39 | public string GetCookie(Uri uri)
40 | {
41 | throw new NotImplementedException();
42 | }
43 | }
44 | }
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Helpers/Localize.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Mvp.Interfaces;
2 | using System.Globalization;
3 | using System.Threading;
4 | using Microsoft.Mvp.Droid.Helpers;
5 |
6 | [assembly: Xamarin.Forms.Dependency(typeof(Localize))]
7 |
8 | namespace Microsoft.Mvp.Droid.Helpers
9 | {
10 | public class Localize : ILocalize
11 | {
12 | public void SetLocale(CultureInfo ci)
13 | {
14 | Thread.CurrentThread.CurrentCulture = ci;
15 | Thread.CurrentThread.CurrentUICulture = ci;
16 | }
17 | public CultureInfo GetCurrentCultureInfo()
18 | {
19 | var netLanguage = "en";
20 | var androidLocale = Java.Util.Locale.Default;
21 | netLanguage = AndroidToDotnetLanguage(androidLocale.ToString().Replace("_", "-"));
22 | // this gets called a lot - try/catch can be expensive so consider caching or something
23 | System.Globalization.CultureInfo ci = null;
24 | try
25 | {
26 | ci = new System.Globalization.CultureInfo(netLanguage);
27 | }
28 | catch (CultureNotFoundException e1)
29 | {
30 | // iOS locale not valid .NET culture (eg. "en-ES" : English in Spain)
31 | // fallback to first characters, in this case "en"
32 | try
33 | {
34 | var fallback = ToDotnetFallbackLanguage(new PlatformCulture(netLanguage));
35 | ci = new System.Globalization.CultureInfo(fallback);
36 | }
37 | catch (CultureNotFoundException e2)
38 | {
39 | // iOS language not valid .NET culture, falling back to English
40 | ci = new System.Globalization.CultureInfo("en");
41 | }
42 | }
43 | return ci; //new CultureInfo("zh-Hans");//
44 | }
45 | string AndroidToDotnetLanguage(string androidLanguage)
46 | {
47 | var netLanguage = androidLanguage;
48 | //certain languages need to be converted to CultureInfo equivalent
49 | switch (androidLanguage)
50 | {
51 | case "ms-BN": // "Malaysian (Brunei)" not supported .NET culture
52 | case "ms-MY": // "Malaysian (Malaysia)" not supported .NET culture
53 | case "ms-SG": // "Malaysian (Singapore)" not supported .NET culture
54 | netLanguage = "ms"; // closest supported
55 | break;
56 | case "in-ID": // "Indonesian (Indonesia)" has different code in .NET
57 | netLanguage = "id-ID"; // correct code for .NET
58 | break;
59 | case "gsw-CH": // "Schwiizertüütsch (Swiss German)" not supported .NET culture
60 | netLanguage = "de-CH"; // closest supported
61 | break;
62 | // add more application-specific cases here (if required)
63 | // ONLY use cultures that have been tested and known to work
64 | }
65 | return netLanguage;
66 | }
67 | string ToDotnetFallbackLanguage(PlatformCulture platCulture)
68 | {
69 | var netLanguage = platCulture.LanguageCode; // use the first part of the identifier (two chars, usually);
70 | switch (platCulture.LanguageCode)
71 | {
72 | case "gsw":
73 | netLanguage = "de-CH"; // equivalent to German (Switzerland) for this app
74 | break;
75 | // add more application-specific cases here (if required)
76 | // ONLY use cultures that have been tested and known to work
77 | }
78 | return netLanguage;
79 | }
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Helpers/Settings.cs:
--------------------------------------------------------------------------------
1 | /*
2 | // Helpers/Settings.cs This file was automatically added when you installed the Settings Plugin. If you are not using a PCL then comment this file back in to use it.
3 | using Plugin.Settings;
4 | using Plugin.Settings.Abstractions;
5 |
6 | namespace Microsoft.Mvp.Droid.Helpers
7 | {
8 | ///
9 | /// This is the Settings static class that can be used in your Core solution or in any
10 | /// of your client applications. All settings are laid out the same exact way with getters
11 | /// and setters.
12 | ///
13 | public static class Settings
14 | {
15 | private static ISettings AppSettings
16 | {
17 | get
18 | {
19 | return CrossSettings.Current;
20 | }
21 | }
22 |
23 | #region Setting Constants
24 |
25 | private const string SettingsKey = "settings_key";
26 | private static readonly string SettingsDefault = string.Empty;
27 |
28 | #endregion
29 |
30 |
31 | public static string GeneralSettings
32 | {
33 | get
34 | {
35 | return AppSettings.GetValueOrDefault(SettingsKey, SettingsDefault);
36 | }
37 | set
38 | {
39 | AppSettings.AddOrUpdateValue(SettingsKey, value);
40 | }
41 | }
42 |
43 | }
44 | }*/
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/MainActivity.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | using Android.App;
4 | using Android.Content.PM;
5 | using Android.Runtime;
6 | using Android.Views;
7 | using Android.Widget;
8 | using Android.OS;
9 | using Microsoft.Mvpui;
10 | using Plugin.Permissions;
11 |
12 | namespace Microsoft.Mvp.Droid
13 | {
14 | [Activity(Label = "MVP", Icon = "@mipmap/ic_launcher", ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
15 | public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
16 | {
17 | protected override void OnCreate(Bundle bundle)
18 | {
19 | TabLayoutResource = Resource.Layout.Tabbar;
20 | ToolbarResource = Resource.Layout.Toolbar;
21 |
22 | base.OnCreate(bundle);
23 |
24 | global::Xamarin.Forms.Forms.Init(this, bundle);
25 |
26 | ImageCircle.Forms.Plugin.Droid.ImageCircleRenderer.Init();
27 | //Xamarin.FormsMaps.Init(this,bundle);
28 | LoadApplication(new App());
29 |
30 | }
31 |
32 | public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults)
33 | {
34 | PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults);
35 | }
36 | }
37 | }
38 |
39 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/MainApplication.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | using Android.App;
4 | using Android.OS;
5 | using Android.Runtime;
6 | using Plugin.CurrentActivity;
7 |
8 | namespace Microsoft.Mvp.Droid
9 | {
10 | //You can specify additional application information in this attribute
11 | [Application]
12 | public class MainApplication : Application, Application.IActivityLifecycleCallbacks
13 | {
14 | public MainApplication(IntPtr handle, JniHandleOwnership transer)
15 | :base(handle, transer)
16 | {
17 | }
18 |
19 | public override void OnCreate()
20 | {
21 | base.OnCreate();
22 | RegisterActivityLifecycleCallbacks(this);
23 | Acr.UserDialogs.UserDialogs.Init(() => CrossCurrentActivity.Current.Activity);
24 |
25 | //A great place to initialize Xamarin.Insights and Dependency Services!
26 | }
27 |
28 | public override void OnTerminate()
29 | {
30 | base.OnTerminate();
31 | UnregisterActivityLifecycleCallbacks(this);
32 | }
33 |
34 | public void OnActivityCreated(Activity contribution, Bundle savedInstanceState)
35 | {
36 | CrossCurrentActivity.Current.Activity = contribution;
37 | }
38 |
39 | public void OnActivityDestroyed(Activity contribution)
40 | {
41 | }
42 |
43 | public void OnActivityPaused(Activity contribution)
44 | {
45 | }
46 |
47 | public void OnActivityResumed(Activity contribution)
48 | {
49 | CrossCurrentActivity.Current.Activity = contribution;
50 | }
51 |
52 | public void OnActivitySaveInstanceState(Activity contribution, Bundle outState)
53 | {
54 | }
55 |
56 | public void OnActivityStarted(Activity contribution)
57 | {
58 | CrossCurrentActivity.Current.Activity = contribution;
59 | }
60 |
61 | public void OnActivityStopped(Activity contribution)
62 | {
63 | }
64 | }
65 | }
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Properties/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 | using Android.App;
5 |
6 | // General Information about an assembly is controlled through the following
7 | // set of attributes. Change these attribute values to modify the information
8 | // associated with an assembly.
9 | [assembly: AssemblyTitle("MVP.Droid")]
10 | [assembly: AssemblyDescription("")]
11 | [assembly: AssemblyConfiguration("")]
12 | [assembly: AssemblyCompany("Microsoft")]
13 | [assembly: AssemblyProduct("MVP.Droid")]
14 | [assembly: AssemblyCopyright("Copyright © Microsoft 2017")]
15 | [assembly: AssemblyTrademark("")]
16 | [assembly: AssemblyCulture("")]
17 | [assembly: ComVisible(false)]
18 |
19 | // Version information for an assembly consists of the following four values:
20 | //
21 | // Major Version
22 | // Minor Version
23 | // Build Number
24 | // Revision
25 | //
26 | // You can specify all the values or you can default the Build and Revision Numbers
27 | // by using the '*' as shown below:
28 | // [assembly: AssemblyVersion("1.0.*")]
29 | [assembly: AssemblyVersion("1.0.0.0")]
30 | [assembly: AssemblyFileVersion("1.0.0.0")]
31 |
32 | // Add some common permissions, these can be removed if not needed
33 | [assembly: UsesPermission(Android.Manifest.Permission.Internet)]
34 | [assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)]
35 | [assembly: UsesFeature("android.hardware.location", Required = false)]
36 | [assembly: UsesFeature("android.hardware.location.gps", Required = false)]
37 | [assembly: UsesFeature("android.hardware.location.network", Required = false)]
38 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/BellNew.svg:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/Blog.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/Book02.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/Cancel.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/ConferenceSpeaker.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/HeadphoneMike.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/Media.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/People.svg:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/SettingWF.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/Support.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/UserLogin.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/fab_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/fab_add.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/icon.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/image_blog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/image_blog.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/image_book.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/image_book.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/image_cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/image_cancel.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/image_code.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/image_code.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/image_defaultactivity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/image_defaultactivity.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/image_discussion.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/image_discussion.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/image_feedback.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/image_feedback.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/image_mvplogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/image_mvplogo.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/image_notifications.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/image_notifications.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/image_speaker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/image_speaker.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/image_splash_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/image_splash_logo.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/image_video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/image_video.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/toolbar_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/toolbar_add.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/toolbar_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/toolbar_close.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/toolbar_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-hdpi/toolbar_settings.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/fab_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/fab_add.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/icon.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/image_blog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/image_blog.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/image_book.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/image_book.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/image_cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/image_cancel.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/image_code.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/image_code.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/image_defaultactivity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/image_defaultactivity.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/image_discussion.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/image_discussion.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/image_feedback.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/image_feedback.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/image_mvplogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/image_mvplogo.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/image_notifications.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/image_notifications.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/image_speaker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/image_speaker.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/image_splash_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/image_splash_logo.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/image_video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/image_video.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/toolbar_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/toolbar_add.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/toolbar_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/toolbar_close.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/toolbar_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-mdpi/toolbar_settings.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/BellNew.svg:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/Blog.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/Book02.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/Cancel.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/ConferenceSpeaker.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/HeadphoneMike.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/Media.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/People.svg:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/SettingWF.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/Support.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/UserLogin.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/fab_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/fab_add.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/icon.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/image_blog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/image_blog.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/image_book.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/image_book.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/image_cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/image_cancel.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/image_code.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/image_code.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/image_defaultactivity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/image_defaultactivity.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/image_discussion.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/image_discussion.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/image_feedback.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/image_feedback.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/image_mvplogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/image_mvplogo.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/image_notifications.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/image_notifications.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/image_speaker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/image_speaker.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/image_splash_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/image_splash_logo.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/image_video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/image_video.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/toolbar_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/toolbar_add.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/toolbar_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/toolbar_close.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/toolbar_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xhdpi/toolbar_settings.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/BellNew.svg:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/Blog.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/Book02.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/Cancel.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/ConferenceSpeaker.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/HeadphoneMike.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/Media.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/People.svg:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/SettingWF.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/Support.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/UserLogin.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/fab_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/fab_add.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/icon.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/image_blog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/image_blog.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/image_book.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/image_book.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/image_cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/image_cancel.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/image_code.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/image_code.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/image_defaultactivity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/image_defaultactivity.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/image_discussion.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/image_discussion.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/image_feedback.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/image_feedback.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/image_mvplogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/image_mvplogo.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/image_notifications.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/image_notifications.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/image_speaker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/image_speaker.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/image_splash_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/image_splash_logo.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/image_video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/image_video.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/toolbar_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/toolbar_add.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/toolbar_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/toolbar_close.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/toolbar_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xxhdpi/toolbar_settings.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxxhdpi/fab_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xxxhdpi/fab_add.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxxhdpi/image_splash_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xxxhdpi/image_splash_logo.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxxhdpi/toolbar_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xxxhdpi/toolbar_add.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxxhdpi/toolbar_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xxxhdpi/toolbar_close.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable-xxxhdpi/toolbar_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable-xxxhdpi/toolbar_settings.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable/icon.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable/image_benefits.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable/image_benefits.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable/image_mvplogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/drawable/image_mvplogo.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/drawable/splash_screen.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 | -
7 |
8 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/layout/Tabbar.axml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/layout/Toolbar.axml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/layout/simple_spinner_dropdown_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/layout/simple_spinner_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.Droid/Resources/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/values-v19/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/values-v21/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
14 |
15 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | #0072C6
5 | #004f8a
6 | #FFC107
7 | #F5F5F5
8 | #0078D7
9 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/Resources/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
13 |
16 |
17 |
27 |
30 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/SignoutHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Microsoft.Mvpui;
3 | using Xamarin.Forms;
4 | using Microsoft.Mvp.Droid;
5 | using Android.Webkit;
6 | using Microsoft.Mvp.Interfaces;
7 |
8 | [assembly: Dependency(typeof(SignOutHelper))]
9 | namespace Microsoft.Mvp.Droid
10 | {
11 | public class SignOutHelper : ISignOutHelper
12 | {
13 | public void CloseApp()
14 | {
15 | Android.OS.Process.KillProcess(Android.OS.Process.MyPid());
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/SplashActivity.cs:
--------------------------------------------------------------------------------
1 | using System.Threading.Tasks;
2 | using Android.App;
3 | using Android.Content;
4 | using Android.OS;
5 | using Android.Support.V7.App;
6 | using Android.Util;
7 | using Android.Content.PM;
8 |
9 | namespace Microsoft.Mvp.Droid
10 | {
11 |
12 | [Activity(Label = "MVP",
13 | Icon = "@mipmap/ic_launcher",
14 | Theme = "@style/SplashTheme",
15 | MainLauncher = true)]
16 | public class SplashActivity : AppCompatActivity
17 | {
18 | protected override void OnCreate(Bundle savedInstanceState)
19 | {
20 | base.OnCreate(savedInstanceState);
21 | var intent = new Intent(this, typeof(MainActivity));
22 | StartActivity(intent);
23 | Finish();
24 | }
25 | }
26 | }
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.Droid/mobile-center-post-clone.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | echo "Variables:"
4 | printenv
5 |
6 | echo "Arguments for updating:"
7 | echo " - MCID: $MC_ANDROID"
8 | echo " - Live ID: $LIVE_ID"
9 | echo " - Live Secret: $LIVE_SECRET"
10 |
11 | # Updating manifest
12 | sed -i '' "s/MC_ANDROID/$MC_ANDROID/g" $BUILD_REPOSITORY_LOCALPATH/MVP/MVP/MVP/Helpers/CommonConstants.cs
13 | sed -i '' "s/LIVE_ID/$LIVE_ID/g" $BUILD_REPOSITORY_LOCALPATH/MVP/MVP/MVP/Helpers/CommonConstants.cs
14 | sed -i '' "s/LIVE_SECRET/$LIVE_SECRET/g" $BUILD_REPOSITORY_LOCALPATH/MVP/MVP/MVP/Helpers/CommonConstants.cs
15 |
16 | cat $BUILD_REPOSITORY_LOCALPATH/MVP/MVP/MVP/Helpers/CommonConstants.cs
17 |
18 | echo "Manifest updated!"
19 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/App.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/BadgeLogo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/BadgeLogo.scale-100.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/BadgeLogo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/BadgeLogo.scale-125.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/BadgeLogo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/BadgeLogo.scale-150.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/BadgeLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/BadgeLogo.scale-200.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/BadgeLogo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/BadgeLogo.scale-400.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/LargeTile.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/LargeTile.scale-100.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/LargeTile.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/LargeTile.scale-125.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/LargeTile.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/LargeTile.scale-150.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/LargeTile.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/LargeTile.scale-200.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/LargeTile.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/LargeTile.scale-400.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/LockScreenLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/LockScreenLogo.scale-200.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/SmallTile.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/SmallTile.scale-100.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/SmallTile.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/SmallTile.scale-125.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/SmallTile.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/SmallTile.scale-150.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/SmallTile.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/SmallTile.scale-200.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/SmallTile.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/SmallTile.scale-400.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/SplashScreen.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/SplashScreen.scale-100.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/SplashScreen.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/SplashScreen.scale-125.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/SplashScreen.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/SplashScreen.scale-150.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/SplashScreen.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/SplashScreen.scale-200.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/SplashScreen.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/SplashScreen.scale-400.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/Square150x150Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/Square150x150Logo.scale-100.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/Square150x150Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/Square150x150Logo.scale-125.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/Square150x150Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/Square150x150Logo.scale-150.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/Square150x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/Square150x150Logo.scale-200.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/Square150x150Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/Square150x150Logo.scale-400.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-16.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-256.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-32.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-48.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.scale-100.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.scale-125.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.scale-150.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.scale-200.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.scale-400.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.targetsize-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.targetsize-16.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.targetsize-24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.targetsize-24.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.targetsize-24_altform-unplated.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.targetsize-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.targetsize-256.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.targetsize-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.targetsize-32.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.targetsize-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/Square44x44Logo.targetsize-48.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/StoreLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/StoreLogo.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/StoreLogo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/StoreLogo.scale-100.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/StoreLogo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/StoreLogo.scale-125.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/StoreLogo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/StoreLogo.scale-150.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/StoreLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/StoreLogo.scale-200.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/StoreLogo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/StoreLogo.scale-400.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/Wide310x150Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/Wide310x150Logo.scale-100.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/Wide310x150Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/Wide310x150Logo.scale-125.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/Wide310x150Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/Wide310x150Logo.scale-150.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/Wide310x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/Wide310x150Logo.scale-200.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/Wide310x150Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/Wide310x150Logo.scale-400.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/icon.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/image_benefits.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/image_benefits.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/image_blog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/image_blog.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/image_book.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/image_book.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/image_cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/image_cancel.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/image_code.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/image_code.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/image_defaultactivity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/image_defaultactivity.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/image_discussion.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/image_discussion.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/image_feedback.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/image_feedback.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/image_mvplogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/image_mvplogo.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/image_notifications.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/image_notifications.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/image_speaker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/image_speaker.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/image_video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/image_video.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/toolbar_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/toolbar_add.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/toolbar_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/toolbar_close.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/toolbar_refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/toolbar_refresh.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Assets/toolbar_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.UWP/Assets/toolbar_settings.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Localize.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Runtime.CompilerServices;
6 | using Microsoft.Mvp.Interfaces;
7 | using System.Globalization;
8 | using System.Threading;
9 | using Windows.Globalization.DateTimeFormatting;
10 |
11 | [assembly: Xamarin.Forms.Dependency(typeof(Microsoft.Mvp.UWP.Helpers.Localize))]
12 |
13 | namespace Microsoft.Mvp.UWP.Helpers
14 | {
15 | public class Localize : ILocalize
16 | {
17 | public void SetLocale(CultureInfo ci)
18 | {
19 | //System.Threading.Thread.CurrentThread.CurrentCulture = ci;
20 | //System.Threading.Thread.CurrentThread.CurrentUICulture = ci;
21 | }
22 | public CultureInfo GetCurrentCultureInfo()
23 | {
24 | System.Globalization.CultureInfo ci = null;
25 |
26 | try
27 | {
28 | //ci = CultureInfo.DefaultThreadCurrentUICulture;
29 | var cultureName = new DateTimeFormatter("longdate", new[] { "US" }).ResolvedLanguage;
30 |
31 | return new CultureInfo(cultureName);
32 | }
33 | catch (CultureNotFoundException e1)
34 | {
35 | ci = new System.Globalization.CultureInfo("en");
36 | }
37 | return ci;
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/MainPage.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/MainPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Runtime.InteropServices.WindowsRuntime;
6 | using Windows.Foundation;
7 | using Windows.Foundation.Collections;
8 | using Windows.UI.Xaml;
9 | using Windows.UI.Xaml.Controls;
10 | using Windows.UI.Xaml.Controls.Primitives;
11 | using Windows.UI.Xaml.Data;
12 | using Windows.UI.Xaml.Input;
13 | using Windows.UI.Xaml.Media;
14 | using Windows.UI.Xaml.Navigation;
15 |
16 | // The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409
17 |
18 | namespace MVP.UWP
19 | {
20 | ///
21 | /// An empty page that can be used on its own or navigated to within a Frame.
22 | ///
23 | public sealed partial class MainPage
24 | {
25 | public MainPage()
26 | {
27 | this.InitializeComponent();
28 | LoadApplication(new Microsoft.Mvpui.App());
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Package.appxmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | MVP.UWP
7 | v-blchen
8 | Assets\StoreLogo.png
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("MVP.UWP")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("MVP.UWP")]
13 | [assembly: AssemblyCopyright("Copyright © 2017")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Version information for an assembly consists of the following four values:
18 | //
19 | // Major Version
20 | // Minor Version
21 | // Build Number
22 | // Revision
23 | //
24 | // You can specify all the values or you can default the Build and Revision Numbers
25 | // by using the '*' as shown below:
26 | // [assembly: AssemblyVersion("1.0.*")]
27 | [assembly: AssemblyVersion("1.0.0.0")]
28 | [assembly: AssemblyFileVersion("1.0.0.0")]
29 | [assembly: ComVisible(false)]
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Properties/Default.rd.xml:
--------------------------------------------------------------------------------
1 |
17 |
18 |
19 |
20 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/Renders/CookieHelper.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Mvpui;
2 | using MVP.UWP.Renders;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Net;
7 | using System.Runtime.InteropServices;
8 | using System.Text;
9 | using System.Threading.Tasks;
10 | using Windows.Web.Http;
11 | using Xamarin.Forms;
12 |
13 | [assembly: Dependency(typeof(CookieHelper))]
14 | namespace MVP.UWP.Renders
15 | {
16 | public class CookieHelper : ICookieHelper
17 | {
18 | public static CookieContainer GetUriCookieContainer(Uri uri)
19 | {
20 | return null;
21 | }
22 |
23 | public string GetCookie(string url)
24 | {
25 | try
26 | {
27 | //var container = GetUriCookieContainer(new Uri(url));
28 | var cookies = GetBrowserCookie(new Uri(url));
29 |
30 | var rpsSec = cookies.FirstOrDefault(s => s.Name == "RPSSecAuth");
31 | if (rpsSec != null)
32 | {
33 | return rpsSec.Value;
34 | }
35 | return "";
36 | }
37 | catch
38 | {
39 | return "";
40 | }
41 |
42 | }
43 |
44 | public void ClearCookie()
45 | {
46 | Windows.Web.Http.Filters.HttpBaseProtocolFilter myFilter = new Windows.Web.Http.Filters.HttpBaseProtocolFilter();
47 | var cookieManager = myFilter.CookieManager;
48 | HttpCookieCollection myCookieJar = cookieManager.GetCookies(new Uri("https://login.live.com"));
49 |
50 | foreach (HttpCookie cookie in myCookieJar)
51 | {
52 | cookieManager.DeleteCookie(cookie);
53 | }
54 | }
55 |
56 | public string GetCookie(Uri uri)
57 | {
58 | return null;
59 | }
60 |
61 | private HttpCookieCollection GetBrowserCookie(Uri targetUri)
62 | {
63 | var httpBaseProtocolFilter = new Windows.Web.Http.Filters.HttpBaseProtocolFilter();
64 | var cookieManager = httpBaseProtocolFilter.CookieManager;
65 | var cookieCollection = cookieManager.GetCookies(targetUri);
66 |
67 | return cookieCollection;
68 | }
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.UWP/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "Acr.UserDialogs": "6.5.1",
4 | "Microsoft.Azure.Mobile": "0.17.1",
5 | "Microsoft.Azure.Mobile.Analytics": "0.17.1",
6 | "Microsoft.Azure.Mobile.Crashes": "0.17.1",
7 | "Microsoft.NETCore.UniversalWindowsPlatform": "5.2.3",
8 | "Newtonsoft.Json": "9.0.1",
9 | "Plugin.Share": "7.0.2-beta27",
10 | "Plugin.VersionTracking": "2.1.0",
11 | "Refractored.FloatingActionButtonForms": "2.1.0",
12 | "Refractored.MvvmHelpers": "1.3.0",
13 | "System.Globalization": "4.3.0",
14 | "Xam.Plugin.Connectivity": "4.0.0-beta139",
15 | "Xam.Plugins.Forms.ImageCircle": "1.8.2.19-beta",
16 | "Xam.Plugins.Settings": "3.1.1",
17 | "Xamarin.Forms": "2.4.0.38779"
18 | },
19 | "frameworks": {
20 | "uap10.0.10586": {}
21 | },
22 | "runtimes": {
23 | "win10-arm": {},
24 | "win10-arm-aot": {},
25 | "win10-x86": {},
26 | "win10-x86-aot": {},
27 | "win10-x64": {},
28 | "win10-x64-aot": {}
29 | }
30 | }
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/AppDelegate.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using Foundation;
5 | using UIKit;
6 | using Microsoft.Mvpui;
7 | using Xamarin.Forms.Platform.iOS;
8 | using Social;
9 |
10 | namespace Microsoft.Mvp.iOS
11 | {
12 | // The UIApplicationDelegate for the application. This class is responsible for launching the
13 | // User Interface of the application, as well as listening (and optionally responding) to
14 | // application events from iOS.
15 | [Register("AppDelegate")]
16 | public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
17 | {
18 | //
19 | // This method is invoked when the application has loaded and is ready to run. In this
20 | // method you should instantiate the window, load the UI into it and then make the window
21 | // visible.
22 | //
23 | // You have 17 seconds to return from this method, or iOS will terminate your application.
24 | //
25 | public override bool FinishedLaunching(UIApplication app, NSDictionary options)
26 | {
27 | var tint = UIColor.FromRGB(0, 79, 138);
28 |
29 | // Some basic navigationbar styling.
30 | UINavigationBar.Appearance.BarTintColor = UIColor.FromRGB(250, 250, 250); //bar background
31 | UINavigationBar.Appearance.TintColor = tint; //Tint color of button items
32 |
33 | UIBarButtonItem.Appearance.TintColor = tint; //Tint color of button items
34 |
35 | UITabBar.Appearance.TintColor = tint;
36 |
37 | UISwitch.Appearance.OnTintColor = tint;
38 |
39 | UIAlertView.Appearance.TintColor = tint;
40 |
41 | UIView.AppearanceWhenContainedIn(typeof(UIAlertController)).TintColor = tint;
42 | UIView.AppearanceWhenContainedIn(typeof(UIActivityViewController)).TintColor = tint;
43 | UIView.AppearanceWhenContainedIn(typeof(SLComposeViewController)).TintColor = tint;
44 |
45 | global::Xamarin.Forms.Forms.Init();
46 |
47 | ImageCircle.Forms.Plugin.iOS.ImageCircleRenderer.Init();
48 |
49 | LoadApplication(new App());
50 |
51 | return base.FinishedLaunching(app, options);
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/iTunesArtwork@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Assets.xcassets/AppIcon.appiconset/iTunesArtwork@2x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/CustomControls/CookieHelper.cs:
--------------------------------------------------------------------------------
1 |
2 | using Xamarin.Forms;
3 | using Microsoft.Mvp.iOS.Renders;
4 | using Foundation;
5 | using Microsoft.Mvpui;
6 | using System;
7 |
8 | [assembly: Dependency(typeof(CookieHelper))]
9 | namespace Microsoft.Mvp.iOS.Renders
10 | {
11 | public class CookieHelper: ICookieHelper
12 | {
13 |
14 | public string GetCookie(string url)
15 | {
16 | return "";
17 | }
18 | public void ClearCookie()
19 | {
20 | NSHttpCookieStorage CookieStorage = NSHttpCookieStorage.SharedStorage;
21 |
22 | foreach (var cookie in CookieStorage.Cookies)
23 | {
24 | CookieStorage.DeleteCookie(cookie);
25 | }
26 | }
27 |
28 | public string GetCookie(Uri uri)
29 | {
30 | throw new NotImplementedException();
31 | }
32 | }
33 | }
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/CustomControls/SignOutHelper.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Mvp.iOS.Renders;
2 | using Microsoft.Mvpui;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Text;
6 | using Xamarin.Forms;
7 | using Microsoft.Mvp.Interfaces;
8 |
9 | [assembly: Dependency(typeof(SignOutHelper))]
10 | namespace Microsoft.Mvp.iOS.Renders
11 | {
12 | public class SignOutHelper : ISignOutHelper
13 | {
14 | public void CloseApp()
15 | {
16 | //throw new NotImplementedException();
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Entitlements.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Helpers/Extensions.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Drawing;
3 | using UIKit;
4 |
5 | namespace Microsoft.Mvp.iOS.Helpers
6 | {
7 | public static class Extensions
8 | {
9 | public static UIImage ToUIImage(this UIColor color, int width, int height)
10 | {
11 | var imageSize = new SizeF(width, height);
12 | var imageSizeRectF = new RectangleF(0, 0, width, height);
13 | UIGraphics.BeginImageContextWithOptions(imageSize, false, 0);
14 | var context = UIGraphics.GetCurrentContext();
15 |
16 | context.SetFillColor(color.CGColor);
17 | context.FillRect(imageSizeRectF);
18 | var image = UIGraphics.GetImageFromCurrentImageContext();
19 | UIGraphics.EndImageContext();
20 | return image;
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Helpers/Settings.cs:
--------------------------------------------------------------------------------
1 | /*
2 | // Helpers/Settings.cs This file was automatically added when you installed the Settings Plugin. If you are not using a PCL then comment this file back in to use it.
3 | using Plugin.Settings;
4 | using Plugin.Settings.Abstractions;
5 |
6 | namespace Microsoft.Mvp.iOS.Helpers
7 | {
8 | ///
9 | /// This is the Settings static class that can be used in your Core solution or in any
10 | /// of your client applications. All settings are laid out the same exact way with getters
11 | /// and setters.
12 | ///
13 | public static class Settings
14 | {
15 | private static ISettings AppSettings
16 | {
17 | get
18 | {
19 | return CrossSettings.Current;
20 | }
21 | }
22 |
23 | #region Setting Constants
24 |
25 | private const string SettingsKey = "settings_key";
26 | private static readonly string SettingsDefault = string.Empty;
27 |
28 | #endregion
29 |
30 |
31 | public static string GeneralSettings
32 | {
33 | get
34 | {
35 | return AppSettings.GetValueOrDefault(SettingsKey, SettingsDefault);
36 | }
37 | set
38 | {
39 | AppSettings.AddOrUpdateValue(SettingsKey, value);
40 | }
41 | }
42 |
43 | }
44 | }*/
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | UIDeviceFamily
6 |
7 | 1
8 | 2
9 |
10 | UISupportedInterfaceOrientations
11 |
12 | UIInterfaceOrientationPortrait
13 | UIInterfaceOrientationLandscapeLeft
14 | UIInterfaceOrientationLandscapeRight
15 |
16 | UISupportedInterfaceOrientations~ipad
17 |
18 | UIInterfaceOrientationPortrait
19 | UIInterfaceOrientationPortraitUpsideDown
20 | UIInterfaceOrientationLandscapeLeft
21 | UIInterfaceOrientationLandscapeRight
22 |
23 | MinimumOSVersion
24 | 10.2
25 | CFBundleDisplayName
26 | MVP
27 | CFBundleIdentifier
28 | com.microsoft.mvp
29 | CFBundleVersion
30 | 1.1.4
31 | UILaunchStoryboardName
32 | LaunchScreen
33 | CFBundleShortVersionString
34 | 1.1
35 | UIBackgroundModes
36 |
37 | fetch
38 |
39 | ITSAppUsesNonExemptEncryption
40 |
41 | XSLaunchImageAssets
42 | Resources/Media.xcassets/LaunchImages.launchimage
43 | XSAppIconAssets
44 | Assets.xcassets/AppIcon.appiconset
45 | UIStatusBarStyle
46 | UIStatusBarStyleLightContent
47 | UIViewControllerBasedStatusBarAppearance
48 |
49 | CFBundleName
50 | MVP
51 | CFBundleLocalizations
52 |
53 | de
54 | es
55 | fr
56 | ja
57 | pt
58 |
59 | pt-PT
60 |
61 | ru
62 | zh-Hans
63 | zh-Hant
64 |
65 | CFBundleDevelopmentRegion
66 | en
67 |
68 |
69 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Main.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 |
5 | using Foundation;
6 | using UIKit;
7 |
8 | namespace Microsoft.Mvp.iOS
9 | {
10 | public class Application
11 | {
12 | // This is the main entry point of the application.
13 | static void Main(string[] args)
14 | {
15 | // if you want to use a different Application Delegate class from "AppDelegate"
16 | // you can specify it here.
17 | UIApplication.Main(args, null, "AppDelegate");
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("MVP.iOS")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Microsoft")]
12 | [assembly: AssemblyProduct("MVP.iOS")]
13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2017")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("72bdc44f-c588-44f3-b6df-9aace7daafdd")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Renderers/CustomEntryRenderer.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Mvp.iOS.Renderers;
2 | using Xamarin.Forms;
3 | using Xamarin.Forms.Platform.iOS;
4 |
5 | [assembly: ExportRenderer(typeof(Entry), typeof(CustomEntryRenderer))]
6 | namespace Microsoft.Mvp.iOS.Renderers
7 | {
8 | public class CustomEntryRenderer : EntryRenderer
9 | {
10 | protected override void OnElementChanged(ElementChangedEventArgs e)
11 | {
12 | base.OnElementChanged(e);
13 | if (e.OldElement != null || Element == null)
14 | return;
15 |
16 | Element.HeightRequest = 30;
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Renderers/TabsRenderer.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Mvp.iOS.Renderers;
2 | using UIKit;
3 | using Xamarin.Forms;
4 | using Xamarin.Forms.Platform.iOS;
5 |
6 | [assembly: ExportRenderer(typeof(TabbedPage), typeof(TabsRenderer))]
7 | namespace Microsoft.Mvp.iOS.Renderers
8 | {
9 | public class TabsRenderer : TabbedRenderer
10 | {
11 | protected override void OnElementChanged(VisualElementChangedEventArgs e)
12 | {
13 | base.OnElementChanged(e);
14 |
15 | UITabBar.Appearance.TintColor = ((Color)Xamarin.Forms.Application.Current.Resources["TabTintColor"]).ToUIColor();
16 | }
17 |
18 | public override void ViewWillAppear(bool animated)
19 | {
20 | if (TabBar?.Items == null)
21 | return;
22 |
23 | // Go through our elements and change the icons
24 | var tabs = Element as TabbedPage;
25 | if (tabs != null)
26 | {
27 | for (int i = 0; i < TabBar.Items.Length; i++)
28 | UpdateTabBarItem(TabBar.Items[i], tabs.Children[i].Icon);
29 | }
30 |
31 | base.ViewWillAppear(animated);
32 | }
33 |
34 | private void UpdateTabBarItem(UITabBarItem item, string icon)
35 | {
36 | if (item == null || icon == null)
37 | return;
38 |
39 | // Set our different selected icons
40 | icon = icon.Replace(".png", "_selected.png");
41 |
42 | if (item?.SelectedImage?.AccessibilityIdentifier == icon)
43 | return;
44 |
45 | item.SelectedImage = UIImage.FromBundle(icon).ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal);
46 | item.SelectedImage.AccessibilityIdentifier = icon;
47 | }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Resources/image_blog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Resources/image_blog.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Resources/image_book.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Resources/image_book.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Resources/image_cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Resources/image_cancel.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Resources/image_code.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Resources/image_code.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Resources/image_defaultactivity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Resources/image_defaultactivity.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Resources/image_discussion.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Resources/image_discussion.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Resources/image_feedback.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Resources/image_feedback.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Resources/image_mvplaunch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Resources/image_mvplaunch.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Resources/image_mvplogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Resources/image_mvplogo.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Resources/image_speaker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Resources/image_speaker.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Resources/image_video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Resources/image_video.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Resources/tab_contribution@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Resources/tab_contribution@2x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Resources/tab_contribution@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Resources/tab_contribution@3x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Resources/tab_contribution_selected@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Resources/tab_contribution_selected@2x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Resources/tab_contribution_selected@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Resources/tab_contribution_selected@3x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Resources/tab_profile@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Resources/tab_profile@2x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Resources/tab_profile@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Resources/tab_profile@3x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Resources/tab_profile_selected@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Resources/tab_profile_selected@2x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Resources/tab_profile_selected@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Resources/tab_profile_selected@3x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Resources/toolbar_add@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Resources/toolbar_add@2x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Resources/toolbar_add@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Resources/toolbar_add@3x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Resources/toolbar_close@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Resources/toolbar_close@2x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Resources/toolbar_close@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Resources/toolbar_close@3x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Resources/toolbar_settings@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Resources/toolbar_settings@2x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/Resources/toolbar_settings@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/Resources/toolbar_settings@3x.png
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/iTunesArtwork:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/iTunesArtwork
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/iTunesArtwork@2x:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP.iOS/iTunesArtwork@2x
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/mobile-center-post-clone.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | echo "Variables:"
4 | printenv
5 |
6 | echo "Arguments for updating:"
7 | echo " - MCID: $MC_IOS"
8 | echo " - Live ID: $LIVE_ID"
9 | echo " - Live Secret: $LIVE_SECRET"
10 |
11 | # Updating manifest
12 | sed -i '' "s/MC_IOS/$MC_IOS/g" $BUILD_REPOSITORY_LOCALPATH/MVP/MVP/MVP/Helpers/CommonConstants.cs
13 | sed -i '' "s/LIVE_ID/$LIVE_ID/g" $BUILD_REPOSITORY_LOCALPATH/MVP/MVP/MVP/Helpers/CommonConstants.cs
14 | sed -i '' "s/LIVE_SECRET/$LIVE_SECRET/g" $BUILD_REPOSITORY_LOCALPATH/MVP/MVP/MVP/Helpers/CommonConstants.cs
15 |
16 | cat $BUILD_REPOSITORY_LOCALPATH/MVP/MVP/MVP/Helpers/CommonConstants.cs
17 |
18 | echo "Manifest updated!"
--------------------------------------------------------------------------------
/MVP/MVP/MVP.iOS/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP/Helpers/IMVPService.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Mvp.Models;
2 | using System.Threading.Tasks;
3 |
4 | namespace Microsoft.Mvp.Helpers
5 | {
6 | public interface IMvpService
7 | {
8 | Task GetPhoto(string token);
9 |
10 | Task GetProfile(string token);
11 |
12 |
13 | Task GetContributionTypes(string token);
14 |
15 |
16 | Task GetContributionAreas(string token);
17 |
18 |
19 | Task GetContributions(int start, int size, string token);
20 |
21 |
22 | Task GetContributionModel(int privateSiteId, string token);
23 |
24 |
25 | Task AddContributionModel(ContributionModel model, string token);
26 |
27 | Task EditContributionModel(ContributionModel model, string token);
28 |
29 |
30 | Task DeleteContributionModel(int privateSiteId, string token);
31 |
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP/Helpers/Logger.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using Device = Xamarin.Forms.Device;
7 | using Microsoft.Azure.Mobile.Analytics;
8 |
9 | namespace Microsoft.Mvp.Helpers
10 | {
11 | public static class Logger
12 | {
13 | static bool IsEnabled => ((Device.RuntimePlatform == Device.Android && CommonConstants.MobileCenterAndroid != "MC_ANDROID") ||
14 | (Device.RuntimePlatform == Device.iOS && CommonConstants.MobileCenteriOS != "MC_IOS") ||
15 | (Device.RuntimePlatform == Device.UWP && CommonConstants.MobileCenterUWP != "MC_UWP"));
16 |
17 | public static void Log(string name, string extra)
18 | {
19 | if (!IsEnabled)
20 | return;
21 |
22 | Analytics.TrackEvent(name, new Dictionary { ["extra"] = extra });
23 | }
24 |
25 | public static void Log(string name)
26 | {
27 | if (!IsEnabled)
28 | return;
29 |
30 | Analytics.TrackEvent(name);
31 | }
32 |
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP/Helpers/Settings.cs:
--------------------------------------------------------------------------------
1 | // Helpers/Settings.cs
2 | using Plugin.Settings;
3 | using Plugin.Settings.Abstractions;
4 |
5 | namespace Microsoft.Mvp.Helpers
6 | {
7 | ///
8 | /// This is the Settings static class that can be used in your Core solution or in any
9 | /// of your client applications. All settings are laid out the same exact way with getters
10 | /// and setters.
11 | ///
12 | public static class Settings
13 | {
14 | private static ISettings AppSettings
15 | {
16 | get
17 | {
18 | return CrossSettings.Current;
19 | }
20 | }
21 |
22 | #region Setting Constants
23 |
24 | private const string SettingsKey = "settings_key";
25 | private static readonly string SettingsDefault = string.Empty;
26 |
27 | #endregion
28 |
29 | public static string GetSetting(string key) => AppSettings.GetValueOrDefault(key, string.Empty);
30 | public static void SetSetting(string key, string value) => AppSettings.AddOrUpdateValue(key, value);
31 | public static string GeneralSettings
32 | {
33 | get
34 | {
35 | return AppSettings.GetValueOrDefault(SettingsKey, SettingsDefault);
36 | }
37 | set
38 | {
39 | AppSettings.AddOrUpdateValue(SettingsKey, value);
40 | }
41 | }
42 |
43 | }
44 | }
--------------------------------------------------------------------------------
/MVP/MVP/MVP/Helpers/TranslateExtension.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Mvp.Interfaces;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Globalization;
5 | using System.Linq;
6 | using System.Resources;
7 | using System.Reflection;
8 | using System.Text;
9 | using System.Threading.Tasks;
10 | using Xamarin.Forms;
11 | using Xamarin.Forms.Xaml;
12 |
13 | namespace Microsoft.Mvp.Helpers
14 | {
15 | // // You exclude the 'Extension' suffix when using in Xaml markup
16 | // [ContentProperty("Text")]
17 | // public class TranslateExtension : IMarkupExtension
18 | // {
19 | // readonly CultureInfo ci;
20 | // const string ResourceId = "Microsoft.Mvp.Resources.AppResources";
21 |
22 | // private static readonly Lazy ResMgr = new Lazy(() => new ResourceManager(ResourceId
23 | // , typeof(TranslateExtension).GetTypeInfo().Assembly));
24 |
25 | // public TranslateExtension()
26 | // {
27 | // if (Device.RuntimePlatform == Device.iOS || Device.RuntimePlatform == Device.Android)
28 | // {
29 | // ci = DependencyService.Get().GetCurrentCultureInfo();
30 | // }
31 | // }
32 |
33 | // public string Text { get; set; }
34 |
35 | // public string StringFormat { get; set; }
36 |
37 | // public object ProvideValue(IServiceProvider serviceProvider)
38 | // {
39 | // if (Text == null)
40 | // return "";
41 |
42 | // var translation1 = ResMgr.Value.GetString(Text, ci);
43 | // ResourceManager temp = new ResourceManager(ResourceId, typeof(TranslateExtension).GetTypeInfo().Assembly);
44 |
45 | // var translation = temp.GetString(Text, ci);
46 |
47 | // if (translation == null)
48 | // {
49 | //#if DEBUG
50 | // throw new ArgumentException(
51 | // String.Format("Key '{0}' was not found in resources '{1}' for culture '{2}'.", Text, ResourceId, ci.Name),
52 | // "Text");
53 | //#else
54 | // translation = Text; // returns the key, which GETS DISPLAYED TO THE USER
55 | //#endif
56 | // }
57 | // else
58 | // {
59 | // if (!string.IsNullOrEmpty(StringFormat))
60 | // {
61 | // translation = string.Format(StringFormat, translation);
62 | // }
63 | // }
64 | // return translation;
65 | // }
66 | // }
67 |
68 |
69 |
70 | }
71 |
72 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP/Helpers/TranslateExtensionConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Globalization;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using System.Reflection;
8 | using Xamarin.Forms;
9 | using Microsoft.Mvp.Interfaces;
10 |
11 | namespace Microsoft.Mvp.Helpers
12 | {
13 | public class TranslateExtensionConverter : IValueConverter
14 | {
15 |
16 |
17 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
18 | {
19 | string tempText = string.Empty;
20 | if (value is null)
21 | {
22 | return string.Empty;
23 | }
24 | else
25 | {
26 | tempText = value.ToString();
27 | }
28 |
29 |
30 | if (tempText == null)
31 | return "";
32 |
33 |
34 | var translation = TranslateServices.GetResourceString(tempText);
35 |
36 | return translation;
37 | }
38 |
39 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
40 | {
41 | throw new NotImplementedException();
42 | }
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP/Helpers/TranslateServices.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Globalization;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using System.Reflection;
8 | using System.Resources;
9 | using Microsoft.Mvp.Interfaces;
10 | using Xamarin.Forms;
11 |
12 | namespace Microsoft.Mvp.Helpers
13 | {
14 | public class TranslateServices
15 | {
16 | static CultureInfo ci = new CultureInfo("en");
17 | const string resourceId = "Microsoft.Mvp.Resources.AppResources";
18 |
19 | private static readonly Lazy resMgr = new Lazy(
20 | () => new ResourceManager(resourceId, typeof(TranslateServices).GetTypeInfo().Assembly));
21 |
22 | public static string GetResourceString(string resourceKey)
23 | {
24 | string translation = string.Empty;
25 | if (Device.RuntimePlatform == Device.iOS || Device.RuntimePlatform == Device.Android || Device.RuntimePlatform == Device.UWP)
26 | {
27 | ci = DependencyService.Get().GetCurrentCultureInfo();
28 | }
29 |
30 | translation = resMgr.Value.GetString(resourceKey, ci);
31 |
32 | if (translation == null)
33 | {
34 | #if DEBUG
35 | throw new ArgumentException(
36 | String.Format("Key '{0}' was not found in resources '{1}' for culture '{2}'.", resourceKey, resourceId, ci.Name),
37 | "Text");
38 | #else
39 | translation = resourceKey; // returns the key, which GETS DISPLAYED TO THE USER
40 | #endif
41 | }
42 | return translation;
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP/Interfaces/ILocalize.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Globalization;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace Microsoft.Mvp.Interfaces
9 | {
10 | public interface ILocalize
11 | {
12 | CultureInfo GetCurrentCultureInfo();
13 | void SetLocale(CultureInfo ci);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP/Interfaces/ISignOutHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace Microsoft.Mvp.Interfaces
8 | {
9 | public interface ISignOutHelper
10 | {
11 | void CloseApp();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP/Interfaces/PlatformCulture.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace Microsoft.Mvp.Interfaces
8 | {
9 | public class PlatformCulture
10 | {
11 | public PlatformCulture(string platformCultureString)
12 | {
13 | if (String.IsNullOrEmpty(platformCultureString))
14 | {
15 | throw new ArgumentException(Helpers.TranslateServices.GetResourceString(Helpers.CommonConstants.ExpectedCultureIdentifier), "platformCultureString"); // in C# 6 use nameof(platformCultureString)
16 | }
17 | PlatformString = platformCultureString.Replace("_", "-"); // .NET expects dash, not underscore
18 | var dashIndex = PlatformString.IndexOf("-", StringComparison.Ordinal);
19 | if (dashIndex > 0)
20 | {
21 | var parts = PlatformString.Split('-');
22 | LanguageCode = parts[0];
23 | LocaleCode = parts[1];
24 | }
25 | else
26 | {
27 | LanguageCode = PlatformString;
28 | LocaleCode = "";
29 | }
30 | }
31 | public string PlatformString { get; private set; }
32 | public string LanguageCode { get; private set; }
33 | public string LocaleCode { get; private set; }
34 | public override string ToString()
35 | {
36 | return PlatformString;
37 | }
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP/Models/ContributionModel.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Reflection;
3 | using System.Runtime.Serialization;
4 |
5 | namespace Microsoft.Mvp.Models
6 | {
7 | public class ContributionModel
8 | {
9 | public string ContributionId { get; set; }
10 |
11 | public ContributionTypeModel ContributionType { get; set; }
12 |
13 | public ContributionTechnologyModel ContributionTechnology { get; set; }
14 |
15 | public DateTime? StartDate { get; set; }
16 |
17 | public string Title { get; set; }
18 |
19 | public bool ContributionEnableEditDelete
20 | {
21 | get
22 | {
23 | if (ContributionType == null)
24 | {
25 | return true;
26 | }
27 | else
28 | {
29 | return ContributionType.Name != "Product Group Interaction (PGI)";
30 | }
31 | }
32 | }
33 |
34 | public string LabelTextOfContribution { get; set; }
35 |
36 | public string ReferenceUrl { get; set; }
37 |
38 | [DataMember]
39 | public VisibilityModel Visibility { get; set; }
40 |
41 | public int? AnnualQuantity { get; set; }
42 |
43 | public int? SecondAnnualQuantity { get; set; }
44 |
45 | public int? AnnualReach { get; set; }
46 |
47 | public string Description { get; set; }
48 |
49 | public string AllAnswersUrl { get; set; }
50 |
51 | public string AllPostsUrl { get; set; }
52 |
53 | public bool IsSystemCollected { get; set; }
54 |
55 | public bool IsBelongToLatestAwardCycle { get; set; }
56 |
57 | public string DataFormat
58 | {
59 | get
60 | {
61 | if (StartDate != null)
62 | {
63 | return string.Format(System.Globalization.CultureInfo.CurrentCulture, "{0:yyyy/MM/dd}", StartDate.Value);
64 | }
65 | else
66 | {
67 | return "";
68 | }
69 |
70 | }
71 | }
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP/Models/ContributionTechnologyModel.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Runtime.Serialization;
3 | using System.Collections.Generic;
4 |
5 | namespace Microsoft.Mvp.Models
6 | {
7 | public class ContributionTechnologyModel
8 | {
9 | public string Id { get; set; }
10 |
11 | public string Name { get; set; }
12 |
13 | public string AwardName { get; set; }
14 |
15 | public string Statuscode { get; set; }
16 |
17 | public string Active { get; set; }
18 |
19 | }
20 |
21 | public class ContributionAreaInfo
22 | {
23 | public string ContentEncoding { get; set; }
24 | public string ContentType { get; set; }
25 | public List Data { get; set; }
26 |
27 | }
28 |
29 | public class ContributionAreaData
30 | {
31 | public string AwardCategory { get; set; }
32 |
33 | public List Contributions { get; set; }
34 | }
35 |
36 | public class ContributionDetail
37 | {
38 | public string AwardName { get; set; }
39 |
40 | public List ContributionArea { get; set; }
41 | }
42 | }
--------------------------------------------------------------------------------
/MVP/MVP/MVP/Models/ContributionTypeModel.cs:
--------------------------------------------------------------------------------
1 | using MvvmHelpers;
2 |
3 | namespace Microsoft.Mvp.Models
4 | {
5 | public class ContributionTypeModel
6 | {
7 | public string Id { get; set; }
8 |
9 | public string Name { get; set; }
10 |
11 | public string EnglishName { get; set; }
12 | }
13 |
14 | public class ContributionTypeDetail
15 | {
16 | public ObservableRangeCollection ContributionTypes { get; set; }
17 | }
18 | }
--------------------------------------------------------------------------------
/MVP/MVP/MVP/Models/ProfileModel.cs:
--------------------------------------------------------------------------------
1 | using Newtonsoft.Json;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Runtime.Serialization;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace Microsoft.Mvp.Models
10 | {
11 | public class ProfileModel
12 | {
13 | [DataMember]
14 | public string DisplayName { get; set; }
15 |
16 | [DataMember]
17 | public string AwardCategoryDisplay { get; set; }
18 |
19 | [DataMember]
20 | public string Biography { get; set; }
21 |
22 | [DataMember]
23 | public long FirstAwardYear { get; set; }
24 |
25 | [DataMember]
26 | public long YearsAsMVP { get; set; }
27 |
28 | [DataMember]
29 | public string Abstract { get; set; }
30 |
31 | [DataMember]
32 | public int ContributionCount { get; set; }
33 |
34 | [DataMember]
35 | public int MvpId { get; set; }
36 | }
37 |
38 | public class ContributionInfo
39 | {
40 | public int TotalContributions { get; set; }
41 | public List Contributions { get; set; }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP/Models/VisibilityModel.cs:
--------------------------------------------------------------------------------
1 | namespace Microsoft.Mvp.Models
2 | {
3 | public class VisibilityModel
4 | {
5 | public int Id { get; set; }
6 |
7 | public string Description { get; set; }
8 |
9 | public string LocalizeKey { get; set; }
10 | }
11 | }
--------------------------------------------------------------------------------
/MVP/MVP/MVP/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Resources;
2 | using System.Reflection;
3 | using System.Runtime.CompilerServices;
4 | using System.Runtime.InteropServices;
5 | using System;
6 |
7 | // General Information about an assembly is controlled through the following
8 | // set of attributes. Change these attribute values to modify the information
9 | // associated with an assembly.
10 | [assembly: AssemblyTitle("MVP")]
11 | [assembly: AssemblyDescription("")]
12 | [assembly: AssemblyConfiguration("")]
13 | [assembly: AssemblyCompany("Microsoft")]
14 | [assembly: AssemblyProduct("MVP")]
15 | [assembly: AssemblyCopyright("Copyright © Microsoft 2017")]
16 | [assembly: AssemblyTrademark("")]
17 | [assembly: AssemblyCulture("")]
18 | [assembly: NeutralResourcesLanguage("en")]
19 |
20 | [assembly:ComVisible(false)]
21 | [assembly: CLSCompliant(true)]
22 |
23 | // Version information for an assembly consists of the following four values:
24 | //
25 | // Major Version
26 | // Minor Version
27 | // Build Number
28 | // Revision
29 | //
30 | // You can specify all the values or you can default the Build and Revision Numbers
31 | // by using the '*' as shown below:
32 | // [assembly: AssemblyVersion("1.0.*")]
33 | [assembly: AssemblyVersion("1.0.0.0")]
34 | [assembly: AssemblyFileVersion("1.0.0.0")]
35 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP/Resources/AppResources.zh-Hans.Designer.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mvp/473c69aba1a703b7c1d4b1bbd8d1f556ebb2ec9e/MVP/MVP/MVP/Resources/AppResources.zh-Hans.Designer.cs
--------------------------------------------------------------------------------
/MVP/MVP/MVP/ViewModels/LogOnViewModel.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Mvp.Helpers;
2 | using System;
3 | using Xamarin.Forms;
4 |
5 | namespace Microsoft.Mvp.ViewModels
6 | {
7 | public class LogOnViewModel : ViewModelBase
8 | {
9 |
10 | #region Singleton pattern and constructors
11 |
12 | private static LogOnViewModel _instance = null;
13 | private static readonly object _synObject = new object();
14 |
15 | public static LogOnViewModel Instance
16 | {
17 | get
18 | {
19 | if (null == _instance)
20 | {
21 | lock (_synObject)
22 | {
23 | if (null == _instance)
24 | {
25 | _instance = new LogOnViewModel();
26 | }
27 | }
28 | }
29 | return _instance;
30 | }
31 | }
32 |
33 | #endregion
34 |
35 | #region Private Members
36 |
37 | private static string _storedToken;
38 |
39 | #endregion
40 |
41 | #region Public Members
42 |
43 | public bool IsLoggedIn
44 | {
45 | get
46 | {
47 |
48 | string tokenAndExpiredTime = null;
49 | if (Settings.GetSetting(CommonConstants.TokenKey) != string.Empty)
50 | {
51 | tokenAndExpiredTime = Settings.GetSetting(CommonConstants.TokenKey);
52 | }
53 |
54 | if (!string.IsNullOrEmpty(tokenAndExpiredTime))
55 | {
56 | var index = tokenAndExpiredTime.LastIndexOf(",", StringComparison.Ordinal);
57 |
58 | var expiredtime = Convert.ToDateTime(tokenAndExpiredTime.Substring(index + 1), System.Globalization.CultureInfo.InvariantCulture);
59 | var token = tokenAndExpiredTime.Substring(0, index);
60 | if (DateTime.Now.AddHours(-7) < expiredtime)
61 | {
62 | StoredToken = token;
63 | }
64 | else
65 | {
66 | StoredToken = "";
67 | }
68 | }
69 |
70 | return !string.IsNullOrEmpty(LogOnViewModel.StoredToken);
71 | }
72 | }
73 |
74 | public static string StoredToken
75 | {
76 | get
77 | {
78 | return _storedToken;
79 | }
80 |
81 | set
82 | {
83 | _storedToken = value;
84 |
85 | }
86 |
87 | }
88 |
89 | public string LearnMore
90 | {
91 | get {
92 | return TranslateServices.GetResourceString(CommonConstants.LearnMore);
93 | }
94 | }
95 |
96 | public string SigninTo {
97 | get
98 | {
99 | return TranslateServices.GetResourceString(CommonConstants.SigninTo);
100 | }
101 | }
102 |
103 | public string Welcome
104 | {
105 | get
106 | {
107 | return TranslateServices.GetResourceString(CommonConstants.Welcome);
108 | }
109 | }
110 |
111 | public string PageTitleForLogOn
112 | {
113 | get
114 | {
115 | return TranslateServices.GetResourceString(CommonConstants.PageTitleForLogOn);
116 | }
117 | }
118 |
119 | public string CancelButton { get; } = TranslateServices.GetResourceString(CommonConstants.CancelButton);
120 |
121 |
122 |
123 |
124 | #endregion
125 |
126 | }
127 | }
128 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP/ViewModels/SettingsViewModel.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Mvp.Helpers;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace Microsoft.Mvp.ViewModels
9 | {
10 | public class SettingsViewModel : ViewModelBase
11 | {
12 | //public string About { get; } = "This is the official Microsoft Most Valuable Professional (MVP) Award program app.\n\n" +
13 | // "Microsoft MVP award is given to exceptional, independent community leaders who share their passion, technical " +
14 | // "expertise, and real-world knowledge of Microsoft products with others.Microsoft MVPs can use this app to access " +
15 | // "their profile, contribution data, as well as automating several different tasks creating efficiency in daily tasks.";
16 | //public string Version { get; } = $"Version: {Plugin.VersionTracking.CrossVersionTracking.Current.CurrentVersion}";
17 |
18 | //public string Copyright { get; } = $"Copyright {DateTime.Now.Year} Microsoft";
19 | public string PageTitleForSetting { get; } = TranslateServices.GetResourceString(CommonConstants.PageTitleForSetting);
20 | public string Signout { get; } = TranslateServices.GetResourceString(CommonConstants.SignoutButton);
21 | public string DevToolsInfo { get; } = TranslateServices.GetResourceString(CommonConstants.DevToolsInfo);
22 |
23 | public string CloseButton { get; } = TranslateServices.GetResourceString(CommonConstants.CloseButton);
24 |
25 | public string About { get; } = TranslateServices.GetResourceString(CommonConstants.About);
26 | public string Version { get; } =string.Format(TranslateServices.GetResourceString(CommonConstants.VersionFormat), Plugin.VersionTracking.CrossVersionTracking.Current.CurrentVersion);
27 |
28 | public string Copyright { get; } = string.Format(TranslateServices.GetResourceString(CommonConstants.CopyrightFormat), DateTime.Now.Year);
29 |
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP/ViewModels/ViewModelBase.cs:
--------------------------------------------------------------------------------
1 | using MvvmHelpers;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.ComponentModel;
5 | using System.Linq;
6 | using System.Text;
7 |
8 | namespace Microsoft.Mvp.ViewModels
9 | {
10 | ///
11 | ///
12 | ///
13 | public class ViewModelBase : BaseViewModel
14 | {
15 | ///
16 | /// Event for when IsValid changes
17 | ///
18 | public event EventHandler IsValidChanged;
19 |
20 | readonly List errors = new List();
21 |
22 | ///
23 | /// Default constructor
24 | ///
25 | public ViewModelBase()
26 | {
27 | //Make sure validation is performed on startup
28 | Validate();
29 | }
30 |
31 | ///
32 | /// Returns true if the current state of the ViewModel is valid
33 | ///
34 | public bool IsValid => errors.Count == 0;
35 |
36 | ///
37 | /// A list of errors if IsValid is false
38 | ///
39 | protected List Errors => errors;
40 |
41 | ///
42 | /// Protected method for validating the ViewModel
43 | /// - Fires PropertyChanged for IsValid and Errors
44 | ///
45 | protected virtual void Validate()
46 | {
47 | OnPropertyChanged("IsValid");
48 | IsValidChanged?.Invoke(this, EventArgs.Empty);
49 | }
50 |
51 | ///
52 | /// Other viewmodels should call this when overriding Validate, to validate each property
53 | ///
54 | /// Func to determine if a value is valid
55 | /// The error message to use if not valid
56 | protected virtual void ValidateProperty(Func validate, string myError)
57 | {
58 | if (validate())
59 | {
60 | if (!Errors.Contains(myError))
61 | Errors.Add(myError);
62 | }
63 | else
64 | {
65 | Errors.Remove(myError);
66 | }
67 | }
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/MVP/MVP/MVP/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/MVP/MVPUI/App.xaml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/MVP/MVPUI/CustomControls/ICookieHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace Microsoft.Mvpui
8 | {
9 | public interface ICookieHelper
10 | {
11 | string GetCookie(string url);
12 | string GetCookie(Uri uri);
13 | void ClearCookie();
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/MVP/MVPUI/CustomControls/ILocationHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace Microsoft.Mvpui
8 | {
9 | public interface ILocationHelper
10 | {
11 | bool IsGooglePlayServicesIsInstalled();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/MVP/MVPUI/CustomControls/MVPNavigationPage.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using Xamarin.Forms;
7 |
8 | namespace Microsoft.Mvpui
9 | {
10 | class MVPNavigationPage : NavigationPage
11 | {
12 | public MVPNavigationPage(Page root) : base(root)
13 | {
14 | if (Device.RuntimePlatform == Device.iOS)
15 | {
16 |
17 | BarTextColor = (Color)Application.Current.Resources["PrimaryDark"]; ;
18 | BarBackgroundColor = (Color)Application.Current.Resources["BackgroundColoriOS"];
19 | }
20 | else
21 | {
22 | BarTextColor = Color.White;
23 | BarBackgroundColor = (Color)Application.Current.Resources["Primary"];
24 | }
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/MVP/MVPUI/Extensions/ResourceDictionaryExtensions.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Collections.ObjectModel;
4 | using System.Linq;
5 |
6 | namespace Microsoft.Mvpui
7 | {
8 | internal static class MergeExtensions
9 | {
10 | internal static void ForEach(this IEnumerable items, Action action)
11 | {
12 | foreach (var item in items) action(item);
13 | }
14 |
15 | internal static void Merge(this IDictionary targetDictionary,
16 | IEnumerable> sourceItems)
17 | {
18 | var targetItems = targetDictionary.ToArray();
19 | sourceItems.ForEach(i => targetDictionary[i.Key] = i.Value);
20 | targetItems.ForEach(i => targetDictionary[i.Key] = i.Value); // override merged by local values
21 | }
22 | }
23 |
24 | public class ResourceDictionary : Xamarin.Forms.ResourceDictionary
25 | {
26 | public ResourceDictionary()
27 | {
28 | MergedDictionaries = new ObservableCollection();
29 | MergedDictionaries.CollectionChanged += (sender, args) =>
30 | (args.NewItems ?? new List