Added support for RecyclerView with ObservableRecyclerAdapter, CachingViewHolder
and supporting extension methods. Note that this is a separate assembly because of the required Support.V7 reference. It will also be a separate Nuget package.
This commit is contained in:
Родитель
97993a304d
Коммит
52e973214c
|
@ -1,26 +1,18 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.24720.0
|
||||
VisualStudioVersion = 14.0.25123.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GalaSoft.MvvmLight (PCL)", "GalaSoft.MvvmLight (PCL)\GalaSoft.MvvmLight (PCL).csproj", "{6A912701-3BA1-4975-ADBF-160CAF66B640}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GalaSoft.MvvmLight.Test (PNET45)", "Tests\PCL\GalaSoft.MvvmLight.Test (PNET45)\GalaSoft.MvvmLight.Test (PNET45).csproj", "{59378F82-F92D-457E-8FB1-B7799A7A919B}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TestViews", "TestViews", "{B25F0638-578E-4E2A-9783-23EB99B525BE}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GalaSoft.MvvmLight.TestView (PNET45)", "TestViews\PCL\GalaSoft.MvvmLight.TestView (PNET45)\GalaSoft.MvvmLight.TestView (PNET45).csproj", "{AAE11955-7DF4-4758-9024-C5247BDE0368}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{99D5856E-95ED-49B6-9F0C-0A5878A87009}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GalaSoft.MvvmLight.Platform (NET45)", "GalaSoft.MvvmLight.Platform (NET45)\GalaSoft.MvvmLight.Platform (NET45).csproj", "{0722B3DB-76CD-4562-BEA9-5C5C416B6A39}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GalaSoft.MvvmLight.Platform (WIN81)", "GalaSoft.MvvmLight.Platform (WIN81)\GalaSoft.MvvmLight.Platform (WIN81).csproj", "{8E1FCE57-FD06-44ED-B2BC-6D935329630E}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GalaSoft.MvvmLight.TestView (PWIN81)", "TestViews\PCL\GalaSoft.MvvmLight.TestView (PWIN81)\GalaSoft.MvvmLight.TestView (PWIN81).csproj", "{2CFF4493-5482-465C-A02C-784435861343}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GalaSoft.MvvmLight.TestView (PWPSL81)", "TestViews\PCL\GalaSoft.MvvmLight.TestView (PWPSL81)\GalaSoft.MvvmLight.TestView (PWPSL81).csproj", "{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GalaSoft.MvvmLight.Platform (WPSL81)", "GalaSoft.MvvmLight.Platform (WPSL81)\GalaSoft.MvvmLight.Platform (WPSL81).csproj", "{588595A3-48D5-4A2C-930A-59C5123A07CD}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GalaSoft.MvvmLight.Test (PWPSL81)", "Tests\PCL\GalaSoft.MvvmLight.Test (PWPSL81)\GalaSoft.MvvmLight.Test (PWPSL81).csproj", "{29B2A5BA-2E0A-484A-866D-41CCE7144521}"
|
||||
|
@ -41,8 +33,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GalaSoft.MvvmLight.Extras (
|
|||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GalaSoft.MvvmLight.Test (NET35)", "Tests\GalaSoft.MvvmLight.Test (NET35)\GalaSoft.MvvmLight.Test (NET35).csproj", "{0F66F445-5DF0-4064-8214-3D16FF924E88}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GalaSoft.MvvmLight.TestView (PWP81)", "TestViews\PCL\GalaSoft.MvvmLight.TestView (PWP81)\GalaSoft.MvvmLight.TestView (PWP81).csproj", "{E924C358-8AFD-4B47-903D-5760221AA05C}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GalaSoft.MvvmLight.Extras (PCL)", "GalaSoft.MvvmLight.Extras (PCL)\GalaSoft.MvvmLight.Extras (PCL).csproj", "{39C71A69-4ACE-4B45-9A2C-C274FADA78EF}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GalaSoft.MvvmLight.Test (PWIN81)", "Tests\PCL\GalaSoft.MvvmLight.Test (PWIN81)\GalaSoft.MvvmLight.Test (PWIN81).csproj", "{DB6CF16F-315E-4BBD-8348-369905645838}"
|
||||
|
@ -65,6 +55,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GalaSoft.MvvmLight.Test (An
|
|||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GalaSoft.MvvmLight.Test (iOS)", "Tests\AppleTestApp\GalaSoft.MvvmLight.Test (iOS).csproj", "{D688119A-4FA8-4764-BE47-90724571B80C}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GalaSoft.MvvmLight.Platform.AndroidSupport", "GalaSoft.MvvmLight.AndroidSupport\GalaSoft.MvvmLight.Platform.AndroidSupport.csproj", "{04369985-476F-47EE-8B20-E89104FDE03F}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
|
||||
|
@ -197,38 +189,6 @@ Global
|
|||
{59378F82-F92D-457E-8FB1-B7799A7A919B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{59378F82-F92D-457E-8FB1-B7799A7A919B}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{59378F82-F92D-457E-8FB1-B7799A7A919B}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.AppStore|ARM.ActiveCfg = Release|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.AppStore|iPhone.ActiveCfg = Release|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.AppStore|x64.ActiveCfg = Release|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.AppStore|x86.ActiveCfg = Release|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{0722B3DB-76CD-4562-BEA9-5C5C416B6A39}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{0722B3DB-76CD-4562-BEA9-5C5C416B6A39}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
|
||||
{0722B3DB-76CD-4562-BEA9-5C5C416B6A39}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
|
||||
|
@ -335,98 +295,6 @@ Global
|
|||
{8E1FCE57-FD06-44ED-B2BC-6D935329630E}.Release|x64.Build.0 = Release|x64
|
||||
{8E1FCE57-FD06-44ED-B2BC-6D935329630E}.Release|x86.ActiveCfg = Release|x86
|
||||
{8E1FCE57-FD06-44ED-B2BC-6D935329630E}.Release|x86.Build.0 = Release|x86
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Ad-Hoc|ARM.ActiveCfg = Release|ARM
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Ad-Hoc|x64.ActiveCfg = Release|x64
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Ad-Hoc|x86.ActiveCfg = Release|x86
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.AppStore|ARM.ActiveCfg = Release|ARM
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.AppStore|iPhone.ActiveCfg = Release|Any CPU
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.AppStore|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.AppStore|x64.ActiveCfg = Release|x64
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.AppStore|x86.ActiveCfg = Release|x86
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Debug|ARM.Deploy.0 = Debug|ARM
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Debug|Mixed Platforms.Deploy.0 = Debug|x86
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Debug|x64.Build.0 = Debug|x64
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Debug|x86.Build.0 = Debug|x86
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Debug|x86.Deploy.0 = Debug|x86
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Release|ARM.ActiveCfg = Release|ARM
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Release|ARM.Build.0 = Release|ARM
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Release|ARM.Deploy.0 = Release|ARM
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Release|Mixed Platforms.Deploy.0 = Release|x86
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Release|x64.ActiveCfg = Release|x64
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Release|x64.Build.0 = Release|x64
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Release|x64.Deploy.0 = Release|x64
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Release|x86.ActiveCfg = Release|x86
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Release|x86.Build.0 = Release|x86
|
||||
{2CFF4493-5482-465C-A02C-784435861343}.Release|x86.Deploy.0 = Release|x86
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Ad-Hoc|ARM.ActiveCfg = Release|ARM
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Ad-Hoc|x86.ActiveCfg = Release|x86
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.AppStore|ARM.ActiveCfg = Release|ARM
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.AppStore|iPhone.ActiveCfg = Release|Any CPU
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.AppStore|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.AppStore|x64.ActiveCfg = Release|Any CPU
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.AppStore|x86.ActiveCfg = Release|x86
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Debug|ARM.Deploy.0 = Debug|ARM
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Debug|Mixed Platforms.Deploy.0 = Debug|x86
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Debug|x86.Build.0 = Debug|x86
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Debug|x86.Deploy.0 = Debug|x86
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Release|ARM.ActiveCfg = Release|ARM
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Release|ARM.Build.0 = Release|ARM
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Release|ARM.Deploy.0 = Release|ARM
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Release|Mixed Platforms.Deploy.0 = Release|x86
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Release|x86.ActiveCfg = Release|x86
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Release|x86.Build.0 = Release|x86
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6}.Release|x86.Deploy.0 = Release|x86
|
||||
{588595A3-48D5-4A2C-930A-59C5123A07CD}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{588595A3-48D5-4A2C-930A-59C5123A07CD}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
|
||||
{588595A3-48D5-4A2C-930A-59C5123A07CD}.Ad-Hoc|ARM.ActiveCfg = Release|ARM
|
||||
|
@ -971,50 +839,6 @@ Global
|
|||
{0F66F445-5DF0-4064-8214-3D16FF924E88}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{0F66F445-5DF0-4064-8214-3D16FF924E88}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{0F66F445-5DF0-4064-8214-3D16FF924E88}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Ad-Hoc|ARM.ActiveCfg = Release|ARM
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Ad-Hoc|x86.ActiveCfg = Release|x86
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.AppStore|ARM.ActiveCfg = Release|ARM
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.AppStore|iPhone.ActiveCfg = Release|Any CPU
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.AppStore|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.AppStore|x64.ActiveCfg = Release|Any CPU
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.AppStore|x86.ActiveCfg = Release|x86
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Debug|ARM.Deploy.0 = Debug|ARM
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Debug|Mixed Platforms.Deploy.0 = Debug|x86
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Debug|x86.Build.0 = Debug|x86
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Debug|x86.Deploy.0 = Debug|x86
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Release|ARM.ActiveCfg = Release|ARM
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Release|ARM.Build.0 = Release|ARM
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Release|ARM.Deploy.0 = Release|ARM
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Release|Mixed Platforms.Deploy.0 = Release|x86
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Release|x86.ActiveCfg = Release|x86
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Release|x86.Build.0 = Release|x86
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C}.Release|x86.Deploy.0 = Release|x86
|
||||
{39C71A69-4ACE-4B45-9A2C-C274FADA78EF}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{39C71A69-4ACE-4B45-9A2C-C274FADA78EF}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
|
||||
{39C71A69-4ACE-4B45-9A2C-C274FADA78EF}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
|
||||
|
@ -1645,20 +1469,72 @@ Global
|
|||
{D688119A-4FA8-4764-BE47-90724571B80C}.Release|Mixed Platforms.Build.0 = Release|iPhone
|
||||
{D688119A-4FA8-4764-BE47-90724571B80C}.Release|x64.ActiveCfg = Release|iPhone
|
||||
{D688119A-4FA8-4764-BE47-90724571B80C}.Release|x86.ActiveCfg = Release|iPhone
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Ad-Hoc|ARM.Build.0 = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Ad-Hoc|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Ad-Hoc|x64.Build.0 = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Ad-Hoc|x86.Build.0 = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.AppStore|Any CPU.Build.0 = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.AppStore|ARM.ActiveCfg = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.AppStore|ARM.Build.0 = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.AppStore|iPhone.ActiveCfg = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.AppStore|iPhone.Build.0 = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.AppStore|x64.ActiveCfg = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.AppStore|x64.Build.0 = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.AppStore|x86.ActiveCfg = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.AppStore|x86.Build.0 = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Release|x64.Build.0 = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{04369985-476F-47EE-8B20-E89104FDE03F}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(NestedProjects) = preSolution
|
||||
{59378F82-F92D-457E-8FB1-B7799A7A919B} = {99D5856E-95ED-49B6-9F0C-0A5878A87009}
|
||||
{AAE11955-7DF4-4758-9024-C5247BDE0368} = {B25F0638-578E-4E2A-9783-23EB99B525BE}
|
||||
{2CFF4493-5482-465C-A02C-784435861343} = {B25F0638-578E-4E2A-9783-23EB99B525BE}
|
||||
{BEC455D1-BA26-43FB-AC1A-C61FCB55DCC6} = {B25F0638-578E-4E2A-9783-23EB99B525BE}
|
||||
{29B2A5BA-2E0A-484A-866D-41CCE7144521} = {99D5856E-95ED-49B6-9F0C-0A5878A87009}
|
||||
{B59BBF25-4D29-4B1F-AB02-588AC4032E9E} = {99D5856E-95ED-49B6-9F0C-0A5878A87009}
|
||||
{30EFC165-77CE-4AC3-B99B-7998D5E39749} = {99D5856E-95ED-49B6-9F0C-0A5878A87009}
|
||||
{0F66F445-5DF0-4064-8214-3D16FF924E88} = {99D5856E-95ED-49B6-9F0C-0A5878A87009}
|
||||
{E924C358-8AFD-4B47-903D-5760221AA05C} = {B25F0638-578E-4E2A-9783-23EB99B525BE}
|
||||
{DB6CF16F-315E-4BBD-8348-369905645838} = {99D5856E-95ED-49B6-9F0C-0A5878A87009}
|
||||
{3620804D-B56B-4C22-B987-AAD7B7F40FC8} = {99D5856E-95ED-49B6-9F0C-0A5878A87009}
|
||||
{0E24C663-BDCB-4702-864B-A850A9C68F03} = {99D5856E-95ED-49B6-9F0C-0A5878A87009}
|
||||
|
|
|
@ -0,0 +1,81 @@
|
|||
<?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>{04369985-476F-47EE-8B20-E89104FDE03F}</ProjectGuid>
|
||||
<ProjectTypeGuids>{EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>GalaSoft.MvvmLight</RootNamespace>
|
||||
<AssemblyName>GalaSoft.MvvmLight.Platform.AndroidSupport</AssemblyName>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AndroidResgenFile>Resources\Resource.Designer.cs</AndroidResgenFile>
|
||||
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
|
||||
<AndroidUseLatestPlatformSdk>True</AndroidUseLatestPlatformSdk>
|
||||
<TargetFrameworkVersion>v6.0</TargetFrameworkVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>TRACE;XAMARIN;ANDROID;DEBUG</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<DocumentationFile>bin\Debug\GalaSoft.MvvmLight.Platform.AndroidSupport.XML</DocumentationFile>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE;XAMARIN;ANDROID</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<DocumentationFile>bin\Release\GalaSoft.MvvmLight.Platform.AndroidSupport.XML</DocumentationFile>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Mono.Android" />
|
||||
<Reference Include="mscorlib" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="Xamarin.Android.Support.v4, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Xamarin.Android.Support.v4.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Xamarin.Android.Support.v7.RecyclerView, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Xamarin.Android.Support.v7.RecyclerView.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.RecyclerView.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="..\GalaSoft.MvvmLight.Platform %28NET45%29\Properties\AssemblyInfo.cs">
|
||||
<Link>Properties\AssemblyInfo.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="Helpers\CachingViewHolder.cs" />
|
||||
<Compile Include="Helpers\ExtensionsAndroid2.cs" />
|
||||
<Compile Include="Helpers\ObservableRecyclerAdapter.cs" />
|
||||
<Compile Include="Resources\Resource.Designer.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\GalaSoft.MvvmLight.Platform %28Android%29\GalaSoft.MvvmLight.Platform %28Android%29.csproj">
|
||||
<Project>{a5b7741d-e331-438c-b3bf-596b048db622}</Project>
|
||||
<Name>GalaSoft.MvvmLight.Platform %28Android%29</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.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,163 @@
|
|||
// ****************************************************************************
|
||||
// <copyright file="CachingViewHolder.cs" company="GalaSoft Laurent Bugnion">
|
||||
// Copyright © GalaSoft Laurent Bugnion 2009-2016
|
||||
// </copyright>
|
||||
// ****************************************************************************
|
||||
// <author>Laurent Bugnion</author>
|
||||
// <email>laurent@galasoft.ch</email>
|
||||
// <date>17.04.2016</date>
|
||||
// <project>GalaSoft.MvvmLight</project>
|
||||
// <web>http://www.mvvmlight.net</web>
|
||||
// <license>
|
||||
// See license.txt in this solution or http://www.galasoft.ch/license_MIT.txt
|
||||
// </license>
|
||||
// ****************************************************************************
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Android.Runtime;
|
||||
using Android.Support.V7.Widget;
|
||||
using Android.Views;
|
||||
|
||||
namespace GalaSoft.MvvmLight.Helpers
|
||||
{
|
||||
/// <summary>
|
||||
/// An extension of <see cref="RecyclerView.ViewHolder"/> optimized for usage with the
|
||||
/// <see cref="ObservableRecyclerAdapter{TItem, THolder}"/>. Provides additional features
|
||||
/// that can be used with the MVVM Light data binding system.
|
||||
/// </summary>
|
||||
////[ClassInfo(typeof(ObservableAdapter<T>))]
|
||||
public class CachingViewHolder : RecyclerView.ViewHolder
|
||||
{
|
||||
private readonly Dictionary<object, Binding> _bindings = new Dictionary<object, Binding>();
|
||||
private readonly Dictionary<int, View> _cachedViews = new Dictionary<int, View>();
|
||||
private Action<int, View> _clickCallback;
|
||||
|
||||
/// <summary>
|
||||
/// A callback that will be executed when the corresponding item is clicked or tapped
|
||||
/// by the user.
|
||||
/// </summary>
|
||||
public Action<int, View> ClickCallback
|
||||
{
|
||||
get
|
||||
{
|
||||
return _clickCallback;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value == null)
|
||||
{
|
||||
ItemView.Click -= OnViewClick;
|
||||
}
|
||||
else
|
||||
{
|
||||
ItemView.Click += OnViewClick;
|
||||
}
|
||||
|
||||
_clickCallback = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes an instance of this class. In most cases this method
|
||||
/// is not used by the developer.
|
||||
/// </summary>
|
||||
/// <param name="javaReference"></param>
|
||||
/// <param name="transfer"></param>
|
||||
public CachingViewHolder(IntPtr javaReference, JniHandleOwnership transfer)
|
||||
: base(javaReference, transfer)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes an instance of this class.
|
||||
/// </summary>
|
||||
/// <param name="itemView">The view that this holder is attached to.</param>
|
||||
public CachingViewHolder(View itemView)
|
||||
: base(itemView)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Detaches and removes a binding from this holder.
|
||||
/// Use this method (in case a view is getting recycled) to clean up
|
||||
/// existing bindings before attaching new ones. The binding that needs
|
||||
/// to be detached must have been added to the holder using the <see cref="SaveBinding"/> method.
|
||||
/// </summary>
|
||||
/// <param name="key">The key corresponding to the binding to detach and delete. This is the
|
||||
/// same key that was used in the <see cref="SaveBinding"/> method.</param>
|
||||
/// <returns>The binding that has been detached and deleted, in case further processing
|
||||
/// is necessary/</returns>
|
||||
public Binding DeleteBinding(object key)
|
||||
{
|
||||
lock (_bindings)
|
||||
{
|
||||
if (_bindings.ContainsKey(key))
|
||||
{
|
||||
var binding = _bindings[key];
|
||||
binding.Detach();
|
||||
_bindings.Remove(key);
|
||||
return binding;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Explores the attached view and returns the UI element corresponding
|
||||
/// to the viewId. If no element is found with this ID, the method returns null.
|
||||
/// </summary>
|
||||
/// <typeparam name="TView">The type of the view to be returned.</typeparam>
|
||||
/// <param name="viewId">The ID of the subview that needs to be retrieved.</param>
|
||||
/// <returns>The sub view corresponding to the viewId, or null if no corresponding sub view is found.</returns>
|
||||
public TView FindCachedViewById<TView>(int viewId)
|
||||
where TView : View
|
||||
{
|
||||
if (_cachedViews.ContainsKey(viewId))
|
||||
{
|
||||
return (TView)_cachedViews[viewId];
|
||||
}
|
||||
|
||||
var view = ItemView.FindViewById<TView>(viewId);
|
||||
_cachedViews.Add(viewId, view);
|
||||
return view;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Saves a binding between a element of the view and an element of the data item
|
||||
/// represented by the view.
|
||||
/// If the view is getting recycled, the binding should be deleted using the
|
||||
/// <see cref="DeleteBinding"/> method.
|
||||
/// </summary>
|
||||
/// <param name="key">The key used to retriev the binding later. Typically
|
||||
/// the key is the view to which the binding is attached (if there is only
|
||||
/// one binding for this view).</param>
|
||||
/// <param name="binding">The binding to be saved.</param>
|
||||
public void SaveBinding(object key, Binding binding)
|
||||
{
|
||||
lock (_bindings)
|
||||
{
|
||||
if (_bindings.ContainsKey(key))
|
||||
{
|
||||
_bindings[key].Detach();
|
||||
_bindings[key] = binding;
|
||||
}
|
||||
else
|
||||
{
|
||||
_bindings.Add(key, binding);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void OnViewClick(object sender, EventArgs e)
|
||||
{
|
||||
var position = AdapterPosition;
|
||||
|
||||
if (position != RecyclerView.NoPosition)
|
||||
{
|
||||
_clickCallback?.Invoke(position, ItemView);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,85 @@
|
|||
// ****************************************************************************
|
||||
// <copyright file="ExtensionsAndroid.cs" company="GalaSoft Laurent Bugnion">
|
||||
// Copyright © GalaSoft Laurent Bugnion 2009-2016
|
||||
// </copyright>
|
||||
// ****************************************************************************
|
||||
// <author>Laurent Bugnion</author>
|
||||
// <email>laurent@galasoft.ch</email>
|
||||
// <date>19.01.2016</date>
|
||||
// <project>GalaSoft.MvvmLight</project>
|
||||
// <web>http://www.mvvmlight.net</web>
|
||||
// <license>
|
||||
// See license.txt in this solution or http://www.galasoft.ch/license_MIT.txt
|
||||
// </license>
|
||||
// ****************************************************************************
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Reflection;
|
||||
using System.Windows.Input;
|
||||
using Android.Support.V7.Widget;
|
||||
using Android.Views;
|
||||
using Android.Widget;
|
||||
|
||||
namespace GalaSoft.MvvmLight.Helpers
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines extension methods for Android only.
|
||||
/// </summary>
|
||||
////[ClassInfo(typeof(ObservableAdapter<T>))]
|
||||
public static class ExtensionsAndroid2
|
||||
{
|
||||
/// <summary>
|
||||
/// Creates a new <see cref="ObservableRecyclerAdapter{TItem, THolder}"/> for a given <see cref="IList{TItem}"/>.
|
||||
/// </summary>
|
||||
/// <typeparam name="TItem">The type of the items contained in the <see cref="IList{TItem}"/>.</typeparam>
|
||||
/// <typeparam name="THolder">The type of the <see cref="RecyclerView.ViewHolder"/> used in the RecyclerView.
|
||||
/// For better results and simpler implementation, you can use a <see cref="CachingViewHolder"/> or
|
||||
/// provide your own implementation.</typeparam>
|
||||
/// <param name="list">The list that the adapter will be created for.</param>
|
||||
/// <param name="bindViewHolderDelegate">A delegate to the method used to bind the view to the corresponding item.</param>
|
||||
/// <param name="createViewHolderDelegate">A delegate to the method used to create the view for the corresponding item.</param>
|
||||
/// <param name="clickCallback">An optional delegate to a method called when an item is clicked or tapped.</param>
|
||||
/// <returns>The created <see cref="ObservableRecyclerAdapter{TItem, THolder}"/>.</returns>
|
||||
public static ObservableRecyclerAdapter<TItem, THolder> GetRecyclerAdapter<TItem, THolder>(
|
||||
this IList<TItem> list,
|
||||
Action<THolder, TItem, int> bindViewHolderDelegate,
|
||||
Func<ViewGroup, int, THolder> createViewHolderDelegate,
|
||||
Action<int, View, int, View> clickCallback = null)
|
||||
where THolder : RecyclerView.ViewHolder
|
||||
{
|
||||
return new ObservableRecyclerAdapter<TItem, THolder>
|
||||
{
|
||||
DataSource = list,
|
||||
BindViewHolderDelegate = bindViewHolderDelegate,
|
||||
CreateViewHolderDelegate = createViewHolderDelegate,
|
||||
ClickCallback = clickCallback
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new <see cref="ObservableRecyclerAdapter{TItem, THolder}"/> for a given <see cref="IList{TItem}"/>.
|
||||
/// </summary>
|
||||
/// <typeparam name="TItem">The type of the items contained in the <see cref="IList{T}"/>.</typeparam>
|
||||
/// <param name="list">The list that the adapter will be created for.</param>
|
||||
/// <param name="bindViewHolderDelegate">A delegate to the method used to bind the view to the corresponding item.</param>
|
||||
/// <param name="cellLayoutId">The resource ID of the AXML file used to create the cell.</param>
|
||||
/// <param name="clickCallback">An optional delegate to a method called when an item is clicked or tapped.</param>
|
||||
/// <returns>The created <see cref="ObservableRecyclerAdapter{TItem, THolder}"/>.</returns>
|
||||
public static ObservableRecyclerAdapter<TItem, CachingViewHolder> GetRecyclerAdapter<TItem>(
|
||||
this IList<TItem> list,
|
||||
Action<CachingViewHolder, TItem, int> bindViewHolderDelegate,
|
||||
int cellLayoutId,
|
||||
Action<int, View, int, View> clickCallback = null)
|
||||
{
|
||||
return new ObservableRecyclerAdapter<TItem, CachingViewHolder>
|
||||
{
|
||||
DataSource = list,
|
||||
BindViewHolderDelegate = bindViewHolderDelegate,
|
||||
CellLayoutId = cellLayoutId,
|
||||
ClickCallback = clickCallback
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,338 @@
|
|||
// ****************************************************************************
|
||||
// <copyright file="ObservableRecyclerAdapter.cs" company="GalaSoft Laurent Bugnion">
|
||||
// Copyright © GalaSoft Laurent Bugnion 2009-2016
|
||||
// </copyright>
|
||||
// ****************************************************************************
|
||||
// <author>Laurent Bugnion</author>
|
||||
// <email>laurent@galasoft.ch</email>
|
||||
// <date>17.04.2016</date>
|
||||
// <project>GalaSoft.MvvmLight</project>
|
||||
// <web>http://www.mvvmlight.net</web>
|
||||
// <license>
|
||||
// See license.txt in this solution or http://www.galasoft.ch/license_MIT.txt
|
||||
// </license>
|
||||
// ****************************************************************************
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.ComponentModel;
|
||||
using System.Threading;
|
||||
using Android.App;
|
||||
using Android.Support.V7.Widget;
|
||||
using Android.Views;
|
||||
|
||||
namespace GalaSoft.MvvmLight.Helpers
|
||||
{
|
||||
/// <summary>
|
||||
/// A <see cref="RecyclerView.Adapter"/> that automatically updates the associated <see cref="RecyclerView"/> when its
|
||||
/// data source changes. Note that the changes are only observed if the data source
|
||||
/// implements <see cref="INotifyCollectionChanged"/>.
|
||||
/// </summary>
|
||||
/// <typeparam name="TItem">The type of the items in the data source.</typeparam>
|
||||
/// <typeparam name="THolder">The type of the <see cref="RecyclerView.ViewHolder"/> used in the RecyclerView.
|
||||
/// For better results and simpler implementation, you can use a <see cref="CachingViewHolder"/> or
|
||||
/// provide your own implementation.</typeparam>
|
||||
////[ClassInfo(typeof(ObservableAdapter<T>)]
|
||||
public class ObservableRecyclerAdapter<TItem, THolder> : RecyclerView.Adapter, INotifyPropertyChanged
|
||||
where THolder : RecyclerView.ViewHolder
|
||||
{
|
||||
/// <summary>
|
||||
/// The <see cref="SelectedItem" /> property's name.
|
||||
/// </summary>
|
||||
public const string SelectedItemPropertyName = "SelectedItem";
|
||||
|
||||
private IList<TItem> _dataSource;
|
||||
private INotifyCollectionChanged _notifier;
|
||||
private int _oldPosition = -1;
|
||||
private View _oldView;
|
||||
private TItem _selectedItem;
|
||||
|
||||
/// <summary>
|
||||
/// A delegate to a method taking a <see cref="RecyclerView.ViewHolder"/>
|
||||
/// and setting its View's properties according to the item
|
||||
/// passed as second parameter.
|
||||
/// </summary>
|
||||
public Action<THolder, TItem, int> BindViewHolderDelegate
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The Resource ID of the AXML file we should use to create
|
||||
/// cells for the RecyclerView. Alternatively you can use the
|
||||
/// <see cref="CreateViewHolderDelegate"/> property.
|
||||
/// </summary>
|
||||
public int CellLayoutId
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A delegate to a callback that will be called when an item
|
||||
/// in the list is clicked (or tapped) by the user. This can be used
|
||||
/// to perform UI operations such as changing the background color, etc.
|
||||
/// </summary>
|
||||
public Action<int, View, int, View> ClickCallback
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A delegate to a method taking an item's position and
|
||||
/// a <see cref="RecyclerView.ViewHolder"/> and creating and returning
|
||||
/// a cell for the RecyclerView. Alternatively you can use the
|
||||
/// <see cref="CellLayoutId"/> property.
|
||||
/// </summary>
|
||||
public Func<ViewGroup, int, THolder> CreateViewHolderDelegate
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The data source of this list adapter.
|
||||
/// </summary>
|
||||
public IList<TItem> DataSource
|
||||
{
|
||||
get
|
||||
{
|
||||
return _dataSource;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (Equals(_dataSource, value))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (_notifier != null)
|
||||
{
|
||||
_notifier.CollectionChanged -= HandleCollectionChanged;
|
||||
}
|
||||
|
||||
_dataSource = value;
|
||||
_notifier = value as INotifyCollectionChanged;
|
||||
|
||||
if (_notifier != null)
|
||||
{
|
||||
_notifier.CollectionChanged += HandleCollectionChanged;
|
||||
}
|
||||
|
||||
NotifyDataSetChanged(); // Reload everything
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the number of items in the data source.
|
||||
/// </summary>
|
||||
public override int ItemCount
|
||||
{
|
||||
get
|
||||
{
|
||||
return _dataSource == null ? 0 : _dataSource.Count;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the RecyclerView's selected item. You can use one-way databinding on this property.
|
||||
/// </summary>
|
||||
public TItem SelectedItem
|
||||
{
|
||||
get
|
||||
{
|
||||
return _selectedItem;
|
||||
}
|
||||
|
||||
protected set
|
||||
{
|
||||
if (Equals(_selectedItem, value))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_selectedItem = value;
|
||||
RaisePropertyChanged(SelectedItemPropertyName);
|
||||
RaiseSelectionChanged();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets an item corresponding to a given row position.
|
||||
/// </summary>
|
||||
/// <param name="row">The row position of the item.</param>
|
||||
/// <returns>An item corresponding to a given row position.</returns>
|
||||
public TItem GetItem(int row)
|
||||
{
|
||||
return _dataSource[row];
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called when the View should be bound to the represented Item.
|
||||
/// </summary>
|
||||
/// <param name="holder">The <see cref="RecyclerView.ViewHolder"/> for this item.</param>
|
||||
/// <param name="position">The position of the item in the data source.</param>
|
||||
public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
|
||||
{
|
||||
if (BindViewHolderDelegate == null)
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"OnBindViewHolder was called but no BindViewHolderDelegate was found");
|
||||
}
|
||||
|
||||
BindViewHolderDelegate((THolder)holder, _dataSource[position], position);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called when the View should be created.
|
||||
/// </summary>
|
||||
/// <param name="parent">The parent for the view.</param>
|
||||
/// <param name="viewType">The resource ID (unused).</param>
|
||||
/// <returns></returns>
|
||||
public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
|
||||
{
|
||||
if (CellLayoutId != 0)
|
||||
{
|
||||
var viewHolderType = typeof (THolder);
|
||||
|
||||
// The user has specified a ViewHolder type --> auto create the ViewHolder.
|
||||
var constructor = viewHolderType.GetConstructor(
|
||||
new[]
|
||||
{
|
||||
typeof (View)
|
||||
});
|
||||
|
||||
if (constructor == null)
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"No suitable constructor find for " + viewHolderType.FullName);
|
||||
}
|
||||
|
||||
var view = LayoutInflater.From(parent.Context).Inflate(CellLayoutId, parent, false);
|
||||
var holder = constructor.Invoke(
|
||||
new object[]
|
||||
{
|
||||
view
|
||||
}) as RecyclerView.ViewHolder;
|
||||
|
||||
var castedHolder = holder as CachingViewHolder;
|
||||
if (castedHolder != null)
|
||||
{
|
||||
castedHolder.ClickCallback = OnItemClick;
|
||||
}
|
||||
|
||||
return holder;
|
||||
}
|
||||
|
||||
if (CreateViewHolderDelegate == null)
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"OnCreateViewHolder was called but no CreateViewHolderDelegate was found");
|
||||
}
|
||||
|
||||
// No ViewHolderType specified --> Call the delegate
|
||||
return CreateViewHolderDelegate(parent, viewType);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called when an item is clicked (or tapped) in the list.
|
||||
/// </summary>
|
||||
/// <param name="newPosition">The position of the clicked item.</param>
|
||||
/// <param name="newView">The view representing the clicked item.</param>
|
||||
public void OnItemClick(int newPosition, View newView)
|
||||
{
|
||||
if (ClickCallback != null)
|
||||
{
|
||||
ClickCallback(_oldPosition, _oldView, newPosition, newView);
|
||||
_oldPosition = newPosition;
|
||||
_oldView = newView;
|
||||
}
|
||||
|
||||
if (_dataSource != null
|
||||
&& _dataSource.Count >= newPosition)
|
||||
{
|
||||
SelectedItem = _dataSource[newPosition];
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Raises the <see cref="PropertyChanged"/> event.
|
||||
/// </summary>
|
||||
/// <param name="propertyName">The name of the property that changed.</param>
|
||||
protected virtual void RaisePropertyChanged(string propertyName)
|
||||
{
|
||||
var handler = PropertyChanged;
|
||||
|
||||
if (handler != null)
|
||||
{
|
||||
handler.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
||||
}
|
||||
}
|
||||
|
||||
private void HandleCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
|
||||
{
|
||||
Action act = () =>
|
||||
{
|
||||
switch (e.Action)
|
||||
{
|
||||
case NotifyCollectionChangedAction.Add:
|
||||
{
|
||||
var count = e.NewItems.Count;
|
||||
for (var i = 0; i < count; i++)
|
||||
{
|
||||
NotifyItemInserted(e.NewStartingIndex + i);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case NotifyCollectionChangedAction.Remove:
|
||||
{
|
||||
var count = e.OldItems.Count;
|
||||
Console.WriteLine($"Count: {count}");
|
||||
for (var i = 0; i < count; i++)
|
||||
{
|
||||
NotifyItemRemoved(e.OldStartingIndex + i);
|
||||
|
||||
var item = e.OldItems[i];
|
||||
|
||||
if (Equals(SelectedItem, item))
|
||||
{
|
||||
SelectedItem = default(TItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
NotifyDataSetChanged();
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
act();
|
||||
}
|
||||
|
||||
private void RaiseSelectionChanged()
|
||||
{
|
||||
var handler = SelectionChanged;
|
||||
if (handler != null)
|
||||
{
|
||||
handler(this, EventArgs.Empty);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Occurs when a property of this instance changes.
|
||||
/// </summary>
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
/// <summary>
|
||||
/// Occurs when a new item gets selected in the UICollectionView.
|
||||
/// </summary>
|
||||
public event EventHandler SelectionChanged;
|
||||
}
|
||||
}
|
0
GalaSoft.MvvmLight/GalaSoft.MvvmLight.AndroidSupport/Resources/Resource.Designer.cs
сгенерированный
Normal file
0
GalaSoft.MvvmLight/GalaSoft.MvvmLight.AndroidSupport/Resources/Resource.Designer.cs
сгенерированный
Normal file
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Xamarin.Android.Support.v4" version="23.3.0" targetFramework="monoandroid60" />
|
||||
<package id="Xamarin.Android.Support.v7.RecyclerView" version="23.3.0" targetFramework="monoandroid60" />
|
||||
</packages>
|
|
@ -22,7 +22,7 @@
|
|||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>TRACE;DEBUG;XAMARIN;ANDROID</DefineConstants>
|
||||
<DefineConstants>TRACE;XAMARIN;ANDROID;DEBUG</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<DocumentationFile>bin\Debug\GalaSoft.MvvmLight.Platform.XML</DocumentationFile>
|
||||
|
@ -70,12 +70,6 @@
|
|||
<Compile Include="Views\DialogService.cs" />
|
||||
<Compile Include="Views\NavigationService.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\AboutResources.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<AndroidResource Include="Resources\Values\Strings.xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\GalaSoft.MvvmLight %28PCL%29\GalaSoft.MvvmLight %28PCL%29.csproj">
|
||||
<Project>{6a912701-3ba1-4975-adbf-160caf66b640}</Project>
|
||||
|
|
|
@ -1,50 +0,0 @@
|
|||
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.
|
|
@ -1,5 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="Hello">Hello World, Click Me!</string>
|
||||
<string name="ApplicationName">$projectname$</string>
|
||||
</resources>
|
|
@ -47,8 +47,22 @@
|
|||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="Xamarin.Android.NUnitLite" />
|
||||
<Reference Include="Xamarin.Android.Support.v4, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Xamarin.Android.Support.v4.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Xamarin.Android.Support.v7.RecyclerView, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Xamarin.Android.Support.v7.RecyclerView.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.RecyclerView.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\GalaSoft.MvvmLight.AndroidSupport\Helpers\CachingViewHolder.cs">
|
||||
<Link>Helpers\CachingViewHolder.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\GalaSoft.MvvmLight.AndroidSupport\Helpers\ObservableRecyclerAdapter.cs">
|
||||
<Link>Helpers\ObservableRecyclerAdapter.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\GalaSoft.MvvmLight.Platform %28Android%29\Helpers\Binding.cs">
|
||||
<Link>Helpers\Binding.cs</Link>
|
||||
</Compile>
|
||||
|
@ -123,6 +137,7 @@
|
|||
<Compile Include="ViewModel\TestViewModel.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
<None Include="Resources\AboutResources.txt" />
|
||||
<None Include="Assets\AboutAssets.txt" />
|
||||
</ItemGroup>
|
||||
|
|
|
@ -53,6 +53,18 @@ namespace GalaSoft.MvvmLight.Test
|
|||
public partial class Attribute
|
||||
{
|
||||
|
||||
// aapt resource value: 0x7f010000
|
||||
public const int layoutManager = 2130771968;
|
||||
|
||||
// aapt resource value: 0x7f010002
|
||||
public const int reverseLayout = 2130771970;
|
||||
|
||||
// aapt resource value: 0x7f010001
|
||||
public const int spanCount = 2130771969;
|
||||
|
||||
// aapt resource value: 0x7f010003
|
||||
public const int stackFromEnd = 2130771971;
|
||||
|
||||
static Attribute()
|
||||
{
|
||||
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
|
||||
|
@ -63,6 +75,28 @@ namespace GalaSoft.MvvmLight.Test
|
|||
}
|
||||
}
|
||||
|
||||
public partial class Dimension
|
||||
{
|
||||
|
||||
// aapt resource value: 0x7f040000
|
||||
public const int item_touch_helper_max_drag_scroll_per_frame = 2130968576;
|
||||
|
||||
// aapt resource value: 0x7f040001
|
||||
public const int item_touch_helper_swipe_escape_max_velocity = 2130968577;
|
||||
|
||||
// aapt resource value: 0x7f040002
|
||||
public const int item_touch_helper_swipe_escape_velocity = 2130968578;
|
||||
|
||||
static Dimension()
|
||||
{
|
||||
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
|
||||
}
|
||||
|
||||
private Dimension()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public partial class Drawable
|
||||
{
|
||||
|
||||
|
@ -82,59 +116,62 @@ namespace GalaSoft.MvvmLight.Test
|
|||
public partial class Id
|
||||
{
|
||||
|
||||
// aapt resource value: 0x7f050001
|
||||
public const int OptionHostName = 2131034113;
|
||||
|
||||
// aapt resource value: 0x7f050002
|
||||
public const int OptionPort = 2131034114;
|
||||
|
||||
// aapt resource value: 0x7f050000
|
||||
public const int OptionRemoteServer = 2131034112;
|
||||
|
||||
// aapt resource value: 0x7f050010
|
||||
public const int OptionsButton = 2131034128;
|
||||
|
||||
// aapt resource value: 0x7f05000b
|
||||
public const int ResultFullName = 2131034123;
|
||||
|
||||
// aapt resource value: 0x7f05000d
|
||||
public const int ResultMessage = 2131034125;
|
||||
|
||||
// aapt resource value: 0x7f05000c
|
||||
public const int ResultResultState = 2131034124;
|
||||
|
||||
// aapt resource value: 0x7f05000a
|
||||
public const int ResultRunSingleMethodTest = 2131034122;
|
||||
|
||||
// aapt resource value: 0x7f05000e
|
||||
public const int ResultStackTrace = 2131034126;
|
||||
|
||||
// aapt resource value: 0x7f050006
|
||||
public const int ResultsFailed = 2131034118;
|
||||
public const int OptionHostName = 2131034114;
|
||||
|
||||
// aapt resource value: 0x7f050003
|
||||
public const int ResultsId = 2131034115;
|
||||
public const int OptionPort = 2131034115;
|
||||
|
||||
// aapt resource value: 0x7f050007
|
||||
public const int ResultsIgnored = 2131034119;
|
||||
|
||||
// aapt resource value: 0x7f050008
|
||||
public const int ResultsInconclusive = 2131034120;
|
||||
|
||||
// aapt resource value: 0x7f050009
|
||||
public const int ResultsMessage = 2131034121;
|
||||
|
||||
// aapt resource value: 0x7f050005
|
||||
public const int ResultsPassed = 2131034117;
|
||||
|
||||
// aapt resource value: 0x7f050004
|
||||
public const int ResultsResult = 2131034116;
|
||||
|
||||
// aapt resource value: 0x7f05000f
|
||||
public const int RunTestsButton = 2131034127;
|
||||
// aapt resource value: 0x7f050001
|
||||
public const int OptionRemoteServer = 2131034113;
|
||||
|
||||
// aapt resource value: 0x7f050011
|
||||
public const int TestSuiteListView = 2131034129;
|
||||
public const int OptionsButton = 2131034129;
|
||||
|
||||
// aapt resource value: 0x7f05000c
|
||||
public const int ResultFullName = 2131034124;
|
||||
|
||||
// aapt resource value: 0x7f05000e
|
||||
public const int ResultMessage = 2131034126;
|
||||
|
||||
// aapt resource value: 0x7f05000d
|
||||
public const int ResultResultState = 2131034125;
|
||||
|
||||
// aapt resource value: 0x7f05000b
|
||||
public const int ResultRunSingleMethodTest = 2131034123;
|
||||
|
||||
// aapt resource value: 0x7f05000f
|
||||
public const int ResultStackTrace = 2131034127;
|
||||
|
||||
// aapt resource value: 0x7f050007
|
||||
public const int ResultsFailed = 2131034119;
|
||||
|
||||
// aapt resource value: 0x7f050004
|
||||
public const int ResultsId = 2131034116;
|
||||
|
||||
// aapt resource value: 0x7f050008
|
||||
public const int ResultsIgnored = 2131034120;
|
||||
|
||||
// aapt resource value: 0x7f050009
|
||||
public const int ResultsInconclusive = 2131034121;
|
||||
|
||||
// aapt resource value: 0x7f05000a
|
||||
public const int ResultsMessage = 2131034122;
|
||||
|
||||
// aapt resource value: 0x7f050006
|
||||
public const int ResultsPassed = 2131034118;
|
||||
|
||||
// aapt resource value: 0x7f050005
|
||||
public const int ResultsResult = 2131034117;
|
||||
|
||||
// aapt resource value: 0x7f050010
|
||||
public const int RunTestsButton = 2131034128;
|
||||
|
||||
// aapt resource value: 0x7f050012
|
||||
public const int TestSuiteListView = 2131034130;
|
||||
|
||||
// aapt resource value: 0x7f050000
|
||||
public const int item_touch_helper_previous_elevation = 2131034112;
|
||||
|
||||
static Id()
|
||||
{
|
||||
|
@ -174,11 +211,11 @@ namespace GalaSoft.MvvmLight.Test
|
|||
public partial class String
|
||||
{
|
||||
|
||||
// aapt resource value: 0x7f040001
|
||||
public const int ApplicationName = 2130968577;
|
||||
// aapt resource value: 0x7f060001
|
||||
public const int ApplicationName = 2131099649;
|
||||
|
||||
// aapt resource value: 0x7f040000
|
||||
public const int Hello = 2130968576;
|
||||
// aapt resource value: 0x7f060000
|
||||
public const int Hello = 2131099648;
|
||||
|
||||
static String()
|
||||
{
|
||||
|
@ -189,6 +226,41 @@ namespace GalaSoft.MvvmLight.Test
|
|||
{
|
||||
}
|
||||
}
|
||||
|
||||
public partial class Styleable
|
||||
{
|
||||
|
||||
public static int[] RecyclerView = new int[] {
|
||||
16842948,
|
||||
2130771968,
|
||||
2130771969,
|
||||
2130771970,
|
||||
2130771971};
|
||||
|
||||
// aapt resource value: 0
|
||||
public const int RecyclerView_android_orientation = 0;
|
||||
|
||||
// aapt resource value: 1
|
||||
public const int RecyclerView_layoutManager = 1;
|
||||
|
||||
// aapt resource value: 3
|
||||
public const int RecyclerView_reverseLayout = 3;
|
||||
|
||||
// aapt resource value: 2
|
||||
public const int RecyclerView_spanCount = 2;
|
||||
|
||||
// aapt resource value: 4
|
||||
public const int RecyclerView_stackFromEnd = 4;
|
||||
|
||||
static Styleable()
|
||||
{
|
||||
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
|
||||
}
|
||||
|
||||
private Styleable()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma warning restore 1591
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Xamarin.Android.Support.v4" version="23.3.0" targetFramework="monoandroid60" />
|
||||
<package id="Xamarin.Android.Support.v7.RecyclerView" version="23.3.0" targetFramework="monoandroid60" />
|
||||
</packages>
|
|
@ -56,6 +56,13 @@ if exist ".\GalaSoft.MvvmLight.Platform (Android)\bin\Release\GalaSoft.MvvmLight
|
|||
if exist ".\GalaSoft.MvvmLight.Platform (Android)\bin\Release\GalaSoft.MvvmLight.Platform.pdb" copy ".\GalaSoft.MvvmLight.Platform (Android)\bin\Release\GalaSoft.MvvmLight.Platform.pdb" .\_Binaries\Release\Android\GalaSoft.MvvmLight.Platform.pdb
|
||||
if exist ".\GalaSoft.MvvmLight.Platform (Android)\bin\\Release\GalaSoft.MvvmLight.Platform.xml" copy ".\GalaSoft.MvvmLight.Platform (Android)\bin\Release\GalaSoft.MvvmLight.Platform.xml" .\_Binaries\Release\Android\GalaSoft.MvvmLight.Platform.xml
|
||||
|
||||
if exist ".\GalaSoft.MvvmLight.AndroidSupport\bin\Debug\GalaSoft.MvvmLight.Platform.AndroidSupport.dll" copy ".\GalaSoft.MvvmLight.AndroidSupport\bin\Debug\GalaSoft.MvvmLight.Platform.AndroidSupport.dll" .\_Binaries\Debug\Android\GalaSoft.MvvmLight.Platform.AndroidSupport.dll
|
||||
if exist ".\GalaSoft.MvvmLight.AndroidSupport\bin\Debug\GalaSoft.MvvmLight.Platform.AndroidSupport.pdb" copy ".\GalaSoft.MvvmLight.AndroidSupport\bin\Debug\GalaSoft.MvvmLight.Platform.AndroidSupport.pdb" .\_Binaries\Debug\Android\GalaSoft.MvvmLight.Platform.AndroidSupport.pdb
|
||||
if exist ".\GalaSoft.MvvmLight.AndroidSupport\bin\Debug\GalaSoft.MvvmLight.Platform.AndroidSupport.xml" copy ".\GalaSoft.MvvmLight.AndroidSupport\bin\Debug\GalaSoft.MvvmLight.Platform.AndroidSupport.xml" .\_Binaries\Debug\Android\GalaSoft.MvvmLight.Platform.AndroidSupport.xml
|
||||
if exist ".\GalaSoft.MvvmLight.AndroidSupport\bin\Release\GalaSoft.MvvmLight.Platform.AndroidSupport.dll" copy ".\GalaSoft.MvvmLight.AndroidSupport\bin\Release\GalaSoft.MvvmLight.Platform.AndroidSupport.dll" .\_Binaries\Release\Android\GalaSoft.MvvmLight.Platform.AndroidSupport.dll
|
||||
if exist ".\GalaSoft.MvvmLight.AndroidSupport\bin\Release\GalaSoft.MvvmLight.Platform.AndroidSupport.pdb" copy ".\GalaSoft.MvvmLight.AndroidSupport\bin\Release\GalaSoft.MvvmLight.Platform.AndroidSupport.pdb" .\_Binaries\Release\Android\GalaSoft.MvvmLight.Platform.AndroidSupport.pdb
|
||||
if exist ".\GalaSoft.MvvmLight.AndroidSupport\bin\Release\GalaSoft.MvvmLight.Platform.AndroidSupport.xml" copy ".\GalaSoft.MvvmLight.AndroidSupport\bin\Release\GalaSoft.MvvmLight.Platform.AndroidSupport.xml" .\_Binaries\Release\Android\GalaSoft.MvvmLight.Platform.AndroidSupport.xml
|
||||
|
||||
if exist ".\GalaSoft.MvvmLight.Extras (PCL)\bin\Debug\Microsoft.Practices.ServiceLocation.dll" copy ".\GalaSoft.MvvmLight.Extras (PCL)\bin\Debug\Microsoft.Practices.ServiceLocation.dll" .\_Binaries\Debug\Android\Microsoft.Practices.ServiceLocation.dll
|
||||
if exist ".\GalaSoft.MvvmLight.Extras (PCL)\bin\Debug\Microsoft.Practices.ServiceLocation.pdb" copy ".\GalaSoft.MvvmLight.Extras (PCL)\bin\Debug\Microsoft.Practices.ServiceLocation.pdb" .\_Binaries\Debug\Android\Microsoft.Practices.ServiceLocation.pdb
|
||||
if exist ".\GalaSoft.MvvmLight.Extras (PCL)\bin\Debug\Microsoft.Practices.ServiceLocation.xml" copy ".\GalaSoft.MvvmLight.Extras (PCL)\bin\Debug\Microsoft.Practices.ServiceLocation.xml" .\_Binaries\Debug\Android\Microsoft.Practices.ServiceLocation.xml
|
||||
|
|
Двоичные данные
GalaSoft.MvvmLight/packages/Xamarin.Android.Support.v4.23.3.0/Xamarin.Android.Support.v4.23.3.0.nupkg
поставляемый
Normal file
Двоичные данные
GalaSoft.MvvmLight/packages/Xamarin.Android.Support.v4.23.3.0/Xamarin.Android.Support.v4.23.3.0.nupkg
поставляемый
Normal file
Двоичный файл не отображается.
Двоичные данные
GalaSoft.MvvmLight/packages/Xamarin.Android.Support.v4.23.3.0/lib/MonoAndroid403/Xamarin.Android.Support.v4.dll
поставляемый
Normal file
Двоичные данные
GalaSoft.MvvmLight/packages/Xamarin.Android.Support.v4.23.3.0/lib/MonoAndroid403/Xamarin.Android.Support.v4.dll
поставляемый
Normal file
Двоичный файл не отображается.
Двоичные данные
GalaSoft.MvvmLight/packages/Xamarin.Android.Support.v7.RecyclerView.23.3.0/Xamarin.Android.Support.v7.RecyclerView.23.3.0.nupkg
поставляемый
Normal file
Двоичные данные
GalaSoft.MvvmLight/packages/Xamarin.Android.Support.v7.RecyclerView.23.3.0/Xamarin.Android.Support.v7.RecyclerView.23.3.0.nupkg
поставляемый
Normal file
Двоичный файл не отображается.
Двоичные данные
GalaSoft.MvvmLight/packages/Xamarin.Android.Support.v7.RecyclerView.23.3.0/lib/MonoAndroid403/Xamarin.Android.Support.v7.RecyclerView.dll
поставляемый
Normal file
Двоичные данные
GalaSoft.MvvmLight/packages/Xamarin.Android.Support.v7.RecyclerView.23.3.0/lib/MonoAndroid403/Xamarin.Android.Support.v7.RecyclerView.dll
поставляемый
Normal file
Двоичный файл не отображается.
Загрузка…
Ссылка в новой задаче