Xamarin.Forms HockeyApp Sample
|
@ -0,0 +1,216 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.25123.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XFHockeyApp.Droid", "XFHockeyApp\XFHockeyApp.Droid\XFHockeyApp.Droid.csproj", "{249DEA15-D333-4CD0-A9B9-45852A422A24}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XFHockeyApp.iOS", "XFHockeyApp\XFHockeyApp.iOS\XFHockeyApp.iOS.csproj", "{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XFHockeyApp.UWP", "XFHockeyApp\XFHockeyApp.UWP\XFHockeyApp.UWP.csproj", "{71DA5108-A129-4A0B-B697-BD4133E0AEED}"
|
||||
EndProject
|
||||
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "XFHockeyApp", "XFHockeyApp\XFHockeyApp\XFHockeyApp.shproj", "{937A39DE-B09C-4903-890E-9D467BC50962}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SharedMSBuildProjectFiles) = preSolution
|
||||
XFHockeyApp\XFHockeyApp\XFHockeyApp.projitems*{d7cb6f05-71b2-45cc-8b57-2caae894c426}*SharedItemsImports = 4
|
||||
XFHockeyApp\XFHockeyApp\XFHockeyApp.projitems*{249dea15-d333-4cd0-a9b9-45852a422a24}*SharedItemsImports = 4
|
||||
XFHockeyApp\XFHockeyApp\XFHockeyApp.projitems*{937a39de-b09c-4903-890e-9d467bc50962}*SharedItemsImports = 13
|
||||
XFHockeyApp\XFHockeyApp\XFHockeyApp.projitems*{71da5108-a129-4a0b-b697-bd4133e0aeed}*SharedItemsImports = 4
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
|
||||
Ad-Hoc|ARM = Ad-Hoc|ARM
|
||||
Ad-Hoc|iPhone = Ad-Hoc|iPhone
|
||||
Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator
|
||||
Ad-Hoc|x64 = Ad-Hoc|x64
|
||||
Ad-Hoc|x86 = Ad-Hoc|x86
|
||||
AppStore|Any CPU = AppStore|Any CPU
|
||||
AppStore|ARM = AppStore|ARM
|
||||
AppStore|iPhone = AppStore|iPhone
|
||||
AppStore|iPhoneSimulator = AppStore|iPhoneSimulator
|
||||
AppStore|x64 = AppStore|x64
|
||||
AppStore|x86 = AppStore|x86
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|ARM = Debug|ARM
|
||||
Debug|iPhone = Debug|iPhone
|
||||
Debug|iPhoneSimulator = Debug|iPhoneSimulator
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|ARM = Release|ARM
|
||||
Release|iPhone = Release|iPhone
|
||||
Release|iPhoneSimulator = Release|iPhoneSimulator
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Ad-Hoc|Any CPU.Deploy.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Ad-Hoc|ARM.Build.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Ad-Hoc|ARM.Deploy.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Ad-Hoc|iPhone.Deploy.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Ad-Hoc|x64.Build.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Ad-Hoc|x64.Deploy.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Ad-Hoc|x86.Build.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Ad-Hoc|x86.Deploy.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.AppStore|Any CPU.Build.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.AppStore|Any CPU.Deploy.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.AppStore|ARM.ActiveCfg = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.AppStore|ARM.Build.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.AppStore|ARM.Deploy.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.AppStore|iPhone.ActiveCfg = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.AppStore|iPhone.Build.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.AppStore|iPhone.Deploy.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.AppStore|iPhoneSimulator.Deploy.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.AppStore|x64.ActiveCfg = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.AppStore|x64.Build.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.AppStore|x64.Deploy.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.AppStore|x86.ActiveCfg = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.AppStore|x86.Build.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.AppStore|x86.Deploy.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Debug|ARM.Deploy.0 = Debug|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Debug|iPhone.Deploy.0 = Debug|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Debug|x64.Deploy.0 = Debug|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Debug|x86.Deploy.0 = Debug|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Release|ARM.Deploy.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Release|iPhone.Deploy.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Release|x64.Build.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Release|x64.Deploy.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Release|x86.Build.0 = Release|Any CPU
|
||||
{249DEA15-D333-4CD0-A9B9-45852A422A24}.Release|x86.Deploy.0 = Release|Any CPU
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.Ad-Hoc|ARM.ActiveCfg = Ad-Hoc|iPhone
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.Ad-Hoc|x64.ActiveCfg = Ad-Hoc|iPhone
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.Ad-Hoc|x86.ActiveCfg = Ad-Hoc|iPhone
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.AppStore|Any CPU.ActiveCfg = AppStore|iPhone
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.AppStore|ARM.ActiveCfg = AppStore|iPhone
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.AppStore|iPhone.ActiveCfg = AppStore|iPhone
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.AppStore|iPhone.Build.0 = AppStore|iPhone
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.AppStore|x64.ActiveCfg = AppStore|iPhone
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.AppStore|x86.ActiveCfg = AppStore|iPhone
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.Debug|Any CPU.ActiveCfg = Debug|iPhone
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.Debug|ARM.ActiveCfg = Debug|iPhone
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.Debug|iPhone.ActiveCfg = Debug|iPhone
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.Debug|iPhone.Build.0 = Debug|iPhone
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.Debug|x64.ActiveCfg = Debug|iPhone
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.Debug|x86.ActiveCfg = Debug|iPhone
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.Release|Any CPU.ActiveCfg = Release|iPhone
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.Release|ARM.ActiveCfg = Release|iPhone
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.Release|iPhone.ActiveCfg = Release|iPhone
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.Release|iPhone.Build.0 = Release|iPhone
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.Release|x64.ActiveCfg = Release|iPhone
|
||||
{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}.Release|x86.ActiveCfg = Release|iPhone
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Ad-Hoc|Any CPU.ActiveCfg = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Ad-Hoc|Any CPU.Build.0 = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Ad-Hoc|Any CPU.Deploy.0 = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Ad-Hoc|ARM.ActiveCfg = Release|ARM
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Ad-Hoc|ARM.Build.0 = Release|ARM
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Ad-Hoc|ARM.Deploy.0 = Release|ARM
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Ad-Hoc|iPhone.ActiveCfg = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Ad-Hoc|iPhone.Build.0 = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Ad-Hoc|iPhone.Deploy.0 = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Ad-Hoc|x64.ActiveCfg = Release|x64
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Ad-Hoc|x64.Build.0 = Release|x64
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Ad-Hoc|x64.Deploy.0 = Release|x64
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Ad-Hoc|x86.ActiveCfg = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Ad-Hoc|x86.Build.0 = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Ad-Hoc|x86.Deploy.0 = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.AppStore|Any CPU.ActiveCfg = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.AppStore|Any CPU.Build.0 = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.AppStore|Any CPU.Deploy.0 = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.AppStore|ARM.ActiveCfg = Release|ARM
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.AppStore|ARM.Build.0 = Release|ARM
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.AppStore|ARM.Deploy.0 = Release|ARM
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.AppStore|iPhone.ActiveCfg = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.AppStore|iPhone.Build.0 = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.AppStore|iPhone.Deploy.0 = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.AppStore|iPhoneSimulator.ActiveCfg = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.AppStore|iPhoneSimulator.Build.0 = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.AppStore|iPhoneSimulator.Deploy.0 = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.AppStore|x64.ActiveCfg = Release|x64
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.AppStore|x64.Build.0 = Release|x64
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.AppStore|x64.Deploy.0 = Release|x64
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.AppStore|x86.ActiveCfg = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.AppStore|x86.Build.0 = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.AppStore|x86.Deploy.0 = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Debug|Any CPU.ActiveCfg = Debug|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Debug|ARM.Deploy.0 = Debug|ARM
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Debug|iPhone.ActiveCfg = Debug|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Debug|x64.Build.0 = Debug|x64
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Debug|x86.Build.0 = Debug|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Debug|x86.Deploy.0 = Debug|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Release|Any CPU.ActiveCfg = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Release|ARM.ActiveCfg = Release|ARM
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Release|ARM.Build.0 = Release|ARM
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Release|ARM.Deploy.0 = Release|ARM
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Release|iPhone.ActiveCfg = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Release|iPhoneSimulator.ActiveCfg = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Release|x64.ActiveCfg = Release|x64
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Release|x64.Build.0 = Release|x64
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Release|x64.Deploy.0 = Release|x64
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Release|x86.ActiveCfg = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Release|x86.Build.0 = Release|x86
|
||||
{71DA5108-A129-4A0B-B697-BD4133E0AEED}.Release|x86.Deploy.0 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
|
@ -0,0 +1,19 @@
|
|||
Any raw assets you want to be deployed with your application can be placed in
|
||||
this directory (and child directories) and given a Build Action of "AndroidAsset".
|
||||
|
||||
These files will be deployed with you package and will be accessible using Android's
|
||||
AssetManager, like this:
|
||||
|
||||
public class ReadAsset : Activity
|
||||
{
|
||||
protected override void OnCreate (Bundle bundle)
|
||||
{
|
||||
base.OnCreate (bundle);
|
||||
|
||||
InputStream input = Assets.Open ("my_asset.txt");
|
||||
}
|
||||
}
|
||||
|
||||
Additionally, some Android functions will automatically load asset files:
|
||||
|
||||
Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf");
|
|
@ -0,0 +1,23 @@
|
|||
using Android.App;
|
||||
using Android.Content.PM;
|
||||
using Android.OS;
|
||||
using HockeyApp;
|
||||
using XFHockeyApp.Services.Logger;
|
||||
|
||||
namespace XFHockeyApp.Droid
|
||||
{
|
||||
[Activity (Label = "XFHockeyApp", Icon = "@drawable/icon", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
|
||||
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity
|
||||
{
|
||||
protected override void OnCreate (Bundle bundle)
|
||||
{
|
||||
base.OnCreate (bundle);
|
||||
|
||||
CrashManager.Register(this, LoggerConfig.HockeyAppDroid);
|
||||
|
||||
global::Xamarin.Forms.Forms.Init (this, bundle);
|
||||
LoadApplication (new XFHockeyApp.App ());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<uses-sdk android:minSdkVersion="15" />
|
||||
<application android:label="$safeprojectname$"></application>
|
||||
</manifest>
|
|
@ -0,0 +1,34 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using Android.App;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("XFHockeyApp.Droid")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("XFHockeyApp.Droid")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2014")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
|
||||
// Add some common permissions, these can be removed if not needed
|
||||
[assembly: UsesPermission(Android.Manifest.Permission.Internet)]
|
||||
[assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)]
|
|
@ -0,0 +1,50 @@
|
|||
Images, layout descriptions, binary blobs and string dictionaries can be included
|
||||
in your application as resource files. Various Android APIs are designed to
|
||||
operate on the resource IDs instead of dealing with images, strings or binary blobs
|
||||
directly.
|
||||
|
||||
For example, a sample Android app that contains a user interface layout (main.xml),
|
||||
an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png)
|
||||
would keep its resources in the "Resources" directory of the application:
|
||||
|
||||
Resources/
|
||||
drawable-hdpi/
|
||||
icon.png
|
||||
|
||||
drawable-ldpi/
|
||||
icon.png
|
||||
|
||||
drawable-mdpi/
|
||||
icon.png
|
||||
|
||||
layout/
|
||||
main.xml
|
||||
|
||||
values/
|
||||
strings.xml
|
||||
|
||||
In order to get the build system to recognize Android resources, set the build action to
|
||||
"AndroidResource". The native Android APIs do not operate directly with filenames, but
|
||||
instead operate on resource IDs. When you compile an Android application that uses resources,
|
||||
the build system will package the resources for distribution and generate a class called
|
||||
"Resource" that contains the tokens for each one of the resources included. For example,
|
||||
for the above Resources layout, this is what the Resource class would expose:
|
||||
|
||||
public class Resource {
|
||||
public class drawable {
|
||||
public const int icon = 0x123;
|
||||
}
|
||||
|
||||
public class layout {
|
||||
public const int main = 0x456;
|
||||
}
|
||||
|
||||
public class strings {
|
||||
public const int first_string = 0xabc;
|
||||
public const int second_string = 0xbcd;
|
||||
}
|
||||
}
|
||||
|
||||
You would then use R.drawable.icon to reference the drawable/icon.png file, or Resource.layout.main
|
||||
to reference the layout/main.xml file, or Resource.strings.first_string to reference the first
|
||||
string in the dictionary file values/strings.xml.
|
1947
XFHockeyApp/XFHockeyApp/XFHockeyApp.Droid/Resources/Resource.Designer.cs
сгенерированный
Normal file
Двоичные данные
XFHockeyApp/XFHockeyApp/XFHockeyApp.Droid/Resources/drawable-hdpi/icon.png
Normal file
После Ширина: | Высота: | Размер: 1.4 KiB |
Двоичные данные
XFHockeyApp/XFHockeyApp/XFHockeyApp.Droid/Resources/drawable-xhdpi/icon.png
Normal file
После Ширина: | Высота: | Размер: 1.7 KiB |
Двоичные данные
XFHockeyApp/XFHockeyApp/XFHockeyApp.Droid/Resources/drawable-xxhdpi/icon.png
Normal file
После Ширина: | Высота: | Размер: 2.3 KiB |
После Ширина: | Высота: | Размер: 1.4 KiB |
|
@ -0,0 +1,143 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>8.0.30703</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{249DEA15-D333-4CD0-A9B9-45852A422A24}</ProjectGuid>
|
||||
<ProjectTypeGuids>{EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>XFHockeyApp.Droid</RootNamespace>
|
||||
<AssemblyName>XFHockeyApp.Droid</AssemblyName>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AndroidApplication>true</AndroidApplication>
|
||||
<AndroidResgenFile>Resources\Resource.Designer.cs</AndroidResgenFile>
|
||||
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
|
||||
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
|
||||
<AndroidUseLatestPlatformSdk>true</AndroidUseLatestPlatformSdk>
|
||||
<TargetFrameworkVersion>v6.0.99</TargetFrameworkVersion>
|
||||
<AndroidSupportedAbis>armeabi,armeabi-v7a,x86</AndroidSupportedAbis>
|
||||
<AndroidStoreUncompressedFileExtensions />
|
||||
<MandroidI18n />
|
||||
<JavaMaximumHeapSize />
|
||||
<JavaOptions />
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<AndroidUseSharedRuntime>True</AndroidUseSharedRuntime>
|
||||
<AndroidLinkMode>None</AndroidLinkMode>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<AndroidUseSharedRuntime>False</AndroidUseSharedRuntime>
|
||||
<AndroidLinkMode>SdkOnly</AndroidLinkMode>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="FormsViewGroup, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Xamarin.Forms.2.0.0.6482\lib\MonoAndroid10\FormsViewGroup.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="HockeySDK, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\HockeySDK.Xamarin.4.1.0-beta1\lib\MonoAndroid403\HockeySDK.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Practices.ServiceLocation, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\CommonServiceLocator.1.3\lib\portable-net4+sl5+netcore45+wpa81+wp8\Microsoft.Practices.ServiceLocation.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Practices.Unity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d32ff45e0ccc69f, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Unity.4.0.1\lib\portable-net45+wp80+win8+wpa81+MonoAndroid10+MonoTouch10\Microsoft.Practices.Unity.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Mono.Android" />
|
||||
<Reference Include="mscorlib" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.ObjectModel" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="Xamarin.Android.Support.Design, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Xamarin.Android.Support.Design.23.0.1.3\lib\MonoAndroid403\Xamarin.Android.Support.Design.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Xamarin.Android.Support.v4, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Xamarin.Android.Support.v4.23.0.1.3\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Xamarin.Android.Support.v7.AppCompat, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Xamarin.Android.Support.v7.AppCompat.23.0.1.3\lib\MonoAndroid403\Xamarin.Android.Support.v7.AppCompat.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Xamarin.Android.Support.v7.CardView, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Xamarin.Android.Support.v7.CardView.23.0.1.3\lib\MonoAndroid403\Xamarin.Android.Support.v7.CardView.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Xamarin.Android.Support.v7.MediaRouter, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Xamarin.Android.Support.v7.MediaRouter.23.0.1.3\lib\MonoAndroid403\Xamarin.Android.Support.v7.MediaRouter.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Xamarin.Forms.2.0.0.6482\lib\MonoAndroid10\Xamarin.Forms.Core.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Xamarin.Forms.Platform, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Xamarin.Forms.2.0.0.6482\lib\MonoAndroid10\Xamarin.Forms.Platform.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Xamarin.Forms.Platform.Android, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Xamarin.Forms.2.0.0.6482\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Xamarin.Forms.Xaml, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Xamarin.Forms.2.0.0.6482\lib\MonoAndroid10\Xamarin.Forms.Xaml.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="MainActivity.cs" />
|
||||
<Compile Include="Resources\Resource.Designer.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
<None Include="Resources\AboutResources.txt" />
|
||||
<None Include="Assets\AboutAssets.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<AndroidResource Include="Resources\Drawable\Icon.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Properties\AndroidManifest.xml" />
|
||||
</ItemGroup>
|
||||
<Import Project="..\XFHockeyApp\XFHockeyApp.projitems" Label="Shared" Condition="Exists('..\XFHockeyApp\XFHockeyApp.projitems')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
|
||||
<Import Project="..\..\packages\Xamarin.Forms.2.0.0.6482\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.2.0.0.6482\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>Este proyecto hace referencia a los paquetes NuGet que faltan en este equipo. Use la restauración de paquetes NuGet para descargarlos. Para obtener más información, consulte http://go.microsoft.com/fwlink/?LinkID=322105. El archivo que falta es {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\..\packages\Xamarin.Forms.2.0.0.6482\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.2.0.0.6482\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets'))" />
|
||||
</Target>
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="CommonServiceLocator" version="1.3" targetFramework="monoandroid6.0.99" />
|
||||
<package id="HockeySDK.Xamarin" version="4.1.0-beta1" targetFramework="monoandroid6.0.99" />
|
||||
<package id="Unity" version="4.0.1" targetFramework="monoandroid6.0.99" />
|
||||
<package id="Xamarin.Android.Support.Design" version="23.0.1.3" targetFramework="monoandroid6.0.99" />
|
||||
<package id="Xamarin.Android.Support.v4" version="23.0.1.3" targetFramework="monoandroid6.0.99" />
|
||||
<package id="Xamarin.Android.Support.v7.AppCompat" version="23.0.1.3" targetFramework="monoandroid6.0.99" />
|
||||
<package id="Xamarin.Android.Support.v7.CardView" version="23.0.1.3" targetFramework="monoandroid6.0.99" />
|
||||
<package id="Xamarin.Android.Support.v7.MediaRouter" version="23.0.1.3" targetFramework="monoandroid6.0.99" />
|
||||
<package id="Xamarin.Forms" version="2.0.0.6482" targetFramework="monoandroid6.0.99" />
|
||||
</packages>
|
|
@ -0,0 +1,8 @@
|
|||
<Application
|
||||
x:Class="XFHockeyApp.UWP.App"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:XFHockeyApp.UWP"
|
||||
RequestedTheme="Light">
|
||||
|
||||
</Application>
|
|
@ -0,0 +1,101 @@
|
|||
using System;
|
||||
using Windows.ApplicationModel;
|
||||
using Windows.ApplicationModel.Activation;
|
||||
using Windows.UI.Xaml;
|
||||
using Windows.UI.Xaml.Controls;
|
||||
using Windows.UI.Xaml.Navigation;
|
||||
using XFHockeyApp.Services.Logger;
|
||||
|
||||
namespace XFHockeyApp.UWP
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides application-specific behavior to supplement the default Application class.
|
||||
/// </summary>
|
||||
sealed partial class App : Application
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes the singleton application object. This is the first line of authored code
|
||||
/// executed, and as such is the logical equivalent of main() or WinMain().
|
||||
/// </summary>
|
||||
public App()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
this.Suspending += OnSuspending;
|
||||
|
||||
|
||||
Microsoft.HockeyApp.HockeyClient.Current.Configure(LoggerConfig.HockeyAppUWP);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Invoked when the application is launched normally by the end user. Other entry points
|
||||
/// will be used such as when the application is launched to open a specific file.
|
||||
/// </summary>
|
||||
/// <param name="e">Details about the launch request and process.</param>
|
||||
protected override void OnLaunched(LaunchActivatedEventArgs e)
|
||||
{
|
||||
|
||||
#if DEBUG
|
||||
if (System.Diagnostics.Debugger.IsAttached)
|
||||
{
|
||||
this.DebugSettings.EnableFrameRateCounter = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
Frame rootFrame = Window.Current.Content as Frame;
|
||||
|
||||
// Do not repeat app initialization when the Window already has content,
|
||||
// just ensure that the window is active
|
||||
if (rootFrame == null)
|
||||
{
|
||||
// Create a Frame to act as the navigation context and navigate to the first page
|
||||
rootFrame = new Frame();
|
||||
|
||||
rootFrame.NavigationFailed += OnNavigationFailed;
|
||||
|
||||
Xamarin.Forms.Forms.Init(e);
|
||||
|
||||
if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
|
||||
{
|
||||
//TODO: Load state from previously suspended application
|
||||
}
|
||||
|
||||
// Place the frame in the current Window
|
||||
Window.Current.Content = rootFrame;
|
||||
}
|
||||
|
||||
if (rootFrame.Content == null)
|
||||
{
|
||||
// When the navigation stack isn't restored navigate to the first page,
|
||||
// configuring the new page by passing required information as a navigation
|
||||
// parameter
|
||||
rootFrame.Navigate(typeof(MainPage), e.Arguments);
|
||||
}
|
||||
// Ensure the current window is active
|
||||
Window.Current.Activate();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Invoked when Navigation to a certain page fails
|
||||
/// </summary>
|
||||
/// <param name="sender">The Frame which failed navigation</param>
|
||||
/// <param name="e">Details about the navigation failure</param>
|
||||
void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
|
||||
{
|
||||
throw new Exception("Failed to load Page " + e.SourcePageType.FullName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Invoked when application execution is being suspended. Application state is saved
|
||||
/// without knowing whether the application will be terminated or resumed with the contents
|
||||
/// of memory still intact.
|
||||
/// </summary>
|
||||
/// <param name="sender">The source of the suspend request.</param>
|
||||
/// <param name="e">Details about the suspend request.</param>
|
||||
private void OnSuspending(object sender, SuspendingEventArgs e)
|
||||
{
|
||||
var deferral = e.SuspendingOperation.GetDeferral();
|
||||
//TODO: Save application state and stop any background activity
|
||||
deferral.Complete();
|
||||
}
|
||||
}
|
||||
}
|
Двоичные данные
XFHockeyApp/XFHockeyApp/XFHockeyApp.UWP/Assets/LockScreenLogo.scale-200.png
Normal file
После Ширина: | Высота: | Размер: 1.4 KiB |
Двоичные данные
XFHockeyApp/XFHockeyApp/XFHockeyApp.UWP/Assets/SplashScreen.scale-200.png
Normal file
После Ширина: | Высота: | Размер: 7.5 KiB |
Двоичные данные
XFHockeyApp/XFHockeyApp/XFHockeyApp.UWP/Assets/Square150x150Logo.scale-200.png
Normal file
После Ширина: | Высота: | Размер: 2.9 KiB |
Двоичные данные
XFHockeyApp/XFHockeyApp/XFHockeyApp.UWP/Assets/Square44x44Logo.scale-200.png
Normal file
После Ширина: | Высота: | Размер: 1.6 KiB |
Двоичные данные
XFHockeyApp/XFHockeyApp/XFHockeyApp.UWP/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
Normal file
После Ширина: | Высота: | Размер: 1.2 KiB |
После Ширина: | Высота: | Размер: 1.4 KiB |
Двоичные данные
XFHockeyApp/XFHockeyApp/XFHockeyApp.UWP/Assets/Wide310x150Logo.scale-200.png
Normal file
После Ширина: | Высота: | Размер: 3.1 KiB |
|
@ -0,0 +1,15 @@
|
|||
<forms:WindowsPage
|
||||
x:Class="XFHockeyApp.UWP.MainPage"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:forms="using:Xamarin.Forms.Platform.UWP"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:XFHockeyApp.UWP"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d"
|
||||
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
|
||||
|
||||
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
|
||||
|
||||
</Grid>
|
||||
</forms:WindowsPage>
|
|
@ -0,0 +1,27 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices.WindowsRuntime;
|
||||
using Windows.Foundation;
|
||||
using Windows.Foundation.Collections;
|
||||
using Windows.UI.Xaml;
|
||||
using Windows.UI.Xaml.Controls;
|
||||
using Windows.UI.Xaml.Controls.Primitives;
|
||||
using Windows.UI.Xaml.Data;
|
||||
using Windows.UI.Xaml.Input;
|
||||
using Windows.UI.Xaml.Media;
|
||||
using Windows.UI.Xaml.Navigation;
|
||||
|
||||
namespace XFHockeyApp.UWP
|
||||
{
|
||||
public sealed partial class MainPage
|
||||
{
|
||||
public MainPage()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
|
||||
LoadApplication(new XFHockeyApp.App());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<Package
|
||||
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
|
||||
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
|
||||
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
|
||||
IgnorableNamespaces="uap mp">
|
||||
|
||||
<Identity
|
||||
Name="c0424d47-4013-42cb-9819-e1999c2addb4"
|
||||
Publisher="CN=jsuarezruiz"
|
||||
Version="1.0.0.0" />
|
||||
|
||||
<mp:PhoneIdentity PhoneProductId="c0424d47-4013-42cb-9819-e1999c2addb4" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>
|
||||
|
||||
<Properties>
|
||||
<DisplayName>XFHockeyApp.UWP</DisplayName>
|
||||
<PublisherDisplayName>jsuarezruiz</PublisherDisplayName>
|
||||
<Logo>Assets\StoreLogo.png</Logo>
|
||||
</Properties>
|
||||
|
||||
<Dependencies>
|
||||
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" />
|
||||
</Dependencies>
|
||||
|
||||
<Resources>
|
||||
<Resource Language="x-generate"/>
|
||||
</Resources>
|
||||
|
||||
<Applications>
|
||||
<Application Id="App"
|
||||
Executable="$targetnametoken$.exe"
|
||||
EntryPoint="XFHockeyApp.UWP.App">
|
||||
<uap:VisualElements
|
||||
DisplayName="XFHockeyApp.UWP"
|
||||
Square150x150Logo="Assets\Square150x150Logo.png"
|
||||
Square44x44Logo="Assets\Square44x44Logo.png"
|
||||
Description="XFHockeyApp.UWP"
|
||||
BackgroundColor="transparent">
|
||||
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png"/>
|
||||
<uap:SplashScreen Image="Assets\SplashScreen.png" />
|
||||
</uap:VisualElements>
|
||||
</Application>
|
||||
</Applications>
|
||||
|
||||
<Capabilities>
|
||||
<Capability Name="internetClient" />
|
||||
</Capabilities>
|
||||
</Package>
|
|
@ -0,0 +1,29 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("XFHockeyApp.UWP")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("XFHockeyApp.UWP")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2015")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
[assembly: ComVisible(false)]
|
|
@ -0,0 +1,31 @@
|
|||
<!--
|
||||
This file contains Runtime Directives used by .NET Native. The defaults here are suitable for most
|
||||
developers. However, you can modify these parameters to modify the behavior of the .NET Native
|
||||
optimizer.
|
||||
|
||||
Runtime Directives are documented at http://go.microsoft.com/fwlink/?LinkID=391919
|
||||
|
||||
To fully enable reflection for App1.MyClass and all of its public/private members
|
||||
<Type Name="App1.MyClass" Dynamic="Required All"/>
|
||||
|
||||
To enable dynamic creation of the specific instantiation of AppClass<T> over System.Int32
|
||||
<TypeInstantiation Name="App1.AppClass" Arguments="System.Int32" Activate="Required Public" />
|
||||
|
||||
Using the Namespace directive to apply reflection policy to all the types in a particular namespace
|
||||
<Namespace Name="DataClasses.ViewModels" Seralize="All" />
|
||||
-->
|
||||
|
||||
<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
|
||||
<Application>
|
||||
<!--
|
||||
An Assembly element with Name="*Application*" applies to all assemblies in
|
||||
the application package. The asterisks are not wildcards.
|
||||
-->
|
||||
<Assembly Name="*Application*" Dynamic="Required All" />
|
||||
|
||||
|
||||
<!-- Add your application specific runtime directives here. -->
|
||||
|
||||
|
||||
</Application>
|
||||
</Directives>
|
|
@ -0,0 +1,142 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||
<ProjectGuid>{71DA5108-A129-4A0B-B697-BD4133E0AEED}</ProjectGuid>
|
||||
<OutputType>AppContainerExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>XFHockeyApp.UWP</RootNamespace>
|
||||
<AssemblyName>XFHockeyApp.UWP</AssemblyName>
|
||||
<DefaultLanguage>en-US</DefaultLanguage>
|
||||
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
|
||||
<TargetPlatformVersion>10.0.10240.0</TargetPlatformVersion>
|
||||
<TargetPlatformMinVersion>10.0.10240.0</TargetPlatformMinVersion>
|
||||
<MinimumVisualStudioVersion>14</MinimumVisualStudioVersion>
|
||||
<EnableDotNetNativeCompatibleProfile>true</EnableDotNetNativeCompatibleProfile>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<PackageCertificateKeyFile>Windows_TemporaryKey.pfx</PackageCertificateKeyFile>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\ARM\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
||||
<NoWarn>;2008</NoWarn>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>ARM</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|ARM'">
|
||||
<OutputPath>bin\ARM\Release\</OutputPath>
|
||||
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<NoWarn>;2008</NoWarn>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>ARM</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
||||
<NoWarn>;2008</NoWarn>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<OutputPath>bin\x64\Release\</OutputPath>
|
||||
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<NoWarn>;2008</NoWarn>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
||||
<NoWarn>;2008</NoWarn>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<NoWarn>;2008</NoWarn>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<!-- A reference to the entire .Net Framework and Windows SDK are automatically included -->
|
||||
<None Include="project.json" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="App.xaml.cs">
|
||||
<DependentUpon>App.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="MainPage.xaml.cs">
|
||||
<DependentUpon>MainPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<AppxManifest Include="Package.appxmanifest">
|
||||
<SubType>Designer</SubType>
|
||||
</AppxManifest>
|
||||
<None Include="Windows_TemporaryKey.pfx" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Properties\Default.rd.xml" />
|
||||
<Content Include="Assets\LockScreenLogo.scale-200.png" />
|
||||
<Content Include="Assets\SplashScreen.scale-200.png" />
|
||||
<Content Include="Assets\Square150x150Logo.scale-200.png" />
|
||||
<Content Include="Assets\Square44x44Logo.scale-200.png" />
|
||||
<Content Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png" />
|
||||
<Content Include="Assets\StoreLogo.png" />
|
||||
<Content Include="Assets\Wide310x150Logo.scale-200.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ApplicationDefinition Include="App.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</ApplicationDefinition>
|
||||
<Page Include="MainPage.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '14.0' ">
|
||||
<VisualStudioVersion>14.0</VisualStudioVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="..\XFHockeyApp\XFHockeyApp.projitems" Label="Shared" Condition="Exists('..\XFHockeyApp\XFHockeyApp.projitems')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="'$(NuGetPackageRoot)' == ''">
|
||||
<NuGetPackageRoot>$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
||||
</PropertyGroup>
|
||||
<ImportGroup>
|
||||
<Import Project="$(NuGetPackageRoot)\Xamarin.Forms\2.0.0.6482\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('$(NuGetPackageRoot)\Xamarin.Forms\2.0.0.6482\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
|
||||
</ImportGroup>
|
||||
</Project>
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"dependencies": {
|
||||
"HockeySDK.UWP": "4.0.0",
|
||||
"Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0",
|
||||
"Unity": "4.0.1",
|
||||
"Xamarin.Forms": "2.0.0.6482"
|
||||
},
|
||||
"frameworks": {
|
||||
"uap10.0": {}
|
||||
},
|
||||
"runtimes": {
|
||||
"win10-arm": {},
|
||||
"win10-arm-aot": {},
|
||||
"win10-x86": {},
|
||||
"win10-x86-aot": {},
|
||||
"win10-x64": {},
|
||||
"win10-x64-aot": {}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
using Foundation;
|
||||
using HockeyApp;
|
||||
using UIKit;
|
||||
using XFHockeyApp.Services.Logger;
|
||||
|
||||
namespace XFHockeyApp.iOS
|
||||
{
|
||||
// The UIApplicationDelegate for the application. This class is responsible for launching the
|
||||
// User Interface of the application, as well as listening (and optionally responding) to
|
||||
// application events from iOS.
|
||||
[Register("AppDelegate")]
|
||||
public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
|
||||
{
|
||||
//
|
||||
// This method is invoked when the application has loaded and is ready to run. In this
|
||||
// method you should instantiate the window, load the UI into it and then make the window
|
||||
// visible.
|
||||
//
|
||||
// You have 17 seconds to return from this method, or iOS will terminate your application.
|
||||
//
|
||||
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
|
||||
{
|
||||
// Get the shared instance
|
||||
var manager = BITHockeyManager.SharedHockeyManager;
|
||||
|
||||
// Configure it to use our APP_ID
|
||||
manager.Configure(LoggerConfig.HockeyAppiOS);
|
||||
|
||||
// Start the manager
|
||||
manager.StartManager();
|
||||
|
||||
// Authenticate (there are other authentication options)
|
||||
manager.Authenticator.AuthenticateInstallation();
|
||||
|
||||
global::Xamarin.Forms.Forms.Init ();
|
||||
LoadApplication (new App());
|
||||
|
||||
return base.FinishedLaunching (app, options);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>UIDeviceFamily</key>
|
||||
<array>
|
||||
<integer>1</integer>
|
||||
<integer>2</integer>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>MinimumOSVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>XFHockeyApp</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.yourcompany.XFHockeyApp</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleIconFiles</key>
|
||||
<array>
|
||||
<string>Icon-60@2x.png</string>
|
||||
<string>Icon-60@3x.png</string>
|
||||
<string>Icon-76.png</string>
|
||||
<string>Icon-76@2x.png</string>
|
||||
<string>Default.png</string>
|
||||
<string>Default@2x.png</string>
|
||||
<string>Default-568h@2x.png</string>
|
||||
<string>Default-Portrait.png</string>
|
||||
<string>Default-Portrait@2x.png</string>
|
||||
<string>Icon-Small-40.png</string>
|
||||
<string>Icon-Small-40@2x.png</string>
|
||||
<string>Icon-Small-40@3x.png</string>
|
||||
<string>Icon-Small.png</string>
|
||||
<string>Icon-Small@2x.png</string>
|
||||
<string>Icon-Small@3x.png</string>
|
||||
</array>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>LaunchScreen.storyboard</string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,20 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
using Foundation;
|
||||
using UIKit;
|
||||
|
||||
namespace XFHockeyApp.iOS
|
||||
{
|
||||
public class Application
|
||||
{
|
||||
// This is the main entry point of the application.
|
||||
static void Main(string[] args)
|
||||
{
|
||||
// if you want to use a different Application Delegate class from "AppDelegate"
|
||||
// you can specify it here.
|
||||
UIApplication.Main(args, null, "AppDelegate");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("XFHockeyApp.iOS")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("XFHockeyApp.iOS")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2014")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("72bdc44f-c588-44f3-b6df-9aace7daafdd")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
После Ширина: | Высота: | Размер: 8.7 KiB |
После Ширина: | Высота: | Размер: 10 KiB |
Двоичные данные
XFHockeyApp/XFHockeyApp/XFHockeyApp.iOS/Resources/Default-Portrait@2x.png
Normal file
После Ширина: | Высота: | Размер: 34 KiB |
После Ширина: | Высота: | Размер: 7.1 KiB |
После Ширина: | Высота: | Размер: 8.2 KiB |
После Ширина: | Высота: | Размер: 1.7 KiB |
После Ширина: | Высота: | Размер: 21 KiB |
После Ширина: | Высота: | Размер: 1.2 KiB |
После Ширина: | Высота: | Размер: 2.2 KiB |
После Ширина: | Высота: | Размер: 729 B |
После Ширина: | Высота: | Размер: 1.2 KiB |
После Ширина: | Высота: | Размер: 12 KiB |
После Ширина: | Высота: | Размер: 1.1 KiB |
После Ширина: | Высота: | Размер: 955 B |
После Ширина: | Высота: | Размер: 7.1 KiB |
|
@ -0,0 +1,39 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="6245" systemVersion="13F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="X5k-f2-b5h">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6238"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
<!--View Controller-->
|
||||
<scene sceneID="gAE-YM-kbH">
|
||||
<objects>
|
||||
<viewController id="X5k-f2-b5h" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="Y8P-hJ-Z43"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="9ZL-r4-8FZ"/>
|
||||
</layoutGuides>
|
||||
<view key="view" contentMode="scaleToFill" id="yd7-JS-zBw">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" misplaced="YES" image="Icon-60.png" translatesAutoresizingMaskIntoConstraints="NO" id="23">
|
||||
<rect key="frame" x="270" y="270" width="60" height="60"/>
|
||||
<rect key="contentStretch" x="0.0" y="0.0" width="0.0" height="0.0"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="0.20392156862745098" green="0.59607843137254901" blue="0.85882352941176465" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<constraints>
|
||||
<constraint firstItem="23" firstAttribute="centerY" secondItem="yd7-JS-zBw" secondAttribute="centerY" priority="1" id="39"/>
|
||||
<constraint firstItem="23" firstAttribute="centerX" secondItem="yd7-JS-zBw" secondAttribute="centerX" priority="1" id="41"/>
|
||||
</constraints>
|
||||
</view>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="XAI-xm-WK6" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="349" y="339"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
<resources>
|
||||
<image name="Icon-60.png" width="180" height="180"/>
|
||||
</resources>
|
||||
</document>
|
|
@ -0,0 +1,161 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform>
|
||||
<ProductVersion>8.0.30703</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{D7CB6F05-71B2-45CC-8B57-2CAAE894C426}</ProjectGuid>
|
||||
<ProjectTypeGuids>{FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<OutputType>Exe</OutputType>
|
||||
<RootNamespace>XFHockeyApp.iOS</RootNamespace>
|
||||
<IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
|
||||
<AssemblyName>XFHockeyAppiOS</AssemblyName>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\iPhoneSimulator\Debug</OutputPath>
|
||||
<DefineConstants>DEBUG</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<ConsolePause>false</ConsolePause>
|
||||
<MtouchArch>i386, x86_64</MtouchArch>
|
||||
<MtouchLink>None</MtouchLink>
|
||||
<MtouchDebug>true</MtouchDebug>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\iPhoneSimulator\Release</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<MtouchLink>None</MtouchLink>
|
||||
<MtouchArch>i386, x86_64</MtouchArch>
|
||||
<ConsolePause>false</ConsolePause>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\iPhone\Debug</OutputPath>
|
||||
<DefineConstants>DEBUG</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<ConsolePause>false</ConsolePause>
|
||||
<MtouchArch>ARMv7, ARM64</MtouchArch>
|
||||
<CodesignKey>iPhone Developer</CodesignKey>
|
||||
<MtouchDebug>true</MtouchDebug>
|
||||
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\iPhone\Release</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<MtouchArch>ARMv7, ARM64</MtouchArch>
|
||||
<ConsolePause>false</ConsolePause>
|
||||
<CodesignKey>iPhone Developer</CodesignKey>
|
||||
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Ad-Hoc|iPhone' ">
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>True</Optimize>
|
||||
<OutputPath>bin\iPhone\Ad-Hoc</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<ConsolePause>False</ConsolePause>
|
||||
<MtouchArch>ARMv7, ARM64</MtouchArch>
|
||||
<BuildIpa>True</BuildIpa>
|
||||
<CodesignProvision>Automatic:AdHoc</CodesignProvision>
|
||||
<CodesignKey>iPhone Distribution</CodesignKey>
|
||||
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'AppStore|iPhone' ">
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>True</Optimize>
|
||||
<OutputPath>bin\iPhone\AppStore</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<ConsolePause>False</ConsolePause>
|
||||
<MtouchArch>ARMv7, ARM64</MtouchArch>
|
||||
<CodesignProvision>Automatic:AppStore</CodesignProvision>
|
||||
<CodesignKey>iPhone Distribution</CodesignKey>
|
||||
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Main.cs" />
|
||||
<Compile Include="AppDelegate.cs" />
|
||||
<None Include="Entitlements.plist" />
|
||||
<None Include="Info.plist" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<ITunesArtwork Include="iTunesArtwork" />
|
||||
<ITunesArtwork Include="iTunesArtwork@2x" />
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BundleResource Include="Resources\Default-568h%402x.png" />
|
||||
<BundleResource Include="Resources\Default-Portrait.png" />
|
||||
<BundleResource Include="Resources\Default-Portrait%402x.png" />
|
||||
<BundleResource Include="Resources\Default.png" />
|
||||
<BundleResource Include="Resources\Default%402x.png" />
|
||||
<BundleResource Include="Resources\Icon-60%402x.png" />
|
||||
<BundleResource Include="Resources\Icon-60%403x.png" />
|
||||
<BundleResource Include="Resources\Icon-76.png" />
|
||||
<BundleResource Include="Resources\Icon-76%402x.png" />
|
||||
<BundleResource Include="Resources\Icon-Small-40.png" />
|
||||
<BundleResource Include="Resources\Icon-Small-40%402x.png" />
|
||||
<BundleResource Include="Resources\Icon-Small-40%403x.png" />
|
||||
<BundleResource Include="Resources\Icon-Small.png" />
|
||||
<BundleResource Include="Resources\Icon-Small%402x.png" />
|
||||
<BundleResource Include="Resources\Icon-Small%403x.png" />
|
||||
<InterfaceDefinition Include="Resources\LaunchScreen.storyboard" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="HockeySDK, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\HockeySDK.Xamarin.4.1.0-beta1\lib\Xamarin.iOS10\HockeySDK.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Practices.ServiceLocation, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\CommonServiceLocator.1.3\lib\portable-net4+sl5+netcore45+wpa81+wp8\Microsoft.Practices.ServiceLocation.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Practices.Unity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d32ff45e0ccc69f, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Unity.4.0.1\lib\portable-net45+wp80+win8+wpa81+MonoAndroid10+MonoTouch10\Microsoft.Practices.Unity.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Xamarin.Forms.2.0.0.6482\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Xamarin.Forms.Platform, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Xamarin.Forms.2.0.0.6482\lib\Xamarin.iOS10\Xamarin.Forms.Platform.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Xamarin.Forms.Platform.iOS, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Xamarin.Forms.2.0.0.6482\lib\Xamarin.iOS10\Xamarin.Forms.Platform.iOS.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Xamarin.Forms.Xaml, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Xamarin.Forms.2.0.0.6482\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Xamarin.iOS" />
|
||||
</ItemGroup>
|
||||
<Import Project="..\XFHockeyApp\XFHockeyApp.projitems" Label="Shared" Condition="Exists('..\XFHockeyApp\XFHockeyApp.projitems')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
|
||||
<Import Project="..\..\packages\Xamarin.Forms.2.0.0.6482\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.2.0.0.6482\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>Este proyecto hace referencia a los paquetes NuGet que faltan en este equipo. Use la restauración de paquetes NuGet para descargarlos. Para obtener más información, consulte http://go.microsoft.com/fwlink/?LinkID=322105. El archivo que falta es {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\..\packages\Xamarin.Forms.2.0.0.6482\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.2.0.0.6482\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets'))" />
|
||||
</Target>
|
||||
</Project>
|
После Ширина: | Высота: | Размер: 16 KiB |
После Ширина: | Высота: | Размер: 20 KiB |
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="CommonServiceLocator" version="1.3" targetFramework="xamarinios10" />
|
||||
<package id="HockeySDK.Xamarin" version="4.1.0-beta1" targetFramework="xamarinios10" />
|
||||
<package id="Unity" version="4.0.1" targetFramework="xamarinios10" />
|
||||
<package id="Xamarin.Forms" version="2.0.0.6482" targetFramework="xamarinios10" />
|
||||
</packages>
|
|
@ -0,0 +1,37 @@
|
|||
using System.Diagnostics;
|
||||
using Xamarin.Forms;
|
||||
using XFHockeyApp.ViewModels.Base;
|
||||
using XFHockeyApp.Views;
|
||||
|
||||
namespace XFHockeyApp
|
||||
{
|
||||
public class App : Application
|
||||
{
|
||||
private static ViewModelLocator _locator;
|
||||
|
||||
public static ViewModelLocator Locator
|
||||
{
|
||||
get { return _locator = _locator ?? new ViewModelLocator(); }
|
||||
}
|
||||
|
||||
public App()
|
||||
{
|
||||
MainPage = new MainView(null);
|
||||
}
|
||||
|
||||
protected override void OnStart()
|
||||
{
|
||||
Debug.WriteLine("OnStart");
|
||||
}
|
||||
|
||||
protected override void OnSleep()
|
||||
{
|
||||
Debug.WriteLine("OnSleep");
|
||||
}
|
||||
|
||||
protected override void OnResume()
|
||||
{
|
||||
Debug.WriteLine("OnResume");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
namespace XFHockeyApp.Services.Logger
|
||||
{
|
||||
public interface ILoggerService
|
||||
{
|
||||
void TrackEvent(string value);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
namespace XFHockeyApp.Services.Logger
|
||||
{
|
||||
public static class LoggerConfig
|
||||
{
|
||||
// HockeyApp App API Tokens
|
||||
public static string HockeyAppDroid = "00000000000000000000000000000000";
|
||||
public static string HockeyAppiOS = "00000000000000000000000000000000";
|
||||
public static string HockeyAppUWP = "00000000000000000000000000000000";
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
using System.Diagnostics;
|
||||
|
||||
namespace XFHockeyApp.Services.Logger
|
||||
{
|
||||
public class LoggerService : ILoggerService
|
||||
{
|
||||
public void TrackEvent(string value)
|
||||
{
|
||||
Debug.WriteLine("Logger: Track Event: " + value);
|
||||
#if __ANDROID__
|
||||
HockeyApp.Metrics.MetricsManager.TrackEvent(value);
|
||||
#elif __IOS__
|
||||
HockeyApp.BITHockeyManager.SharedHockeyManager?.MetricsManager?.TrackEvent(value);
|
||||
#elif WINDOWS_UWP
|
||||
Microsoft.HockeyApp.HockeyClient.Current.TrackEvent(value);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,131 @@
|
|||
using System;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace XFHockeyApp.ViewModels.Base
|
||||
{
|
||||
/// <summary>
|
||||
/// This class allows us to delegate command execution to viewmodels.
|
||||
/// </summary>
|
||||
public class DelegateCommand : ICommand
|
||||
{
|
||||
private readonly Action _execute;
|
||||
private readonly Func<bool> _canExecute;
|
||||
|
||||
/// <summary>
|
||||
/// Constructor not using canExecute.
|
||||
/// </summary>
|
||||
/// <param name="execute"></param>
|
||||
public DelegateCommand(Action execute) : this(execute, null) { }
|
||||
|
||||
/// <summary>
|
||||
/// Constructor using both execute and canExecute.
|
||||
/// </summary>
|
||||
/// <param name="execute"></param>
|
||||
/// <param name="canExecute"></param>
|
||||
public DelegateCommand(Action execute, Func<bool> canExecute)
|
||||
{
|
||||
_execute = execute;
|
||||
_canExecute = canExecute;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This method is called from XAML to evaluate if the command can be executed.
|
||||
/// </summary>
|
||||
/// <param name="parameter"></param>
|
||||
/// <returns></returns>
|
||||
public bool CanExecute(object parameter)
|
||||
{
|
||||
if (_canExecute != null)
|
||||
return _canExecute();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This method is called from XAML to execute the command.
|
||||
/// </summary>
|
||||
/// <param name="parameter"></param>
|
||||
public void Execute(object parameter)
|
||||
{
|
||||
_execute();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This method allow us to force the execution of CanExecute method to reevaluate execution.
|
||||
/// </summary>
|
||||
public void RaiseCanExecuteChanged()
|
||||
{
|
||||
var tmpHandle = CanExecuteChanged;
|
||||
if (tmpHandle != null)
|
||||
tmpHandle(this, new EventArgs());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This event notify XAML controls using the command to reevaluate the CanExecute of it.
|
||||
/// </summary>
|
||||
public event EventHandler CanExecuteChanged;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This class allows us to delegate command execution to viewmodels using a T type as parameter.
|
||||
/// </summary>
|
||||
public class DelegateCommand<T> : ICommand
|
||||
{
|
||||
private readonly Action<T> _execute;
|
||||
private readonly Func<T, bool> _canExecute;
|
||||
|
||||
/// <summary>
|
||||
/// Constructor not using canExecute.
|
||||
/// </summary>
|
||||
/// <param name="execute"></param>
|
||||
public DelegateCommand(Action<T> execute) : this(execute, null) { }
|
||||
|
||||
/// <summary>
|
||||
/// Constructor using both execute and canExecute.
|
||||
/// </summary>
|
||||
/// <param name="execute"></param>
|
||||
/// <param name="canExecute"></param>
|
||||
public DelegateCommand(Action<T> execute, Func<T, bool> canExecute)
|
||||
{
|
||||
_execute = execute;
|
||||
_canExecute = canExecute;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This method is called from XAML to evaluate if the command can be executed.
|
||||
/// </summary>
|
||||
/// <param name="parameter"></param>
|
||||
/// <returns></returns>
|
||||
public bool CanExecute(object parameter)
|
||||
{
|
||||
if (_canExecute != null)
|
||||
return _canExecute((T)parameter);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This method is called from XAML to execute the command.
|
||||
/// </summary>
|
||||
/// <param name="parameter"></param>
|
||||
public void Execute(object parameter)
|
||||
{
|
||||
_execute((T)parameter);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This method allow us to force the execution of CanExecute method to reevaluate execution.
|
||||
/// </summary>
|
||||
public void RaiseCanExecuteChanged()
|
||||
{
|
||||
var tmpHandle = CanExecuteChanged;
|
||||
if (tmpHandle != null)
|
||||
tmpHandle(this, new EventArgs());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This event notify XAML controls using the command to reevaluate the CanExecute of it.
|
||||
/// </summary>
|
||||
public event EventHandler CanExecuteChanged;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,137 @@
|
|||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace XFHockeyApp.ViewModels.Base
|
||||
{
|
||||
/// <summary>
|
||||
/// This class allows us to delegate command execution to viewmodels.
|
||||
/// This version of the command allow to use async/await.
|
||||
/// </summary>
|
||||
public class DelegateCommandAsync : ICommand
|
||||
{
|
||||
private readonly Func<Task<bool>> _canExecute;
|
||||
private readonly Func<Task> _execute;
|
||||
|
||||
/// <summary>
|
||||
/// Constructor not using canExecute.
|
||||
/// </summary>
|
||||
/// <param name="execute"></param>
|
||||
public DelegateCommandAsync(Func<Task> execute) : this(execute, null)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Constructor using both execute and canExecute.
|
||||
/// </summary>
|
||||
/// <param name="execute"></param>
|
||||
/// <param name="canExecute"></param>
|
||||
public DelegateCommandAsync(Func<Task> execute, Func<Task<bool>> canExecute)
|
||||
{
|
||||
_execute = execute;
|
||||
_canExecute = canExecute;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This method is called from XAML to evaluate if the command can be executed.
|
||||
/// </summary>
|
||||
/// <param name="parameter"></param>
|
||||
/// <returns></returns>
|
||||
public bool CanExecute(object parameter)
|
||||
{
|
||||
if (_canExecute != null)
|
||||
return _canExecute().Result;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This method is called from XAML to execute the command.
|
||||
/// </summary>
|
||||
/// <param name="parameter"></param>
|
||||
public void Execute(object parameter)
|
||||
{
|
||||
_execute();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This event notify XAML controls using the command to reevaluate the CanExecute of it.
|
||||
/// </summary>
|
||||
public event EventHandler CanExecuteChanged;
|
||||
|
||||
/// <summary>
|
||||
/// This method allow us to force the execution of CanExecute method to reevaluate execution.
|
||||
/// </summary>
|
||||
public void RaiseCanExecuteChanged()
|
||||
{
|
||||
EventHandler tmpHandle = CanExecuteChanged;
|
||||
if (tmpHandle != null)
|
||||
tmpHandle(this, new EventArgs());
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This class allows us to delegate command execution to viewmodels using a T type as parameter.
|
||||
/// </summary>
|
||||
public class DelegateCommandAsync<T> : ICommand
|
||||
{
|
||||
private readonly Func<T, Task<bool>> _canExecute;
|
||||
private readonly Func<T, Task> _execute;
|
||||
|
||||
/// <summary>
|
||||
/// Constructor not using canExecute.
|
||||
/// </summary>
|
||||
/// <param name="execute"></param>
|
||||
public DelegateCommandAsync(Func<T, Task> execute) : this(execute, null)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Constructor using both execute and canExecute.
|
||||
/// </summary>
|
||||
/// <param name="execute"></param>
|
||||
/// <param name="canExecute"></param>
|
||||
public DelegateCommandAsync(Func<T, Task> execute, Func<T, Task<bool>> canExecute)
|
||||
{
|
||||
_execute = execute;
|
||||
_canExecute = canExecute;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This method is called from XAML to evaluate if the command can be executed.
|
||||
/// </summary>
|
||||
/// <param name="parameter"></param>
|
||||
/// <returns></returns>
|
||||
public bool CanExecute(object parameter)
|
||||
{
|
||||
if (_canExecute != null)
|
||||
return _canExecute((T) parameter).Result;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This method is called from XAML to execute the command.
|
||||
/// </summary>
|
||||
/// <param name="parameter"></param>
|
||||
public void Execute(object parameter)
|
||||
{
|
||||
_execute((T) parameter);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This event notify XAML controls using the command to reevaluate the CanExecute of it.
|
||||
/// </summary>
|
||||
public event EventHandler CanExecuteChanged;
|
||||
|
||||
/// <summary>
|
||||
/// This method allow us to force the execution of CanExecute method to reevaluate execution.
|
||||
/// </summary>
|
||||
public void RaiseCanExecuteChanged()
|
||||
{
|
||||
EventHandler tmpHandle = CanExecuteChanged;
|
||||
if (tmpHandle != null)
|
||||
tmpHandle(this, new EventArgs());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
using System.ComponentModel;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
namespace XFHockeyApp.ViewModels.Base
|
||||
{
|
||||
public abstract class ViewModelBase : INotifyPropertyChanged
|
||||
{
|
||||
public virtual void OnAppearing(object navigationContext)
|
||||
{
|
||||
}
|
||||
|
||||
public virtual void OnDisappearing()
|
||||
{
|
||||
}
|
||||
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
public void RaisePropertyChanged([CallerMemberName]string propertyName = "")
|
||||
{
|
||||
var handler = PropertyChanged;
|
||||
if (handler != null)
|
||||
handler(this, new PropertyChangedEventArgs(propertyName));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
using Microsoft.Practices.Unity;
|
||||
using XFHockeyApp.Services.Logger;
|
||||
|
||||
namespace XFHockeyApp.ViewModels.Base
|
||||
{
|
||||
public class ViewModelLocator
|
||||
{
|
||||
readonly IUnityContainer _container;
|
||||
|
||||
public ViewModelLocator()
|
||||
{
|
||||
_container = new UnityContainer();
|
||||
|
||||
// ViewModels
|
||||
_container.RegisterType<MainViewModel>();
|
||||
|
||||
// Services
|
||||
_container.RegisterType<ILoggerService, LoggerService>();
|
||||
}
|
||||
|
||||
public MainViewModel MainViewModel
|
||||
{
|
||||
get { return _container.Resolve<MainViewModel>(); }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
using System.Windows.Input;
|
||||
using XFHockeyApp.Services.Logger;
|
||||
using XFHockeyApp.ViewModels.Base;
|
||||
|
||||
namespace XFHockeyApp.ViewModels
|
||||
{
|
||||
public class MainViewModel : ViewModelBase
|
||||
{
|
||||
private ILoggerService _loggerService;
|
||||
|
||||
private ICommand _customEventCommand;
|
||||
|
||||
public MainViewModel(ILoggerService loggerService)
|
||||
{
|
||||
_loggerService = loggerService;
|
||||
}
|
||||
|
||||
public ICommand CustomEventCommand
|
||||
{
|
||||
get { return _customEventCommand = _customEventCommand ?? new DelegateCommand(CustomEventCommandExecute); }
|
||||
}
|
||||
|
||||
private void CustomEventCommandExecute()
|
||||
{
|
||||
_loggerService.TrackEvent("CustomEventCommand");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
x:Class="XFHockeyApp.Views.MainView"
|
||||
Title="HockeyApp">
|
||||
<ContentPage.Content>
|
||||
<StackLayout
|
||||
VerticalOptions="StartAndExpand"
|
||||
Padding="20">
|
||||
<Button
|
||||
Text="Custom Event"
|
||||
Command="{Binding CustomEventCommand}"/>
|
||||
</StackLayout>
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
|
@ -0,0 +1,31 @@
|
|||
using Xamarin.Forms;
|
||||
using XFHockeyApp.ViewModels;
|
||||
|
||||
namespace XFHockeyApp.Views
|
||||
{
|
||||
public partial class MainView : ContentPage
|
||||
{
|
||||
private object Parameter { get; set; }
|
||||
|
||||
public MainView (object parameter)
|
||||
{
|
||||
InitializeComponent ();
|
||||
|
||||
Parameter = parameter;
|
||||
|
||||
BindingContext = App.Locator.MainViewModel;
|
||||
}
|
||||
|
||||
protected override void OnAppearing()
|
||||
{
|
||||
var viewModel = BindingContext as MainViewModel;
|
||||
if (viewModel != null) viewModel.OnAppearing(Parameter);
|
||||
}
|
||||
|
||||
protected override void OnDisappearing()
|
||||
{
|
||||
var viewModel = BindingContext as MainViewModel;
|
||||
if (viewModel != null) viewModel.OnDisappearing();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
|
||||
<HasSharedItems>true</HasSharedItems>
|
||||
<SharedGUID>937a39de-b09c-4903-890e-9d467bc50962</SharedGUID>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Configuration">
|
||||
<Import_RootNamespace>XFHockeyApp</Import_RootNamespace>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="$(MSBuildThisFileDirectory)App.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Services\Logger\ILoggerService.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Services\Logger\LoggerConfig.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Services\Logger\LoggerService.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)ViewModels\Base\DelegateCommand.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)ViewModels\Base\DelegateCommandAsync.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)ViewModels\Base\ViewModelBase.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)ViewModels\Base\ViewModelLocator.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)ViewModels\MainViewModel.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Views\MainView.xaml.cs">
|
||||
<DependentUpon>MainView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="$(MSBuildThisFileDirectory)Views\MainView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>937a39de-b09c-4903-890e-9d467bc50962</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.Default.props" />
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.props" />
|
||||
<PropertyGroup />
|
||||
<Import Project="XFHockeyApp.projitems" Label="Shared" />
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.CSharp.targets" />
|
||||
</Project>
|