diff --git a/.gitignore b/.gitignore index 8a6b91771..6e70e68df 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,9 @@ output/ *.xcuserstate *.xcuserstate +*.nuspec +!*.template.nuspec + Resource.designer.cs component.yaml GettingStarted.md diff --git a/GooglePlayServices.sln b/GooglePlayServices.sln index f73367b4b..7007962b5 100644 --- a/GooglePlayServices.sln +++ b/GooglePlayServices.sln @@ -1,20 +1,16 @@  Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Bindings", "Bindings", "{AFB1EDA0-E0D2-4E95-BAEC-9781B046413E}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PlayServices", "PlayServices", "{AFB1EDA0-E0D2-4E95-BAEC-9781B046413E}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Basement", "basement\source\Basement.csproj", "{6A38FACF-F0C5-4A49-8A8A-7CE6634207CE}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Base", "base\source\Base.csproj", "{3F6BAE25-ADEB-468C-8384-AD655623C341}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AppState", "appstate\source\AppState.csproj", "{8B84EE13-119C-41EB-98E8-E42D3ECD0DFD}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Identity", "identity\source\Identity.csproj", "{09362350-BB7F-4B4C-83B5-97F5C439B649}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Gcm", "gcm\source\Gcm.csproj", "{1CE82D7E-9EA1-435F-AF8C-5E07AB917617}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Measurement", "measurement\source\Measurement.csproj", "{5C4C77A3-4523-4E2B-895B-6EFE4A6A1617}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Analytics", "analytics\source\Analytics.csproj", "{EA04524D-2A97-4ED0-AD74-21F8C30DF4A5}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AppIndexing", "appindexing\source\AppIndexing.csproj", "{A069B942-EE12-4283-8C4C-F46549D3978A}" @@ -53,9 +49,67 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wearable", "wearable\source EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ads", "ads\source\Ads.csproj", "{CC4E534D-4992-4FBB-9528-A071EDDEA7E7}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tasks", "tasks\source\Tasks.csproj", "{53F87D88-8871-41A2-9F81-B79AB02FEC24}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ads.Lite", "ads-lite\source\Ads.Lite.csproj", "{ECB1F68B-B588-4F3B-9A86-510CF4AAA784}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Auth.Base", "auth-base\source\Auth.Base.csproj", "{B04C50F7-B0CC-4170-8820-9D584E1C0ED3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Analytics.Impl", "analytics-impl\source\Analytics.Impl.csproj", "{7893F52D-09B9-4441-AC47-6F7875BD68BC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Iid", "iid\source\Iid.csproj", "{9F7F996D-AF44-4947-8392-07B3ED2ED00D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TagManager", "tagmanager\source\TagManager.csproj", "{2EA64B09-174C-40D0-9A40-44C2BF10C9D4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TagManager.Api", "tagmanager-api\source\TagManager.Api.csproj", "{B94069F7-2BD5-4695-B7B7-EBAA1C496DD9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Firebase", "Firebase", "{1EC5651F-83A6-4862-AED2-6BE5103652D0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Firebase-Common", "firebase-common\source\Firebase-Common.csproj", "{865652D3-8D1A-4779-92FC-4C54719286B7}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Firebase-Analytics", "firebase-analytics\source\Firebase-Analytics.csproj", "{DC5BEB52-1715-4E53-88EF-2D4F1708E394}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Firebase-Iid", "firebase-iid\source\Firebase-Iid.csproj", "{B28F65D1-D8DD-45E8-9DD7-74A3BE40B4CE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Firebase-Analytics-Impl", "firebase-analytics-impl\source\Firebase-Analytics-Impl.csproj", "{CFB0A03A-F787-4EE9-9EA6-8A2A65E82704}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Firebase-Config", "firebase-config\source\Firebase-Config.csproj", "{00F7A18F-D2C4-4014-8E4C-552A0A0B0967}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Firebase-Crash", "firebase-crash\source\Firebase-Crash.csproj", "{7076C84E-08AE-404B-8F3C-8F66010FA1B1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Firebase-Auth-Common", "firebase-auth-common\source\Firebase-Auth-Common.csproj", "{F53B34FB-4BBC-4314-8D8A-1F0CD959E83F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Firebase-Auth", "firebase-auth\source\Firebase-Auth.csproj", "{62946D89-B6B1-4A38-A04D-C20912087EFD}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Firebase-Auth-Module", "firebase-auth-module\source\Firebase-Auth-Module.csproj", "{7DA24DFC-EF53-4C06-AB7A-FF6BEF513A1B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Firebase-Database-Connection", "firebase-database-connection\source\Firebase-Database-Connection.csproj", "{2858C3DB-1E15-4D12-AF09-02CFD624ADD4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Firebase-Database", "firebase-database\source\Firebase-Database.csproj", "{B02737A0-890C-4921-83A5-D77CFB8A6899}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Firebase-Messaging", "firebase-messaging\source\Firebase-Messaging.csproj", "{2E333450-68BD-48C5-9540-CFA7A053DCA1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Firebase-Storage-Common", "firebase-storage-common\source\Firebase-Storage-Common.csproj", "{C360116C-0ED5-4E59-A974-E95F874B4398}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Firebase-Storage", "firebase-storage\source\Firebase-Storage.csproj", "{423414D9-6CB8-4AFF-8317-66AD03B6056D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "BuildTasks", "BuildTasks", "{3330092C-6EB0-4AB6-9901-2F4070E2FD81}" +EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Basement-BuildTasks", "basement\buildtasks\Basement-BuildTasks.csproj", "{21D99A15-AB98-4691-A45B-D236B2A91DEB}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GpsBuildAll", "all\samples\GpsBuildAll\GpsBuildAll.csproj", "{A9BE4750-6DFD-412E-B998-26B725911CF3}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Basement.BuildTasks.Tests", "basement\buildtasks.tests\Basement.BuildTasks.Tests.csproj", "{76CDBE93-0177-4980-8514-C4D785E1DC78}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cast.Framework", "cast-framework\source\Cast.Framework.csproj", "{159A8C21-0A5B-4D99-9E07-6466F8E98AF7}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Clearcut", "clearcut\source\Clearcut.csproj", "{44CF1968-FCDA-4141-AE78-1EFD12DDF7D6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Gass", "gass\source\Gass.csproj", "{D705BF83-81FD-4CD9-AF3B-09C50FF42C83}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Places", "places\source\Places.csproj", "{D42D621B-0370-44F6-A58E-0749629F9F4D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Awareness", "awareness\source\Awareness.csproj", "{541FC839-6065-4681-B6A4-C3BF358F78E9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstantApps", "instantapps\source\InstantApps.csproj", "{D7F811D2-C5E2-45BB-B7AB-88F7941A24B7}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -63,6 +117,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {00F7A18F-D2C4-4014-8E4C-552A0A0B0967}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {00F7A18F-D2C4-4014-8E4C-552A0A0B0967}.Debug|Any CPU.Build.0 = Debug|Any CPU + {00F7A18F-D2C4-4014-8E4C-552A0A0B0967}.Release|Any CPU.ActiveCfg = Release|Any CPU + {00F7A18F-D2C4-4014-8E4C-552A0A0B0967}.Release|Any CPU.Build.0 = Release|Any CPU {09362350-BB7F-4B4C-83B5-97F5C439B649}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {09362350-BB7F-4B4C-83B5-97F5C439B649}.Debug|Any CPU.Build.0 = Debug|Any CPU {09362350-BB7F-4B4C-83B5-97F5C439B649}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -75,26 +133,54 @@ Global {21D99A15-AB98-4691-A45B-D236B2A91DEB}.Debug|Any CPU.Build.0 = Debug|Any CPU {21D99A15-AB98-4691-A45B-D236B2A91DEB}.Release|Any CPU.ActiveCfg = Release|Any CPU {21D99A15-AB98-4691-A45B-D236B2A91DEB}.Release|Any CPU.Build.0 = Release|Any CPU + {2858C3DB-1E15-4D12-AF09-02CFD624ADD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2858C3DB-1E15-4D12-AF09-02CFD624ADD4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2858C3DB-1E15-4D12-AF09-02CFD624ADD4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2858C3DB-1E15-4D12-AF09-02CFD624ADD4}.Release|Any CPU.Build.0 = Release|Any CPU + {2E333450-68BD-48C5-9540-CFA7A053DCA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2E333450-68BD-48C5-9540-CFA7A053DCA1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2E333450-68BD-48C5-9540-CFA7A053DCA1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2E333450-68BD-48C5-9540-CFA7A053DCA1}.Release|Any CPU.Build.0 = Release|Any CPU + {2EA64B09-174C-40D0-9A40-44C2BF10C9D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2EA64B09-174C-40D0-9A40-44C2BF10C9D4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2EA64B09-174C-40D0-9A40-44C2BF10C9D4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2EA64B09-174C-40D0-9A40-44C2BF10C9D4}.Release|Any CPU.Build.0 = Release|Any CPU {3F6BAE25-ADEB-468C-8384-AD655623C341}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3F6BAE25-ADEB-468C-8384-AD655623C341}.Debug|Any CPU.Build.0 = Debug|Any CPU {3F6BAE25-ADEB-468C-8384-AD655623C341}.Release|Any CPU.ActiveCfg = Release|Any CPU {3F6BAE25-ADEB-468C-8384-AD655623C341}.Release|Any CPU.Build.0 = Release|Any CPU - {5C4C77A3-4523-4E2B-895B-6EFE4A6A1617}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5C4C77A3-4523-4E2B-895B-6EFE4A6A1617}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5C4C77A3-4523-4E2B-895B-6EFE4A6A1617}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5C4C77A3-4523-4E2B-895B-6EFE4A6A1617}.Release|Any CPU.Build.0 = Release|Any CPU + {423414D9-6CB8-4AFF-8317-66AD03B6056D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {423414D9-6CB8-4AFF-8317-66AD03B6056D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {423414D9-6CB8-4AFF-8317-66AD03B6056D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {423414D9-6CB8-4AFF-8317-66AD03B6056D}.Release|Any CPU.Build.0 = Release|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Debug|Any CPU.Build.0 = Debug|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Release|Any CPU.ActiveCfg = Release|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Release|Any CPU.Build.0 = Release|Any CPU {5DF42846-151E-40CD-A349-C0A0C6216F7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5DF42846-151E-40CD-A349-C0A0C6216F7B}.Debug|Any CPU.Build.0 = Debug|Any CPU {5DF42846-151E-40CD-A349-C0A0C6216F7B}.Release|Any CPU.ActiveCfg = Release|Any CPU {5DF42846-151E-40CD-A349-C0A0C6216F7B}.Release|Any CPU.Build.0 = Release|Any CPU + {62946D89-B6B1-4A38-A04D-C20912087EFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {62946D89-B6B1-4A38-A04D-C20912087EFD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {62946D89-B6B1-4A38-A04D-C20912087EFD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {62946D89-B6B1-4A38-A04D-C20912087EFD}.Release|Any CPU.Build.0 = Release|Any CPU {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE}.Debug|Any CPU.Build.0 = Debug|Any CPU {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE}.Release|Any CPU.ActiveCfg = Release|Any CPU {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE}.Release|Any CPU.Build.0 = Release|Any CPU + {7076C84E-08AE-404B-8F3C-8F66010FA1B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7076C84E-08AE-404B-8F3C-8F66010FA1B1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7076C84E-08AE-404B-8F3C-8F66010FA1B1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7076C84E-08AE-404B-8F3C-8F66010FA1B1}.Release|Any CPU.Build.0 = Release|Any CPU {72CC5E29-5EA5-40E3-98E4-87ED8AB75589}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {72CC5E29-5EA5-40E3-98E4-87ED8AB75589}.Debug|Any CPU.Build.0 = Debug|Any CPU {72CC5E29-5EA5-40E3-98E4-87ED8AB75589}.Release|Any CPU.ActiveCfg = Release|Any CPU {72CC5E29-5EA5-40E3-98E4-87ED8AB75589}.Release|Any CPU.Build.0 = Release|Any CPU + {7893F52D-09B9-4441-AC47-6F7875BD68BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7893F52D-09B9-4441-AC47-6F7875BD68BC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7893F52D-09B9-4441-AC47-6F7875BD68BC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7893F52D-09B9-4441-AC47-6F7875BD68BC}.Release|Any CPU.Build.0 = Release|Any CPU {7A015585-036A-4BD1-8D46-A669EFA89743}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7A015585-036A-4BD1-8D46-A669EFA89743}.Debug|Any CPU.Build.0 = Debug|Any CPU {7A015585-036A-4BD1-8D46-A669EFA89743}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -107,18 +193,22 @@ Global {7CB92D61-E2FF-472A-9FDF-7E42D15B3EE6}.Debug|Any CPU.Build.0 = Debug|Any CPU {7CB92D61-E2FF-472A-9FDF-7E42D15B3EE6}.Release|Any CPU.ActiveCfg = Release|Any CPU {7CB92D61-E2FF-472A-9FDF-7E42D15B3EE6}.Release|Any CPU.Build.0 = Release|Any CPU + {7DA24DFC-EF53-4C06-AB7A-FF6BEF513A1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7DA24DFC-EF53-4C06-AB7A-FF6BEF513A1B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7DA24DFC-EF53-4C06-AB7A-FF6BEF513A1B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7DA24DFC-EF53-4C06-AB7A-FF6BEF513A1B}.Release|Any CPU.Build.0 = Release|Any CPU {7DD8E926-9F75-4F25-95A3-920A5FF48EF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7DD8E926-9F75-4F25-95A3-920A5FF48EF8}.Debug|Any CPU.Build.0 = Debug|Any CPU {7DD8E926-9F75-4F25-95A3-920A5FF48EF8}.Release|Any CPU.ActiveCfg = Release|Any CPU {7DD8E926-9F75-4F25-95A3-920A5FF48EF8}.Release|Any CPU.Build.0 = Release|Any CPU + {865652D3-8D1A-4779-92FC-4C54719286B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {865652D3-8D1A-4779-92FC-4C54719286B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {865652D3-8D1A-4779-92FC-4C54719286B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {865652D3-8D1A-4779-92FC-4C54719286B7}.Release|Any CPU.Build.0 = Release|Any CPU {8900C5EF-1182-4E8B-88FE-596EC2DB379D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8900C5EF-1182-4E8B-88FE-596EC2DB379D}.Debug|Any CPU.Build.0 = Debug|Any CPU {8900C5EF-1182-4E8B-88FE-596EC2DB379D}.Release|Any CPU.ActiveCfg = Release|Any CPU {8900C5EF-1182-4E8B-88FE-596EC2DB379D}.Release|Any CPU.Build.0 = Release|Any CPU - {8B84EE13-119C-41EB-98E8-E42D3ECD0DFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8B84EE13-119C-41EB-98E8-E42D3ECD0DFD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8B84EE13-119C-41EB-98E8-E42D3ECD0DFD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8B84EE13-119C-41EB-98E8-E42D3ECD0DFD}.Release|Any CPU.Build.0 = Release|Any CPU {8BAFA1ED-B5D9-49ED-A553-E557D2A0357F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8BAFA1ED-B5D9-49ED-A553-E557D2A0357F}.Debug|Any CPU.Build.0 = Debug|Any CPU {8BAFA1ED-B5D9-49ED-A553-E557D2A0357F}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -131,6 +221,10 @@ Global {9E3CD219-C950-4AA9-88E5-818F42C12566}.Debug|Any CPU.Build.0 = Debug|Any CPU {9E3CD219-C950-4AA9-88E5-818F42C12566}.Release|Any CPU.ActiveCfg = Release|Any CPU {9E3CD219-C950-4AA9-88E5-818F42C12566}.Release|Any CPU.Build.0 = Release|Any CPU + {9F7F996D-AF44-4947-8392-07B3ED2ED00D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9F7F996D-AF44-4947-8392-07B3ED2ED00D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9F7F996D-AF44-4947-8392-07B3ED2ED00D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9F7F996D-AF44-4947-8392-07B3ED2ED00D}.Release|Any CPU.Build.0 = Release|Any CPU {A069B942-EE12-4283-8C4C-F46549D3978A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A069B942-EE12-4283-8C4C-F46549D3978A}.Debug|Any CPU.Build.0 = Debug|Any CPU {A069B942-EE12-4283-8C4C-F46549D3978A}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -151,34 +245,92 @@ Global {A7ADD277-FCAB-46D5-8F18-2E4BFFDA3AE7}.Debug|Any CPU.Build.0 = Debug|Any CPU {A7ADD277-FCAB-46D5-8F18-2E4BFFDA3AE7}.Release|Any CPU.ActiveCfg = Release|Any CPU {A7ADD277-FCAB-46D5-8F18-2E4BFFDA3AE7}.Release|Any CPU.Build.0 = Release|Any CPU - {A9BE4750-6DFD-412E-B998-26B725911CF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A9BE4750-6DFD-412E-B998-26B725911CF3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A9BE4750-6DFD-412E-B998-26B725911CF3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A9BE4750-6DFD-412E-B998-26B725911CF3}.Release|Any CPU.Build.0 = Release|Any CPU + {B02737A0-890C-4921-83A5-D77CFB8A6899}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B02737A0-890C-4921-83A5-D77CFB8A6899}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B02737A0-890C-4921-83A5-D77CFB8A6899}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B02737A0-890C-4921-83A5-D77CFB8A6899}.Release|Any CPU.Build.0 = Release|Any CPU + {B04C50F7-B0CC-4170-8820-9D584E1C0ED3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B04C50F7-B0CC-4170-8820-9D584E1C0ED3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B04C50F7-B0CC-4170-8820-9D584E1C0ED3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B04C50F7-B0CC-4170-8820-9D584E1C0ED3}.Release|Any CPU.Build.0 = Release|Any CPU + {B28F65D1-D8DD-45E8-9DD7-74A3BE40B4CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B28F65D1-D8DD-45E8-9DD7-74A3BE40B4CE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B28F65D1-D8DD-45E8-9DD7-74A3BE40B4CE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B28F65D1-D8DD-45E8-9DD7-74A3BE40B4CE}.Release|Any CPU.Build.0 = Release|Any CPU + {B94069F7-2BD5-4695-B7B7-EBAA1C496DD9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B94069F7-2BD5-4695-B7B7-EBAA1C496DD9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B94069F7-2BD5-4695-B7B7-EBAA1C496DD9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B94069F7-2BD5-4695-B7B7-EBAA1C496DD9}.Release|Any CPU.Build.0 = Release|Any CPU {C1A9C587-B744-44D2-AD42-14386D424667}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C1A9C587-B744-44D2-AD42-14386D424667}.Debug|Any CPU.Build.0 = Debug|Any CPU {C1A9C587-B744-44D2-AD42-14386D424667}.Release|Any CPU.ActiveCfg = Release|Any CPU {C1A9C587-B744-44D2-AD42-14386D424667}.Release|Any CPU.Build.0 = Release|Any CPU + {C360116C-0ED5-4E59-A974-E95F874B4398}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C360116C-0ED5-4E59-A974-E95F874B4398}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C360116C-0ED5-4E59-A974-E95F874B4398}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C360116C-0ED5-4E59-A974-E95F874B4398}.Release|Any CPU.Build.0 = Release|Any CPU {CC4E534D-4992-4FBB-9528-A071EDDEA7E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CC4E534D-4992-4FBB-9528-A071EDDEA7E7}.Debug|Any CPU.Build.0 = Debug|Any CPU {CC4E534D-4992-4FBB-9528-A071EDDEA7E7}.Release|Any CPU.ActiveCfg = Release|Any CPU {CC4E534D-4992-4FBB-9528-A071EDDEA7E7}.Release|Any CPU.Build.0 = Release|Any CPU + {CFB0A03A-F787-4EE9-9EA6-8A2A65E82704}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CFB0A03A-F787-4EE9-9EA6-8A2A65E82704}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CFB0A03A-F787-4EE9-9EA6-8A2A65E82704}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CFB0A03A-F787-4EE9-9EA6-8A2A65E82704}.Release|Any CPU.Build.0 = Release|Any CPU + {DC5BEB52-1715-4E53-88EF-2D4F1708E394}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DC5BEB52-1715-4E53-88EF-2D4F1708E394}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DC5BEB52-1715-4E53-88EF-2D4F1708E394}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DC5BEB52-1715-4E53-88EF-2D4F1708E394}.Release|Any CPU.Build.0 = Release|Any CPU {EA04524D-2A97-4ED0-AD74-21F8C30DF4A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EA04524D-2A97-4ED0-AD74-21F8C30DF4A5}.Debug|Any CPU.Build.0 = Debug|Any CPU {EA04524D-2A97-4ED0-AD74-21F8C30DF4A5}.Release|Any CPU.ActiveCfg = Release|Any CPU {EA04524D-2A97-4ED0-AD74-21F8C30DF4A5}.Release|Any CPU.Build.0 = Release|Any CPU + {ECB1F68B-B588-4F3B-9A86-510CF4AAA784}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ECB1F68B-B588-4F3B-9A86-510CF4AAA784}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ECB1F68B-B588-4F3B-9A86-510CF4AAA784}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ECB1F68B-B588-4F3B-9A86-510CF4AAA784}.Release|Any CPU.Build.0 = Release|Any CPU + {F53B34FB-4BBC-4314-8D8A-1F0CD959E83F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F53B34FB-4BBC-4314-8D8A-1F0CD959E83F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F53B34FB-4BBC-4314-8D8A-1F0CD959E83F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F53B34FB-4BBC-4314-8D8A-1F0CD959E83F}.Release|Any CPU.Build.0 = Release|Any CPU {F666DC89-9CE4-491C-8450-6FBC70298FA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F666DC89-9CE4-491C-8450-6FBC70298FA3}.Debug|Any CPU.Build.0 = Debug|Any CPU {F666DC89-9CE4-491C-8450-6FBC70298FA3}.Release|Any CPU.ActiveCfg = Release|Any CPU {F666DC89-9CE4-491C-8450-6FBC70298FA3}.Release|Any CPU.Build.0 = Release|Any CPU + {76CDBE93-0177-4980-8514-C4D785E1DC78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {76CDBE93-0177-4980-8514-C4D785E1DC78}.Debug|Any CPU.Build.0 = Debug|Any CPU + {76CDBE93-0177-4980-8514-C4D785E1DC78}.Release|Any CPU.ActiveCfg = Release|Any CPU + {76CDBE93-0177-4980-8514-C4D785E1DC78}.Release|Any CPU.Build.0 = Release|Any CPU + {159A8C21-0A5B-4D99-9E07-6466F8E98AF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {159A8C21-0A5B-4D99-9E07-6466F8E98AF7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {159A8C21-0A5B-4D99-9E07-6466F8E98AF7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {159A8C21-0A5B-4D99-9E07-6466F8E98AF7}.Release|Any CPU.Build.0 = Release|Any CPU + {44CF1968-FCDA-4141-AE78-1EFD12DDF7D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {44CF1968-FCDA-4141-AE78-1EFD12DDF7D6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {44CF1968-FCDA-4141-AE78-1EFD12DDF7D6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {44CF1968-FCDA-4141-AE78-1EFD12DDF7D6}.Release|Any CPU.Build.0 = Release|Any CPU + {D705BF83-81FD-4CD9-AF3B-09C50FF42C83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D705BF83-81FD-4CD9-AF3B-09C50FF42C83}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D705BF83-81FD-4CD9-AF3B-09C50FF42C83}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D705BF83-81FD-4CD9-AF3B-09C50FF42C83}.Release|Any CPU.Build.0 = Release|Any CPU + {D42D621B-0370-44F6-A58E-0749629F9F4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D42D621B-0370-44F6-A58E-0749629F9F4D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D42D621B-0370-44F6-A58E-0749629F9F4D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D42D621B-0370-44F6-A58E-0749629F9F4D}.Release|Any CPU.Build.0 = Release|Any CPU + {541FC839-6065-4681-B6A4-C3BF358F78E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {541FC839-6065-4681-B6A4-C3BF358F78E9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {541FC839-6065-4681-B6A4-C3BF358F78E9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {541FC839-6065-4681-B6A4-C3BF358F78E9}.Release|Any CPU.Build.0 = Release|Any CPU + {D7F811D2-C5E2-45BB-B7AB-88F7941A24B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D7F811D2-C5E2-45BB-B7AB-88F7941A24B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D7F811D2-C5E2-45BB-B7AB-88F7941A24B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D7F811D2-C5E2-45BB-B7AB-88F7941A24B7}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} {3F6BAE25-ADEB-468C-8384-AD655623C341} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} - {8B84EE13-119C-41EB-98E8-E42D3ECD0DFD} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} {09362350-BB7F-4B4C-83B5-97F5C439B649} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} {1CE82D7E-9EA1-435F-AF8C-5E07AB917617} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} - {5C4C77A3-4523-4E2B-895B-6EFE4A6A1617} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} {EA04524D-2A97-4ED0-AD74-21F8C30DF4A5} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} {A069B942-EE12-4283-8C4C-F46549D3978A} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} {A069B942-EE12-4283-9C4C-F46549D3978A} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} @@ -198,6 +350,34 @@ Global {7AF74235-AEE2-4F3A-AEDB-7504ED93DDC0} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} {92BDA198-6A78-4408-844C-CAAF4C04EAFD} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} {CC4E534D-4992-4FBB-9528-A071EDDEA7E7} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} - {21D99A15-AB98-4691-A45B-D236B2A91DEB} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} + {53F87D88-8871-41A2-9F81-B79AB02FEC24} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} + {ECB1F68B-B588-4F3B-9A86-510CF4AAA784} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} + {B04C50F7-B0CC-4170-8820-9D584E1C0ED3} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} + {7893F52D-09B9-4441-AC47-6F7875BD68BC} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} + {9F7F996D-AF44-4947-8392-07B3ED2ED00D} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} + {2EA64B09-174C-40D0-9A40-44C2BF10C9D4} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} + {B94069F7-2BD5-4695-B7B7-EBAA1C496DD9} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} + {865652D3-8D1A-4779-92FC-4C54719286B7} = {1EC5651F-83A6-4862-AED2-6BE5103652D0} + {DC5BEB52-1715-4E53-88EF-2D4F1708E394} = {1EC5651F-83A6-4862-AED2-6BE5103652D0} + {B28F65D1-D8DD-45E8-9DD7-74A3BE40B4CE} = {1EC5651F-83A6-4862-AED2-6BE5103652D0} + {CFB0A03A-F787-4EE9-9EA6-8A2A65E82704} = {1EC5651F-83A6-4862-AED2-6BE5103652D0} + {00F7A18F-D2C4-4014-8E4C-552A0A0B0967} = {1EC5651F-83A6-4862-AED2-6BE5103652D0} + {7076C84E-08AE-404B-8F3C-8F66010FA1B1} = {1EC5651F-83A6-4862-AED2-6BE5103652D0} + {F53B34FB-4BBC-4314-8D8A-1F0CD959E83F} = {1EC5651F-83A6-4862-AED2-6BE5103652D0} + {62946D89-B6B1-4A38-A04D-C20912087EFD} = {1EC5651F-83A6-4862-AED2-6BE5103652D0} + {7DA24DFC-EF53-4C06-AB7A-FF6BEF513A1B} = {1EC5651F-83A6-4862-AED2-6BE5103652D0} + {2858C3DB-1E15-4D12-AF09-02CFD624ADD4} = {1EC5651F-83A6-4862-AED2-6BE5103652D0} + {B02737A0-890C-4921-83A5-D77CFB8A6899} = {1EC5651F-83A6-4862-AED2-6BE5103652D0} + {2E333450-68BD-48C5-9540-CFA7A053DCA1} = {1EC5651F-83A6-4862-AED2-6BE5103652D0} + {C360116C-0ED5-4E59-A974-E95F874B4398} = {1EC5651F-83A6-4862-AED2-6BE5103652D0} + {423414D9-6CB8-4AFF-8317-66AD03B6056D} = {1EC5651F-83A6-4862-AED2-6BE5103652D0} + {21D99A15-AB98-4691-A45B-D236B2A91DEB} = {3330092C-6EB0-4AB6-9901-2F4070E2FD81} + {76CDBE93-0177-4980-8514-C4D785E1DC78} = {3330092C-6EB0-4AB6-9901-2F4070E2FD81} + {159A8C21-0A5B-4D99-9E07-6466F8E98AF7} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} + {44CF1968-FCDA-4141-AE78-1EFD12DDF7D6} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} + {D705BF83-81FD-4CD9-AF3B-09C50FF42C83} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} + {D42D621B-0370-44F6-A58E-0749629F9F4D} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} + {541FC839-6065-4681-B6A4-C3BF358F78E9} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} + {D7F811D2-C5E2-45BB-B7AB-88F7941A24B7} = {AFB1EDA0-E0D2-4E95-BAEC-9781B046413E} EndGlobalSection EndGlobal diff --git a/GpsConsts.cs b/GpsConsts.cs index ac66c77d6..1b44dce25 100644 --- a/GpsConsts.cs +++ b/GpsConsts.cs @@ -3,6 +3,17 @@ // https://dl-ssl.google.com/android/repository/addon.xml static class __GpsConsts { - public const string Url = "https://dl-ssl.google.com/android/repository/google_m2repository_r24.zip"; - public const string Version = "8.4.0"; -} \ No newline at end of file + public const string Url = "https://dl-ssl.google.com/android/repository/google_m2repository_r36.zip"; + public const string Sha1sum = "fa55e43b0175167da7f8cbedea35331cd448cf9b"; + public const string Version = "9.6.1"; + public const string WearVersion = "1.4.0"; + public const string PackageName = "Xamarin.GooglePlayServices"; +} + +static class __FbConsts +{ + public const string PackageName = __GpsConsts.PackageName; + public const string Url = __GpsConsts.Url; + public const string Sha1sum = __GpsConsts.Sha1sum; + public const string Version = __GpsConsts.Version; +} diff --git a/LICENSE.md b/LICENSE.md index 9a882d528..13cc24455 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,3 +1,9 @@ + +**Xamarin is not responsible for, nor does it grant any licenses to, third-party packages. Some packages may require or install dependencies which are governed by additional licenses.** + +This component depends on [Google Play Services Client Library](https://developers.google.com/android/guides/overview), which is subject to the terms of [Android Software Development Kit License Agreement](http://developer.android.com/sdk/terms.html) + +### Xamarin Component for Google Play Services Client Library The MIT License (MIT) Copyright (c) .NET Foundation Contributors @@ -8,4 +14,4 @@ The above copyright notice and this permission notice shall be included in all c THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -20160427 +20160427 \ No newline at end of file diff --git a/README.md b/README.md index 02321da3e..e40850c80 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,27 @@ You may want to consider passing `--verbosity diagnostic` (or `-Verbosity diagno Before the `.sln` files will compile in Visual Studio or Xamarin Studio, the external dependencies need to be downloaded. This can be done by running the `build.sh` or `build.ps1` with the target `externals`. After the externals are setup, the `.sln` files should compile in an IDE. +### Versioning + +Historically, Component and later NuGet package versions were based on the revision number of the Google Play Services SDK from the SDK Manager, and later based on the Google Play Services Maven Repository (m2repository) version from the SDK Manager. Because of this, the versions of the components and NuGet packages do not match the version strings of Google Play Services releases from Google. Here is a table which shows a translation of versions mapped to Google's version strings: + + +| NuGet / Component Version | Google m2repository Version | Google Play Services Version | +|---------------------------|------------------------------|------------------------------| +| 25.0 | 19 (GPS SDK 25) | 7.5.0 | +| 26.0 | 21 (GPS SDK 26) | 7.8.0 | +| 27.0 | 22 (GPS SDK 27) | 8.1.0 | +| 29.0 | 24 (GPS SDK 29) | 8.4.0 | +| | 25 | 8.4.0 (no binary changes) | +| | 26 | 9.0.0 | +| 30.0.1.alpha4 | 27 (GPS SDK 30) | 9.0.1 | +| 30.0.2-alpha1 | 28 | 9.0.2 | +| | 29 | 9.2.0 | +| | 30 | (never published) | +| | 31 | 9.2.1 | +| 32.4.0-beta2 | 32 | 9.4.0 | + + ## License The license for this repository is specified in diff --git a/ads-lite/nuget/Xamarin.GooglePlayServices.Ads.Lite.template.nuspec b/ads-lite/nuget/Xamarin.GooglePlayServices.Ads.Lite.template.nuspec new file mode 100644 index 000000000..cee39994a --- /dev/null +++ b/ads-lite/nuget/Xamarin.GooglePlayServices.Ads.Lite.template.nuspec @@ -0,0 +1,27 @@ + + + + Xamarin.GooglePlayServices.Ads.Lite + Xamarin Google Play Services - Ads Lite + $version$ + Xamarin Inc. + Xamarin Inc. + true + Xamarin.Android Bindings for Google Play Services - Ads Lite $aar-version$ + + Xamarin.Android Bindings for Google Play Services - Ads Lite $aar-version$ + + The Google Mobile Ads SDK is the latest generation in Google mobile advertising, featuring refined ad formats and streamlined APIs for access to mobile ad networks and advertising solutions. The SDK enables mobile app developers to maximize their monetization in native mobile apps. + + Copyright © Microsoft Corporation + https://github.com/xamarin/GooglePlayServicesComponents/ + https://github.com/xamarin/GooglePlayServicesComponents/blob/master/LICENSE.md + https://raw.githubusercontent.com/xamarin/GooglePlayServicesComponents/master/icons/play-services-ads-lite_128x128.png + + + + + + + + diff --git a/appstate/source/Additions/AboutAdditions.txt b/ads-lite/source/Additions/AboutAdditions.txt similarity index 100% rename from appstate/source/Additions/AboutAdditions.txt rename to ads-lite/source/Additions/AboutAdditions.txt diff --git a/ads/source/Additions/Manifest.cs b/ads-lite/source/Additions/Manifest.cs similarity index 100% rename from ads/source/Additions/Manifest.cs rename to ads-lite/source/Additions/Manifest.cs diff --git a/ads-lite/source/Ads.Lite.csproj b/ads-lite/source/Ads.Lite.csproj new file mode 100644 index 000000000..104b36763 --- /dev/null +++ b/ads-lite/source/Ads.Lite.csproj @@ -0,0 +1,75 @@ + + + + Debug + AnyCPU + {10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 8.0.30703 + 2.0 + {ECB1F68B-B588-4F3B-9A86-510CF4AAA784} + Library + GooglePlayServices.Ads.Lite + Resources + Assets + False + Xamarin.GooglePlayServices.Ads.Lite + v7.0 + class-parse + ..\..\externals\docs\reference + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + None + false + + + full + true + bin\Release + prompt + 4 + false + false + + + + + + + + + + + Properties\GpsConsts.cs + + + + + + + + + + + + + + + + + {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE} + Basement + + + + + Jars\play-services-ads-lite.jar + + + diff --git a/appstate/source/Jars/AboutJars.txt b/ads-lite/source/Jars/AboutJars.txt similarity index 100% rename from appstate/source/Jars/AboutJars.txt rename to ads-lite/source/Jars/AboutJars.txt diff --git a/ads-lite/source/Properties/AssemblyInfo.cs b/ads-lite/source/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..3e0329490 --- /dev/null +++ b/ads-lite/source/Properties/AssemblyInfo.cs @@ -0,0 +1,48 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using Android.App; + +// Information about this assembly is defined by the following attributes. +// Change them to the values specific to your project. + +[assembly: AssemblyTitle ("Xamarin.GooglePlayServices.Ads.Lite")] +[assembly: AssemblyDescription ("")] +[assembly: AssemblyConfiguration ("")] +[assembly: AssemblyCompany ("Microsoft Corporation")] +[assembly: AssemblyProduct ("")] +[assembly: AssemblyCopyright ("Copyright © Microsoft Corporation")] +[assembly: AssemblyTrademark ("")] +[assembly: AssemblyCulture ("")] + +// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". +// The form "{Major}.{Minor}.*" will automatically update the build and revision, +// and "{Major}.{Minor}.{Build}.*" will update just the revision. + +[assembly: AssemblyVersion ("1.0.0")] + +// The following attributes are used to specify the signing key for the assembly, +// if desired. See the Mono documentation for more information about signing. + +//[assembly: AssemblyDelaySign(false)] +//[assembly: AssemblyKeyFile("")] + +[assembly: Java.Interop.JavaLibraryReference ("classes.jar", + PackageName = __GpsConsts.PackageName, + SourceUrl = __GpsConsts.Url, + EmbeddedArchive = __Consts.AarPath, + Version = __GpsConsts.Version, + Sha1sum = __GpsConsts.Sha1sum)] +// AppCompat-v7 resources +[assembly: Android.IncludeAndroidResourcesFromAttribute ("./", + PackageName = __GpsConsts.PackageName, + SourceUrl = __GpsConsts.Url, + EmbeddedArchive = __Consts.AarPath, + Version = __GpsConsts.Version, + Sha1sum = __GpsConsts.Sha1sum)] + +// Google Addon feed with GPS in it: +// https://dl-ssl.google.com/android/repository/addon.xml + +static class __Consts { + public const string AarPath = "m2repository/com/google/android/gms/play-services-ads-lite/" + __GpsConsts.Version + "/play-services-ads-lite-" + __GpsConsts.Version + ".aar"; +} diff --git a/appstate/source/Transforms/EnumFields.xml b/ads-lite/source/Transforms/EnumFields.xml similarity index 100% rename from appstate/source/Transforms/EnumFields.xml rename to ads-lite/source/Transforms/EnumFields.xml diff --git a/appstate/source/Transforms/EnumMethods.xml b/ads-lite/source/Transforms/EnumMethods.xml similarity index 100% rename from appstate/source/Transforms/EnumMethods.xml rename to ads-lite/source/Transforms/EnumMethods.xml diff --git a/appstate/source/Transforms/Metadata.generated.xml b/ads-lite/source/Transforms/Metadata.generated.xml similarity index 100% rename from appstate/source/Transforms/Metadata.generated.xml rename to ads-lite/source/Transforms/Metadata.generated.xml diff --git a/ads-lite/source/Transforms/Metadata.xml b/ads-lite/source/Transforms/Metadata.xml new file mode 100644 index 000000000..46e463aff --- /dev/null +++ b/ads-lite/source/Transforms/Metadata.xml @@ -0,0 +1,107 @@ + + + + Google.Ads + Google.Ads.Mediation + Google.Ads.Mediation.Admob + Google.Ads.Mediation.CustomEvent + Google.Ads.Afma.Nano + + Android.Gms.Ads + Android.Gms.Ads.Formats + + Android.Gms.Ads.Reward + Android.Gms.Ads.Reward.Mediation + Android.Gms.Ads.DoubleClick + Android.Gms.Ads.Mediation + Android.Gms.Ads.Mediation.Admob + Android.Gms.Ads.Mediation.CustomEvent + Android.Gms.Ads.Purchase + Android.Gms.Ads.Search + Android.Gms.Internal + + name + data + errorCode + inAppPurchase + productId + inAppPurchaseResult + + + + + + + + + + + + + + source + size + dest + flags + + + + public + + + BannerDismissScreenEventArgs + BannerFailedToReceiveAdEventArgs + BannerLeaveApplicationEventArgs + BannerPresentScreenEventArgs + BannerReceiveAdEventArgs + + IntersitionalDismissScreenEventArgs + IntersitionalFailedToReceiveAdEventArgs + InterstitialLeaveApplicationEventArgs + InterstitialPresentScreenEventArgs + InterstitialReceiveAdEventArgs + + MediationInterstitialAdClickedEventArgs + MediationInterstitialAdClosedEventArgs + MediationInterstitialAdFailedToLoadEventArgs + MediationInterstitialAdLeftApplicationEventArgs + MediationInterstitialAdLoadedEventArgs + MediationInterstitialAdOpenedEventArgs + + MediationBannerAdClickedEventArgs + MediationBannerAdClosedEventArgs + MediationBannerAdFailedToLoadEventArgs + MediationBannerAdLeftApplicationEventArgs + MediationBannerAdLoadedEventArgs + MediationBannerAdOpenedEventArgs + + + ad + ad + ad + ad + + errorCode + + errorCode + errorCode + + + adapter + adapter + errorCode + adapter + adapter + adapter + adapter + + adapter + adapter + errorCode + adapter + adapter + adapter + + ad + + diff --git a/ads/component/component.template.yaml b/ads/component/component.template.yaml index 06489d4fa..a8a34572a 100644 --- a/ads/component/component.template.yaml +++ b/ads/component/component.template.yaml @@ -4,14 +4,10 @@ id: googleplayservices-ads publisher: Xamarin Inc. publisher-url: http://xamarin.com summary: Make money and advertise across screens and platforms. -license: ../../component/License.md +license: ../../License.md icons: - - icons/googleplayservices-ads_128x128.png - - icons/googleplayservices-ads_512x512.png -libraries: - android: - - ../../output/Xamarin.GooglePlayServices.Ads.dll - - ../../output/Xamarin.GooglePlayServices.Basement.dll + - ../../icons/play-services-ads_128x128.png + - ../../icons/play-services-ads_512x512.png is_shell: true packages: android: @@ -20,12 +16,22 @@ samples: - name: "AdMob Sample" path: ../../ads/samples/AdMobSample.sln removeProjects: - - Xamarin.GooglePlayServices.Basement - - Xamarin.GooglePlayServices.Ads + - Base + - Basement + - Clearcut + - Gass + - Tasks + - Ads + - Ads.Lite installNuGets: - project: AdMobSample packages: + - Xamarin.GooglePlayServices.Base - Xamarin.GooglePlayServices.Basement + - Xamarin.GooglePlayServices.Clearcut + - Xamarin.GooglePlayServices.Gass + - Xamarin.GooglePlayServices.Tasks - Xamarin.GooglePlayServices.Ads + - Xamarin.GooglePlayServices.Ads.Lite local-nuget-repo: ../../output/ no_build: true diff --git a/ads/component/icons/googleplayservices-ads_128x128.png b/ads/component/icons/googleplayservices-ads_128x128.png deleted file mode 100644 index 53343f926..000000000 Binary files a/ads/component/icons/googleplayservices-ads_128x128.png and /dev/null differ diff --git a/ads/component/icons/googleplayservices-ads_512x512.png b/ads/component/icons/googleplayservices-ads_512x512.png deleted file mode 100644 index 12cdb2c0a..000000000 Binary files a/ads/component/icons/googleplayservices-ads_512x512.png and /dev/null differ diff --git a/ads/nuget/Xamarin.GooglePlayServices.Ads.nuspec b/ads/nuget/Xamarin.GooglePlayServices.Ads.template.nuspec similarity index 59% rename from ads/nuget/Xamarin.GooglePlayServices.Ads.nuspec rename to ads/nuget/Xamarin.GooglePlayServices.Ads.template.nuspec index 503f13955..c02bd92a5 100644 --- a/ads/nuget/Xamarin.GooglePlayServices.Ads.nuspec +++ b/ads/nuget/Xamarin.GooglePlayServices.Ads.template.nuspec @@ -7,21 +7,25 @@ Xamarin Inc. Xamarin Inc. true - Xamarin.Android Bindings for Google Play Services - Ads + Xamarin.Android Bindings for Google Play Services - Ads $aar-version$ - Xamarin.Android Bindings for Google Play Services - Ads + Xamarin.Android Bindings for Google Play Services - Ads $aar-version$ The Google Mobile Ads SDK is the latest generation in Google mobile advertising, featuring refined ad formats and streamlined APIs for access to mobile ad networks and advertising solutions. The SDK enables mobile app developers to maximize their monetization in native mobile apps. - Copyright 2013-2016 + Copyright © Microsoft Corporation http://components.xamarin.com/view/googleplayservices-ads/ http://components.xamarin.com/license/googleplayservices-ads/ - https://xamarin-component-icons.s3.amazonaws.com/Xamarin.GooglePlayServices.Ads.png + https://raw.githubusercontent.com/xamarin/GooglePlayServicesComponents/master/icons/play-services-ads_128x128.png + + + + - + diff --git a/ads/samples/AdMobSample.UITests/AdMobSample.UITests.csproj b/ads/samples/AdMobSample.UITests/AdMobSample.UITests.csproj index a237bee96..4ddb4d852 100644 --- a/ads/samples/AdMobSample.UITests/AdMobSample.UITests.csproj +++ b/ads/samples/AdMobSample.UITests/AdMobSample.UITests.csproj @@ -31,12 +31,12 @@ - - ..\packages\Xamarin.UITest.1.1.1\lib\Xamarin.UITest.dll - ..\packages\NUnit.2.6.4\lib\nunit.framework.dll + + ..\packages\Xamarin.UITest.2.0.1\lib\Xamarin.UITest.dll + diff --git a/ads/samples/AdMobSample.UITests/packages.config b/ads/samples/AdMobSample.UITests/packages.config index 2d9e3ac42..f55a18725 100644 --- a/ads/samples/AdMobSample.UITests/packages.config +++ b/ads/samples/AdMobSample.UITests/packages.config @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/ads/samples/AdMobSample.sln b/ads/samples/AdMobSample.sln index 99e05e3ba..f1d541997 100644 --- a/ads/samples/AdMobSample.sln +++ b/ads/samples/AdMobSample.sln @@ -9,6 +9,16 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ads", "..\source\Ads.csproj EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Basement", "..\..\basement\source\Basement.csproj", "{6A38FACF-F0C5-4A49-8A8A-7CE6634207CE}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Base", "..\..\base\source\Base.csproj", "{3F6BAE25-ADEB-468C-8384-AD655623C341}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tasks", "..\..\tasks\source\Tasks.csproj", "{53F87D88-8871-41A2-9F81-B79AB02FEC24}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ads.Lite", "..\..\ads-lite\source\Ads.Lite.csproj", "{ECB1F68B-B588-4F3B-9A86-510CF4AAA784}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Gass", "..\..\gass\source\Gass.csproj", "{D705BF83-81FD-4CD9-AF3B-09C50FF42C83}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Clearcut", "..\..\clearcut\source\Clearcut.csproj", "{44CF1968-FCDA-4141-AE78-1EFD12DDF7D6}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -19,6 +29,14 @@ Global {34C2F5ED-29E6-41F7-8898-6C17653AD59D}.Debug|Any CPU.Build.0 = Debug|Any CPU {34C2F5ED-29E6-41F7-8898-6C17653AD59D}.Release|Any CPU.ActiveCfg = Release|Any CPU {34C2F5ED-29E6-41F7-8898-6C17653AD59D}.Release|Any CPU.Build.0 = Release|Any CPU + {3F6BAE25-ADEB-468C-8384-AD655623C341}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3F6BAE25-ADEB-468C-8384-AD655623C341}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3F6BAE25-ADEB-468C-8384-AD655623C341}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3F6BAE25-ADEB-468C-8384-AD655623C341}.Release|Any CPU.Build.0 = Release|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Debug|Any CPU.Build.0 = Debug|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Release|Any CPU.ActiveCfg = Release|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Release|Any CPU.Build.0 = Release|Any CPU {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE}.Debug|Any CPU.Build.0 = Debug|Any CPU {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -31,5 +49,17 @@ Global {CC4E534D-4992-4FBB-9528-A071EDDEA7E7}.Debug|Any CPU.Build.0 = Debug|Any CPU {CC4E534D-4992-4FBB-9528-A071EDDEA7E7}.Release|Any CPU.ActiveCfg = Release|Any CPU {CC4E534D-4992-4FBB-9528-A071EDDEA7E7}.Release|Any CPU.Build.0 = Release|Any CPU + {ECB1F68B-B588-4F3B-9A86-510CF4AAA784}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ECB1F68B-B588-4F3B-9A86-510CF4AAA784}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ECB1F68B-B588-4F3B-9A86-510CF4AAA784}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ECB1F68B-B588-4F3B-9A86-510CF4AAA784}.Release|Any CPU.Build.0 = Release|Any CPU + {D705BF83-81FD-4CD9-AF3B-09C50FF42C83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D705BF83-81FD-4CD9-AF3B-09C50FF42C83}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D705BF83-81FD-4CD9-AF3B-09C50FF42C83}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D705BF83-81FD-4CD9-AF3B-09C50FF42C83}.Release|Any CPU.Build.0 = Release|Any CPU + {44CF1968-FCDA-4141-AE78-1EFD12DDF7D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {44CF1968-FCDA-4141-AE78-1EFD12DDF7D6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {44CF1968-FCDA-4141-AE78-1EFD12DDF7D6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {44CF1968-FCDA-4141-AE78-1EFD12DDF7D6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/ads/samples/AdMobSample/AdMobSample.csproj b/ads/samples/AdMobSample/AdMobSample.csproj index ba8d9aab6..6d1e45743 100644 --- a/ads/samples/AdMobSample/AdMobSample.csproj +++ b/ads/samples/AdMobSample/AdMobSample.csproj @@ -17,7 +17,7 @@ False AdMob Properties\AndroidManifest.xml - v4.1 + v7.0 armeabi;armeabi-v7a;x86;arm64-v8a;x86_64 @@ -46,8 +46,23 @@ + + ..\packages\Xamarin.Android.Support.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Compat.dll + + + ..\packages\Xamarin.Android.Support.Core.UI.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.UI.dll + + + ..\packages\Xamarin.Android.Support.Core.Utils.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.Utils.dll + + + ..\packages\Xamarin.Android.Support.Media.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Media.Compat.dll + + + ..\packages\Xamarin.Android.Support.Fragment.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Fragment.dll + - ..\packages\Xamarin.Android.Support.v4.23.1.1.1\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll + ..\packages\Xamarin.Android.Support.v4.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.v4.dll @@ -95,5 +110,13 @@ {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE} Basement + + {ECB1F68B-B588-4F3B-9A86-510CF4AAA784} + Ads.Lite + + + {3F6BAE25-ADEB-468C-8384-AD655623C341} + Base + \ No newline at end of file diff --git a/ads/samples/AdMobSample/Properties/AssemblyInfo.cs b/ads/samples/AdMobSample/Properties/AssemblyInfo.cs index 8930e47d8..3828018bd 100644 --- a/ads/samples/AdMobSample/Properties/AssemblyInfo.cs +++ b/ads/samples/AdMobSample/Properties/AssemblyInfo.cs @@ -8,9 +8,9 @@ [assembly: AssemblyTitle ("AdMob")] [assembly: AssemblyDescription ("")] [assembly: AssemblyConfiguration ("")] -[assembly: AssemblyCompany ("")] +[assembly: AssemblyCompany ("Microsoft Corporation")] [assembly: AssemblyProduct ("")] -[assembly: AssemblyCopyright ("redth")] +[assembly: AssemblyCopyright ("Copyright © Microsoft Corporation")] [assembly: AssemblyTrademark ("")] [assembly: AssemblyCulture ("")] diff --git a/ads/samples/AdMobSample/packages.config b/ads/samples/AdMobSample/packages.config index 8997892ec..71e0c9953 100644 --- a/ads/samples/AdMobSample/packages.config +++ b/ads/samples/AdMobSample/packages.config @@ -1,4 +1,9 @@ - - - + + + + + + + + \ No newline at end of file diff --git a/ads/source/Ads.csproj b/ads/source/Ads.csproj index 8e2a04b72..2c8e10b97 100644 --- a/ads/source/Ads.csproj +++ b/ads/source/Ads.csproj @@ -3,7 +3,7 @@ Debug AnyCPU - {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 8.0.30703 2.0 {CC4E534D-4992-4FBB-9528-A071EDDEA7E7} @@ -13,7 +13,8 @@ Assets False Xamarin.GooglePlayServices.Ads - v4.1 + v7.0 + class-parse ..\..\externals\docs\reference @@ -47,7 +48,6 @@ Properties\GpsConsts.cs - @@ -70,5 +70,21 @@ {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE} Basement + + {3F6BAE25-ADEB-468C-8384-AD655623C341} + Base + + + {ECB1F68B-B588-4F3B-9A86-510CF4AAA784} + Ads.Lite + + + {44CF1968-FCDA-4141-AE78-1EFD12DDF7D6} + Clearcut + + + {D705BF83-81FD-4CD9-AF3B-09C50FF42C83} + Gass + - \ No newline at end of file + diff --git a/ads/source/Properties/AssemblyInfo.cs b/ads/source/Properties/AssemblyInfo.cs index 15bf29eae..a3d830eba 100644 --- a/ads/source/Properties/AssemblyInfo.cs +++ b/ads/source/Properties/AssemblyInfo.cs @@ -27,21 +27,22 @@ //[assembly: AssemblyKeyFile("")] [assembly: Java.Interop.JavaLibraryReference ("classes.jar", - PackageName = __Consts.PackageName, + PackageName = __GpsConsts.PackageName, SourceUrl = __GpsConsts.Url, EmbeddedArchive = __Consts.AarPath, - Version = __GpsConsts.Version)] + Version = __GpsConsts.Version, + Sha1sum = __GpsConsts.Sha1sum)] // AppCompat-v7 resources [assembly: Android.IncludeAndroidResourcesFromAttribute ("./", - PackageName = __Consts.PackageName, + PackageName = __GpsConsts.PackageName, SourceUrl = __GpsConsts.Url, EmbeddedArchive = __Consts.AarPath, - Version = __GpsConsts.Version)] + Version = __GpsConsts.Version, + Sha1sum = __GpsConsts.Sha1sum)] // Google Addon feed with GPS in it: // https://dl-ssl.google.com/android/repository/addon.xml static class __Consts { - public const string PackageName = "GPS Ads"; public const string AarPath = "m2repository/com/google/android/gms/play-services-ads/" + __GpsConsts.Version + "/play-services-ads-" + __GpsConsts.Version + ".aar"; -} \ No newline at end of file +} diff --git a/ads/source/Transforms/Metadata.generated.xml b/ads/source/Transforms/Metadata.generated.xml index 2a51ed640..26c2f6238 100644 --- a/ads/source/Transforms/Metadata.generated.xml +++ b/ads/source/Transforms/Metadata.generated.xml @@ -1,1270 +1,2 @@ - nameValue - nameValue - width - height - adSize - other - options - context - context - width - height - input - input - data - output - input - input - data - output - input - input - data - output - input - input - data - output - input - input - data - output - input - input - data - output - serverParameters - context - mediationAdRequest - userId - listener - serverParameters - networkExtras - mediationAdRequest - serverParameters - networkExtras - context - bannerListener - serverParameters - adSize - mediationAdRequest - extras - context - interstitialListener - serverParameters - mediationAdRequest - extras - context - listener - serverParameters - mediationAdRequest - extras - serverParameters - birthday - gender - keywords - isTesting - location - adapter - adapter - adapter - errorCode - adapter - adapter - adapter - adapter - adapter - errorCode - adapter - adapter - adapter - parameters - message - listener - activity - serverParameters - adSize - mediationAdRequest - customEventExtras - listener - activity - serverParameters - mediationAdRequest - customEventExtras - view - savedInstanceState - outState - layoutResID - view - view - parameters - errorCode - adRequest - publisherAdRequest - context - adUnitID - listener - listener - templateId - adLoadedListener - customClickListener - listener - correlator - options - adapterClass - networkExtrasClass - adapterClass - context - adapterClass - customEventExtras - keyword - networkExtras - adapterClass - networkExtras - deviceId - birthday - contentUrl - gender - isDesignedForFamilies - location - requestAgent - tagForChildDirectedTreatment - width - height - other - context - context - context - context - attrs - context - attrs - defStyle - context - adRequest - adListener - adUnitId - inAppPurchaseListener - playStorePurchaseListener - publicKey - rewardedVideoAdListener - context - context - context - applicationCode - context - applicationCode - settings - volume - enable - trackingId - context - context - attrs - context - attrs - defStyle - view - adapterClass - networkExtrasClass - adapterClass - context - categoryExclusion - adapterClass - customEventExtras - key - value - key - values - keyword - networkExtras - adapterClass - networkExtras - deviceId - birthday - contentUrl - gender - isDesignedForFamilies - location - manualImpressionsEnabled - publisherProvidedId - requestAgent - tagForChildDirectedTreatment - context - context - attrs - context - attrs - defStyle - publisherAdRequest - changed - left - top - right - bottom - widthMeasureSpec - heightMeasureSpec - adListener - adSizes - adUnitId - appEventListener - correlator - manualImpressionsEnabled - onCustomRenderedAdLoadedListener - context - publisherAdRequest - adListener - adUnitId - appEventListener - correlator - onCustomRenderedAdLoadedListener - orientation - shouldRequestMultipleImages - shouldReturnUrls - context - context - attrs - context - attrs - defStyleAttr - context - attrs - defStyleAttr - defStyleRes - child - index - parameters - child - child - context - context - attrs - context - attrs - defStyleAttr - context - attrs - defStyleAttr - defStyleRes - view - view - view - view - view - view - view - view - context - context - attrs - context - attrs - defStyleAttr - context - attrs - defStyleAttr - defStyleRes - view - view - view - view - view - view - assetName - assetName - assetName - context - adUnitId - adapterCreator - versionInfo - activity - context - adSize - adUnitId - adapterCreator - versionInfo - activity - context - adSize - adUnitId - adapterCreator - versionInfo - nativeAdView - overlayFrame - context - adapterCreator - versionInfo - context - transparentBackground - hideStatusBar - backgroundImage - blur - blurRadius - output - flags - nameValue - info - enabled - userId - enabled - runnable - volume - runnable - timeFromNowInMillis - runnable - evt - versionCode - birthday - extras - gender - keywords - isTestDevice - tagForChildDirectedTreatment - manualImpressionsEnabled - publisherProvidedId - searchAdRequestParcel - location - contentUrl - networkExtras - customTargeting - categoryExclusions - requestAgent - requestPackage - isDesignedForFamilies - other - output - flags - context - adSize - context - adSizes - adSize - supportedAdSizes - output - flags - searchAdRequest - output - flags - originalAdSize - parcel - flags - adapterClass - networkExtrasClass - adapterClass - context - manualImpressionsEnabled - adListener - adSizes - adUnitId - appEventListener - correlator - inAppPurchaseListener - manualImpressionsEnabled - onCustomRenderedAdLoadedListener - playStorePurchaseListener - publicKey - adListener - adUnitId - appEventListener - correlator - inAppPurchaseListener - onCustomRenderedAdLoadedListener - playStorePurchaseListener - publicKey - listener - userId - context - context - volume - enabled - userId - context - adUnitId - adapterCreator - versionInfo - activity - context - adSize - adUnitId - adapterCreator - versionInfo - activity - context - adSize - adUnitId - adapterCreator - versionInfo - nativeAdView - overlayFrame - context - adapterCreator - versionInfo - context - volume - userId - errorCode - nameValue - info - context - adUnitId - adapterCreator - versionInfo - activity - context - adSize - adUnitId - adapterCreator - versionInfo - activity - context - adSize - adUnitId - adapterCreator - versionInfo - nativeAdView - overlayFrame - context - adapterCreator - versionInfo - context - context - adUnitId - adapterCreator - versionInfo - activity - context - adSize - adUnitId - adapterCreator - versionInfo - activity - context - adSize - adUnitId - adapterCreator - versionInfo - nativeAdView - overlayFrame - context - adapterCreator - versionInfo - context - code - data - reply - flags - errorCode - code - data - reply - flags - code - data - reply - flags - code - data - reply - flags - code - data - reply - flags - manualImpressionsEnabled - userId - code - data - reply - flags - code - data - reply - flags - nameValue - info - code - data - reply - flags - code - data - reply - flags - volume - code - data - reply - flags - code - data - reply - flags - versionCode - shouldReturnUrlsForImageAssets - imageOrientation - shouldRequestMultipleImages - options - output - flags - assetName - view - view - motionEvent - versionCode - intentAction - url - mimeType - packageName - componentName - intentFlagsString - intentExtrasString - intent - intent - intentAction - url - mimeType - packageName - componentName - intentFlagsString - intentExtrasString - output - flags - adClickListener - adOverlayListener - leaveApplicationListener - adWebView - orientation - versionInfo - debugMessage - interstitialAdParameter - adClickListener - adOverlayListener - leaveApplicationListener - adWebView - customClose - orientation - versionInfo - adClickListener - adOverlayListener - appEventGmsgListener - leaveApplicationListener - adWebView - customClose - orientation - url - versionInfo - inAppPurchaseGmsgListener - adClickListener - adOverlayListener - appEventGmsgListener - leaveApplicationListener - adWebView - customClose - orientation - html - baseUrl - versionInfo - inAppPurchaseGmsgListener - adLauncherIntentInfo - adClickListener - adOverlayListener - leaveApplicationListener - versionInfo - output - flags - focusChange - mpValue - percent - mpValue - mpValue - what - extra - mpValue - what - extra - widthMeasureSpec - heightMeasureSpec - mediaPlayer - surface - width - height - surface - surface - wValue - hValue - surface - mpValue - width - height - millis - mimeType - path - uri - savedInstanceState - outBundle - requestedOrientation - millis - mimeType - path - millis - mimeType - view - appContext - inAppPurchaseVerifier - inAppPurchase - onPlayStorePurchaseFinishedListener - output - flags - nameValue - service - nameValue - billingResponseCode - resolution - requestCode - resultCode - data - nameValue - service - nameValue - nameValue - service - nameValue - db - db - oldVersion - newVersion - adPositionBundle - adRequest - adSize - adUnitId - applicationInfo - packageInfo - querySpamSignals - sequenceNumber - sessionId - versionInfo - stats - nativeVersion - nativeTemplates - nativeCustomTemplateIds - contentInfo - useHTTPS - prefetchMessenger - screenWidth - screenHeight - screenDensity - viewHierarchy - correlationId - requestId - experimentIds - slotId - nativeAdOptionsParcel - connectionStartTime - capabilityParcel - anchorStatus - appVolume - targetApi - adapterViewPosition - partialAdRequestInfo - querySpamSignals - connectionStartTime - output - flags - errorCode - errorCode - refreshIntervalInMillis - adRequestInfo - baseUrl - body - clickUrls - impressionUrls - interstitialTimeoutInMillis - isMediation - mediationConfigCacheTimeInMillis - manualTrackingUrls - refreshIntervalInMillis - orientation - adSizeString - fetchTime - debugDialog - activeViewJSON - isCustomRenderAllowed - isNative - useHTTPS - contentUrlOptedOut - isPrefetched - panTokenStatus - gwsQueryId - isFluid - isNativeExpress - rewardItemParcel - rewardVideoStartUrls - rewardGrantedUrls - isUsingDisplayedImpression - adRequestInfo - baseUrl - body - clickUrls - impressionUrls - interstitialTimeoutInMillis - isMediation - mediationConfigCacheTimeInMillis - manualTrackingUrls - refreshIntervalInMillis - orientation - adSizeString - fetchTime - debugDialog - isJavascriptTag - passbackUrl - activeViewJSON - isCustomRenderAllowed - isNative - useHTTPS - contentUrlOptedOut - isPrefetched - panTokenStatus - gwsQueryId - isFluid - isNativeExpress - rewardItemParcel - rewardVideoStartUrls - rewardGrantedUrls - isUsingDisplayedImpression - output - flags - inAppPurchaseSupported - defaultInAppPurchaseSupported - appStreamingSupported - dest - flags - teleportee - dest - flags - content - dest - flags - connectionHint - result - cause - code - data - reply - flags - code - data - reply - flags - versionCode - adRequest - adUnitId - adRequest - adUnitId - output - flags - code - data - reply - flags - userId - code - data - reply - flags - code - data - reply - flags - errorCode - code - data - reply - flags - errorCode - adUnitId - adRequest - listener - userId - versionCode - theType - amount - rewardItem - rewardType - rewardAmount - other - output - flags - code - data - reply - flags - adapter - adapter - adapter - errorCode - adapter - adapter - adapter - adapter - errorCode - adapter - adapter - rewardItem - adapter - buddyApkVersion - clientJarVersion - isClientJar - output - flags - msg - context - listener - serverParameters - adSize - mediationAdRequest - customEventExtras - adapter - adapter - adapter - errorCode - adapter - adapter - adapter - context - listener - serverParameters - mediationAdRequest - customEventExtras - adapter - adapter - adapter - errorCode - adapter - adapter - adapter - context - listener - serverParameters - mediationAdRequest - customEventExtras - adapter - adapter - adapter - adapter - adapter - nativeAdMapper - adapter - view - extras - overrideClickHandling - overrideImpressionRecording - view - body - callToAction - headline - icon - images - price - starRating - store - advertiser - body - callToAction - headline - images - logo - extras - context - listener - serverParameters - adSize - mediationAdRequest - customEventExtras - context - listener - serverParameters - mediationAdRequest - customEventExtras - context - listener - serverParameters - mediationAdRequest - customEventExtras - view - label - label - value - billingResponseCode - resolution - requestCode - resultCode - data - savedInstanceState - adUnitId - adRequest - listener - userId - reward - errorCode - context - mediationAdRequest - userId - listener - serverParameters - networkExtras - mediationAdRequest - serverParameters - networkExtras - adapter - adapter - adapter - errorCode - adapter - adapter - adapter - adapter - errorCode - adapter - adapter - rewardItem - adapter - adapterClass - networkExtrasClass - adapterClass - context - adapterClass - customEventExtras - networkExtras - adapterClass - networkExtras - deviceId - anchorTextColor - backgroundColor - top - bottom - borderColor - borderThickness - borderType - callButtonColor - channelIds - descriptionTextColor - fontFace - headerTextColor - headerTextSize - location - query - requestAgent - tagForChildDirectedTreatment - context - context - attrs - context - attrs - defStyle - searchAdRequest - changed - left - top - right - bottom - widthMeasureSpec - heightMeasureSpec - adListener - adSize - adUnitId - oneByte - buffer - offset - len - objValue - activity - savedInstanceState - activity - activity - activity - activity - savedInstanceState - activity - activity - other - context - context - view - code - data - reply - flags - code - data - reply - flags - code - data - reply - flags - code - data - reply - flags - code - data - reply - flags - code - data - reply - flags - code - data - reply - flags - assetName - code - data - reply - flags - assetName - assetName - assetName - code - data - reply - flags - code - data - reply - flags - code - data - reply - flags - code - data - reply - flags - nameValue - info - manualImpressionsEnabled - useId - error - code - data - reply - flags - code - data - reply - flags - error - code - data - reply - flags - code - data - reply - flags - code - data - reply - flags - code - data - reply - flags - adapter - adapter - adapter - adapter - adapter - adapter - adapter - errorCode - adapter - errorCode - adapter - error - adapter - adapter - adapter - adapter - adapter - adapter - nativeAdMapper - adapter - adapter - adapter - adapter - adapter - adapter - adapter - errorCode - adapter - errorCode - adapter - adapter - adapter - adapter - adapter - adapter - activity - savedInstanceState - outState - code - data - reply - flags - code - data - reply - flags - context - callingPackage - context - adUnitId - callingPackage - context - callingPackage - context - adUnitId - callingPackage - msg - billingResponseCode - resolution - code - data - reply - flags - code - data - reply - flags - requestCode - resultCode - data - code - data - reply - flags - code - data - reply - flags - code - data - reply - flags - productId - code - data - reply - flags - activity - billingResponseCode - resolution - productId - thread - exception - userId - msg - msg - runnable - context - view - context - view - view - other - instance - mayInterruptIfRunning - timeout - unit - mayInterruptIfRunning - timeout - unit - includeDiskFiles - data - mimeType - encoding - baseUrl - data - mimeType - encoding - historyUrl - url - color - context - listener - listener - requestedOrientation - client - client - webView - url - webView - url - view - errorCode - description - failingUrl - view - handler - error - view - evt - webView - url - service - baseValue - intent - webView - consoleMessage - view - isDialog - isUserGesture - resultMsg - url - databaseIdentifier - currentQuota - estimatedSize - totalUsedQuota - quotaUpdater - origin - callback - webView - url - message - result - webView - url - message - result - webView - url - message - result - webView - url - message - defaultValue - result - spaceNeeded - totalUsedQuota - quotaUpdater - view - customViewCallback - webView - url - view - requestedOrientation - customViewCallback - view - url - view - url - view - url - nameValue - key diff --git a/ads/source/Transforms/Metadata.xml b/ads/source/Transforms/Metadata.xml index 64f695626..9708e1e23 100644 --- a/ads/source/Transforms/Metadata.xml +++ b/ads/source/Transforms/Metadata.xml @@ -19,6 +19,7 @@ Android.Gms.Ads.Purchase Android.Gms.Ads.Search Android.Gms.Internal + Android.Gms.Dynamite.Descriptors.Ads.Dynamite name data @@ -39,6 +40,12 @@ + + source + size + dest + flags + public diff --git a/all/nuget/Xamarin.GooglePlayServices.nuspec b/all/nuget/Xamarin.GooglePlayServices.nuspec index 565edace3..6bba3d7f6 100644 --- a/all/nuget/Xamarin.GooglePlayServices.nuspec +++ b/all/nuget/Xamarin.GooglePlayServices.nuspec @@ -8,7 +8,7 @@ Xamarin Inc. true DEPRECATED: Use individual Xamarin Google Play Services packages instead! - Copyright 2013-2016 + Copyright © Microsoft Corporation https://github.com/xamarin/GooglePlayServicesComponents/ https://github.com/xamarin/GooglePlayServicesComponents/blob/master/LICENSE.md https://xamarin-component-icons.s3.amazonaws.com/Xamarin.GooglePlayServices.png @@ -44,6 +44,6 @@ - + diff --git a/all/samples/GpsBuildAll/GpsBuildAll.csproj b/all/samples/GpsBuildAll/GpsBuildAll.csproj index f5883322a..854423009 100644 --- a/all/samples/GpsBuildAll/GpsBuildAll.csproj +++ b/all/samples/GpsBuildAll/GpsBuildAll.csproj @@ -17,8 +17,9 @@ False GpsBuildAll Properties\AndroidManifest.xml - v5.0 + v7.0 true + 2G true @@ -47,11 +48,32 @@ + + ..\..\..\packages\Xamarin.Android.Support.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Compat.dll + + + ..\..\..\packages\Xamarin.Android.Support.Core.UI.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.UI.dll + + + ..\..\..\packages\Xamarin.Android.Support.Core.Utils.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.Utils.dll + + + ..\..\..\packages\Xamarin.Android.Support.Media.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Media.Compat.dll + + + ..\..\..\packages\Xamarin.Android.Support.Fragment.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Fragment.dll + - ..\..\..\packages\Xamarin.Android.Support.v4.23.1.1.1\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll + ..\..\..\packages\Xamarin.Android.Support.v4.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.v4.dll + + + ..\..\..\packages\Xamarin.Android.Support.Vector.Drawable.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Vector.Drawable.dll + + + ..\..\..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Animated.Vector.Drawable.dll - ..\..\..\packages\Xamarin.Android.Support.v7.AppCompat.23.1.1.1\lib\MonoAndroid403\Xamarin.Android.Support.v7.AppCompat.dll + ..\..\..\packages\Xamarin.Android.Support.v7.AppCompat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.v7.AppCompat.dll @@ -111,10 +133,6 @@ {7CB92D61-E2FF-472A-9FDF-7E42D15B3EE6} Maps - - {5C4C77A3-4523-4E2B-895B-6EFE4A6A1617} - Measurement - {A7ADD277-FCAB-46D5-8F18-2E4BFFDA3AE7} Nearby @@ -131,10 +149,6 @@ {7A015585-036A-4BD1-8D46-A669EFA89743} SafetyNet - - {7DD8E926-9F75-4F25-95A3-920A5FF48EF8} - SupportWearable - {72CC5E29-5EA5-40E3-98E4-87ED8AB75589} Vision @@ -143,10 +157,6 @@ {7AF74235-AEE2-4F3A-AEDB-7504ED93DDC0} Wallet - - {92BDA198-6A78-4408-844C-CAAF4C04EAFD} - Wearable - {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE} Basement @@ -159,10 +169,6 @@ {A0CDF507-32B7-4994-8248-94FAB8646E35} Auth - - {8B84EE13-119C-41EB-98E8-E42D3ECD0DFD} - AppState - {A069B942-EE12-4283-9C4C-F46549D3978A} AppInvite @@ -179,5 +185,118 @@ {CC4E534D-4992-4FBB-9528-A071EDDEA7E7} Ads + + {7893F52D-09B9-4441-AC47-6F7875BD68BC} + Analytics.Impl + + + {ECB1F68B-B588-4F3B-9A86-510CF4AAA784} + Ads.Lite + + + {9F7F996D-AF44-4947-8392-07B3ED2ED00D} + Iid + + + {2EA64B09-174C-40D0-9A40-44C2BF10C9D4} + TagManager + + + {B94069F7-2BD5-4695-B7B7-EBAA1C496DD9} + TagManager.Api + + + {53F87D88-8871-41A2-9F81-B79AB02FEC24} + Tasks + + + {DC5BEB52-1715-4E53-88EF-2D4F1708E394} + Firebase-Analytics + + + {CFB0A03A-F787-4EE9-9EA6-8A2A65E82704} + Firebase-Analytics-Impl + + + {865652D3-8D1A-4779-92FC-4C54719286B7} + Firebase-Common + + + {B28F65D1-D8DD-45E8-9DD7-74A3BE40B4CE} + Firebase-Iid + + + {B04C50F7-B0CC-4170-8820-9D584E1C0ED3} + Auth.Base + + + {F53B34FB-4BBC-4314-8D8A-1F0CD959E83F} + Firebase-Auth-Common + + + {62946D89-B6B1-4A38-A04D-C20912087EFD} + Firebase-Auth + + + {7DA24DFC-EF53-4C06-AB7A-FF6BEF513A1B} + Firebase-Auth-Module + + + {00F7A18F-D2C4-4014-8E4C-552A0A0B0967} + Firebase-Config + + + {7076C84E-08AE-404B-8F3C-8F66010FA1B1} + Firebase-Crash + + + {B02737A0-890C-4921-83A5-D77CFB8A6899} + Firebase-Database + + + {2858C3DB-1E15-4D12-AF09-02CFD624ADD4} + Firebase-Database-Connection + + + {2E333450-68BD-48C5-9540-CFA7A053DCA1} + Firebase-Messaging + + + {423414D9-6CB8-4AFF-8317-66AD03B6056D} + Firebase-Storage + + + {C360116C-0ED5-4E59-A974-E95F874B4398} + Firebase-Storage-Common + + + {7DD8E926-9F75-4F25-95A3-920A5FF48EF8} + SupportWearable + + + {92BDA198-6A78-4408-844C-CAAF4C04EAFD} + Wearable + + + {159A8C21-0A5B-4D99-9E07-6466F8E98AF7} + Cast.Framework + + + {44CF1968-FCDA-4141-AE78-1EFD12DDF7D6} + Clearcut + + + {541FC839-6065-4681-B6A4-C3BF358F78E9} + Awareness + + + {D705BF83-81FD-4CD9-AF3B-09C50FF42C83} + Gass + + + {D42D621B-0370-44F6-A58E-0749629F9F4D} + Places + + \ No newline at end of file diff --git a/all/samples/GpsBuildAll/Properties/AndroidManifest.xml b/all/samples/GpsBuildAll/Properties/AndroidManifest.xml index db20a4a57..4daef56ac 100644 --- a/all/samples/GpsBuildAll/Properties/AndroidManifest.xml +++ b/all/samples/GpsBuildAll/Properties/AndroidManifest.xml @@ -1,6 +1,5 @@ - + - - - + + \ No newline at end of file diff --git a/all/samples/GpsBuildAll/Properties/AssemblyInfo.cs b/all/samples/GpsBuildAll/Properties/AssemblyInfo.cs index aa9229ff1..cc2cb686c 100644 --- a/all/samples/GpsBuildAll/Properties/AssemblyInfo.cs +++ b/all/samples/GpsBuildAll/Properties/AssemblyInfo.cs @@ -8,9 +8,9 @@ [assembly: AssemblyTitle ("GpsBuildAll")] [assembly: AssemblyDescription ("")] [assembly: AssemblyConfiguration ("")] -[assembly: AssemblyCompany ("")] +[assembly: AssemblyCompany ("Microsoft Corporation")] [assembly: AssemblyProduct ("")] -[assembly: AssemblyCopyright ("redth")] +[assembly: AssemblyCopyright ("Copyright © Microsoft Corporation")] [assembly: AssemblyTrademark ("")] [assembly: AssemblyCulture ("")] diff --git a/all/samples/GpsBuildAll/packages.config b/all/samples/GpsBuildAll/packages.config index b8f99d6fe..55bb22259 100644 --- a/all/samples/GpsBuildAll/packages.config +++ b/all/samples/GpsBuildAll/packages.config @@ -1,5 +1,12 @@  - - + + + + + + + + + \ No newline at end of file diff --git a/analytics-impl/nuget/Xamarin.GooglePlayServices.Analytics.Impl.template.nuspec b/analytics-impl/nuget/Xamarin.GooglePlayServices.Analytics.Impl.template.nuspec new file mode 100644 index 000000000..76e7b80ad --- /dev/null +++ b/analytics-impl/nuget/Xamarin.GooglePlayServices.Analytics.Impl.template.nuspec @@ -0,0 +1,28 @@ + + + + Xamarin.GooglePlayServices.Analytics.Impl + Xamarin Google Play Services - Analytics Impl + $version$ + Xamarin Inc. + Xamarin Inc. + true + Xamarin.Android Bindings for Google Play Services - Analytics Impl $aar-version$ + + Xamarin.Android Bindings for Google Play Services - Analytics Impl $aar-version$ + + The Google Analytics SDK for Android makes it easy for developers to collect user engagement data form their apps. + + Copyright © Microsoft Corporation + https://github.com/xamarin/GooglePlayServicesComponents/ + https://github.com/xamarin/GooglePlayServicesComponents/blob/master/LICENSE.md + https://raw.githubusercontent.com/xamarin/GooglePlayServicesComponents/master/icons/play-services-analytics-impl_128x128.png + + + + + + + + + diff --git a/measurement/source/Additions/AboutAdditions.txt b/analytics-impl/source/Additions/AboutAdditions.txt similarity index 100% rename from measurement/source/Additions/AboutAdditions.txt rename to analytics-impl/source/Additions/AboutAdditions.txt diff --git a/analytics/source/Additions/IPendingResultExtensions.cs b/analytics-impl/source/Additions/IPendingResultExtensions.cs similarity index 100% rename from analytics/source/Additions/IPendingResultExtensions.cs rename to analytics-impl/source/Additions/IPendingResultExtensions.cs diff --git a/analytics-impl/source/Additions/Manifest.cs b/analytics-impl/source/Additions/Manifest.cs new file mode 100644 index 000000000..880851cfd --- /dev/null +++ b/analytics-impl/source/Additions/Manifest.cs @@ -0,0 +1,6 @@ +using System; +using Android.App; + +[assembly: UsesPermission (Android.Manifest.Permission.Internet)] +[assembly: UsesPermission (Android.Manifest.Permission.AccessNetworkState)] +[assembly: UsesPermission (Android.Manifest.Permission.WakeLock)] diff --git a/analytics-impl/source/Analytics.Impl.csproj b/analytics-impl/source/Analytics.Impl.csproj new file mode 100644 index 000000000..ffb24812b --- /dev/null +++ b/analytics-impl/source/Analytics.Impl.csproj @@ -0,0 +1,80 @@ + + + + Debug + AnyCPU + {10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 8.0.30703 + 2.0 + {7893F52D-09B9-4441-AC47-6F7875BD68BC} + Library + GooglePlayServices.Analytics.Impl + Resources + Assets + False + Xamarin.GooglePlayServices.Analytics.Impl + v7.0 + class-parse + ..\..\externals\docs\reference + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + None + false + + + full + true + bin\Release + prompt + 4 + false + false + + + + + + + + + + + + Properties\GpsConsts.cs + + + + + + + + + + + + + + + + Jars\play-services-analytics-impl.jar + + + + + + {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE} + Basement + + + {3F6BAE25-ADEB-468C-8384-AD655623C341} + Base + + + diff --git a/measurement/source/Jars/AboutJars.txt b/analytics-impl/source/Jars/AboutJars.txt similarity index 100% rename from measurement/source/Jars/AboutJars.txt rename to analytics-impl/source/Jars/AboutJars.txt diff --git a/analytics-impl/source/Properties/AssemblyInfo.cs b/analytics-impl/source/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..a1f951024 --- /dev/null +++ b/analytics-impl/source/Properties/AssemblyInfo.cs @@ -0,0 +1,48 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using Android.App; + +// Information about this assembly is defined by the following attributes. +// Change them to the values specific to your project. + +[assembly: AssemblyTitle ("Xamarin.GooglePlayServices.Analytics.Impl")] +[assembly: AssemblyDescription ("")] +[assembly: AssemblyConfiguration ("")] +[assembly: AssemblyCompany ("Microsoft Corporation")] +[assembly: AssemblyProduct ("")] +[assembly: AssemblyCopyright ("Copyright © Microsoft Corporation")] +[assembly: AssemblyTrademark ("")] +[assembly: AssemblyCulture ("")] + +// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". +// The form "{Major}.{Minor}.*" will automatically update the build and revision, +// and "{Major}.{Minor}.{Build}.*" will update just the revision. + +[assembly: AssemblyVersion ("1.0.0")] + +// The following attributes are used to specify the signing key for the assembly, +// if desired. See the Mono documentation for more information about signing. + +//[assembly: AssemblyDelaySign(false)] +//[assembly: AssemblyKeyFile("")] + +[assembly: Java.Interop.JavaLibraryReference ("classes.jar", + PackageName = __GpsConsts.PackageName, + SourceUrl = __GpsConsts.Url, + EmbeddedArchive = __Consts.AarPath, + Version = __GpsConsts.Version, + Sha1sum = __GpsConsts.Sha1sum)] +// AppCompat-v7 resources +[assembly: Android.IncludeAndroidResourcesFromAttribute ("./", + PackageName = __GpsConsts.PackageName, + SourceUrl = __GpsConsts.Url, + EmbeddedArchive = __Consts.AarPath, + Version = __GpsConsts.Version, + Sha1sum = __GpsConsts.Sha1sum)] + +// Google Addon feed with GPS in it: +// https://dl-ssl.google.com/android/repository/addon.xml + +static class __Consts { + public const string AarPath = "m2repository/com/google/android/gms/play-services-analytics-impl/" + __GpsConsts.Version + "/play-services-analytics-impl-" + __GpsConsts.Version + ".aar"; +} diff --git a/measurement/source/Transforms/EnumFields.xml b/analytics-impl/source/Transforms/EnumFields.xml similarity index 100% rename from measurement/source/Transforms/EnumFields.xml rename to analytics-impl/source/Transforms/EnumFields.xml diff --git a/measurement/source/Transforms/EnumMethods.xml b/analytics-impl/source/Transforms/EnumMethods.xml similarity index 100% rename from measurement/source/Transforms/EnumMethods.xml rename to analytics-impl/source/Transforms/EnumMethods.xml diff --git a/analytics-impl/source/Transforms/Metadata.generated.xml b/analytics-impl/source/Transforms/Metadata.generated.xml new file mode 100644 index 000000000..26c2f6238 --- /dev/null +++ b/analytics-impl/source/Transforms/Metadata.generated.xml @@ -0,0 +1,2 @@ + + diff --git a/analytics-impl/source/Transforms/Metadata.xml b/analytics-impl/source/Transforms/Metadata.xml new file mode 100644 index 000000000..8bf27525f --- /dev/null +++ b/analytics-impl/source/Transforms/Metadata.xml @@ -0,0 +1,105 @@ + + + + Android.Gms.Analytics + Android.Gms.Analytics.Internal + Android.Gms.Analytics.Ecommerce + Android.Gms.Tagmanager + + TagManagerClass + + + + + + + + + + + + source + size + dest + flags + + containerHolder + containerVersion + + + + + + Java.Lang.Object + Java.Lang.Object + + + public + + + com.google.android.gms.analytics.HitBuilders.HitBuilder + com.google.android.gms.analytics.HitBuilders.HitBuilder + com.google.android.gms.analytics.HitBuilders.HitBuilder + com.google.android.gms.analytics.HitBuilders.HitBuilder + com.google.android.gms.analytics.HitBuilders.HitBuilder + com.google.android.gms.analytics.HitBuilders.HitBuilder + com.google.android.gms.analytics.HitBuilders.HitBuilder + com.google.android.gms.analytics.HitBuilders.HitBuilder + com.google.android.gms.analytics.HitBuilders.HitBuilder + com.google.android.gms.analytics.HitBuilders.HitBuilder + com.google.android.gms.analytics.HitBuilders.HitBuilder + com.google.android.gms.analytics.HitBuilders.HitBuilder + com.google.android.gms.analytics.HitBuilders.HitBuilder + + com.google.android.gms.analytics.HitBuilders.EventBuilder + com.google.android.gms.analytics.HitBuilders.EventBuilder + com.google.android.gms.analytics.HitBuilders.EventBuilder + com.google.android.gms.analytics.HitBuilders.EventBuilder + + com.google.android.gms.analytics.HitBuilders.ExceptionBuilder + com.google.android.gms.analytics.HitBuilders.ExceptionBuilder + + com.google.android.gms.analytics.HitBuilders.ItemBuilder + com.google.android.gms.analytics.HitBuilders.ItemBuilder + com.google.android.gms.analytics.HitBuilders.ItemBuilder + com.google.android.gms.analytics.HitBuilders.ItemBuilder + com.google.android.gms.analytics.HitBuilders.ItemBuilder + com.google.android.gms.analytics.HitBuilders.ItemBuilder + com.google.android.gms.analytics.HitBuilders.ItemBuilder + + com.google.android.gms.analytics.HitBuilders.SocialBuilder + com.google.android.gms.analytics.HitBuilders.SocialBuilder + com.google.android.gms.analytics.HitBuilders.SocialBuilder + + com.google.android.gms.analytics.HitBuilders.TimingBuilder + com.google.android.gms.analytics.HitBuilders.TimingBuilder + com.google.android.gms.analytics.HitBuilders.TimingBuilder + com.google.android.gms.analytics.HitBuilders.TimingBuilder + + com.google.android.gms.analytics.HitBuilders.TransactionBuilder + com.google.android.gms.analytics.HitBuilders.TransactionBuilder + com.google.android.gms.analytics.HitBuilders.TransactionBuilder + com.google.android.gms.analytics.HitBuilders.TransactionBuilder + com.google.android.gms.analytics.HitBuilders.TransactionBuilder + com.google.android.gms.analytics.HitBuilders.TransactionBuilder + + + + java.util.Map<java.lang.String, java.lang.String> + java.util.Map<java.lang.String, java.lang.String> + java.util.Map<java.lang.String, java.lang.String> + java.util.Map<java.lang.String, java.lang.String> + java.util.Map<java.lang.String, java.lang.String> + java.util.Map<java.lang.String, java.lang.String> + java.util.Map<java.lang.String, java.lang.String> + java.util.Map<java.lang.String, java.lang.String> + + + + diff --git a/analytics/component/component.template.yaml b/analytics/component/component.template.yaml index 620a50c55..59ea23ccc 100644 --- a/analytics/component/component.template.yaml +++ b/analytics/component/component.template.yaml @@ -4,14 +4,10 @@ id: googleplayservices-analytics publisher: Xamarin Inc. publisher-url: http://xamarin.com summary: Collect data from your mobile apps. -license: ../../component/License.md +license: ../../License.md icons: - - icons/googleplayservices-analytics_128x128.png - - icons/googleplayservices-analytics_512x512.png -libraries: - android: - - ../../output/Xamarin.GooglePlayServices.Analytics.dll - - ../../output/Xamarin.GooglePlayServices.Basement.dll + - ../../icons/play-services-analytics_128x128.png + - ../../icons/play-services-analytics_512x512.png is_shell: true packages: android: @@ -20,12 +16,18 @@ samples: - name: "Analytics Sample" path: ../../analytics/samples/AnalyticsSample.sln removeProjects: - - Xamarin.GooglePlayServices.Basement - - Xamarin.GooglePlayServices.Analytics + - Base + - Basement + - Tasks + - Analytics + - Analytics.Impl installNuGets: - project: AnalyticsSample packages: + - Xamarin.GooglePlayServices.Base - Xamarin.GooglePlayServices.Basement + - Xamarin.GooglePlayServices.Tasks - Xamarin.GooglePlayServices.Analytics + - Xamarin.GooglePlayServices.Analytics.Impl local-nuget-repo: ../../output/ no_build: true diff --git a/analytics/component/icons/googleplayservices-analytics_128x128.png b/analytics/component/icons/googleplayservices-analytics_128x128.png deleted file mode 100644 index 18ffec9cd..000000000 Binary files a/analytics/component/icons/googleplayservices-analytics_128x128.png and /dev/null differ diff --git a/analytics/component/icons/googleplayservices-analytics_512x512.png b/analytics/component/icons/googleplayservices-analytics_512x512.png deleted file mode 100644 index 04b7cb4a3..000000000 Binary files a/analytics/component/icons/googleplayservices-analytics_512x512.png and /dev/null differ diff --git a/analytics/nuget/Xamarin.GooglePlayServices.Analytics.nuspec b/analytics/nuget/Xamarin.GooglePlayServices.Analytics.template.nuspec similarity index 64% rename from analytics/nuget/Xamarin.GooglePlayServices.Analytics.nuspec rename to analytics/nuget/Xamarin.GooglePlayServices.Analytics.template.nuspec index e3560c622..91c8d2c44 100644 --- a/analytics/nuget/Xamarin.GooglePlayServices.Analytics.nuspec +++ b/analytics/nuget/Xamarin.GooglePlayServices.Analytics.template.nuspec @@ -7,21 +7,23 @@ Xamarin Inc. Xamarin Inc. true - Xamarin.Android Bindings for Google Play Services - Analytics + Xamarin.Android Bindings for Google Play Services - Analytics $aar-version$ - Xamarin.Android Bindings for Google Play Services - Analytics + Xamarin.Android Bindings for Google Play Services - Analytics $aar-version$ The Google Analytics SDK for Android makes it easy for developers to collect user engagement data form their apps. - Copyright 2013-2016 + Copyright © Microsoft Corporation http://components.xamarin.com/view/googleplayservices-analytics/ http://components.xamarin.com/license/googleplayservices-analytics/ - https://xamarin-component-icons.s3.amazonaws.com/Xamarin.GooglePlayServices.Analytics.png + https://raw.githubusercontent.com/xamarin/GooglePlayServicesComponents/master/icons/play-services-analytics_128x128.png + + - + diff --git a/analytics/samples/AnalyticsSample.UITests/AnalyticsSample.UITests.csproj b/analytics/samples/AnalyticsSample.UITests/AnalyticsSample.UITests.csproj index effe2383f..443f21d2b 100644 --- a/analytics/samples/AnalyticsSample.UITests/AnalyticsSample.UITests.csproj +++ b/analytics/samples/AnalyticsSample.UITests/AnalyticsSample.UITests.csproj @@ -31,12 +31,12 @@ - - ..\packages\Xamarin.UITest.1.1.1\lib\Xamarin.UITest.dll - ..\packages\NUnit.2.6.4\lib\nunit.framework.dll + + ..\packages\Xamarin.UITest.2.0.1\lib\Xamarin.UITest.dll + diff --git a/analytics/samples/AnalyticsSample.UITests/packages.config b/analytics/samples/AnalyticsSample.UITests/packages.config index 2d9e3ac42..f55a18725 100644 --- a/analytics/samples/AnalyticsSample.UITests/packages.config +++ b/analytics/samples/AnalyticsSample.UITests/packages.config @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/analytics/samples/AnalyticsSample.sln b/analytics/samples/AnalyticsSample.sln index a756b26fe..160b6c825 100644 --- a/analytics/samples/AnalyticsSample.sln +++ b/analytics/samples/AnalyticsSample.sln @@ -9,6 +9,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Analytics", "..\source\Anal EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Basement", "..\..\basement\source\Basement.csproj", "{6A38FACF-F0C5-4A49-8A8A-7CE6634207CE}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Analytics.Impl", "..\..\analytics-impl\source\Analytics.Impl.csproj", "{7893F52D-09B9-4441-AC47-6F7875BD68BC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Base", "..\..\base\source\Base.csproj", "{3F6BAE25-ADEB-468C-8384-AD655623C341}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tasks", "..\..\tasks\source\Tasks.csproj", "{53F87D88-8871-41A2-9F81-B79AB02FEC24}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -31,5 +37,17 @@ Global {EA04524D-2A97-4ED0-AD74-21F8C30DF4A5}.Debug|Any CPU.Build.0 = Debug|Any CPU {EA04524D-2A97-4ED0-AD74-21F8C30DF4A5}.Release|Any CPU.ActiveCfg = Release|Any CPU {EA04524D-2A97-4ED0-AD74-21F8C30DF4A5}.Release|Any CPU.Build.0 = Release|Any CPU + {7893F52D-09B9-4441-AC47-6F7875BD68BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7893F52D-09B9-4441-AC47-6F7875BD68BC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7893F52D-09B9-4441-AC47-6F7875BD68BC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7893F52D-09B9-4441-AC47-6F7875BD68BC}.Release|Any CPU.Build.0 = Release|Any CPU + {3F6BAE25-ADEB-468C-8384-AD655623C341}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3F6BAE25-ADEB-468C-8384-AD655623C341}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3F6BAE25-ADEB-468C-8384-AD655623C341}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3F6BAE25-ADEB-468C-8384-AD655623C341}.Release|Any CPU.Build.0 = Release|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Debug|Any CPU.Build.0 = Debug|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Release|Any CPU.ActiveCfg = Release|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/analytics/samples/AnalyticsSample/AnalyticsSample.csproj b/analytics/samples/AnalyticsSample/AnalyticsSample.csproj index bfe17063e..96b1d7fe7 100644 --- a/analytics/samples/AnalyticsSample/AnalyticsSample.csproj +++ b/analytics/samples/AnalyticsSample/AnalyticsSample.csproj @@ -17,7 +17,7 @@ False Analytics Properties\AndroidManifest.xml - v5.0 + v7.0 armeabi;armeabi-v7a;x86;arm64-v8a;x86_64 @@ -45,11 +45,32 @@ + + ..\packages\Xamarin.Android.Support.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Compat.dll + + + ..\packages\Xamarin.Android.Support.Core.UI.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.UI.dll + + + ..\packages\Xamarin.Android.Support.Core.Utils.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.Utils.dll + + + ..\packages\Xamarin.Android.Support.Media.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Media.Compat.dll + + + ..\packages\Xamarin.Android.Support.Fragment.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Fragment.dll + - ..\packages\Xamarin.Android.Support.v4.23.1.1.1\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll + ..\packages\Xamarin.Android.Support.v4.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.v4.dll + + + ..\packages\Xamarin.Android.Support.Vector.Drawable.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Vector.Drawable.dll + + + ..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Animated.Vector.Drawable.dll - ..\packages\Xamarin.Android.Support.v7.AppCompat.23.1.1.1\lib\MonoAndroid403\Xamarin.Android.Support.v7.AppCompat.dll + ..\packages\Xamarin.Android.Support.v7.AppCompat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.v7.AppCompat.dll @@ -99,5 +120,18 @@ {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE} Basement + + {7893F52D-09B9-4441-AC47-6F7875BD68BC} + Analytics.Impl + + + {3F6BAE25-ADEB-468C-8384-AD655623C341} + Base + + + {53F87D88-8871-41A2-9F81-B79AB02FEC24} + Tasks + + \ No newline at end of file diff --git a/analytics/samples/AnalyticsSample/Properties/AssemblyInfo.cs b/analytics/samples/AnalyticsSample/Properties/AssemblyInfo.cs index 9e09f8958..16f13ca6b 100644 --- a/analytics/samples/AnalyticsSample/Properties/AssemblyInfo.cs +++ b/analytics/samples/AnalyticsSample/Properties/AssemblyInfo.cs @@ -8,9 +8,9 @@ [assembly: AssemblyTitle ("Analytics")] [assembly: AssemblyDescription ("")] [assembly: AssemblyConfiguration ("")] -[assembly: AssemblyCompany ("")] +[assembly: AssemblyCompany ("Microsoft Corporation")] [assembly: AssemblyProduct ("")] -[assembly: AssemblyCopyright ("redth")] +[assembly: AssemblyCopyright ("Copyright © Microsoft Corporation")] [assembly: AssemblyTrademark ("")] [assembly: AssemblyCulture ("")] diff --git a/analytics/samples/AnalyticsSample/packages.config b/analytics/samples/AnalyticsSample/packages.config index 508542c3b..55bb22259 100644 --- a/analytics/samples/AnalyticsSample/packages.config +++ b/analytics/samples/AnalyticsSample/packages.config @@ -1,5 +1,12 @@ - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/analytics/source/Additions/Manifest.cs b/analytics/source/Additions/Manifest.cs index 4c536c90e..880851cfd 100644 --- a/analytics/source/Additions/Manifest.cs +++ b/analytics/source/Additions/Manifest.cs @@ -3,4 +3,4 @@ [assembly: UsesPermission (Android.Manifest.Permission.Internet)] [assembly: UsesPermission (Android.Manifest.Permission.AccessNetworkState)] - +[assembly: UsesPermission (Android.Manifest.Permission.WakeLock)] diff --git a/analytics/source/Analytics.csproj b/analytics/source/Analytics.csproj index ee74af4fa..b269feb39 100644 --- a/analytics/source/Analytics.csproj +++ b/analytics/source/Analytics.csproj @@ -3,7 +3,7 @@ Debug AnyCPU - {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 8.0.30703 2.0 {EA04524D-2A97-4ED0-AD74-21F8C30DF4A5} @@ -13,7 +13,8 @@ Assets False Xamarin.GooglePlayServices.Analytics - v4.1 + v7.0 + class-parse ..\..\externals\docs\reference @@ -44,7 +45,6 @@ - Properties\GpsConsts.cs @@ -71,5 +71,17 @@ {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE} Basement + + {7893F52D-09B9-4441-AC47-6F7875BD68BC} + Analytics.Impl + + + {3F6BAE25-ADEB-468C-8384-AD655623C341} + Base + + + {53F87D88-8871-41A2-9F81-B79AB02FEC24} + Tasks + - \ No newline at end of file + diff --git a/analytics/source/Properties/AssemblyInfo.cs b/analytics/source/Properties/AssemblyInfo.cs index 49e6d3437..f0a1b2e20 100644 --- a/analytics/source/Properties/AssemblyInfo.cs +++ b/analytics/source/Properties/AssemblyInfo.cs @@ -8,9 +8,9 @@ [assembly: AssemblyTitle ("Xamarin.GooglePlayServices.Analytics")] [assembly: AssemblyDescription ("")] [assembly: AssemblyConfiguration ("")] -[assembly: AssemblyCompany ("Xamarin")] +[assembly: AssemblyCompany ("Microsoft Corporation")] [assembly: AssemblyProduct ("")] -[assembly: AssemblyCopyright ("Xamarin")] +[assembly: AssemblyCopyright ("Copyright © Microsoft Corporation")] [assembly: AssemblyTrademark ("")] [assembly: AssemblyCulture ("")] @@ -27,21 +27,22 @@ //[assembly: AssemblyKeyFile("")] [assembly: Java.Interop.JavaLibraryReference ("classes.jar", - PackageName = __Consts.PackageName, + PackageName = __GpsConsts.PackageName, SourceUrl = __GpsConsts.Url, EmbeddedArchive = __Consts.AarPath, - Version = __GpsConsts.Version)] + Version = __GpsConsts.Version, + Sha1sum = __GpsConsts.Sha1sum)] // AppCompat-v7 resources [assembly: Android.IncludeAndroidResourcesFromAttribute ("./", - PackageName = __Consts.PackageName, + PackageName = __GpsConsts.PackageName, SourceUrl = __GpsConsts.Url, EmbeddedArchive = __Consts.AarPath, - Version = __GpsConsts.Version)] + Version = __GpsConsts.Version, + Sha1sum = __GpsConsts.Sha1sum)] // Google Addon feed with GPS in it: // https://dl-ssl.google.com/android/repository/addon.xml static class __Consts { - public const string PackageName = "GPS Analytics"; public const string AarPath = "m2repository/com/google/android/gms/play-services-analytics/" + __GpsConsts.Version + "/play-services-analytics-" + __GpsConsts.Version + ".aar"; -} \ No newline at end of file +} diff --git a/analytics/source/Transforms/Metadata.generated.xml b/analytics/source/Transforms/Metadata.generated.xml index df2630f95..26c2f6238 100644 --- a/analytics/source/Transforms/Metadata.generated.xml +++ b/analytics/source/Transforms/Metadata.generated.xml @@ -1,256 +1,2 @@ - context - intent - intent - intent - flags - startId - context - intent - intent - intent - flags - startId - threadName - tValue - tracker - originalHandler - context - exceptionParser - tValue - eValue - context - application - context - configResId - trackingId - activity - activity - optOut - dryRun - dispatchPeriodInSeconds - logger - category - action - action - category - label - value - description - fatal - product - impressionList - product - promotion - paramName - paramName - paramValue - parameters - utmParams - index - dimension - index - metric - hitType - nonInteraction - action - action - category - currencyCode - nameValue - price - quantity - sku - transactionid - action - network - target - category - variable - value - category - label - value - variable - affiliation - currencyCode - revenue - shipping - tax - transactionid - exception - message - message - logLevel - message - message - context - additionalPackages - tValue - tValue - threadName - tValue - cause - element - threadName - context - additionalPackages - enabled - enabled - enable - key - parameters - key - value - anonymize - appId - appInstallerId - appName - appVersion - uri - clientId - encoding - hostname - language - location - page - referrer - sampleRate - screenColors - screenName - width - height - sessionTimeout - title - useSecure - viewportSize - enable - value - value - value - index - value - index - value - value - value - value - value - value - value - action - value - value - value - value - value - value - value - value - value - value - value - value - value - value - output - flags - code - data - reply - flags - logger - msg - dispatchPeriodInSeconds - nameValue - binder - nameValue - nameValue - nameValue - nameValue - nameValue - oValue - output - oValue - output - oValue - output - oValue - output - oValue - output - oValue - output - oValue - output - oValue - output - oValue - output - oValue - output - oValue - output - nameValue - value - clientId - percentage - userId - value - value - value - value - nameValue - language - description - screenName - milliseconds - oValue - output - key - key - key - key - customMacroName - customMacroCallback - customTagName - customTagCallback - customMacroName - customTagName - listener - key - objects - objects - key - value - update - eventName - update - savedInstanceState - context - containerId - defaultContainerResourceId - containerId - defaultContainerResourceId - handler - containerId - defaultContainerResourceId - containerId - defaultContainerResourceId - handler - containerId - defaultContainerResourceId - containerId - defaultContainerResourceId - handler - enableVerboseLogging - nameValue - message - logLevel - message - key - value - message - logLevel - message diff --git a/analytics/source/Transforms/Metadata.xml b/analytics/source/Transforms/Metadata.xml index 44116743b..acba0a41e 100644 --- a/analytics/source/Transforms/Metadata.xml +++ b/analytics/source/Transforms/Metadata.xml @@ -17,6 +17,12 @@ + + source + size + dest + flags + containerHolder containerVersion diff --git a/appindexing/component/component.template.yaml b/appindexing/component/component.template.yaml index c73cf49fd..492707f0e 100644 --- a/appindexing/component/component.template.yaml +++ b/appindexing/component/component.template.yaml @@ -4,15 +4,10 @@ id: googleplayservices-appindexing publisher: Xamarin Inc. publisher-url: http://xamarin.com summary: Get your app found in Google Search. -license: ../../component/License.md +license: ../../License.md icons: - - icons/googleplayservices-appindexing_128x128.png - - icons/googleplayservices-appindexing_512x512.png -libraries: - android: - - ../../output/Xamarin.GooglePlayServices.AppIndexing.dll - - ../../output/Xamarin.GooglePlayServices.Basement.dll - - ../../output/Xamarin.GooglePlayServices.Base.dll + - ../../icons/play-services-appindexing_128x128.png + - ../../icons/play-services-appindexing_512x512.png is_shell: true packages: android: @@ -21,14 +16,18 @@ samples: - name: "AppIndexing Sample" path: ../../appindexing/samples/AppIndexingSample.sln removeProjects: - - Xamarin.GooglePlayServices.Base - - Xamarin.GooglePlayServices.Basement - - Xamarin.GooglePlayServices.AppIndexing + - Base + - Basement + - Tasks + - Firebase-Common + - AppIndexing installNuGets: - project: AppIndexingSample packages: - Xamarin.GooglePlayServices.Base - Xamarin.GooglePlayServices.Basement + - Xamarin.GooglePlayServices.Tasks + - Xamarin.Firebase.Common - Xamarin.GooglePlayServices.AppIndexing local-nuget-repo: ../../output/ no_build: true diff --git a/appindexing/component/icons/googleplayservices-appindexing_128x128.png b/appindexing/component/icons/googleplayservices-appindexing_128x128.png deleted file mode 100644 index a97f0b5b4..000000000 Binary files a/appindexing/component/icons/googleplayservices-appindexing_128x128.png and /dev/null differ diff --git a/appindexing/component/icons/googleplayservices-appindexing_512x512.png b/appindexing/component/icons/googleplayservices-appindexing_512x512.png deleted file mode 100644 index 4d947b246..000000000 Binary files a/appindexing/component/icons/googleplayservices-appindexing_512x512.png and /dev/null differ diff --git a/appindexing/nuget/Xamarin.GooglePlayServices.AppIndexing.nuspec b/appindexing/nuget/Xamarin.GooglePlayServices.AppIndexing.template.nuspec similarity index 69% rename from appindexing/nuget/Xamarin.GooglePlayServices.AppIndexing.nuspec rename to appindexing/nuget/Xamarin.GooglePlayServices.AppIndexing.template.nuspec index 4b73eeac3..819d65c7f 100644 --- a/appindexing/nuget/Xamarin.GooglePlayServices.AppIndexing.nuspec +++ b/appindexing/nuget/Xamarin.GooglePlayServices.AppIndexing.template.nuspec @@ -7,22 +7,24 @@ Xamarin Inc. Xamarin Inc. true - Xamarin.Android Bindings for Google Play Services - AppIndexing + Xamarin.Android Bindings for Google Play Services - AppIndexing $aar-version$ - Xamarin.Android Bindings for Google Play Services - AppIndexing + Xamarin.Android Bindings for Google Play Services - AppIndexing $aar-version$ App Indexing helps you get your app found in Google Search. Once your app is indexed, mobile users who search for content related to your app can see an install button to your Android app in Search results. This helps you increase your install base. - Copyright 2013-2016 + Copyright © Microsoft Corporation http://components.xamarin.com/view/googleplayservices-appindexing/ http://components.xamarin.com/license/googleplayservices-appindexing/ - https://xamarin-component-icons.s3.amazonaws.com/Xamarin.GooglePlayServices.AppIndexing.png + https://raw.githubusercontent.com/xamarin/GooglePlayServicesComponents/master/icons/play-services-appindexing_128x128.png + + - + diff --git a/appindexing/samples/AppIndexingSample.UITests/AppIndexingSample.UITests.csproj b/appindexing/samples/AppIndexingSample.UITests/AppIndexingSample.UITests.csproj index 68fe6af2f..5b57ca3f0 100644 --- a/appindexing/samples/AppIndexingSample.UITests/AppIndexingSample.UITests.csproj +++ b/appindexing/samples/AppIndexingSample.UITests/AppIndexingSample.UITests.csproj @@ -29,12 +29,12 @@ - - ..\packages\Xamarin.UITest.1.1.1\lib\Xamarin.UITest.dll - ..\packages\NUnit.2.6.4\lib\nunit.framework.dll + + ..\packages\Xamarin.UITest.2.0.1\lib\Xamarin.UITest.dll + diff --git a/appindexing/samples/AppIndexingSample.UITests/packages.config b/appindexing/samples/AppIndexingSample.UITests/packages.config index 2d9e3ac42..f55a18725 100644 --- a/appindexing/samples/AppIndexingSample.UITests/packages.config +++ b/appindexing/samples/AppIndexingSample.UITests/packages.config @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/appindexing/samples/AppIndexingSample.sln b/appindexing/samples/AppIndexingSample.sln index 6ed6d9f8c..0ce4fd24e 100644 --- a/appindexing/samples/AppIndexingSample.sln +++ b/appindexing/samples/AppIndexingSample.sln @@ -9,6 +9,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Basement", "..\..\basement\ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AppIndexing", "..\source\AppIndexing.csproj", "{A069B942-EE12-4283-8C4C-F46549D3978A}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Base", "..\..\base\source\Base.csproj", "{3F6BAE25-ADEB-468C-8384-AD655623C341}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Firebase-Common", "..\..\firebase-common\source\Firebase-Common.csproj", "{865652D3-8D1A-4779-92FC-4C54719286B7}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tasks", "..\..\tasks\source\Tasks.csproj", "{53F87D88-8871-41A2-9F81-B79AB02FEC24}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -31,5 +37,17 @@ Global {AC99F948-17A9-464E-8033-429D6C1D23F2}.Debug|Any CPU.Build.0 = Debug|Any CPU {AC99F948-17A9-464E-8033-429D6C1D23F2}.Release|Any CPU.ActiveCfg = Release|Any CPU {AC99F948-17A9-464E-8033-429D6C1D23F2}.Release|Any CPU.Build.0 = Release|Any CPU + {3F6BAE25-ADEB-468C-8384-AD655623C341}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3F6BAE25-ADEB-468C-8384-AD655623C341}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3F6BAE25-ADEB-468C-8384-AD655623C341}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3F6BAE25-ADEB-468C-8384-AD655623C341}.Release|Any CPU.Build.0 = Release|Any CPU + {865652D3-8D1A-4779-92FC-4C54719286B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {865652D3-8D1A-4779-92FC-4C54719286B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {865652D3-8D1A-4779-92FC-4C54719286B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {865652D3-8D1A-4779-92FC-4C54719286B7}.Release|Any CPU.Build.0 = Release|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Debug|Any CPU.Build.0 = Debug|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Release|Any CPU.ActiveCfg = Release|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/appindexing/samples/AppIndexingSample/AppIndexingSample.csproj b/appindexing/samples/AppIndexingSample/AppIndexingSample.csproj index 7fb595ff6..ad85f84bd 100644 --- a/appindexing/samples/AppIndexingSample/AppIndexingSample.csproj +++ b/appindexing/samples/AppIndexingSample/AppIndexingSample.csproj @@ -13,9 +13,9 @@ Resource Resources\Resource.designer.cs True - True + false AppIndexingSample - v6.0 + v7.0 armeabi;armeabi-v7a;x86;arm64-v8a;x86_64 @@ -43,8 +43,23 @@ + + ..\packages\Xamarin.Android.Support.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Compat.dll + + + ..\packages\Xamarin.Android.Support.Core.UI.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.UI.dll + + + ..\packages\Xamarin.Android.Support.Core.Utils.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.Utils.dll + + + ..\packages\Xamarin.Android.Support.Media.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Media.Compat.dll + + + ..\packages\Xamarin.Android.Support.Fragment.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Fragment.dll + - ..\packages\Xamarin.Android.Support.v4.23.1.1.1\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll + ..\packages\Xamarin.Android.Support.v4.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.v4.dll @@ -82,5 +97,17 @@ {A069B942-EE12-4283-8C4C-F46549D3978A} AppIndexing + + {3F6BAE25-ADEB-468C-8384-AD655623C341} + Base + + + {865652D3-8D1A-4779-92FC-4C54719286B7} + Firebase-Common + + + {53F87D88-8871-41A2-9F81-B79AB02FEC24} + Tasks + \ No newline at end of file diff --git a/appindexing/samples/AppIndexingSample/Properties/AndroidManifest.xml b/appindexing/samples/AppIndexingSample/Properties/AndroidManifest.xml index d033dc9c0..22addf0b7 100644 --- a/appindexing/samples/AppIndexingSample/Properties/AndroidManifest.xml +++ b/appindexing/samples/AppIndexingSample/Properties/AndroidManifest.xml @@ -3,4 +3,5 @@ + diff --git a/appindexing/samples/AppIndexingSample/Properties/AssemblyInfo.cs b/appindexing/samples/AppIndexingSample/Properties/AssemblyInfo.cs index 017c4298f..02cc65eab 100644 --- a/appindexing/samples/AppIndexingSample/Properties/AssemblyInfo.cs +++ b/appindexing/samples/AppIndexingSample/Properties/AssemblyInfo.cs @@ -8,9 +8,9 @@ [assembly: AssemblyTitle ("AppIndexingSample")] [assembly: AssemblyDescription ("")] [assembly: AssemblyConfiguration ("")] -[assembly: AssemblyCompany ("")] +[assembly: AssemblyCompany ("Microsoft Corporation")] [assembly: AssemblyProduct ("")] -[assembly: AssemblyCopyright ("redth")] +[assembly: AssemblyCopyright ("Copyright © Microsoft Corporation")] [assembly: AssemblyTrademark ("")] [assembly: AssemblyCulture ("")] diff --git a/appindexing/samples/AppIndexingSample/packages.config b/appindexing/samples/AppIndexingSample/packages.config index 01c2aac28..71e0c9953 100644 --- a/appindexing/samples/AppIndexingSample/packages.config +++ b/appindexing/samples/AppIndexingSample/packages.config @@ -1,4 +1,9 @@ - - - + + + + + + + + \ No newline at end of file diff --git a/appindexing/source/Additions/Additions.cs b/appindexing/source/Additions/Additions.cs index 6c4f0a599..0c8982205 100644 --- a/appindexing/source/Additions/Additions.cs +++ b/appindexing/source/Additions/Additions.cs @@ -1,4 +1,6 @@ using System; +using Java.Interop; +using Android.Runtime; namespace Android.Gms.AppIndexing { @@ -16,3 +18,75 @@ public static Android.Gms.Common.Apis.Api Api { } } +namespace Firebase.AppIndexing +{ + [Register ("com/google/firebase/appindexing/Indexable", "", "Firebase.AppIndexing.IIndexableInvoker")] + public interface IIndexable : IJavaObject, IDisposable + { + } + + [Register ("com/google/firebase/appindexing/Indexable", DoNotGenerateAcw = true)] + internal class IIndexableInvoker : Java.Lang.Object, IIndexable, IJavaObject, IDisposable + { + // + // Static Fields + // + private static IntPtr java_class_ref = JNIEnv.FindClass ("com/google/firebase/appindexing/Indexable"); + + private IntPtr class_ref; + + + // + // Properties + // + protected override IntPtr ThresholdClass { + get { + return this.class_ref; + } + } + + protected override Type ThresholdType { + get { + return typeof(IIndexableInvoker); + } + } + + // + // Constructors + // + public IIndexableInvoker (IntPtr handle, JniHandleOwnership transfer) : base (IIndexableInvoker.Validate (handle), transfer) + { + IntPtr objectClass = JNIEnv.GetObjectClass (base.Handle); + this.class_ref = JNIEnv.NewGlobalRef (objectClass); + JNIEnv.DeleteLocalRef (objectClass); + } + + // + // Static Methods + // + public static IIndexable GetObject (IntPtr handle, JniHandleOwnership transfer) + { + return Java.Lang.Object.GetObject (handle, transfer); + } + + private static IntPtr Validate (IntPtr handle) + { + if (!JNIEnv.IsInstanceOf (handle, IIndexableInvoker.java_class_ref)) { + throw new InvalidCastException (string.Format ("Unable to convert instance of type '{0}' to type '{1}'.", JNIEnv.GetClassNameFromInstance (handle), "com.google.firebase.IIndexable")); + } + return handle; + } + + // + // Methods + // + protected override void Dispose (bool disposing) + { + if (this.class_ref != IntPtr.Zero) { + JNIEnv.DeleteGlobalRef (this.class_ref); + } + this.class_ref = IntPtr.Zero; + base.Dispose (disposing); + } + } +} \ No newline at end of file diff --git a/appindexing/source/Additions/IPendingResultExtensions.cs b/appindexing/source/Additions/IPendingResultExtensions.cs index 66593337e..d93f56ef1 100644 --- a/appindexing/source/Additions/IPendingResultExtensions.cs +++ b/appindexing/source/Additions/IPendingResultExtensions.cs @@ -15,21 +15,26 @@ public static async Task EndAsync (this IAppIndexApi api, GoogleApiCli public static async Task StartAsync (this IAppIndexApi api, GoogleApiClient apiClient, global::Android.Gms.AppIndexing.Action action) { return (await api.Start (apiClient, action)).JavaCast (); } + [Obsolete] public static async Task ViewAsync (this IAppIndexApi api, GoogleApiClient apiClient, Android.App.Activity activity, Android.Content.Intent viewIntent, string title, Android.Net.Uri webUrl, IList outLinks) { return (await api.View (apiClient, activity, viewIntent, title, webUrl, outLinks)).JavaCast (); } + [Obsolete] public static async Task ViewAsync (this IAppIndexApi api, GoogleApiClient apiClient, Android.App.Activity activity, Android.Net.Uri appIndexingUrl, string title, Android.Net.Uri webUrl, IList outLinks) { return (await api.View (apiClient, activity, appIndexingUrl, title, webUrl, outLinks)).JavaCast (); } + [Obsolete] public static async Task ViewEndAsync (this IAppIndexApi api, GoogleApiClient apiClient, Android.App.Activity activity, Android.Content.Intent viewIntent) { return (await api.ViewEnd (apiClient, activity, viewIntent)).JavaCast (); } + [Obsolete] public static async Task ViewEndAsync (this IAppIndexApi api, GoogleApiClient apiClient, Android.App.Activity activity, Android.Net.Uri appUri) { return (await api.ViewEnd (apiClient, activity, appUri)).JavaCast (); } } public static partial class IAppIndexApiActionResultExtensions { + [Obsolete] public static async Task EndAsync (this IAppIndexApiActionResult api, GoogleApiClient apiClient) { return (await api.End (apiClient)).JavaCast (); } diff --git a/appindexing/source/AppIndexing.csproj b/appindexing/source/AppIndexing.csproj index db858161b..ab1935935 100644 --- a/appindexing/source/AppIndexing.csproj +++ b/appindexing/source/AppIndexing.csproj @@ -3,7 +3,7 @@ Debug AnyCPU - {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} {A069B942-EE12-4283-8C4C-F46549D3978A} Library GooglePlayServices.AppIndexing @@ -11,11 +11,14 @@ Assets False Xamarin.GooglePlayServices.AppIndexing - v4.1 + v7.0 + class-parse ..\..\externals\docs\reference + 8.0.30703 + 2.0 true @@ -42,8 +45,24 @@ + + ..\..\packages\Xamarin.Android.Support.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Compat.dll + + + ..\..\packages\Xamarin.Android.Support.Core.UI.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.UI.dll + + + ..\..\packages\Xamarin.Android.Support.Core.Utils.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.Utils.dll + + + ..\..\packages\Xamarin.Android.Support.Media.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Media.Compat.dll + + + ..\..\packages\Xamarin.Android.Support.Fragment.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Fragment.dll + - ..\..\packages\Xamarin.Android.Support.v4.23.1.1.1\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll + ..\..\packages\Xamarin.Android.Support.v4.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.v4.dll + False @@ -75,6 +94,18 @@ {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE} Basement + + {3F6BAE25-ADEB-468C-8384-AD655623C341} + Base + + + {53F87D88-8871-41A2-9F81-B79AB02FEC24} + Tasks + + + {865652D3-8D1A-4779-92FC-4C54719286B7} + Firebase-Common + - \ No newline at end of file + diff --git a/appindexing/source/Properties/AssemblyInfo.cs b/appindexing/source/Properties/AssemblyInfo.cs index 2124c46cf..c5b1495d9 100644 --- a/appindexing/source/Properties/AssemblyInfo.cs +++ b/appindexing/source/Properties/AssemblyInfo.cs @@ -8,9 +8,9 @@ [assembly: AssemblyTitle ("Xamarin.GooglePlayServices.AppIndexing")] [assembly: AssemblyDescription ("")] [assembly: AssemblyConfiguration ("")] -[assembly: AssemblyCompany ("Xamarin")] +[assembly: AssemblyCompany ("Microsoft Corporation")] [assembly: AssemblyProduct ("")] -[assembly: AssemblyCopyright ("Xamarin")] +[assembly: AssemblyCopyright ("Copyright © Microsoft Corporation")] [assembly: AssemblyTrademark ("")] [assembly: AssemblyCulture ("")] @@ -27,21 +27,22 @@ //[assembly: AssemblyKeyFile("")] [assembly: Java.Interop.JavaLibraryReference ("classes.jar", - PackageName = __Consts.PackageName, + PackageName = __GpsConsts.PackageName, SourceUrl = __GpsConsts.Url, EmbeddedArchive = __Consts.AarPath, - Version = __GpsConsts.Version)] + Version = __GpsConsts.Version, + Sha1sum = __GpsConsts.Sha1sum)] // AppCompat-v7 resources [assembly: Android.IncludeAndroidResourcesFromAttribute ("./", - PackageName = __Consts.PackageName, + PackageName = __GpsConsts.PackageName, SourceUrl = __GpsConsts.Url, EmbeddedArchive = __Consts.AarPath, - Version = __GpsConsts.Version)] + Version = __GpsConsts.Version, + Sha1sum = __GpsConsts.Sha1sum)] // Google Addon feed with GPS in it: // https://dl-ssl.google.com/android/repository/addon.xml static class __Consts { - public const string PackageName = "GPS AppIndexing"; public const string AarPath = "m2repository/com/google/android/gms/play-services-appindexing/" + __GpsConsts.Version + "/play-services-appindexing-" + __GpsConsts.Version + ".aar"; } diff --git a/appindexing/source/Transforms/Metadata.generated.xml b/appindexing/source/Transforms/Metadata.generated.xml index 4a1755177..26c2f6238 100644 --- a/appindexing/source/Transforms/Metadata.generated.xml +++ b/appindexing/source/Transforms/Metadata.generated.xml @@ -1,171 +1,2 @@ - dest - flags - packageName - corpusName - uri - dest - flags - content - sectionInfo - content - sectionInfo - globalSearchSectionType - blobContent - sectionInfo - dest - flags - dest - flags - filterAccount - includeDeviceOnlyData - includeThirdPartyContext - includeUsageEnded - filterPackageName - output - flags - output - flags - output - flags - packageName - viewIntent - title - webUrl - schemaOrgType - outLinks - eventStatus - dest - flags - actionType - objectName - objectAppUri - actionType - objectName - objectId - objectAppUri - actionType - key - value - key - value - key - value - key - values - key - values - actionStatusType - nameValue - thing - url - objectValue - uri - packageName - deepLink - apiClient - action - apiClient - action - apiClient - action - apiClient - activity - viewIntent - title - webUrl - outLinks - apiClient - activity - appIndexingUrl - title - webUrl - outLinks - apiClient - activity - viewIntent - apiClient - activity - appUri - apiClient - appUri - webUrl - view - appUri - view - key - value - key - value - key - value - key - values - key - values - description - id - nameValue - theType - url - code - data - reply - flags - code - data - reply - flags - apiClient - action - apiClient - action - apiClient - action - apiClient - activity - viewIntent - title - webUrl - outLinks - apiClient - activity - appIndexingUrl - title - webUrl - outLinks - apiClient - activity - viewIntent - apiClient - activity - appUri - oValue - output - oValue - output - oValue - output - oValue - output - oValue - output - code - data - reply - flags - code - data - reply - flags - client - accessToken - client - webAppClientId - parcel - iValue - client - accessToken - client - webAppClientId diff --git a/appindexing/source/Transforms/Metadata.xml b/appindexing/source/Transforms/Metadata.xml index bd25a99e7..02f42076a 100644 --- a/appindexing/source/Transforms/Metadata.xml +++ b/appindexing/source/Transforms/Metadata.xml @@ -3,6 +3,9 @@ Android.Gms.AppIndexing Android.Gms.AppDataSearch Android.Gms.Search + Firebase.AppIndexing + Firebase.AppIndexing.Builders + Firebase.AppIndexing.Internal @@ -14,6 +17,13 @@ + + source + size + dest + flags + + APP_INDEX_API API diff --git a/appindexing/source/packages.config b/appindexing/source/packages.config index 59cde6e53..71e0c9953 100644 --- a/appindexing/source/packages.config +++ b/appindexing/source/packages.config @@ -1,4 +1,9 @@  - + + + + + + \ No newline at end of file diff --git a/appinvite/component/component.template.yaml b/appinvite/component/component.template.yaml index 5f5230226..19578e717 100644 --- a/appinvite/component/component.template.yaml +++ b/appinvite/component/component.template.yaml @@ -4,15 +4,10 @@ id: googleplayservices-appinvite publisher: Xamarin Inc. publisher-url: http://xamarin.com summary: Enable your users to share your app with people they know. -license: ../../component/License.md +license: ../../License.md icons: - - icons/googleplayservices-appinvite_128x128.png - - icons/googleplayservices-appinvite_512x512.png -libraries: - android: - - ../../output/Xamarin.GooglePlayServices.AppInvite.dll - - ../../output/Xamarin.GooglePlayServices.Base.dll - - ../../output/Xamarin.GooglePlayServices.Basement.dll + - ../../icons/play-services-appinvite_128x128.png + - ../../icons/play-services-appinvite_512x512.png is_shell: true packages: android: @@ -21,14 +16,16 @@ samples: - name: "AppInvite Sample" path: ../../appinvite/samples/AppInviteSample.sln removeProjects: - - Xamarin.GooglePlayServices.Base - - Xamarin.GooglePlayServices.Basement - - Xamarin.GooglePlayServices.AppInvite + - Base + - Basement + - Tasks + - AppInvite installNuGets: - project: AppInviteSample packages: - Xamarin.GooglePlayServices.Base - Xamarin.GooglePlayServices.Basement + - Xamarin.GooglePlayServices.Tasks - Xamarin.GooglePlayServices.AppInvite local-nuget-repo: ../../output/ no_build: true diff --git a/appinvite/component/icons/googleplayservices-appinvite_128x128.png b/appinvite/component/icons/googleplayservices-appinvite_128x128.png deleted file mode 100644 index ae9d3fa0b..000000000 Binary files a/appinvite/component/icons/googleplayservices-appinvite_128x128.png and /dev/null differ diff --git a/appinvite/component/icons/googleplayservices-appinvite_512x512.png b/appinvite/component/icons/googleplayservices-appinvite_512x512.png deleted file mode 100644 index 6ba26a308..000000000 Binary files a/appinvite/component/icons/googleplayservices-appinvite_512x512.png and /dev/null differ diff --git a/appinvite/nuget/Xamarin.GooglePlayServices.AppInvite.nuspec b/appinvite/nuget/Xamarin.GooglePlayServices.AppInvite.template.nuspec similarity index 75% rename from appinvite/nuget/Xamarin.GooglePlayServices.AppInvite.nuspec rename to appinvite/nuget/Xamarin.GooglePlayServices.AppInvite.template.nuspec index 5f402f496..5dd194c2d 100644 --- a/appinvite/nuget/Xamarin.GooglePlayServices.AppInvite.nuspec +++ b/appinvite/nuget/Xamarin.GooglePlayServices.AppInvite.template.nuspec @@ -7,22 +7,23 @@ Xamarin Inc. Xamarin Inc. true - Xamarin.Android Bindings for Google Play Services - AppInvite + Xamarin.Android Bindings for Google Play Services - AppInvite $aar-version$ - Xamarin.Android Bindings for Google Play Services - AppInvite + Xamarin.Android Bindings for Google Play Services - AppInvite $aar-version$ App Invites provide a powerful way to organically grow your app, user-to-user. Your users recommend your app to their friends using personalized, contextual invitations powered by Google. App Invites provide a great onboarding experience to your new users. Google optimizes your app install rates by reducing friction and using relevant context at every step of the user invitation flow. - Copyright 2013-2016 + Copyright © Microsoft Corporation http://components.xamarin.com/view/googleplayservices-appinvite/ http://components.xamarin.com/license/googleplayservices-appinvite/ - https://xamarin-component-icons.s3.amazonaws.com/Xamarin.GooglePlayServices.AppInvite.png + https://raw.githubusercontent.com/xamarin/GooglePlayServicesComponents/master/icons/play-services-appinvite_128x128.png + - + diff --git a/appinvite/samples/AppInviteSample.UITests/AppInviteSample.UITests.csproj b/appinvite/samples/AppInviteSample.UITests/AppInviteSample.UITests.csproj index e45b6e933..64447cc4e 100644 --- a/appinvite/samples/AppInviteSample.UITests/AppInviteSample.UITests.csproj +++ b/appinvite/samples/AppInviteSample.UITests/AppInviteSample.UITests.csproj @@ -29,12 +29,12 @@ - - ..\packages\Xamarin.UITest.1.1.1\lib\Xamarin.UITest.dll - ..\packages\NUnit.2.6.4\lib\nunit.framework.dll + + ..\packages\Xamarin.UITest.2.0.1\lib\Xamarin.UITest.dll + diff --git a/appinvite/samples/AppInviteSample.UITests/packages.config b/appinvite/samples/AppInviteSample.UITests/packages.config index 2d9e3ac42..f55a18725 100644 --- a/appinvite/samples/AppInviteSample.UITests/packages.config +++ b/appinvite/samples/AppInviteSample.UITests/packages.config @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/appinvite/samples/AppInviteSample/AppInviteSample.csproj b/appinvite/samples/AppInviteSample/AppInviteSample.csproj index c1de2d329..82a5421da 100644 --- a/appinvite/samples/AppInviteSample/AppInviteSample.csproj +++ b/appinvite/samples/AppInviteSample/AppInviteSample.csproj @@ -13,9 +13,10 @@ Resource Resources\Resource.designer.cs True - True + false AppInviteSample - v5.1 + v7.0 + armeabi;armeabi-v7a;x86;arm64-v8a;x86_64 true @@ -27,7 +28,6 @@ 4 None false - armeabi;armeabi-v7a;x86;arm64-v8a;x86_64 full @@ -37,15 +37,29 @@ 4 false false - armeabi;armeabi-v7a;x86;arm64-v8a;x86_64 + + ..\packages\Xamarin.Android.Support.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Compat.dll + + + ..\packages\Xamarin.Android.Support.Core.UI.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.UI.dll + + + ..\packages\Xamarin.Android.Support.Core.Utils.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.Utils.dll + + + ..\packages\Xamarin.Android.Support.Media.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Media.Compat.dll + + + ..\packages\Xamarin.Android.Support.Fragment.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Fragment.dll + - ..\packages\Xamarin.Android.Support.v4.23.1.1.1\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll + ..\packages\Xamarin.Android.Support.v4.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.v4.dll @@ -71,7 +85,7 @@ - + {A069B942-EE12-4283-9C4C-F46549D3978A} diff --git a/appinvite/samples/AppInviteSample/Properties/AssemblyInfo.cs b/appinvite/samples/AppInviteSample/Properties/AssemblyInfo.cs index 548c912ea..6e71f7fe7 100644 --- a/appinvite/samples/AppInviteSample/Properties/AssemblyInfo.cs +++ b/appinvite/samples/AppInviteSample/Properties/AssemblyInfo.cs @@ -8,9 +8,9 @@ [assembly: AssemblyTitle ("AppInviteSample")] [assembly: AssemblyDescription ("")] [assembly: AssemblyConfiguration ("")] -[assembly: AssemblyCompany ("")] +[assembly: AssemblyCompany ("Microsoft Corporation")] [assembly: AssemblyProduct ("")] -[assembly: AssemblyCopyright ("redth")] +[assembly: AssemblyCopyright ("Copyright © Microsoft Corporation")] [assembly: AssemblyTrademark ("")] [assembly: AssemblyCulture ("")] diff --git a/appinvite/samples/AppInviteSample/packages.config b/appinvite/samples/AppInviteSample/packages.config index 6cb850330..71e0c9953 100644 --- a/appinvite/samples/AppInviteSample/packages.config +++ b/appinvite/samples/AppInviteSample/packages.config @@ -1,4 +1,9 @@ - - - + + + + + + + + \ No newline at end of file diff --git a/appinvite/source/Additions/Manifest.cs b/appinvite/source/Additions/Manifest.cs index 8853c9679..bf22b025f 100644 --- a/appinvite/source/Additions/Manifest.cs +++ b/appinvite/source/Additions/Manifest.cs @@ -2,6 +2,8 @@ using Android.Runtime; using Android.App; +[assembly: UsesPermission (Android.Manifest.Permission.Internet)] + namespace Android.Gms.AppInvite { // PACKAGE: com.google.android.gms.appinvite @@ -22,6 +24,5 @@ namespace Android.Gms.AppInvite [IntentFilter (new [] { "com.google.android.gms.appinvite.ACTION_PREVIEW" }, Categories = new [] { global::Android.Content.Intent.CategoryDefault })] partial class PreviewActivity { } - } diff --git a/appinvite/source/AppInvite.csproj b/appinvite/source/AppInvite.csproj index 2bba3ef27..be4a0b811 100644 --- a/appinvite/source/AppInvite.csproj +++ b/appinvite/source/AppInvite.csproj @@ -3,7 +3,7 @@ Debug AnyCPU - {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} {A069B942-EE12-4283-9C4C-F46549D3978A} Library GooglePlayServices.AppInvite @@ -11,7 +11,8 @@ Assets False Xamarin.GooglePlayServices.AppInvite - v4.1 + v7.0 + jar2xml ..\..\externals\docs\reference + + source + size + dest + flags + AppInviteClass API diff --git a/appinvite/source/packages.config b/appinvite/source/packages.config index 59cde6e53..71e0c9953 100644 --- a/appinvite/source/packages.config +++ b/appinvite/source/packages.config @@ -1,4 +1,9 @@  - + + + + + + \ No newline at end of file diff --git a/appstate/source/Additions/DataBufferAdditions.cs b/appstate/source/Additions/DataBufferAdditions.cs deleted file mode 100644 index 2967cb07f..000000000 --- a/appstate/source/Additions/DataBufferAdditions.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Linq; -using System.Collections.Generic; - -namespace Android.Gms.AppStates -{ -// public partial class AppStateBuffer : IEnumerable -// { -// public IEnumerator GetEnumerator() -// { -// return this.ToEnumerable ().GetEnumerator(); -// } -// -// System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() -// { -// return this.GetEnumerator(); -// } -// } -} - diff --git a/appstate/source/Transforms/Metadata.xml b/appstate/source/Transforms/Metadata.xml deleted file mode 100644 index c85525a69..000000000 --- a/appstate/source/Transforms/Metadata.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - Android.Gms.AppStates - - - - - - - - - - - - public override - Java.Lang.Object - diff --git a/appstate/source/packages.config b/appstate/source/packages.config deleted file mode 100644 index 59cde6e53..000000000 --- a/appstate/source/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/art/.gitignore b/art/.gitignore new file mode 100644 index 000000000..66afd82eb --- /dev/null +++ b/art/.gitignore @@ -0,0 +1 @@ +Resources/ diff --git a/art/xamarin-firebase-banner.sketch b/art/xamarin-firebase-banner.sketch new file mode 100644 index 000000000..5eb91361f Binary files /dev/null and b/art/xamarin-firebase-banner.sketch differ diff --git a/auth-base/nuget/Xamarin.GooglePlayServices.Auth.Base.template.nuspec b/auth-base/nuget/Xamarin.GooglePlayServices.Auth.Base.template.nuspec new file mode 100644 index 000000000..484222d0d --- /dev/null +++ b/auth-base/nuget/Xamarin.GooglePlayServices.Auth.Base.template.nuspec @@ -0,0 +1,26 @@ + + + + Xamarin.GooglePlayServices.Auth.Base + Xamarin Google Play Services - Auth Base + $version$ + Xamarin Inc. + Xamarin Inc. + true + Xamarin.Android Bindings for Google Play Services - Auth Base $aar-version$ + + Xamarin.Android Bindings for Google Play Services - Auth Base $aar-version$ + + Copyright © Microsoft Corporation + https://github.com/xamarin/GooglePlayServicesComponents/ + https://github.com/xamarin/GooglePlayServicesComponents/blob/master/LICENSE.md + https://raw.githubusercontent.com/xamarin/GooglePlayServicesComponents/master/icons/play-services-auth-base_128x128.png + + + + + + + + + diff --git a/auth-base/source/Additions/AboutAdditions.txt b/auth-base/source/Additions/AboutAdditions.txt new file mode 100644 index 000000000..c511f1d4e --- /dev/null +++ b/auth-base/source/Additions/AboutAdditions.txt @@ -0,0 +1,48 @@ +Additions allow you to add arbitrary C# to the generated classes +before they are compiled. This can be helpful for providing convenience +methods or adding pure C# classes. + +== Adding Methods to Generated Classes == + +Let's say the library being bound has a Rectangle class with a constructor +that takes an x and y position, and a width and length size. It will look like +this: + +public partial class Rectangle +{ + public Rectangle (int x, int y, int width, int height) + { + // JNI bindings + } +} + +Imagine we want to add a constructor to this class that takes a Point and +Size structure instead of 4 ints. We can add a new file called Rectangle.cs +with a partial class containing our new method: + +public partial class Rectangle +{ + public Rectangle (Point location, Size size) : + this (location.X, location.Y, size.Width, size.Height) + { + } +} + +At compile time, the additions class will be added to the generated class +and the final assembly will a Rectangle class with both constructors. + + +== Adding C# Classes == + +Another thing that can be done is adding fully C# managed classes to the +generated library. In the above example, let's assume that there isn't a +Point class available in Java or our library. The one we create doesn't need +to interact with Java, so we'll create it like a normal class in C#. + +By adding a Point.cs file with this class, it will end up in the binding library: + +public class Point +{ + public int X { get; set; } + public int Y { get; set; } +} diff --git a/auth-base/source/Additions/PendingResultExtensions.cs b/auth-base/source/Additions/PendingResultExtensions.cs new file mode 100644 index 000000000..1a1a69a86 --- /dev/null +++ b/auth-base/source/Additions/PendingResultExtensions.cs @@ -0,0 +1,34 @@ +using System; +using System.Threading.Tasks; +using Android.Gms.Common.Apis; +using Android.Gms.Common; +using Android.Runtime; + +namespace Android.Gms.Auth.Api.Proxy +{ + public static partial class IProxyApiExtensions + { + public static async Task PerformProxyRequestAsync (this IProxyApi api, GoogleApiClient client, Android.Gms.Auth.Api.Proxy.ProxyRequest request) + { + return (await api.PerformProxyRequest (client, request)).JavaCast (); + } + } +} + +namespace Android.Gms.Auth.Account +{ + public static partial class IWorkAccountApiExtensions + { + public static async Task AddWorkAccountAsync (this IWorkAccountApi api, GoogleApiClient client, string token) + { + return (await api.AddWorkAccount (client, token)).JavaCast (); + } + + public static async Task PerformProxyRequestAsync (this IWorkAccountApi api, GoogleApiClient client, Accounts.Account account) + { + return (await api.RemoveWorkAccount (client, account)).JavaCast (); + } + } +} + + diff --git a/auth-base/source/Auth.Base.csproj b/auth-base/source/Auth.Base.csproj new file mode 100644 index 000000000..893bb432c --- /dev/null +++ b/auth-base/source/Auth.Base.csproj @@ -0,0 +1,101 @@ + + + + Debug + AnyCPU + {10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 8.0.30703 + 2.0 + {B04C50F7-B0CC-4170-8820-9D584E1C0ED3} + Library + GooglePlayServices.Auth.Base + Resources + Assets + False + Xamarin.GooglePlayServices.Auth.Base + v7.0 + class-parse + ..\..\externals\docs\reference + + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + None + false + + + full + true + bin\Release + prompt + 4 + false + false + + + + + + + + ..\..\packages\Xamarin.Android.Support.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Compat.dll + + + ..\..\packages\Xamarin.Android.Support.Core.UI.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.UI.dll + + + ..\..\packages\Xamarin.Android.Support.Core.Utils.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.Utils.dll + + + ..\..\packages\Xamarin.Android.Support.Media.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Media.Compat.dll + + + ..\..\packages\Xamarin.Android.Support.Fragment.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Fragment.dll + + + ..\..\packages\Xamarin.Android.Support.v4.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.v4.dll + + + + + + Properties\GpsConsts.cs + + + + + + + + + + + + + + + + + {3F6BAE25-ADEB-468C-8384-AD655623C341} + Base + + + {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE} + Basement + + + + + + Jars\play-services-auth-base.jar + + + diff --git a/auth-base/source/Jars/AboutJars.txt b/auth-base/source/Jars/AboutJars.txt new file mode 100644 index 000000000..320a154be --- /dev/null +++ b/auth-base/source/Jars/AboutJars.txt @@ -0,0 +1,37 @@ +This directory is for Android .jars. + +There are 4 types of jars that are supported: + +== Input Jar and Embedded Jar == + +This is the jar that bindings should be generated for. + +For example, if you were binding the Google Maps library, this would +be Google's "maps.jar". + +The difference between EmbeddedJar and InputJar is, EmbeddedJar is to be +embedded in the resulting dll as EmbeddedResource, while InputJar is not. +There are couple of reasons you wouldn't like to embed the target jar +in your dll (the ones that could be internally loaded by +feature e.g. maps.jar, or you cannot embed jars that are under some +proprietary license). + +Set the build action for these jars in the properties page to "InputJar". + + +== Reference Jar and Embedded Reference Jar == + +These are jars that are referenced by the input jar. C# bindings will +not be created for these jars. These jars will be used to resolve +types used by the input jar. + +NOTE: Do not add "android.jar" as a reference jar. It will be added automatically +based on the Target Framework selected. + +Set the build action for these jars in the properties page to "ReferenceJar". + +"EmbeddedJar" works like "ReferenceJar", but like "EmbeddedJar", it is +embedded in your dll. But at application build time, they are not included +in the final apk, like ReferenceJar files. + + diff --git a/auth-base/source/Properties/AssemblyInfo.cs b/auth-base/source/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..530971b7d --- /dev/null +++ b/auth-base/source/Properties/AssemblyInfo.cs @@ -0,0 +1,48 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using Android.App; + +// Information about this assembly is defined by the following attributes. +// Change them to the values specific to your project. + +[assembly: AssemblyTitle ("Xamarin.GooglePlayServices.Auth.Base")] +[assembly: AssemblyDescription ("")] +[assembly: AssemblyConfiguration ("")] +[assembly: AssemblyCompany ("Microsoft Corporation")] +[assembly: AssemblyProduct ("")] +[assembly: AssemblyCopyright ("Copyright © Microsoft Corporation")] +[assembly: AssemblyTrademark ("")] +[assembly: AssemblyCulture ("")] + +// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". +// The form "{Major}.{Minor}.*" will automatically update the build and revision, +// and "{Major}.{Minor}.{Build}.*" will update just the revision. + +[assembly: AssemblyVersion ("1.0.0")] + +// The following attributes are used to specify the signing key for the assembly, +// if desired. See the Mono documentation for more information about signing. + +//[assembly: AssemblyDelaySign(false)] +//[assembly: AssemblyKeyFile("")] + +[assembly: Java.Interop.JavaLibraryReference ("classes.jar", + PackageName = __GpsConsts.PackageName, + SourceUrl = __GpsConsts.Url, + EmbeddedArchive = __Consts.AarPath, + Version = __GpsConsts.Version, + Sha1sum = __GpsConsts.Sha1sum)] +// AppCompat-v7 resources +[assembly: Android.IncludeAndroidResourcesFromAttribute ("./", + PackageName = __GpsConsts.PackageName, + SourceUrl = __GpsConsts.Url, + EmbeddedArchive = __Consts.AarPath, + Version = __GpsConsts.Version, + Sha1sum = __GpsConsts.Sha1sum)] + +// Google Addon feed with GPS in it: +// https://dl-ssl.google.com/android/repository/addon.xml + +static class __Consts { + public const string AarPath = "m2repository/com/google/android/gms/play-services-auth-base/" + __GpsConsts.Version + "/play-services-auth-base-" + __GpsConsts.Version + ".aar"; +} diff --git a/auth-base/source/Transforms/EnumFields.xml b/auth-base/source/Transforms/EnumFields.xml new file mode 100644 index 000000000..e9af0eeb3 --- /dev/null +++ b/auth-base/source/Transforms/EnumFields.xml @@ -0,0 +1,18 @@ + + + diff --git a/auth-base/source/Transforms/EnumMethods.xml b/auth-base/source/Transforms/EnumMethods.xml new file mode 100644 index 000000000..2efa81467 --- /dev/null +++ b/auth-base/source/Transforms/EnumMethods.xml @@ -0,0 +1,18 @@ + + + diff --git a/auth-base/source/Transforms/Metadata.generated.xml b/auth-base/source/Transforms/Metadata.generated.xml new file mode 100644 index 000000000..26c2f6238 --- /dev/null +++ b/auth-base/source/Transforms/Metadata.generated.xml @@ -0,0 +1,2 @@ + + diff --git a/auth-base/source/Transforms/Metadata.xml b/auth-base/source/Transforms/Metadata.xml new file mode 100644 index 000000000..299db595d --- /dev/null +++ b/auth-base/source/Transforms/Metadata.xml @@ -0,0 +1,24 @@ + + + Android.Gms.Auth + Android.Gms.Auth.Account + Android.Gms.Auth.Api + Android.Gms.Auth.Api.Proxy + + + + + + + + + + + + + source + size + dest + flags + + diff --git a/auth-base/source/packages.config b/auth-base/source/packages.config new file mode 100644 index 000000000..71e0c9953 --- /dev/null +++ b/auth-base/source/packages.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/auth/nuget/Xamarin.GooglePlayServices.Auth.nuspec b/auth/nuget/Xamarin.GooglePlayServices.Auth.template.nuspec similarity index 54% rename from auth/nuget/Xamarin.GooglePlayServices.Auth.nuspec rename to auth/nuget/Xamarin.GooglePlayServices.Auth.template.nuspec index e944c8bb4..e75c63df0 100644 --- a/auth/nuget/Xamarin.GooglePlayServices.Auth.nuspec +++ b/auth/nuget/Xamarin.GooglePlayServices.Auth.template.nuspec @@ -7,19 +7,21 @@ Xamarin Inc. Xamarin Inc. true + Xamarin.Android Bindings for Google Play Services - Auth $aar-version$ - Xamarin.Android Bindings for Google Play Services - Auth + Xamarin.Android Bindings for Google Play Services - Auth $aar-version$ - Copyright 2013-2016 + Copyright © Microsoft Corporation https://github.com/xamarin/GooglePlayServicesComponents/ - https://github.com/xamarin/GooglePlayServicesComponents/blob/master/LICENSE.md - https://xamarin-component-icons.s3.amazonaws.com/Xamarin.GooglePlayServices.Auth.png + https://github.com/xamarin/GooglePlayServicesComponents/blob/master/LICENSE.md + https://raw.githubusercontent.com/xamarin/GooglePlayServicesComponents/master/icons/play-services-auth_128x128.png + - + - + diff --git a/auth/source/Additions/IPendingResultExtensions.cs b/auth/source/Additions/IPendingResultExtensions.cs index 3b9832aeb..e8b3c92ce 100644 --- a/auth/source/Additions/IPendingResultExtensions.cs +++ b/auth/source/Additions/IPendingResultExtensions.cs @@ -26,14 +26,3 @@ public static async Task SaveAsync (this ICredentialsApi api, GoogleAp } } } - -namespace Android.Gms.Auth.Api.Proxy -{ - public static partial class IProxyApiExtensions - { - public static async Task PerformProxyRequestAsync (this IProxyApi api, GoogleApiClient client, Android.Gms.Auth.Api.Proxy.ProxyRequest request) - { - return (await api.PerformProxyRequest (client, request)).JavaCast (); - } - } -} diff --git a/auth/source/Auth.csproj b/auth/source/Auth.csproj index bff1a9827..c78fc16dd 100644 --- a/auth/source/Auth.csproj +++ b/auth/source/Auth.csproj @@ -3,7 +3,7 @@ Debug AnyCPU - {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 8.0.30703 2.0 {A0CDF507-32B7-4994-8248-94FAB8646E35} @@ -13,7 +13,8 @@ Assets False Xamarin.GooglePlayServices.Auth - v4.1 + v7.0 + class-parse ..\..\externals\docs\reference - @@ -20,6 +17,12 @@ + + source + size + dest + flags + CREDENTIALS_API PROXY_API GOOGLE_SIGN_IN_API diff --git a/auth/source/packages.config b/auth/source/packages.config index 59cde6e53..71e0c9953 100644 --- a/auth/source/packages.config +++ b/auth/source/packages.config @@ -1,4 +1,9 @@  - + + + + + + \ No newline at end of file diff --git a/awareness/nuget/Xamarin.GooglePlayServices.Awareness.template.nuspec b/awareness/nuget/Xamarin.GooglePlayServices.Awareness.template.nuspec new file mode 100644 index 000000000..4f0acb07d --- /dev/null +++ b/awareness/nuget/Xamarin.GooglePlayServices.Awareness.template.nuspec @@ -0,0 +1,28 @@ + + + + Xamarin.GooglePlayServices.Awareness + Xamarin Google Play Services - Awareness + $version$ + Xamarin Inc. + Xamarin Inc. + true + Xamarin.Android Bindings for Google Play Services - Awareness $aar-version$ + + Xamarin.Android Bindings for Google Play Services - Awareness $aar-version$ + + Copyright © Microsoft Corporation + https://github.com/xamarin/GooglePlayServicesComponents/ + https://github.com/xamarin/GooglePlayServicesComponents/blob/master/LICENSE.md + https://raw.githubusercontent.com/xamarin/GooglePlayServicesComponents/master/icons/play-services-awareness_128x128.png + + + + + + + + + + + diff --git a/awareness/source/Additions/AboutAdditions.txt b/awareness/source/Additions/AboutAdditions.txt new file mode 100644 index 000000000..c511f1d4e --- /dev/null +++ b/awareness/source/Additions/AboutAdditions.txt @@ -0,0 +1,48 @@ +Additions allow you to add arbitrary C# to the generated classes +before they are compiled. This can be helpful for providing convenience +methods or adding pure C# classes. + +== Adding Methods to Generated Classes == + +Let's say the library being bound has a Rectangle class with a constructor +that takes an x and y position, and a width and length size. It will look like +this: + +public partial class Rectangle +{ + public Rectangle (int x, int y, int width, int height) + { + // JNI bindings + } +} + +Imagine we want to add a constructor to this class that takes a Point and +Size structure instead of 4 ints. We can add a new file called Rectangle.cs +with a partial class containing our new method: + +public partial class Rectangle +{ + public Rectangle (Point location, Size size) : + this (location.X, location.Y, size.Width, size.Height) + { + } +} + +At compile time, the additions class will be added to the generated class +and the final assembly will a Rectangle class with both constructors. + + +== Adding C# Classes == + +Another thing that can be done is adding fully C# managed classes to the +generated library. In the above example, let's assume that there isn't a +Point class available in Java or our library. The one we create doesn't need +to interact with Java, so we'll create it like a normal class in C#. + +By adding a Point.cs file with this class, it will end up in the binding library: + +public class Point +{ + public int X { get; set; } + public int Y { get; set; } +} diff --git a/awareness/source/Additions/PendingResultExtensions.cs b/awareness/source/Additions/PendingResultExtensions.cs new file mode 100644 index 000000000..5f8816c12 --- /dev/null +++ b/awareness/source/Additions/PendingResultExtensions.cs @@ -0,0 +1,57 @@ +using System; +using System.Threading.Tasks; +using Java.Interop; +using Android.Gms.Common.Apis; +using Android.Gms.Awareness.Fence; +using Android.Gms.Awareness.Snapshot; +using Android.Gms.Awareness.State; + +namespace Android.Gms.Awareness +{ + public static class IFenceApiExtensions + { + public static async Task QueryFencesAsync (this IFenceApi api, GoogleApiClient client, FenceQueryRequest fenceQueryRequest) + { + return (await api.QueryFences (client, fenceQueryRequest)).JavaCast (); + } + public static async Task UpdateFencesAsync (this IFenceApi api, GoogleApiClient client, IFenceUpdateRequest fenceUpdateRequest) + { + return (await api.UpdateFences (client, fenceUpdateRequest)).JavaCast (); + } + } + + public static class ISnapshotApiExtensions + { + public static async Task GetBeaconStateAsync (this ISnapshotApi api, GoogleApiClient client, BeaconStateTypeFilter [] beaconTypes) + { + return (await api.GetBeaconState (client)).JavaCast (); + } + public static async Task GetBeaconStateAsync (this ISnapshotApi api, GoogleApiClient client, System.Collections.Generic.ICollection beaconTypes) + { + return (await api.GetBeaconState (client)).JavaCast (); + } + public static async Task GetDetectedActivityAsync (this ISnapshotApi api, GoogleApiClient client) + { + return (await api.GetDetectedActivity (client)).JavaCast (); + } + public static async Task GetHeadphoneStateAsync (this ISnapshotApi api, GoogleApiClient client) + { + return (await api.GetHeadphoneState (client)).JavaCast (); + } + public static async Task GetLocationAsync (this ISnapshotApi api, GoogleApiClient client) + { + return (await api.GetLocation (client)).JavaCast (); + } + public static async Task GetPlacesAsync (this ISnapshotApi api, GoogleApiClient client) + { + return (await api.GetPlaces (client)).JavaCast (); + } + public static async Task GetWeatherAsync (this ISnapshotApi api, GoogleApiClient client) + { + return (await api.GetWeather (client)).JavaCast (); + } + } +} + + + diff --git a/awareness/source/Awareness.csproj b/awareness/source/Awareness.csproj new file mode 100644 index 000000000..381dca468 --- /dev/null +++ b/awareness/source/Awareness.csproj @@ -0,0 +1,110 @@ + + + + Debug + AnyCPU + {10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 8.0.30703 + 2.0 + {541FC839-6065-4681-B6A4-C3BF358F78E9} + Library + GooglePlayServices.Awareness + Resources + Assets + False + Xamarin.GooglePlayServices.Awareness + v7.0 + class-parse + ..\..\externals\docs\reference + + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + None + false + + + full + true + bin\Release + prompt + 4 + false + false + + + + + + + + ..\..\packages\Xamarin.Android.Support.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Compat.dll + + + ..\..\packages\Xamarin.Android.Support.Core.UI.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.UI.dll + + + ..\..\packages\Xamarin.Android.Support.Core.Utils.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.Utils.dll + + + ..\..\packages\Xamarin.Android.Support.Media.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Media.Compat.dll + + + ..\..\packages\Xamarin.Android.Support.Fragment.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Fragment.dll + + + ..\..\packages\Xamarin.Android.Support.v4.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.v4.dll + False + + + + + + Properties\GpsConsts.cs + + + + + + + + + + + + + + + + + {3F6BAE25-ADEB-468C-8384-AD655623C341} + Base + + + {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE} + Basement + + + {F666DC89-9CE4-491C-8450-6FBC70298FA3} + Location + + + {D42D621B-0370-44F6-A58E-0749629F9F4D} + Places + + + + + + Jars\play-services-awareness.jar + + + diff --git a/awareness/source/Jars/AboutJars.txt b/awareness/source/Jars/AboutJars.txt new file mode 100644 index 000000000..320a154be --- /dev/null +++ b/awareness/source/Jars/AboutJars.txt @@ -0,0 +1,37 @@ +This directory is for Android .jars. + +There are 4 types of jars that are supported: + +== Input Jar and Embedded Jar == + +This is the jar that bindings should be generated for. + +For example, if you were binding the Google Maps library, this would +be Google's "maps.jar". + +The difference between EmbeddedJar and InputJar is, EmbeddedJar is to be +embedded in the resulting dll as EmbeddedResource, while InputJar is not. +There are couple of reasons you wouldn't like to embed the target jar +in your dll (the ones that could be internally loaded by +feature e.g. maps.jar, or you cannot embed jars that are under some +proprietary license). + +Set the build action for these jars in the properties page to "InputJar". + + +== Reference Jar and Embedded Reference Jar == + +These are jars that are referenced by the input jar. C# bindings will +not be created for these jars. These jars will be used to resolve +types used by the input jar. + +NOTE: Do not add "android.jar" as a reference jar. It will be added automatically +based on the Target Framework selected. + +Set the build action for these jars in the properties page to "ReferenceJar". + +"EmbeddedJar" works like "ReferenceJar", but like "EmbeddedJar", it is +embedded in your dll. But at application build time, they are not included +in the final apk, like ReferenceJar files. + + diff --git a/awareness/source/Properties/AssemblyInfo.cs b/awareness/source/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..e13180aa5 --- /dev/null +++ b/awareness/source/Properties/AssemblyInfo.cs @@ -0,0 +1,48 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using Android.App; + +// Information about this assembly is defined by the following attributes. +// Change them to the values specific to your project. + +[assembly: AssemblyTitle ("Xamarin.GooglePlayServices.Awareness")] +[assembly: AssemblyDescription ("")] +[assembly: AssemblyConfiguration ("")] +[assembly: AssemblyCompany ("Microsoft Corporation")] +[assembly: AssemblyProduct ("")] +[assembly: AssemblyCopyright ("Copyright © Microsoft Corporation")] +[assembly: AssemblyTrademark ("")] +[assembly: AssemblyCulture ("")] + +// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". +// The form "{Major}.{Minor}.*" will automatically update the build and revision, +// and "{Major}.{Minor}.{Build}.*" will update just the revision. + +[assembly: AssemblyVersion ("1.0.0")] + +// The following attributes are used to specify the signing key for the assembly, +// if desired. See the Mono documentation for more information about signing. + +//[assembly: AssemblyDelaySign(false)] +//[assembly: AssemblyKeyFile("")] + +[assembly: Java.Interop.JavaLibraryReference ("classes.jar", + PackageName = __GpsConsts.PackageName, + SourceUrl = __GpsConsts.Url, + EmbeddedArchive = __Consts.AarPath, + Version = __GpsConsts.Version, + Sha1sum = __GpsConsts.Sha1sum)] +// AppCompat-v7 resources +[assembly: Android.IncludeAndroidResourcesFromAttribute ("./", + PackageName = __GpsConsts.PackageName, + SourceUrl = __GpsConsts.Url, + EmbeddedArchive = __Consts.AarPath, + Version = __GpsConsts.Version, + Sha1sum = __GpsConsts.Sha1sum)] + +// Google Addon feed with GPS in it: +// https://dl-ssl.google.com/android/repository/addon.xml + +static class __Consts { + public const string AarPath = "m2repository/com/google/android/gms/play-services-awareness/" + __GpsConsts.Version + "/play-services-awareness-" + __GpsConsts.Version + ".aar"; +} diff --git a/awareness/source/Transforms/EnumFields.xml b/awareness/source/Transforms/EnumFields.xml new file mode 100644 index 000000000..e9af0eeb3 --- /dev/null +++ b/awareness/source/Transforms/EnumFields.xml @@ -0,0 +1,18 @@ + + + diff --git a/awareness/source/Transforms/EnumMethods.xml b/awareness/source/Transforms/EnumMethods.xml new file mode 100644 index 000000000..2efa81467 --- /dev/null +++ b/awareness/source/Transforms/EnumMethods.xml @@ -0,0 +1,18 @@ + + + diff --git a/awareness/source/Transforms/Metadata.generated.xml b/awareness/source/Transforms/Metadata.generated.xml new file mode 100644 index 000000000..26c2f6238 --- /dev/null +++ b/awareness/source/Transforms/Metadata.generated.xml @@ -0,0 +1,2 @@ + + diff --git a/awareness/source/Transforms/Metadata.xml b/awareness/source/Transforms/Metadata.xml new file mode 100644 index 000000000..01cce7441 --- /dev/null +++ b/awareness/source/Transforms/Metadata.xml @@ -0,0 +1,30 @@ + + + Android.ContextManager.Interest + Android.Gms.Awareness + Android.Gms.Awareness.Fence + Android.Gms.Awareness.Snapshot + Android.Gms.Awareness.Snapshot.Internal + Android.Gms.Awareness.State + Android.Gms.ContextManager + Android.Gms.ContextManager.Fence.Internal + Android.Gms.ContextManager.Internal + + + + + + + + + + + + + source + size + dest + flags + + + diff --git a/awareness/source/packages.config b/awareness/source/packages.config new file mode 100644 index 000000000..71e0c9953 --- /dev/null +++ b/awareness/source/packages.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/base/nuget/Xamarin.GooglePlayServices.Base.nuspec b/base/nuget/Xamarin.GooglePlayServices.Base.nuspec deleted file mode 100644 index 12ddee3c0..000000000 --- a/base/nuget/Xamarin.GooglePlayServices.Base.nuspec +++ /dev/null @@ -1,49 +0,0 @@ - - - - Xamarin.GooglePlayServices.Base - Xamarin Google Play Services - Base - $version$ - Xamarin Inc. - Xamarin Inc. - true - Xamarin.Android Bindings for Google Play Services - do not install directly - - Xamarin.Android Bindings for Google Play Services - You should not install this package directly - - Instead of installing this package directly, install the specific package(s) you need: - - Xamarin Google Play Services - Ads - - Xamarin Google Play Services - Analytics - - Xamarin Google Play Services - AppIndexing - - Xamarin Google Play Services - AppInvite - - Xamarin Google Play Services - Auth - - Xamarin Google Play Services - Cast - - Xamarin Google Play Services - Drive - - Xamarin Google Play Services - Fitness - - Xamarin Google Play Services - Games - - Xamarin Google Play Services - GCM - - Xamarin Google Play Services - Identity - - Xamarin Google Play Services - Location - - Xamarin Google Play Services - Maps - - Xamarin Google Play Services - Measurement - - Xamarin Google Play Services - Nearby - - Xamarin Google Play Services - Panorama - - Xamarin Google Play Services - Plus - - Xamarin Google Play Services - SafetyNet - - Xamarin Google Play Services - Vision - - Xamarin Google Play Services - Wallet - - Xamarin Google Play Services - Wearable - - Copyright 2013-2016 - https://github.com/xamarin/GooglePlayServicesComponents/ - https://github.com/xamarin/GooglePlayServicesComponents/blob/master/LICENSE.md - https://xamarin-component-icons.s3.amazonaws.com/Xamarin.GooglePlayServices.Base.png - - - - - - - - - diff --git a/base/nuget/Xamarin.GooglePlayServices.Base.template.nuspec b/base/nuget/Xamarin.GooglePlayServices.Base.template.nuspec new file mode 100644 index 000000000..5221ba4ef --- /dev/null +++ b/base/nuget/Xamarin.GooglePlayServices.Base.template.nuspec @@ -0,0 +1,28 @@ + + + + Xamarin.GooglePlayServices.Base + Xamarin Google Play Services - Base + $version$ + Xamarin Inc. + Xamarin Inc. + true + Xamarin.Android Bindings for Google Play Services - Base $aar-version$ - do not install directly + + Xamarin.Android Bindings for Google Play Services - Base $aar-version$ - You should not install this package directly + + Instead of installing this package directly, install the specific package(s) you need. + + Copyright © Microsoft Corporation + https://github.com/xamarin/GooglePlayServicesComponents/ + https://github.com/xamarin/GooglePlayServicesComponents/blob/master/LICENSE.md + https://raw.githubusercontent.com/xamarin/GooglePlayServicesComponents/master/icons/play-services-base_128x128.png + + + + + + + + + diff --git a/base/source/Additions/BasementTypeForwards.cs b/base/source/Additions/BasementTypeForwards.cs deleted file mode 100644 index 564076c15..000000000 --- a/base/source/Additions/BasementTypeForwards.cs +++ /dev/null @@ -1,82 +0,0 @@ -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.AccountChangeEvent))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.AccountChangeEventsRequest))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.AccountChangeEventsResponse))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.GoogleAuthException))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.GoogleAuthUtil))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.GooglePlayServicesAvailabilityException))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.TokenData))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.UserRecoverableAuthException))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.UserRecoverableNotifiedException))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.Auth))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.Consent.GetConsentIntentRequest))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.Credentials.Credential))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.Credentials.CredentialPickerConfig))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.Credentials.CredentialRequest))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.Credentials.CredentialsApi))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.Credentials.CredentialsApiConsts))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.Credentials.ICredentialRequestResult))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.Credentials.ICredentialsApi))] -////[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.Credentials.ICredentialsApiExtensions))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.Credentials.IdentityProviders))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.Credentials.IdToken))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.Credentials.PasswordSpecification))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.Credentials.Internal.DeleteRequest))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.Credentials.Internal.SaveRequest))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.Proxy.IProxyApi))] -////[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.Proxy.IProxyApiExtensions))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.Proxy.IProxyApiProxyResult))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.Proxy.ProxyGrpcRequest))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.Proxy.ProxyRequest))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.Proxy.ProxyResponse))] -////[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.SignIn.EmailSignInConfig))] -////[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.SignIn.FacebookSignInConfig))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.SignIn.GoogleSignInAccount))] -////[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.SignIn.GoogleSignInConfig))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.Api.SignIn.Internal.SignInConfiguration))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.FirstParty.Shared.FACLConfig))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.FirstParty.Shared.FACLData))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Auth.FirstParty.Shared.ScopeDetail))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.AccountPicker))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.ConnectionResult))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.ErrorDialogFragment))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.GoogleApiAvailability))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.GooglePlayServicesNotAvailableException))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.GooglePlayServicesRepairableException))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.GooglePlayServicesUtil))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Scopes))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.SupportErrorDialogFragment))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.UserRecoverableException))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Annotations.IKeepName))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Annotations.KeepNameAttribute))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Apis.Api))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Apis.AwaitableResultCallback<>))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Apis.BatchResult))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Apis.BatchResultToken))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Apis.BooleanResult))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Apis.CommonStatusCodes))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Apis.GoogleApiClient))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Apis.IPendingResultExtensions))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Apis.IReleasable))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Apis.IResult))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Apis.IResultCallback))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Apis.OptionalPendingResult))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Apis.PendingResult))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Apis.PendingResults))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Apis.PendingResultsExtensions))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Apis.ResolvingResultCallbacks))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Apis.ResultCallback<>))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Apis.ResultCallbacks))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Apis.Scope))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Apis.Statuses))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Internal.DowngradeableSafeParcel))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Internal.SafeParcel.ISafeParcelable))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Internal.SafeParcel.SafeParcelable))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Internal.SafeParcel.SafeParcelableConsts))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Server.FavaDiagnosticsEntity))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Server.Converter.ConverterWrapper))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Server.Response.FastJsonResponse))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Server.Response.FastSafeParcelableJsonResponse))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Server.Response.FieldMappingDictionary))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Common.Server.Response.SafeParcelResponse))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Dynamic.ILifecycleDelegate))] -//[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(Android.Gms.Security.ProviderInstaller))] diff --git a/basement/source/Additions/GoogleApiClientAdditions.cs b/base/source/Additions/Extensions.cs similarity index 71% rename from basement/source/Additions/GoogleApiClientAdditions.cs rename to base/source/Additions/Extensions.cs index 42161469b..8e448ca22 100644 --- a/basement/source/Additions/GoogleApiClientAdditions.cs +++ b/base/source/Additions/Extensions.cs @@ -1,5 +1,4 @@ using System; -using System.Threading; using System.Threading.Tasks; using Android.Gms.Common; using Android.Gms.Common.Apis; @@ -24,16 +23,17 @@ public static Task BuildAndConnectAsync (this GoogleApiClient.B return tcsConnected.Task; } - } - public class GoogleApiClientConnectionException : Exception - { - public GoogleApiClientConnectionException (ConnectionResult connectionResult) - : base (connectionResult.ErrorMessage) + public class GoogleApiClientConnectionException : Exception { - ConnectionResult = connectionResult; - } + public GoogleApiClientConnectionException (ConnectionResult connectionResult) + : base (connectionResult.ErrorMessage) + { + ConnectionResult = connectionResult; + } - public ConnectionResult ConnectionResult { get; private set; } + public ConnectionResult ConnectionResult { get; private set; } + } } } + diff --git a/base/source/Additions/GoogleApiAvailability.cs b/base/source/Additions/GoogleApiAvailability.cs index 9e7eaa674..d750e3640 100644 --- a/base/source/Additions/GoogleApiAvailability.cs +++ b/base/source/Additions/GoogleApiAvailability.cs @@ -1,4 +1,5 @@ using System; +using Android.Gms.Extensions; namespace Android.Gms.Common { @@ -18,5 +19,10 @@ public override Android.App.PendingIntent GetErrorResolutionPendingIntent (Andro { return base.GetErrorResolutionPendingIntent (context, errorCode, requestCode); } + + public System.Threading.Tasks.Task MakeGooglePlayServicesAvailableAsync (App.Activity activity) + { + return MakeGooglePlayServicesAvailable (activity).AsAsync (); + } } } diff --git a/base/source/Additions/Manifest.cs b/base/source/Additions/Manifest.cs new file mode 100644 index 000000000..9846e18cd --- /dev/null +++ b/base/source/Additions/Manifest.cs @@ -0,0 +1,14 @@ +using System; +using Android.App; + +namespace Android.Gms.Common.Apis +{ + [Activity ( + Name="com.google.android.gms.common.api.GoogleApiActivity", + Exported=false, + Theme = "@android:style/Theme.Translucent.NoTitleBar")] + public partial class GoogleApiActivity + { + } +} + diff --git a/base/source/Additions/ResultCallbackImpl.cs b/base/source/Additions/ResultCallbackImpl.cs index b9ce5dd97..45c900577 100644 --- a/base/source/Additions/ResultCallbackImpl.cs +++ b/base/source/Additions/ResultCallbackImpl.cs @@ -1,158 +1,132 @@ -//using System; -//using Android.Runtime; -//using Java.Util.Concurrent; -//using Android.OS; -//using System.Threading.Tasks; -//using System.Runtime.CompilerServices; -// -//namespace Android.Gms.Common.Apis -//{ -// public class ResultCallback : Java.Lang.Object, IResultCallback where TResult : class, IResult -// { -// public ResultCallback (Action handler) -// { -// OnResultHandler = handler; -// } -// -// public Action OnResultHandler { get; private set; } -// -// public void OnResult (Java.Lang.Object result) -// { -// var h = OnResultHandler; -// if (h != null) -// h(result.JavaCast ()); -// } -// } -// -// public class AwaitableResultCallback : Java.Lang.Object, IResultCallback where TResult : class, IResult -// { -// public AwaitableResultCallback () -// { -// taskCompletionSource = new TaskCompletionSource (); -// } -// -// TaskCompletionSource taskCompletionSource; -// -// public void OnResult (Java.Lang.Object result) -// { -// var r = result.JavaCast (); -// -// taskCompletionSource.SetResult (r); -// } -// -// public Task AwaitAsync () -// { -// return taskCompletionSource.Task; -// } -// -// public TaskAwaiter GetAwaiter () -// { -// return taskCompletionSource.Task.GetAwaiter (); -// } -// } -// -// public static class IPendingResultExtensions -// { -// public static void SetResultCallback (this IPendingResult pr, Action callback) where TResult : class, IResult -// { -// pr.SetResultCallback (new ResultCallback (callback)); -// } -// -// public static Task AsAsync (this IPendingResult pr) where TResult : class, IResult -// { -// var rc = new AwaitableResultCallback (); -// -// pr.SetResultCallback (rc); -// -// return rc.AwaitAsync (); -// } -// -// public static async Task AsAsync (this IPendingResult pr) -// { -// var rc = new AwaitableResultCallback (); -// -// pr.SetResultCallback (rc); -// -// await rc.AwaitAsync (); -// } -// -// public static TaskAwaiter GetAwaiter(this IPendingResult pr) where TResult : class, IResult -// { -// var rc = new AwaitableResultCallback (); -// -// pr.SetResultCallback (rc); -// -// return rc.GetAwaiter (); -// } -// -// public static TaskAwaiter GetAwaiter (this IPendingResult pr) -// { -// var rc = new AwaitableResultCallback (); -// -// pr.SetResultCallback (rc); -// -// return rc.GetAwaiter (); -// } -// } -// -// public partial class GoogleApiClientBuilder -// { -// public GoogleApiClientBuilder AddConnectionCallbacks (Action connectedCallback, Action connectionSuspendedCallback) -// { -// return AddConnectionCallbacks (new IGoogleApiClientConnectionCallbacksImpl (connectedCallback, connectionSuspendedCallback)); -// } -// -// public GoogleApiClientBuilder AddOnConnectionFailedListener (Action callback) -// { -// return AddOnConnectionFailedListener (new IGoogleApiClientOnConnectionFailedListenerImpl (callback)); -// } -// -// public GoogleApiClientBuilder EnableAutoManage (Android.Support.V4.App.FragmentActivity fragmentActivity, int clientId, Action unresolvedConnectionFailedHandler) -// { -// return EnableAutoManage (fragmentActivity, clientId, new IGoogleApiClientOnConnectionFailedListenerImpl (unresolvedConnectionFailedHandler)); -// } -// } -// -// internal class IGoogleApiClientConnectionCallbacksImpl : Java.Lang.Object, IGoogleApiClientConnectionCallbacks -// { -// public IGoogleApiClientConnectionCallbacksImpl (Action onConnectedHandler, Action onConnectionSuspendedHandler) -// { -// OnConnectedHandler = onConnectedHandler; -// OnConnectionSuspendedHandler = onConnectionSuspendedHandler; -// } -// -// public Action OnConnectedHandler { get; private set; } -// public Action OnConnectionSuspendedHandler { get; private set; } -// -// public void OnConnected (Bundle bundle) -// { -// var h = OnConnectedHandler; -// if (h != null) -// h (bundle); -// } -// -// public void OnConnectionSuspended (int cause) -// { -// var h = OnConnectionSuspendedHandler; -// if (h != null) -// h (cause); -// } -// } -// -// internal class IGoogleApiClientOnConnectionFailedListenerImpl : Java.Lang.Object, IGoogleApiClientOnConnectionFailedListener -// { -// public IGoogleApiClientOnConnectionFailedListenerImpl (Action handler) -// { -// OnConnectionFailedHandler = handler; -// } -// -// public Action OnConnectionFailedHandler { get; private set; } -// -// public void OnConnectionFailed (Android.Gms.Common.ConnectionResult result) -// { -// var h = OnConnectionFailedHandler; -// if (h != null) -// h (result); -// } -// } -//} +using System; +using Android.Runtime; +using Java.Util.Concurrent; +using Android.OS; +using System.Threading.Tasks; +using System.Runtime.CompilerServices; + +namespace Android.Gms.Common.Apis +{ + public static class IPendingResultExtensions + { + public static void SetResultCallback (this PendingResult pr, Action callback) where TResult : class, IResult + { + pr.SetResultCallback (new ResultCallback (callback)); + } + + public static Task AsAsync (this PendingResult pr) where TResult : class, IResult + { + var rc = new AwaitableResultCallback (); + + pr.SetResultCallback (rc); + + return rc.AwaitAsync (); + } + + public static async Task AsAsync (this PendingResult pr) + { + var rc = new AwaitableResultCallback (); + + pr.SetResultCallback (rc); + + await rc.AwaitAsync (); + } + + public static TaskAwaiter GetAwaiter (this PendingResult pr) where TResult : class, IResult + { + var rc = new AwaitableResultCallback (); + + pr.SetResultCallback (rc); + + return rc.GetAwaiter (); + } + + public static TaskAwaiter GetAwaiter (this PendingResult pr) + { + var rc = new AwaitableResultCallback (); + + pr.SetResultCallback (rc); + + return rc.GetAwaiter (); + } + } + + public partial class GoogleApiClient + { + public partial class Builder + { + public Builder AddConnectionCallbacks (Action connectedCallback, Action connectionSuspendedCallback) + { + return AddConnectionCallbacks (new GoogleApiClientConnectionCallbacksImpl (connectedCallback, connectionSuspendedCallback)); + } + + public Builder AddConnectionCallbacks (Action connectedCallback) + { + return AddConnectionCallbacks (new GoogleApiClientConnectionCallbacksImpl (connectedCallback, null)); + } + + public Builder AddConnectionCallbacks (Action connectedCallback) + { + return AddConnectionCallbacks (new GoogleApiClientConnectionCallbacksImpl (h => connectedCallback (), null)); + } + + public Builder AddOnConnectionFailedListener (Action callback) + { + return AddOnConnectionFailedListener (new GoogleApiClientOnConnectionFailedListenerImpl (callback)); + } + + public Builder EnableAutoManage (Android.Support.V4.App.FragmentActivity fragmentActivity, int clientId, Action unresolvedConnectionFailedHandler) + { + return EnableAutoManage (fragmentActivity, clientId, new GoogleApiClientOnConnectionFailedListenerImpl (unresolvedConnectionFailedHandler)); + } + + public Builder EnableAutoManage (Android.Support.V4.App.FragmentActivity fragmentActivity, Action unresolvedConnectionFailedHandler) + { + return EnableAutoManage (fragmentActivity, new GoogleApiClientOnConnectionFailedListenerImpl (unresolvedConnectionFailedHandler)); + } + } + } + + internal class GoogleApiClientConnectionCallbacksImpl : Java.Lang.Object, GoogleApiClient.IConnectionCallbacks + { + public GoogleApiClientConnectionCallbacksImpl (Action onConnectedHandler, Action onConnectionSuspendedHandler) + { + OnConnectedHandler = onConnectedHandler; + OnConnectionSuspendedHandler = onConnectionSuspendedHandler; + } + + public Action OnConnectedHandler { get; private set; } + public Action OnConnectionSuspendedHandler { get; private set; } + + public void OnConnected (Bundle bundle) + { + var h = OnConnectedHandler; + if (h != null) + h (bundle); + } + + public void OnConnectionSuspended (int cause) + { + var h = OnConnectionSuspendedHandler; + if (h != null) + h (cause); + } + } + + internal class GoogleApiClientOnConnectionFailedListenerImpl : Java.Lang.Object, GoogleApiClient.IOnConnectionFailedListener + { + public GoogleApiClientOnConnectionFailedListenerImpl (Action handler) + { + OnConnectionFailedHandler = handler; + } + + public Action OnConnectionFailedHandler { get; private set; } + + public void OnConnectionFailed (Android.Gms.Common.ConnectionResult result) + { + var h = OnConnectionFailedHandler; + if (h != null) + h (result); + } + } +} diff --git a/base/source/Base.csproj b/base/source/Base.csproj index 61d6bdd2a..6d2fbf7f1 100644 --- a/base/source/Base.csproj +++ b/base/source/Base.csproj @@ -3,7 +3,7 @@ Debug AnyCPU - {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} {3F6BAE25-ADEB-468C-8384-AD655623C341} Library GooglePlayServices.Base @@ -11,12 +11,15 @@ Assets False Xamarin.GooglePlayServices.Base - v4.1 - -XX:-UseSplitVerifier + v7.0 + + jar2xml ..\..\externals\docs\reference + 8.0.30703 + 2.0 true @@ -43,8 +46,23 @@ + + ..\..\packages\Xamarin.Android.Support.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Compat.dll + + + ..\..\packages\Xamarin.Android.Support.Core.UI.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.UI.dll + + + ..\..\packages\Xamarin.Android.Support.Core.Utils.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.Utils.dll + + + ..\..\packages\Xamarin.Android.Support.Media.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Media.Compat.dll + + + ..\..\packages\Xamarin.Android.Support.Fragment.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Fragment.dll + - ..\..\packages\Xamarin.Android.Support.v4.23.1.1.1\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll + ..\..\packages\Xamarin.Android.Support.v4.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.v4.dll @@ -55,8 +73,9 @@ Properties\GpsConsts.cs - + + @@ -79,6 +98,10 @@ {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE} Basement + + {53F87D88-8871-41A2-9F81-B79AB02FEC24} + Tasks + diff --git a/base/source/Properties/AssemblyInfo.cs b/base/source/Properties/AssemblyInfo.cs index 5abe94899..f5ebbde85 100644 --- a/base/source/Properties/AssemblyInfo.cs +++ b/base/source/Properties/AssemblyInfo.cs @@ -8,9 +8,9 @@ [assembly: AssemblyTitle ("Xamarin.GooglePlayServices.Base")] [assembly: AssemblyDescription ("")] [assembly: AssemblyConfiguration ("")] -[assembly: AssemblyCompany ("Xamarin")] +[assembly: AssemblyCompany ("Microsoft Corporation")] [assembly: AssemblyProduct ("")] -[assembly: AssemblyCopyright ("Xamarin")] +[assembly: AssemblyCopyright ("Copyright © Microsoft Corporation")] [assembly: AssemblyTrademark ("")] [assembly: AssemblyCulture ("")] @@ -27,22 +27,22 @@ //[assembly: AssemblyKeyFile("")] [assembly: Java.Interop.JavaLibraryReference ("classes.jar", - PackageName = __Consts.PackageName, + PackageName = __GpsConsts.PackageName, SourceUrl = __GpsConsts.Url, EmbeddedArchive = __Consts.AarPath, - Version = __GpsConsts.Version)] + Version = __GpsConsts.Version, + Sha1sum = __GpsConsts.Sha1sum)] // AppCompat-v7 resources [assembly: Android.IncludeAndroidResourcesFromAttribute ("./", - PackageName = __Consts.PackageName, + PackageName = __GpsConsts.PackageName, SourceUrl = __GpsConsts.Url, EmbeddedArchive = __Consts.AarPath, - Version = __GpsConsts.Version)] + Version = __GpsConsts.Version, + Sha1sum = __GpsConsts.Sha1sum)] // Google Addon feed with GPS in it: // https://dl-ssl.google.com/android/repository/addon.xml static class __Consts { - public const string PackageName = "GPS Base"; public const string AarPath = "m2repository/com/google/android/gms/play-services-base/" + __GpsConsts.Version + "/play-services-base-" + __GpsConsts.Version + ".aar"; } - \ No newline at end of file diff --git a/base/source/Transforms/Metadata.generated.xml b/base/source/Transforms/Metadata.generated.xml index 49c0c7699..26c2f6238 100644 --- a/base/source/Transforms/Metadata.generated.xml +++ b/base/source/Transforms/Metadata.generated.xml @@ -1,245 +1,2 @@ - context - token - context - eventIndex - accountName - ctx - accountName - context - account - scope - context - account - scope - extras - context - accountName - scope - context - accountName - scope - extras - context - account - scope - extras - context - account - scope - extras - callback - context - account - scope - extras - authority - syncBundle - context - accountName - scope - extras - context - accountName - scope - extras - callback - context - accountName - scope - extras - authority - syncBundle - context - token - dialog - dialog - cancelListener - dialog - savedInstanceState - manager - tag - activity - errorCode - requestCode - activity - errorCode - requestCode - cancelListener - context - errorCode - requestCode - errorCode - context - context - errorCode - activity - errorCode - requestCode - activity - errorCode - requestCode - cancelListener - context - errorCode - errorCode - activity - requestCode - errorCode - activity - requestCode - cancelListener - errorCode - context - requestCode - errorCode - context - context - context - context - errorCode - errorCode - activity - requestCode - errorCode - activity - requestCode - cancelListener - errorCode - activity - fragment - requestCode - cancelListener - errorCode - context - context - context - attrs - context - attrs - defStyle - view - colorScheme - enabled - listener - scopes - buttonSize - buttonSize - colorScheme - buttonSize - colorScheme - scopes - dialog - dialog - cancelListener - dialog - savedInstanceState - manager - tag - dataHolder - teleportee - dest - flags - position - count - position - count - fromPosition - toPosition - count - position - count - observer - observer - observer - position - count - position - count - fromPosition - toPosition - count - position - count - observer - buffer - buffer - buffer - buffer - columns - windows - statusCode - metadata - dest - flags - list - array - iterable - objValue - column - column - column - column - column - column - position - context - imageView - resId - imageView - uri - imageView - uri - defaultResId - listener - uri - listener - uri - defaultResId - width - height - objValue - stringValue - url - url - width - height - json - other - output - flags - objValue - objValue - buttonSize - colorScheme - scopes - dest - flags - code - data - reply - flags - savedInstanceState - inflater - container - savedInstanceState - activity - attrs - savedInstanceState - outState - canvas - who - bounds - who - what - when - alpha - cf - durationMillis - who - what - canvas - widthMeasureSpec - heightMeasureSpec - objValue diff --git a/base/source/Transforms/Metadata.xml b/base/source/Transforms/Metadata.xml index fce2ba17b..b58d69711 100644 --- a/base/source/Transforms/Metadata.xml +++ b/base/source/Transforms/Metadata.xml @@ -3,19 +3,22 @@ Android.Gms.Actions Android.Gms.Auth + Android.Gms.Auth.Account Android.Gms.Common Android.Gms.Common.Data Android.Gms.Common.Images Android.Gms.Common.Internal Android.Gms.Common.Api.Internal - + Android.Gms.Auth.Api.SignIn + Android.Gms.Auth.Api.SignIn.Internal + Android.Gms.Common.Apis + Android.Gms.SignIn.Internal - - + @@ -34,10 +37,20 @@ Java.Lang.Object Java.Lang.Object[] + + + + + + source size dest flags + + Android.Gms.Common.Apis.Api.IApiOptionsHasOptions + Android.Gms.Common.Apis.Api.IApiOptionsHasOptions + diff --git a/base/source/packages.config b/base/source/packages.config index 59cde6e53..71e0c9953 100644 --- a/base/source/packages.config +++ b/base/source/packages.config @@ -1,4 +1,9 @@  - + + + + + + \ No newline at end of file diff --git a/basement/buildtasks.tests/Basement.BuildTasks.Tests.csproj b/basement/buildtasks.tests/Basement.BuildTasks.Tests.csproj new file mode 100644 index 000000000..09cec4014 --- /dev/null +++ b/basement/buildtasks.tests/Basement.BuildTasks.Tests.csproj @@ -0,0 +1,50 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {76CDBE93-0177-4980-8514-C4D785E1DC78} + Library + buildtasks.tests + buildtasks.tests + v4.5 + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + false + + + true + bin\Release + prompt + 4 + false + + + + + ..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll + + + + + + + + + + + {21D99A15-AB98-4691-A45B-D236B2A91DEB} + Basement-BuildTasks + + + + \ No newline at end of file diff --git a/basement/buildtasks.tests/Test.cs b/basement/buildtasks.tests/Test.cs new file mode 100644 index 000000000..3545be809 --- /dev/null +++ b/basement/buildtasks.tests/Test.cs @@ -0,0 +1,85 @@ +using NUnit.Framework; +using System; +using System.IO; +using Xamarin.GooglePlayServices.Tasks; +using System.Reflection; + +namespace buildtasks.tests +{ + [TestFixture ()] + public class GoogleServicesJsonTests + { + const string TestPkgName = "com.xamarin.sample"; + + static Stream OpenTestFile () + { + var path = Path.Combine (TestContext.CurrentContext.TestDirectory, "..", "..", "google-services.json"); + + return File.OpenRead (path); + } + + [Test] + public void GoogleApiKey_Should_Match_Test () + { + var g = GoogleServicesJsonProcessor.ProcessJson (TestPkgName, OpenTestFile ()); + var v = g.GetGoogleApiKey (TestPkgName); + + Assert.AreEqual ("AIzaSyCfJp9rrUEaA07vdoGvGQgJqm0Fa9cJGiw", v); + } + + [Test] + public void GoogleAppId_Should_Match_Test () + { + var g = GoogleServicesJsonProcessor.ProcessJson (TestPkgName, OpenTestFile ()); + var v = g.GetGoogleAppId (TestPkgName); + + Assert.AreEqual ("1:1041063143217:android:ffbe6976403db935", v); + } + + [Test] + public void CrashReportingApiKey_Should_Match_Test () + { + var g = GoogleServicesJsonProcessor.ProcessJson (TestPkgName, OpenTestFile ()); + var v = g.GetCrashReportingApiKey (TestPkgName); + + Assert.AreEqual ("AIzaSyCfJp9rrUEaA07vdoGvGQgJqm0Fa9cJGiw", v); + } + + [Test] + public void DefaultGcmSenderId_Should_Match_Test () + { + var g = GoogleServicesJsonProcessor.ProcessJson (TestPkgName, OpenTestFile ()); + var v = g.GetDefaultGcmSenderId (); + + Assert.AreEqual ("1041063143217", v); + } + + [Test] + public void DefaultWebClientId_Should_Match_Test () + { + var g = GoogleServicesJsonProcessor.ProcessJson (TestPkgName, OpenTestFile ()); + var v = g.GetDefaultWebClientId (TestPkgName); + + Assert.AreEqual ("1041063143217-hu5u4dnv8dkj19i4tpi6piv97kd2k9i0.apps.googleusercontent.com", v); + } + + [Test] + public void FirebaseDatabaseUrl_Should_Match_Test () + { + var g = GoogleServicesJsonProcessor.ProcessJson (TestPkgName, OpenTestFile ()); + var v = g.GetFirebaseDatabaseUrl (); + + Assert.AreEqual ("https://white-cedar-97320.firebaseio.com", v); + } + + [Test] + public void GATrackingId_Should_Match_Test () + { + var g = GoogleServicesJsonProcessor.ProcessJson (TestPkgName, OpenTestFile ()); + var v = g.GetGATrackingId (TestPkgName); + + Assert.AreEqual ("UA-6465612-26", v); + } + } +} + diff --git a/basement/buildtasks/google-services.json b/basement/buildtasks.tests/google-services.json similarity index 67% rename from basement/buildtasks/google-services.json rename to basement/buildtasks.tests/google-services.json index efaf9cf8f..f9d9e874e 100644 --- a/basement/buildtasks/google-services.json +++ b/basement/buildtasks.tests/google-services.json @@ -1,18 +1,16 @@ { "project_info": { - "project_id": "white-cedar-97320", "project_number": "1041063143217", - "name": "Xamarin" + "firebase_url": "https://white-cedar-97320.firebaseio.com", + "project_id": "white-cedar-97320", + "storage_bucket": "white-cedar-97320.appspot.com" }, "client": [ { "client_info": { "mobilesdk_app_id": "1:1041063143217:android:ffbe6976403db935", - "client_id": "android:com.xamarin.sample", - "client_type": 1, "android_client_info": { - "package_name": "com.xamarin.sample", - "certificate_hash": [] + "package_name": "com.xamarin.sample" } }, "oauth_client": [ @@ -24,12 +22,20 @@ "certificate_hash": "84949BBD3F34C8290A55AC9B66AD0A701EBA67AC" } }, + { + "client_id": "1041063143217-hu5u4dnv8dkj19i4tpi6piv97kd2k9i0.apps.googleusercontent.com", + "client_type": 3 + }, { "client_id": "1041063143217-n82odtjjgs9g2qnh1t470mdhj086id9f.apps.googleusercontent.com", "client_type": 3 } ], - "api_key": [], + "api_key": [ + { + "current_key": "AIzaSyCfJp9rrUEaA07vdoGvGQgJqm0Fa9cJGiw" + } + ], "services": { "analytics_service": { "status": 2, @@ -37,38 +43,27 @@ "tracking_id": "UA-6465612-26" } }, - "cloud_messaging_service": { - "status": 2, - "apns_config": [] - }, "appinvite_service": { "status": 2, "other_platform_oauth_client": [ { - "client_id": "1041063143217-n82odtjjgs9g2qnh1t470mdhj086id9f.apps.googleusercontent.com", + "client_id": "1041063143217-hu5u4dnv8dkj19i4tpi6piv97kd2k9i0.apps.googleusercontent.com", "client_type": 3 }, { "client_id": "1041063143217-rdc97s7jssl1k29c83b6oci04sihqkdi.apps.googleusercontent.com", "client_type": 2, "ios_info": { - "bundle_id": "com.xamarin.googleios.collectallthestars", - "app_store_id": "" + "bundle_id": "com.xamarin.googleios.collectallthestars" } } ] }, - "google_signin_service": { - "status": 2 - }, "ads_service": { - "status": 2, - "test_banner_ad_unit_id": "ca-app-pub-3940256099942544/6300978111", - "test_interstitial_ad_unit_id": "ca-app-pub-3940256099942544/1033173712" + "status": 2 } } } ], - "client_info": [], - "ARTIFACT_VERSION": "1" -} \ No newline at end of file + "configuration_version": "1" +} diff --git a/basement/buildtasks.tests/packages.config b/basement/buildtasks.tests/packages.config new file mode 100644 index 000000000..c714ef3a2 --- /dev/null +++ b/basement/buildtasks.tests/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/basement/buildtasks/Basement-BuildTasks.csproj b/basement/buildtasks/Basement-BuildTasks.csproj index 5e5a287f3..ba9baa278 100644 --- a/basement/buildtasks/Basement-BuildTasks.csproj +++ b/basement/buildtasks/Basement-BuildTasks.csproj @@ -20,11 +20,6 @@ prompt 4 false - - - - - full @@ -46,6 +41,7 @@ + diff --git a/basement/buildtasks/GoogleServicesJsonProcessor.cs b/basement/buildtasks/GoogleServicesJsonProcessor.cs new file mode 100644 index 000000000..c27568ff2 --- /dev/null +++ b/basement/buildtasks/GoogleServicesJsonProcessor.cs @@ -0,0 +1,25 @@ +using System; +using System.IO; +using System.Runtime.Serialization.Json; + +namespace Xamarin.GooglePlayServices.Tasks +{ + public class GoogleServicesJsonProcessor + { + public GoogleServicesJsonProcessor () + { + } + + public static GoogleServices ProcessJson (string packageName, Stream json) + { + GoogleServices googleServices; + + var serializer = new DataContractJsonSerializer (typeof (GoogleServices)); + googleServices = serializer.ReadObject (json) as GoogleServices; + if (googleServices == null) + throw new NullReferenceException (); + return googleServices; + } + } +} + diff --git a/basement/buildtasks/Models.cs b/basement/buildtasks/Models.cs index 7a07d10f0..42dc1af1a 100644 --- a/basement/buildtasks/Models.cs +++ b/basement/buildtasks/Models.cs @@ -15,6 +15,10 @@ public class ProjectInfo public string ProjectNumber { get; set; } [DataMember (Name="name")] public string Name { get; set; } + [DataMember (Name="firebase_url")] + public string FirebaseUrl { get; set; } + [DataMember (Name="storage_bucket")] + public string StorageBucket { get; set; } } [DataContract] @@ -168,11 +172,19 @@ public class Client [DataMember (Name="oauth_client")] public List OauthClient { get; set; } [DataMember (Name="api_key")] - public List ApiKey { get; set; } + public List ApiKey { get; set; } [DataMember (Name="services")] public Services Services { get; set; } } + [DataContract] + [Serializable] + public class ApiKey + { + [DataMember (Name = "current_key")] + public string CurrentKey { get; set; } + } + [DataContract] [Serializable] public class GoogleServices @@ -254,6 +266,75 @@ public string GetTestInterstitialAdUnitId (string packageName) return null; } + + public string GetDefaultWebClientId (string packageName) + { + // default_web_client_id: + // {YOUR_CLIENT}/oauth_client/client_id(client_type == 3) + + var client = GetClient (packageName); + if (client == null) + return null; + + if (client.OauthClient != null && client.OauthClient.Any ()) { + var oauthClient = client.OauthClient.FirstOrDefault (c => c.ClientType == 3); + if (oauthClient != null) + return oauthClient.ClientId; + } + + return null; + } + + public string GetGoogleApiKey (string packageName) + { + // google_api_key: + // {YOUR_CLIENT}/api_key/current_key + + var client = GetClient (packageName); + if (client == null) + return null; + + if (client.ApiKey != null && client.ApiKey.Any ()) + return client.ApiKey.FirstOrDefault ().CurrentKey; + + return null; + } + + public string GetFirebaseDatabaseUrl () + { + // firebase_database_url: + // project_info/firebase_url + + if (ProjectInfo != null) + return ProjectInfo.FirebaseUrl; + + return null; + } + + public string GetCrashReportingApiKey (string packageName) + { + // google_crash_reporting_api_key: + // {YOUR_CLIENT}/api_key/current_key + + var client = GetClient (packageName); + if (client == null) + return null; + + if (client.ApiKey != null && client.ApiKey.Any ()) + return client.ApiKey.FirstOrDefault ().CurrentKey; + + return null; + } + + public string GetStorageBucket (string packageName) + { + // google_storage_bucket: + // project_info/storage_bucket + if (ProjectInfo != null) + return ProjectInfo.StorageBucket; + + return null; + } } } diff --git a/basement/buildtasks/ProcessGoogleServicesJson.cs b/basement/buildtasks/ProcessGoogleServicesJson.cs index df88b0978..68352ddf7 100644 --- a/basement/buildtasks/ProcessGoogleServicesJson.cs +++ b/basement/buildtasks/ProcessGoogleServicesJson.cs @@ -16,6 +16,9 @@ public class ProcessGoogleServicesJson : Task public string IntermediateOutputPrefix { get; set; } + [Output] + public ITaskItem[] GoogleServicesGeneratedResources { get; set; } + [Required] public string AndroidPackageName { get; set; } @@ -32,10 +35,15 @@ public override bool Execute () { Log.LogMessage ("Started ProcessGoogleServicesJson..."); + Log.LogMessage ("Android Package Name: {0}", AndroidPackageName); + // Paths to write resource files to var xmlPath = Path.Combine (MonoAndroidResDirIntermediate, "xml", RESFILE_XML); var valuesPath = Path.Combine (MonoAndroidResDirIntermediate, "values", RESFILE_VALUES); + var wroteXmlPath = false; + var wroteValuesPath = false; + if (GoogleServicesJsons == null || !GoogleServicesJsons.Any ()) { Log.LogMessage ("No GoogleServicesJson Build Action items specified, skipping task."); DeleteFiles (valuesPath, xmlPath); @@ -49,40 +57,48 @@ public override bool Execute () var gsPath = CleanPath (gsItem.ItemSpec); - GoogleServices googleServices; try { - var serializer = new DataContractJsonSerializer (typeof (GoogleServices)); - using (var sr = System.IO.File.OpenRead (gsPath)){ - googleServices = serializer.ReadObject (sr) as GoogleServices; - if (googleServices == null) - throw new NullReferenceException (); + using (var sr = File.OpenRead (gsPath)) { + googleServices = GoogleServicesJsonProcessor.ProcessJson (AndroidPackageName, sr); } + if (googleServices == null) + throw new NullReferenceException (); } catch (Exception ex) { Log.LogError ("Failed to Read or Deserialize GoogleServicesJson file: {0}{1}{2}", gsPath, Environment.NewLine, ex); DeleteFiles (valuesPath, xmlPath); return false; } - if (string.IsNullOrEmpty (AndroidPackageName)) { Log.LogError ("Android Package Name not specified for project"); return false; } + var resolvedClientInfo = googleServices.GetClient (AndroidPackageName); + if (resolvedClientInfo == null) { + Log.LogWarning ("Failed to find client_info in google-services.json matching package name: {0}", AndroidPackageName); + } + var valuesItems = new Dictionary { { "ga_trackingId", googleServices.GetGATrackingId (AndroidPackageName) }, { "gcm_defaultSenderId", googleServices.GetDefaultGcmSenderId () }, { "google_app_id", googleServices.GetGoogleAppId (AndroidPackageName) }, { "test_banner_ad_unit_id", googleServices.GetTestBannerAdUnitId (AndroidPackageName) }, - { "test_interstitial_ad_unit_id", googleServices.GetTestInterstitialAdUnitId (AndroidPackageName) } + { "test_interstitial_ad_unit_id", googleServices.GetTestInterstitialAdUnitId (AndroidPackageName) }, + { "default_web_client_id", googleServices.GetDefaultWebClientId (AndroidPackageName) }, + { "firebase_database_url", googleServices.GetFirebaseDatabaseUrl () }, + { "google_api_key", googleServices.GetGoogleApiKey (AndroidPackageName) }, + { "google_crash_reporting_api_key", googleServices.GetCrashReportingApiKey (AndroidPackageName) }, + { "google_storage_bucket", googleServices.GetStorageBucket (AndroidPackageName) }, }; - + // We only want to create the file if not all of these values are missing if (valuesItems.Any (kvp => !string.IsNullOrEmpty (kvp.Value))) { Log.LogMessage ("Writing Resource File: {0}", valuesPath); WriteResourceDoc (valuesPath, valuesItems); + wroteValuesPath = true; Log.LogMessage ("Wrote Resource File: {0}", valuesPath); } else { if (File.Exists (valuesPath)) { @@ -103,6 +119,7 @@ public override bool Execute () if (xmlItems.Any (kvp => !string.IsNullOrEmpty (kvp.Value))) { Log.LogMessage ("Writing Resource File: {0}", xmlPath); WriteResourceDoc (xmlPath, xmlItems); + wroteXmlPath = true; Log.LogMessage ("Wrote Resource File: {0}", xmlPath); } else { // If no @@ -116,6 +133,15 @@ public override bool Execute () } } + var outputFiles = new List (); + if (wroteXmlPath) + outputFiles.Add (new TaskItem (xmlPath)); + if (wroteValuesPath) + outputFiles.Add (new TaskItem (valuesPath)); + + if (outputFiles.Any ()) + GoogleServicesGeneratedResources = outputFiles.ToArray (); + Log.LogMessage ("Finished ProcessGoogleServicesJson..."); return true; } diff --git a/basement/buildtasks/Properties/AssemblyInfo.cs b/basement/buildtasks/Properties/AssemblyInfo.cs index 4b2e1668f..bcb224d29 100644 --- a/basement/buildtasks/Properties/AssemblyInfo.cs +++ b/basement/buildtasks/Properties/AssemblyInfo.cs @@ -7,9 +7,9 @@ [assembly: AssemblyTitle ("Xamarin.GooglePlayServices.Tasks")] [assembly: AssemblyDescription ("")] [assembly: AssemblyConfiguration ("")] -[assembly: AssemblyCompany ("")] +[assembly: AssemblyCompany ("Microsoft Corporation")] [assembly: AssemblyProduct ("")] -[assembly: AssemblyCopyright ("redth")] +[assembly: AssemblyCopyright ("Copyright © Microsoft Corporation")] [assembly: AssemblyTrademark ("")] [assembly: AssemblyCulture ("")] diff --git a/basement/buildtasks/Xamarin.GooglePlayServices.Basement.targets b/basement/buildtasks/Xamarin.GooglePlayServices.Basement.targets index ea1460108..63c2cb54b 100644 --- a/basement/buildtasks/Xamarin.GooglePlayServices.Basement.targets +++ b/basement/buildtasks/Xamarin.GooglePlayServices.Basement.targets @@ -30,6 +30,9 @@ _UpdateAndroidResgen;$(ProcessGoogleServicesJsonBeforeTargets); + + $(ProcessGoogleServicesJsonAfterTargets); + @@ -41,7 +44,8 @@ + BeforeTargets="$(ProcessGoogleServicesJsonBeforeTargets)" + AfterTargets="$(ProcessGoogleServicesJsonAfterTargets)"> + diff --git a/basement/nuget/Xamarin.GooglePlayServices.Basement.nuspec b/basement/nuget/Xamarin.GooglePlayServices.Basement.nuspec deleted file mode 100644 index 99a5845e7..000000000 --- a/basement/nuget/Xamarin.GooglePlayServices.Basement.nuspec +++ /dev/null @@ -1,52 +0,0 @@ - - - - Xamarin.GooglePlayServices.Basement - Xamarin Google Play Services - Basement - $version$ - Xamarin Inc. - Xamarin Inc. - true - Xamarin.Android Bindings for Google Play Services - Basement - do not install directly - - Xamarin.Android Bindings for Google Play Services - Basement - - Instead of installing this package directly, install the specific package(s) you need: - - Xamarin Google Play Services - Ads - - Xamarin Google Play Services - Analytics - - Xamarin Google Play Services - AppIndexing - - Xamarin Google Play Services - AppInvite - - Xamarin Google Play Services - Auth - - Xamarin Google Play Services - Cast - - Xamarin Google Play Services - Drive - - Xamarin Google Play Services - Fitness - - Xamarin Google Play Services - Games - - Xamarin Google Play Services - GCM - - Xamarin Google Play Services - Identity - - Xamarin Google Play Services - Location - - Xamarin Google Play Services - Maps - - Xamarin Google Play Services - Measurement - - Xamarin Google Play Services - Nearby - - Xamarin Google Play Services - Panorama - - Xamarin Google Play Services - Plus - - Xamarin Google Play Services - SafetyNet - - Xamarin Google Play Services - Vision - - Xamarin Google Play Services - Wallet - - Xamarin Google Play Services - Wearable - - NOTE: Auth may be moved into its own package in the future! - - Copyright 2013-2016 - https://github.com/xamarin/GooglePlayServicesComponents/ - https://github.com/xamarin/GooglePlayServicesComponents/blob/master/LICENSE.md - https://xamarin-component-icons.s3.amazonaws.com/Xamarin.GooglePlayServices.Basement.png - - - - - - - - - - diff --git a/basement/nuget/Xamarin.GooglePlayServices.Basement.template.nuspec b/basement/nuget/Xamarin.GooglePlayServices.Basement.template.nuspec new file mode 100644 index 000000000..eba6659db --- /dev/null +++ b/basement/nuget/Xamarin.GooglePlayServices.Basement.template.nuspec @@ -0,0 +1,30 @@ + + + + Xamarin.GooglePlayServices.Basement + Xamarin Google Play Services - Basement + $version$ + Xamarin Inc. + Xamarin Inc. + true + Xamarin.Android Bindings for Google Play Services - Basement $aar-version$ - do not install directly + + Xamarin.Android Bindings for Google Play Services - Basement $aar-version$ + + Instead of installing this package directly, install the specific package(s) you need. + + Copyright © Microsoft Corporation + https://github.com/xamarin/GooglePlayServicesComponents/ + https://github.com/xamarin/GooglePlayServicesComponents/blob/master/LICENSE.md + https://raw.githubusercontent.com/xamarin/GooglePlayServicesComponents/master/icons/play-services-basement_128x128.png + + + + + + + + + + + diff --git a/basement/source/Additions/Manifest.cs b/basement/source/Additions/Manifest.cs new file mode 100644 index 000000000..e6f7fa751 --- /dev/null +++ b/basement/source/Additions/Manifest.cs @@ -0,0 +1,4 @@ +using System; +using Android.App; + +[assembly:MetaData ("com.google.android.gms.version", Value = "@integer/google_play_services_version")] diff --git a/basement/source/Additions/ResultCallbackImpl.cs b/basement/source/Additions/ResultCallbackImpl.cs index dc1fe93a8..e2f7bb16c 100644 --- a/basement/source/Additions/ResultCallbackImpl.cs +++ b/basement/source/Additions/ResultCallbackImpl.cs @@ -50,127 +50,4 @@ public TaskAwaiter GetAwaiter () return taskCompletionSource.Task.GetAwaiter (); } } - - public static class IPendingResultExtensions - { - public static void SetResultCallback (this PendingResult pr, Action callback) where TResult : class, IResult - { - pr.SetResultCallback (new ResultCallback (callback)); - } - - public static Task AsAsync (this PendingResult pr) where TResult : class, IResult - { - var rc = new AwaitableResultCallback (); - - pr.SetResultCallback (rc); - - return rc.AwaitAsync (); - } - - public static async Task AsAsync (this PendingResult pr) - { - var rc = new AwaitableResultCallback (); - - pr.SetResultCallback (rc); - - await rc.AwaitAsync (); - } - - public static TaskAwaiter GetAwaiter(this PendingResult pr) where TResult : class, IResult - { - var rc = new AwaitableResultCallback (); - - pr.SetResultCallback (rc); - - return rc.GetAwaiter (); - } - - public static TaskAwaiter GetAwaiter (this PendingResult pr) - { - var rc = new AwaitableResultCallback (); - - pr.SetResultCallback (rc); - - return rc.GetAwaiter (); - } - } - - public partial class GoogleApiClient - { - public partial class Builder - { - public Builder AddConnectionCallbacks (Action connectedCallback, Action connectionSuspendedCallback) - { - return AddConnectionCallbacks (new GoogleApiClientConnectionCallbacksImpl (connectedCallback, connectionSuspendedCallback)); - } - - public Builder AddConnectionCallbacks (Action connectedCallback) - { - return AddConnectionCallbacks (new GoogleApiClientConnectionCallbacksImpl (connectedCallback, null)); - } - - public Builder AddConnectionCallbacks (Action connectedCallback) - { - return AddConnectionCallbacks (new GoogleApiClientConnectionCallbacksImpl (h => connectedCallback (), null)); - } - - public Builder AddOnConnectionFailedListener (Action callback) - { - return AddOnConnectionFailedListener (new GoogleApiClientOnConnectionFailedListenerImpl (callback)); - } - - public Builder EnableAutoManage (Android.Support.V4.App.FragmentActivity fragmentActivity, int clientId, Action unresolvedConnectionFailedHandler) - { - return EnableAutoManage (fragmentActivity, clientId, new GoogleApiClientOnConnectionFailedListenerImpl (unresolvedConnectionFailedHandler)); - } - - public Builder EnableAutoManage (Android.Support.V4.App.FragmentActivity fragmentActivity, Action unresolvedConnectionFailedHandler) - { - return EnableAutoManage (fragmentActivity, new GoogleApiClientOnConnectionFailedListenerImpl (unresolvedConnectionFailedHandler)); - } - } - } - - internal class GoogleApiClientConnectionCallbacksImpl : Java.Lang.Object, GoogleApiClient.IConnectionCallbacks - { - public GoogleApiClientConnectionCallbacksImpl (Action onConnectedHandler, Action onConnectionSuspendedHandler) - { - OnConnectedHandler = onConnectedHandler; - OnConnectionSuspendedHandler = onConnectionSuspendedHandler; - } - - public Action OnConnectedHandler { get; private set; } - public Action OnConnectionSuspendedHandler { get; private set; } - - public void OnConnected (Bundle bundle) - { - var h = OnConnectedHandler; - if (h != null) - h (bundle); - } - - public void OnConnectionSuspended (int cause) - { - var h = OnConnectionSuspendedHandler; - if (h != null) - h (cause); - } - } - - internal class GoogleApiClientOnConnectionFailedListenerImpl : Java.Lang.Object, GoogleApiClient.IOnConnectionFailedListener - { - public GoogleApiClientOnConnectionFailedListenerImpl (Action handler) - { - OnConnectionFailedHandler = handler; - } - - public Action OnConnectionFailedHandler { get; private set; } - - public void OnConnectionFailed (Android.Gms.Common.ConnectionResult result) - { - var h = OnConnectionFailedHandler; - if (h != null) - h (result); - } - } } diff --git a/basement/source/Basement.csproj b/basement/source/Basement.csproj index e86137bb7..a0a8f9d99 100644 --- a/basement/source/Basement.csproj +++ b/basement/source/Basement.csproj @@ -3,7 +3,7 @@ Debug AnyCPU - {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE} Library GooglePlayServices.Basement @@ -11,11 +11,12 @@ Assets False Xamarin.GooglePlayServices.Basement - v4.1 - -XX:-UseSplitVerifier + v7.0 + + jar2xml ..\..\externals\docs\reference 8.0.30703 2.0 @@ -45,8 +46,23 @@ + + ..\..\packages\Xamarin.Android.Support.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Compat.dll + + + ..\..\packages\Xamarin.Android.Support.Core.UI.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.UI.dll + + + ..\..\packages\Xamarin.Android.Support.Core.Utils.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.Utils.dll + + + ..\..\packages\Xamarin.Android.Support.Media.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Media.Compat.dll + + + ..\..\packages\Xamarin.Android.Support.Fragment.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Fragment.dll + - ..\..\packages\Xamarin.Android.Support.v4.23.1.1.1\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll + ..\..\packages\Xamarin.Android.Support.v4.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.v4.dll @@ -57,7 +73,7 @@ Properties\GpsConsts.cs - + diff --git a/basement/source/Properties/AssemblyInfo.cs b/basement/source/Properties/AssemblyInfo.cs index ffd7b5f84..273e2ba51 100644 --- a/basement/source/Properties/AssemblyInfo.cs +++ b/basement/source/Properties/AssemblyInfo.cs @@ -8,9 +8,9 @@ [assembly: AssemblyTitle ("Xamarin.GooglePlayServices.Basement")] [assembly: AssemblyDescription ("")] [assembly: AssemblyConfiguration ("")] -[assembly: AssemblyCompany ("Xamarin")] +[assembly: AssemblyCompany ("Microsoft Corporation")] [assembly: AssemblyProduct ("")] -[assembly: AssemblyCopyright ("Xamarin")] +[assembly: AssemblyCopyright ("Copyright © Microsoft Corporation")] [assembly: AssemblyTrademark ("")] [assembly: AssemblyCulture ("")] @@ -26,25 +26,23 @@ //[assembly: AssemblyDelaySign(false)] //[assembly: AssemblyKeyFile("")] -[assembly:MetaData ("com.google.android.gms.version", Value = "@integer/google_play_services_version")] - [assembly: Java.Interop.JavaLibraryReference ("classes.jar", - PackageName = __Consts.PackageName, + PackageName = __GpsConsts.PackageName, SourceUrl = __GpsConsts.Url, EmbeddedArchive = __Consts.AarPath, - Version = __GpsConsts.Version)] + Version = __GpsConsts.Version, + Sha1sum = __GpsConsts.Sha1sum)] // AppCompat-v7 resources [assembly: Android.IncludeAndroidResourcesFromAttribute ("./", - PackageName = __Consts.PackageName, + PackageName = __GpsConsts.PackageName, SourceUrl = __GpsConsts.Url, EmbeddedArchive = __Consts.AarPath, - Version = __GpsConsts.Version)] + Version = __GpsConsts.Version, + Sha1sum = __GpsConsts.Sha1sum)] // Google Addon feed with GPS in it: // https://dl-ssl.google.com/android/repository/addon.xml static class __Consts { - public const string PackageName = "GPS Basement"; public const string AarPath = "m2repository/com/google/android/gms/play-services-basement/" + __GpsConsts.Version + "/play-services-basement-" + __GpsConsts.Version + ".aar"; } - \ No newline at end of file diff --git a/basement/source/Transforms/Metadata.generated.xml b/basement/source/Transforms/Metadata.generated.xml index e46ca3c52..26c2f6238 100644 --- a/basement/source/Transforms/Metadata.generated.xml +++ b/basement/source/Transforms/Metadata.generated.xml @@ -1,645 +1,2 @@ - context - context - timeoutInMillis - context - shouldSkipGmsCoreVersionCheck - advertisingId - limitAdTrackingEnabled - id - accountName - changeType - eventIndex - changeData - that - dest - flags - account - accountName - eventIndex - dest - flags - events - dest - flags - errValue - msg - throwable - throwable - oValue - output - flags - msg - intent - errValue - context - token - context - eventIndex - accountName - ctx - accountName - context - account - scope - context - account - scope - extras - context - accountName - scope - context - accountName - scope - extras - context - token - account - objValue - output - flags - objValue - output - flags - objValue - output - flags - googleSignInOptions - serverClientId - scope - scopes - serverClientId - serverClientId - forceCodeForRefreshToken - accountName - hostedDomain - SignInAccount - status - output - flags - nameValue - consumerPkgName - objValue - output - flags - oValue - dest - flags - dest - flags - dest - flags - nameValue - playLoggerContext - logEvent - extensionProducer - clientVisualElementsProducer - testCodes - other - output - flags - selectedAccount - allowableAccounts - allowableAccountTypes - alwaysPromptForAccount - descriptionOverrideText - addAccountAuthTokenType - addAccountRequiredFeatures - addAccountOptions - statusCode - statusCode - pendingIntent - statusCode - pendingIntent - message - oValue - activity - requestCode - output - flags - errorCode - msg - intent - nameValue - service - nameValue - context - errorCode - requestCode - errorCode - context - context - errorCode - errorCode - context - requestCode - errorCode - context - context - context - context - errorCode - nameValue - clientBuilder - clientKey - prefix - fd - writer - args - status - googleApiClient - pendingResult - resultToken - status - value - objValue - statusCode - timeout - unit - signInMode - prefix - fd - writer - args - prefix - fd - writer - args - api - api - listener - listener - listener - listener - lifecycleActivity - listener - listener - context - context - connectedListener - connectionFailedListener - api - api - options - api - options - scopes - api - scopes - listener - listener - scope - fragmentActivity - clientId - unresolvedConnectionFailedListener - fragmentActivity - unresolvedConnectionFailedListener - accountName - gravityForPopups - handler - viewForPopups - connectionHint - cause - result - time - units - callback - callback - time - units - transform - result - result - result - activity - requestCode - result - result - result - result - status - status - scopeUri - oValue - dest - flags - statusCode - statusCode - statusMessage - statusCode - statusMessage - pendingIntent - objValue - activity - requestCode - output - flags - callbacks - transform - time - units - callback - callback - time - units - transform - msg - connectionHint - result - cause - timeout - unit - prefix - fd - writer - args - api - connectionHint - cause - connectionHint - cause - connectionHint - cause - timeout - unit - signInMode - prefix - fd - writer - args - api - api - listener - listener - listener - listener - lifecycleActivity - listener - listener - connectionHint - cause - timeout - unit - prefix - fd - writer - args - api - connectionHint - cause - code - data - reply - flags - timeout - unit - prefix - fd - writer - args - api - time - units - callback - callback - time - units - time - units - callback - callback - time - units - transform - prefix - fd - writer - args - requestCode - resultCode - data - dialogInterface - savedInstanceState - outState - callbacks - result - transform - dest - flags - binder - dest - flags - serviceId - dest - flags - account - sessionId - signInAccountHint - dest - flags - oValue - dest - flags - dest - flags - oValue - dialog - which - prefix - fd - writer - args - result - cause - component - binder - component - msg - listener - listener - listener - listener - listener - listener - component - binder - component - code - data - reply - flags - code - data - reply - flags - code - data - reply - flags - code - data - reply - flags - code - data - reply - flags - aValue - bValue - objects - versionCode - nameSpace - typeNum - output - flags - output - flags - output - flags - output - flags - typeIn - typeInArray - typeOut - typeOutArray - outputFieldName - safeParcelableFieldId - concreteType - converter - output - output - flags - rootClazz - output - flags - output - flags - output - flags - output - flags - timeMillis - eventType - callingProcess - callingService - targetProcess - targetService - stackTrace - connKey - elapsedRealtime - heapAlloc - output - flags - timeMillis - eventType - wakelockName - wakelockType - callingPackages - eventKey - elapsedRealtime - deviceState - secondaryWakeLockName - hostPackageName - beginPowerPercentage - timeout - output - flags - hasMenu - menuVisible - retain - isVisibleToUser - intent - intent - requestCode - hasMenu - menuVisible - retain - isVisibleToUser - intent - intent - requestCode - code - data - reply - flags - code - data - reply - flags - hasMenu - menuVisible - retain - isVisibleToUser - intent - intent - requestCode - key - defaultVal - source - key - defaultVal - source - key - defaultVal - source - key - defaultVal - source - wrappedContext - code - data - reply - flags - code - data - reply - flags - code - data - reply - flags - code - data - reply - flags - code - data - reply - flags - code - data - reply - flags - objectValue - collection - objectValue - objectValue - runnable - key - defaultVal - source - key - defaultVal - source - key - defaultVal - source - key - defaultVal - source - context - objValue - code - data - reply - flags - timeout - value - output - oValue - field1 - field2 - field1 - field2 - field1 - field2 - field1 - field2 - field - field - field - field - msg - data - msg - data - off - len - aValue - bValue - msg - msg - data - offset - length - output - oValue - output - oValue - output - oValue - output - oValue - output - oValue - output - eventTime - eventUptime - tag - sourceExtensionBytes - extras - output - flags - versionCode - packageName - packageVersionCode - logSource - uploadAccountName - loggingId - logAndroidId - logSourceName - isAnonymous - qosTier - packageName - packageVersionCode - logSource - logSourceName - uploadAccountName - loggingId - isAnonymous - qosTier - packageName - packageVersionCode - logSource - uploadAccountName - loggingId - logAndroidId - objectValue - output - flags - code - data - reply - flags - connectionHint - result - cause - context - context - listener - connectionResultCode - rawAuthResolutionIntent - dest - flags - dest - flags - dest - flags - resolveAccountRequest - dest - flags - connectionResultStatusCode - result - resolveAccountResponse - dest - flags - code - data - reply - flags - code - data - reply - flags diff --git a/basement/source/Transforms/Metadata.xml b/basement/source/Transforms/Metadata.xml index 7838acd7d..f734dd32d 100644 --- a/basement/source/Transforms/Metadata.xml +++ b/basement/source/Transforms/Metadata.xml @@ -7,9 +7,9 @@ Android.Gms.Auth.Api.Credentials - Android.Gms.Auth.Api.SignIn Android.Gms.Auth.Api.SignIn.Internal Android.Gms.Auth.FirstParty.Shared + Android.Gms.Actions Android.Gms.Common Android.Gms.Clearcut Android.Gms.Common.Annotations @@ -21,13 +21,17 @@ Android.Gms.Common.Server.Converter Android.Gms.Common.Server.Response Android.Gms.Common.Stats + Android.Gms.Common.Util Android.Gms.Dynamic Android.Gms.Dynamite.Descriptors.Flags + Android.Gms.Iid Android.Gms.Security Android.Gms.Ads.Identifier + Android.Gms.Location.Places + Firebase Statuses @@ -48,6 +52,13 @@ + + source + size + dest + flags + + @@ -101,4 +112,6 @@ dest flags + + diff --git a/basement/source/packages.config b/basement/source/packages.config index 59cde6e53..71e0c9953 100644 --- a/basement/source/packages.config +++ b/basement/source/packages.config @@ -1,4 +1,9 @@  - + + + + + + \ No newline at end of file diff --git a/build.cake b/build.cake index 87d5fe9c8..b09b9568f 100644 --- a/build.cake +++ b/build.cake @@ -1,36 +1,118 @@ #tool nuget:?package=ILRepack&version=2.0.10 -#tool nuget:?package=XamarinComponent&version=1.1.0.29 +#tool nuget:?package=XamarinComponent +#tool nuget:?package=Cake.MonoApiTools -#addin nuget:?package=Cake.XCode&version=1.0.4.0 -#addin nuget:?package=Cake.Xamarin&version=1.3.0.1 -#addin nuget:?package=Cake.Xamarin.Build&version=1.0.11.0 -#addin nuget:?package=Cake.FileHelpers&version=1.0.3.2 +#addin nuget:?package=Cake.XCode +#addin nuget:?package=Cake.Xamarin +#addin nuget:?package=Cake.Xamarin.Build +#addin nuget:?package=Cake.FileHelpers +#addin nuget:?package=Cake.MonoApiTools -var TARGET = Argument ("t", Argument ("target", "Default")); +// To find new URL: https://dl-ssl.google.com/android/repository/addon.xml and search for google_play_services_*.zip +var DOCS_URL = "https://dl-ssl.google.com/android/repository/google_play_services_9683000_r33.zip"; +var M2_REPOSITORY = "https://dl-ssl.google.com/android/repository/google_m2repository_r36.zip"; + +// We grab the previous release's api-info.xml to use as a comparison for this build's generated info to make an api-diff +var BASE_API_INFO_URL = "https://github.com/xamarin/GooglePlayServicesComponents/releases/download/29.0.0.2/api-info.xml"; + +var PLAY_COMPONENT_VERSION = "32.961.0.0"; +var PLAY_NUGET_VERSION = "32.961.0"; +var PLAY_AAR_VERSION = "9.6.1"; +var VERSION_DESC = "9.6.1"; -var COMPONENT_VERSION = "29.0.0.2"; -var NUGET_VERSION = "29.0.0.2"; -var COMPONENT_WEAR_VERSION = "1.3.0.4"; -var NUGET_WEAR_VERSION = "1.3.0.4"; -var AAR_VERSION = "8.4.0"; -var WEARABLE_SUPPORT_VERSION = "1.3.0"; +var WEAR_COMPONENT_VERSION = "1.4.0.0"; +var WEAR_NUGET_VERSION = "1.4.0"; +var WEAR_AAR_VERSION = PLAY_AAR_VERSION; + +var WEARABLE_SUPPORT_VERSION = "1.4.0"; var WEARABLE_VERSION = "1.0.0"; -var M2_REPOSITORY = "https://dl-ssl.google.com/android/repository/google_m2repository_r24.zip"; -// https://dl-ssl.google.com/android/repository/addon.xml to find url -var DOCS_URL = "https://dl-ssl.google.com/android/repository/google_play_services_8487000_r29.zip"; +var FIREBASE_COMPONENT_VERSION = PLAY_COMPONENT_VERSION; +var FIREBASE_NUGET_VERSION = PLAY_NUGET_VERSION; +var FIREBASE_AAR_VERSION = PLAY_AAR_VERSION; + +var TARGET = Argument ("t", Argument ("target", "Default")); -var AAR_DIRS = new [] { - "play-services", "play-services-all-wear", "play-services-base", "play-services-basement", "play-services-ads", "play-services-analytics", "play-services-appindexing", - "play-services-appinvite", "play-services-appstate", "play-services-cast", "play-services-drive", "play-services-fitness", "play-services-games", - "play-services-gcm", "play-services-identity", "play-services-location", "play-services-maps", "play-services-measurement", "play-services-nearby", "play-services-panorama", - "play-services-plus", "play-services-safetynet", "play-services-vision", "play-services-wallet", "play-services-wearable", "play-services-auth" +var AAR_INFOS = new [] { + new AarInfo ("play-services-auth", "android/gms/play-services-auth", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-auth-base", "android/gms/play-services-auth-base", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-awareness", "android/gms/play-services-awareness", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-base", "android/gms/play-services-base", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-basement", "android/gms/play-services-basement", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-ads", "android/gms/play-services-ads", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-ads-lite", "android/gms/play-services-ads-lite", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-analytics", "android/gms/play-services-analytics", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-analytics-impl", "android/gms/play-services-analytics-impl", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-appindexing", "android/gms/play-services-appindexing", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-appinvite", "android/gms/play-services-appinvite", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-cast", "android/gms/play-services-cast", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-cast-framework", "android/gms/play-services-cast-framework", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-clearcut", "android/gms/play-services-clearcut", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-drive", "android/gms/play-services-drive", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-fitness", "android/gms/play-services-fitness", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-games", "android/gms/play-services-games", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-gass", "android/gms/play-services-gass", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-gcm", "android/gms/play-services-gcm", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-identity", "android/gms/play-services-identity", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-iid", "android/gms/play-services-iid", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-instantapps", "android/gms/play-services-instantapps", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-location", "android/gms/play-services-location", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-maps", "android/gms/play-services-maps", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-nearby", "android/gms/play-services-nearby", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-panorama", "android/gms/play-services-panorama", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-places", "android/gms/play-services-places", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-plus", "android/gms/play-services-plus", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-safetynet", "android/gms/play-services-safetynet", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-tasks", "android/gms/play-services-tasks", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-tagmanager", "android/gms/play-services-tagmanager", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-tagmanager-api", "android/gms/play-services-tagmanager-api", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-vision", "android/gms/play-services-vision", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-wallet", "android/gms/play-services-wallet", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + new AarInfo ("play-services-wearable", "android/gms/play-services-wearable", PLAY_AAR_VERSION, PLAY_NUGET_VERSION, PLAY_COMPONENT_VERSION), + + new AarInfo ("firebase-ads", "firebase/firebase-ads", FIREBASE_AAR_VERSION, FIREBASE_NUGET_VERSION, FIREBASE_COMPONENT_VERSION), + new AarInfo ("firebase-analytics", "firebase/firebase-analytics", FIREBASE_AAR_VERSION, FIREBASE_NUGET_VERSION, FIREBASE_COMPONENT_VERSION), + new AarInfo ("firebase-analytics-impl", "firebase/firebase-analytics-impl", FIREBASE_AAR_VERSION, FIREBASE_NUGET_VERSION, FIREBASE_COMPONENT_VERSION), + new AarInfo ("firebase-auth", "firebase/firebase-auth", FIREBASE_AAR_VERSION, FIREBASE_NUGET_VERSION, FIREBASE_COMPONENT_VERSION), + new AarInfo ("firebase-auth-common", "firebase/firebase-auth-common", FIREBASE_AAR_VERSION, FIREBASE_NUGET_VERSION, FIREBASE_COMPONENT_VERSION), + new AarInfo ("firebase-auth-module", "firebase/firebase-auth-module", FIREBASE_AAR_VERSION, FIREBASE_NUGET_VERSION, FIREBASE_COMPONENT_VERSION), + new AarInfo ("firebase-common", "firebase/firebase-common", FIREBASE_AAR_VERSION, FIREBASE_NUGET_VERSION, FIREBASE_COMPONENT_VERSION), + new AarInfo ("firebase-config", "firebase/firebase-config", FIREBASE_AAR_VERSION, FIREBASE_NUGET_VERSION, FIREBASE_COMPONENT_VERSION), + new AarInfo ("firebase-core", "firebase/firebase-core", FIREBASE_AAR_VERSION, FIREBASE_NUGET_VERSION, FIREBASE_COMPONENT_VERSION), + new AarInfo ("firebase-crash", "firebase/firebase-crash", FIREBASE_AAR_VERSION, FIREBASE_NUGET_VERSION, FIREBASE_COMPONENT_VERSION), + new AarInfo ("firebase-database", "firebase/firebase-database", FIREBASE_AAR_VERSION, FIREBASE_NUGET_VERSION, FIREBASE_COMPONENT_VERSION), + new AarInfo ("firebase-database-connection", "firebase/firebase-database-connection", FIREBASE_AAR_VERSION, FIREBASE_NUGET_VERSION, FIREBASE_COMPONENT_VERSION), + new AarInfo ("firebase-iid", "firebase/firebase-iid", FIREBASE_AAR_VERSION, FIREBASE_NUGET_VERSION, FIREBASE_COMPONENT_VERSION), + new AarInfo ("firebase-invites", "firebase/firebase-invites", FIREBASE_AAR_VERSION, FIREBASE_NUGET_VERSION, FIREBASE_COMPONENT_VERSION), + new AarInfo ("firebase-messaging", "firebase/firebase-messaging", FIREBASE_AAR_VERSION, FIREBASE_NUGET_VERSION, FIREBASE_COMPONENT_VERSION), + new AarInfo ("firebase-storage", "firebase/firebase-storage", FIREBASE_AAR_VERSION, FIREBASE_NUGET_VERSION, FIREBASE_COMPONENT_VERSION), + new AarInfo ("firebase-storage-common", "firebase/firebase-storage-common", FIREBASE_AAR_VERSION, FIREBASE_NUGET_VERSION, FIREBASE_COMPONENT_VERSION), }; +class AarInfo +{ + public AarInfo (string name, string path, string aarVersion, string nugetVersion, string componentVersion) + { + Name = name; + Path = path; + AarVersion = aarVersion; + NuGetVersion = nugetVersion; + ComponentVersion = componentVersion; + } + + public string Name { get; set; } + public string Path { get; set; } + public string AarVersion { get; set; } + public string NuGetVersion { get; set; } + public string ComponentVersion { get; set; } +} + var MONODROID_PATH = "/Library/Frameworks/Xamarin.Android.framework/Versions/Current/lib/mandroid/platforms/android-23/"; if (IsRunningOnWindows ()) MONODROID_PATH = new DirectoryPath (Environment.GetFolderPath (Environment.SpecialFolder.ProgramFilesX86)).Combine ("Reference Assemblies/Microsoft/Framework/MonoAndroid/v6.0/").FullPath; +var MONO_PATH = "/Library/Frameworks/Mono.framework/Versions/Current"; + var buildsOnWinMac = BuildPlatforms.Windows | BuildPlatforms.Mac; var buildSpec = new BuildSpec { @@ -42,28 +124,54 @@ var buildSpec = new BuildSpec { new OutputFileCopy { FromFile = "./base/source/bin/Release/Xamarin.GooglePlayServices.Base.dll" }, new OutputFileCopy { FromFile = "./basement/source/bin/Release/Xamarin.GooglePlayServices.Basement.dll" }, new OutputFileCopy { FromFile = "./ads/source/bin/Release/Xamarin.GooglePlayServices.Ads.dll" }, + new OutputFileCopy { FromFile = "./ads-lite/source/bin/Release/Xamarin.GooglePlayServices.Ads.Lite.dll" }, new OutputFileCopy { FromFile = "./analytics/source/bin/Release/Xamarin.GooglePlayServices.Analytics.dll" }, + new OutputFileCopy { FromFile = "./analytics-impl/source/bin/Release/Xamarin.GooglePlayServices.Analytics.Impl.dll" }, new OutputFileCopy { FromFile = "./appinvite/source/bin/Release/Xamarin.GooglePlayServices.AppInvite.dll" }, new OutputFileCopy { FromFile = "./appindexing/source/bin/Release/Xamarin.GooglePlayServices.AppIndexing.dll" }, - new OutputFileCopy { FromFile = "./appstate/source/bin/Release/Xamarin.GooglePlayServices.AppState.dll" }, new OutputFileCopy { FromFile = "./auth/source/bin/Release/Xamarin.GooglePlayServices.Auth.dll" }, + new OutputFileCopy { FromFile = "./auth-base/source/bin/Release/Xamarin.GooglePlayServices.Auth.Base.dll" }, + new OutputFileCopy { FromFile = "./awareness/source/bin/Release/Xamarin.GooglePlayServices.Awareness.dll" }, new OutputFileCopy { FromFile = "./cast/source/bin/Release/Xamarin.GooglePlayServices.Cast.dll" }, + new OutputFileCopy { FromFile = "./cast-framework/source/bin/Release/Xamarin.GooglePlayServices.Cast.Framework.dll" }, + new OutputFileCopy { FromFile = "./clearcut/source/bin/Release/Xamarin.GooglePlayServices.Clearcut.dll" }, new OutputFileCopy { FromFile = "./drive/source/bin/Release/Xamarin.GooglePlayServices.Drive.dll" }, new OutputFileCopy { FromFile = "./fitness/source/bin/Release/Xamarin.GooglePlayServices.Fitness.dll" }, new OutputFileCopy { FromFile = "./games/source/bin/Release/Xamarin.GooglePlayServices.Games.dll" }, + new OutputFileCopy { FromFile = "./gass/source/bin/Release/Xamarin.GooglePlayServices.Gass.dll" }, new OutputFileCopy { FromFile = "./gcm/source/bin/Release/Xamarin.GooglePlayServices.Gcm.dll" }, new OutputFileCopy { FromFile = "./identity/source/bin/Release/Xamarin.GooglePlayServices.Identity.dll" }, + new OutputFileCopy { FromFile = "./iid/source/bin/Release/Xamarin.GooglePlayServices.Iid.dll" }, + new OutputFileCopy { FromFile = "./instantapps/source/bin/Release/Xamarin.GooglePlayServices.InstantApps.dll" }, new OutputFileCopy { FromFile = "./location/source/bin/Release/Xamarin.GooglePlayServices.Location.dll" }, new OutputFileCopy { FromFile = "./maps/source/bin/Release/Xamarin.GooglePlayServices.Maps.dll" }, - new OutputFileCopy { FromFile = "./measurement/source/bin/Release/Xamarin.GooglePlayServices.Measurement.dll" }, new OutputFileCopy { FromFile = "./nearby/source/bin/Release/Xamarin.GooglePlayServices.Nearby.dll" }, new OutputFileCopy { FromFile = "./panorama/source/bin/Release/Xamarin.GooglePlayServices.Panorama.dll" }, + new OutputFileCopy { FromFile = "./places/source/bin/Release/Xamarin.GooglePlayServices.Places.dll" }, new OutputFileCopy { FromFile = "./plus/source/bin/Release/Xamarin.GooglePlayServices.Plus.dll" }, new OutputFileCopy { FromFile = "./safetynet/source/bin/Release/Xamarin.GooglePlayServices.SafetyNet.dll" }, new OutputFileCopy { FromFile = "./vision/source/bin/Release/Xamarin.GooglePlayServices.Vision.dll" }, new OutputFileCopy { FromFile = "./wallet/source/bin/Release/Xamarin.GooglePlayServices.Wallet.dll" }, new OutputFileCopy { FromFile = "./wearable/source/bin/Release/Xamarin.GooglePlayServices.Wearable.dll" }, new OutputFileCopy { FromFile = "./support-wearable/source/bin/Release/Xamarin.Android.Wearable.dll" }, + new OutputFileCopy { FromFile = "./tagmanager/source/bin/Release/Xamarin.GooglePlayServices.TagManager.dll" }, + new OutputFileCopy { FromFile = "./tagmanager-api/source/bin/Release/Xamarin.GooglePlayServices.TagManager.Api.dll" }, + new OutputFileCopy { FromFile = "./tasks/source/bin/Release/Xamarin.GooglePlayServices.Tasks.dll" }, + + new OutputFileCopy { FromFile = "./firebase-analytics/source/bin/Release/Xamarin.Firebase.Analytics.dll" }, + new OutputFileCopy { FromFile = "./firebase-analytics-impl/source/bin/Release/Xamarin.Firebase.Analytics.Impl.dll" }, + new OutputFileCopy { FromFile = "./firebase-auth/source/bin/Release/Xamarin.Firebase.Auth.dll" }, + new OutputFileCopy { FromFile = "./firebase-auth-common/source/bin/Release/Xamarin.Firebase.Auth.Common.dll" }, + new OutputFileCopy { FromFile = "./firebase-auth-module/source/bin/Release/Xamarin.Firebase.Auth.Module.dll" }, + new OutputFileCopy { FromFile = "./firebase-common/source/bin/Release/Xamarin.Firebase.Common.dll" }, + new OutputFileCopy { FromFile = "./firebase-config/source/bin/Release/Xamarin.Firebase.Config.dll" }, + new OutputFileCopy { FromFile = "./firebase-crash/source/bin/Release/Xamarin.Firebase.Crash.dll" }, + new OutputFileCopy { FromFile = "./firebase-database/source/bin/Release/Xamarin.Firebase.Database.dll" }, + new OutputFileCopy { FromFile = "./firebase-database-connection/source/bin/Release/Xamarin.Firebase.Database.Connection.dll" }, + new OutputFileCopy { FromFile = "./firebase-iid/source/bin/Release/Xamarin.Firebase.Iid.dll" }, + new OutputFileCopy { FromFile = "./firebase-messaging/source/bin/Release/Xamarin.Firebase.Messaging.dll" }, + new OutputFileCopy { FromFile = "./firebase-storage/source/bin/Release/Xamarin.Firebase.Storage.dll" }, + new OutputFileCopy { FromFile = "./firebase-storage-common/source/bin/Release/Xamarin.Firebase.Storage.Common.dll" }, } }, }, @@ -79,44 +187,85 @@ var buildSpec = new BuildSpec { new DefaultSolutionBuilder { SolutionPath = "./games/samples/BeGenerous.sln", BuildsOn = buildsOnWinMac }, new DefaultSolutionBuilder { SolutionPath = "./gcm/samples/GCMSample.sln", BuildsOn = buildsOnWinMac }, new DefaultSolutionBuilder { SolutionPath = "./location/samples/LocationSample.sln", BuildsOn = buildsOnWinMac }, - new DefaultSolutionBuilder { SolutionPath = "./location/samples/PlacesAsync.sln", BuildsOn = buildsOnWinMac }, new DefaultSolutionBuilder { SolutionPath = "./maps/samples/MapsSample.sln", BuildsOn = buildsOnWinMac }, new DefaultSolutionBuilder { SolutionPath = "./nearby/samples/NearbySample.sln", BuildsOn = buildsOnWinMac }, new DefaultSolutionBuilder { SolutionPath = "./panorama/samples/PanoramaSample.sln", BuildsOn = buildsOnWinMac }, + new DefaultSolutionBuilder { SolutionPath = "./places/samples/PlacesAsync.sln", BuildsOn = buildsOnWinMac }, new DefaultSolutionBuilder { SolutionPath = "./plus/samples/PlusSample.sln", BuildsOn = buildsOnWinMac }, new DefaultSolutionBuilder { SolutionPath = "./safetynet/samples/SafetyNetSample.sln", BuildsOn = buildsOnWinMac }, new DefaultSolutionBuilder { SolutionPath = "./vision/samples/VisionSample.sln", BuildsOn = buildsOnWinMac }, new DefaultSolutionBuilder { SolutionPath = "./wallet/samples/AndroidPayQuickstart.sln", BuildsOn = buildsOnWinMac }, new DefaultSolutionBuilder { SolutionPath = "./support-wearable/samples/MultiPageSample.sln", BuildsOn = buildsOnWinMac }, new DefaultSolutionBuilder { SolutionPath = "./support-wearable/samples/WatchFaceSample.sln", BuildsOn = buildsOnWinMac }, + + new DefaultSolutionBuilder { SolutionPath = "./firebase-ads/samples/FirebaseAdmobQuickstart.sln", BuildsOn = buildsOnWinMac }, + new DefaultSolutionBuilder { SolutionPath = "./firebase-analytics/samples/FirebaseAnalyticsQuickstart.sln", BuildsOn = buildsOnWinMac }, + new DefaultSolutionBuilder { SolutionPath = "./firebase-auth/samples/FirebaseAuthQuickstart.sln", BuildsOn = buildsOnWinMac }, + new DefaultSolutionBuilder { SolutionPath = "./firebase-config/samples/FirebaseConfigQuickstart.sln", BuildsOn = buildsOnWinMac }, + new DefaultSolutionBuilder { SolutionPath = "./firebase-crash/samples/FirebaseCrashReportingQuickstart.sln", BuildsOn = buildsOnWinMac }, + new DefaultSolutionBuilder { SolutionPath = "./firebase-invites/samples/FirebaseInvitesQuickstart.sln", BuildsOn = buildsOnWinMac }, + new DefaultSolutionBuilder { SolutionPath = "./firebase-messaging/samples/FirebaseMessagingQuickstart.sln", BuildsOn = buildsOnWinMac }, + new DefaultSolutionBuilder { SolutionPath = "./firebase-storage/samples/FirebaseStorageQuickstart.sln", BuildsOn = buildsOnWinMac }, }, NuGets = new [] { - new NuGetInfo { NuSpec = "./base/nuget/Xamarin.GooglePlayServices.Base.nuspec", Version = NUGET_VERSION, RequireLicenseAcceptance = true }, - new NuGetInfo { NuSpec = "./basement/nuget/Xamarin.GooglePlayServices.Basement.nuspec", Version = NUGET_VERSION, RequireLicenseAcceptance = true }, - new NuGetInfo { NuSpec = "./ads/nuget/Xamarin.GooglePlayServices.Ads.nuspec", Version = NUGET_VERSION, RequireLicenseAcceptance = true }, - new NuGetInfo { NuSpec = "./analytics/nuget/Xamarin.GooglePlayServices.Analytics.nuspec", Version = NUGET_VERSION, RequireLicenseAcceptance = true }, - new NuGetInfo { NuSpec = "./appindexing/nuget/Xamarin.GooglePlayServices.AppIndexing.nuspec", Version = NUGET_VERSION, RequireLicenseAcceptance = true }, - new NuGetInfo { NuSpec = "./appinvite/nuget/Xamarin.GooglePlayServices.AppInvite.nuspec", Version = NUGET_VERSION, RequireLicenseAcceptance = true }, - new NuGetInfo { NuSpec = "./appstate/nuget/Xamarin.GooglePlayServices.AppState.nuspec", Version = NUGET_VERSION, RequireLicenseAcceptance = true }, - new NuGetInfo { NuSpec = "./auth/nuget/Xamarin.GooglePlayServices.Auth.nuspec", Version = NUGET_VERSION, RequireLicenseAcceptance = true }, - new NuGetInfo { NuSpec = "./cast/nuget/Xamarin.GooglePlayServices.Cast.nuspec", Version = NUGET_VERSION, RequireLicenseAcceptance = true }, - new NuGetInfo { NuSpec = "./drive/nuget/Xamarin.GooglePlayServices.Drive.nuspec", Version = NUGET_VERSION, RequireLicenseAcceptance = true }, - new NuGetInfo { NuSpec = "./fitness/nuget/Xamarin.GooglePlayServices.Fitness.nuspec", Version = NUGET_VERSION, RequireLicenseAcceptance = true }, - new NuGetInfo { NuSpec = "./games/nuget/Xamarin.GooglePlayServices.Games.nuspec", Version = NUGET_VERSION, RequireLicenseAcceptance = true }, - new NuGetInfo { NuSpec = "./gcm/nuget/Xamarin.GooglePlayServices.Gcm.nuspec", Version = NUGET_VERSION, RequireLicenseAcceptance = true }, - new NuGetInfo { NuSpec = "./identity/nuget/Xamarin.GooglePlayServices.Identity.nuspec", Version = NUGET_VERSION, RequireLicenseAcceptance = true }, - new NuGetInfo { NuSpec = "./location/nuget/Xamarin.GooglePlayServices.Location.nuspec", Version = NUGET_VERSION, RequireLicenseAcceptance = true }, - new NuGetInfo { NuSpec = "./maps/nuget/Xamarin.GooglePlayServices.Maps.nuspec", Version = NUGET_VERSION, RequireLicenseAcceptance = true }, - new NuGetInfo { NuSpec = "./measurement/nuget/Xamarin.GooglePlayServices.Measurement.nuspec", Version = NUGET_VERSION, RequireLicenseAcceptance = true }, - new NuGetInfo { NuSpec = "./nearby/nuget/Xamarin.GooglePlayServices.Nearby.nuspec", Version = NUGET_VERSION, RequireLicenseAcceptance = true }, - new NuGetInfo { NuSpec = "./panorama/nuget/Xamarin.GooglePlayServices.Panorama.nuspec", Version = NUGET_VERSION, RequireLicenseAcceptance = true }, - new NuGetInfo { NuSpec = "./plus/nuget/Xamarin.GooglePlayServices.Plus.nuspec", Version = NUGET_VERSION, RequireLicenseAcceptance = true }, - new NuGetInfo { NuSpec = "./safetynet/nuget/Xamarin.GooglePlayServices.SafetyNet.nuspec", Version = NUGET_VERSION, RequireLicenseAcceptance = true }, - new NuGetInfo { NuSpec = "./vision/nuget/Xamarin.GooglePlayServices.Vision.nuspec", Version = NUGET_VERSION, RequireLicenseAcceptance = true }, - new NuGetInfo { NuSpec = "./wallet/nuget/Xamarin.GooglePlayServices.Wallet.nuspec", Version = NUGET_VERSION, RequireLicenseAcceptance = true }, - new NuGetInfo { NuSpec = "./wearable/nuget/Xamarin.GooglePlayServices.Wearable.nuspec", Version = NUGET_VERSION, RequireLicenseAcceptance = true }, - new NuGetInfo { NuSpec = "./support-wearable/nuget/Xamarin.Android.Wear.nuspec", Version = NUGET_WEAR_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./base/nuget/Xamarin.GooglePlayServices.Base.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./basement/nuget/Xamarin.GooglePlayServices.Basement.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./ads/nuget/Xamarin.GooglePlayServices.Ads.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./ads-lite/nuget/Xamarin.GooglePlayServices.Ads.Lite.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./analytics/nuget/Xamarin.GooglePlayServices.Analytics.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./analytics-impl/nuget/Xamarin.GooglePlayServices.Analytics.Impl.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./appindexing/nuget/Xamarin.GooglePlayServices.AppIndexing.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./appinvite/nuget/Xamarin.GooglePlayServices.AppInvite.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./auth/nuget/Xamarin.GooglePlayServices.Auth.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./auth-base/nuget/Xamarin.GooglePlayServices.Auth.Base.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./awareness/nuget/Xamarin.GooglePlayServices.Awareness.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./cast/nuget/Xamarin.GooglePlayServices.Cast.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./cast-framework/nuget/Xamarin.GooglePlayServices.Cast.Framework.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./clearcut/nuget/Xamarin.GooglePlayServices.Clearcut.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./drive/nuget/Xamarin.GooglePlayServices.Drive.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./fitness/nuget/Xamarin.GooglePlayServices.Fitness.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./games/nuget/Xamarin.GooglePlayServices.Games.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./gass/nuget/Xamarin.GooglePlayServices.Gass.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./gcm/nuget/Xamarin.GooglePlayServices.Gcm.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./identity/nuget/Xamarin.GooglePlayServices.Identity.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./iid/nuget/Xamarin.GooglePlayServices.Iid.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./instantapps/nuget/Xamarin.GooglePlayServices.InstantApps.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./location/nuget/Xamarin.GooglePlayServices.Location.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./maps/nuget/Xamarin.GooglePlayServices.Maps.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./nearby/nuget/Xamarin.GooglePlayServices.Nearby.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./panorama/nuget/Xamarin.GooglePlayServices.Panorama.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./places/nuget/Xamarin.GooglePlayServices.Places.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./plus/nuget/Xamarin.GooglePlayServices.Plus.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./safetynet/nuget/Xamarin.GooglePlayServices.SafetyNet.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./vision/nuget/Xamarin.GooglePlayServices.Vision.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./wallet/nuget/Xamarin.GooglePlayServices.Wallet.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./wearable/nuget/Xamarin.GooglePlayServices.Wearable.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./support-wearable/nuget/Xamarin.Android.Wear.nuspec", Version = WEAR_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./tagmanager/nuget/Xamarin.GooglePlayServices.TagManager.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./tagmanager-api/nuget/Xamarin.GooglePlayServices.TagManager.Api.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./tasks/nuget/Xamarin.GooglePlayServices.Tasks.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + + new NuGetInfo { NuSpec = "./firebase-ads/nuget/Xamarin.Firebase.Ads.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./firebase-analytics/nuget/Xamarin.Firebase.Analytics.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./firebase-analytics-impl/nuget/Xamarin.Firebase.Analytics.Impl.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./firebase-auth/nuget/Xamarin.Firebase.Auth.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./firebase-auth-common/nuget/Xamarin.Firebase.Auth.Common.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./firebase-auth-module/nuget/Xamarin.Firebase.Auth.Module.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./firebase-common/nuget/Xamarin.Firebase.Common.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./firebase-config/nuget/Xamarin.Firebase.Config.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./firebase-crash/nuget/Xamarin.Firebase.Crash.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./firebase-database/nuget/Xamarin.Firebase.Database.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./firebase-database-connection/nuget/Xamarin.Firebase.Database.Connection.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./firebase-iid/nuget/Xamarin.Firebase.Iid.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./firebase-invites/nuget/Xamarin.Firebase.Invites.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./firebase-messaging/nuget/Xamarin.Firebase.Messaging.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./firebase-storage/nuget/Xamarin.Firebase.Storage.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./firebase-storage-common/nuget/Xamarin.Firebase.Storage.Common.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + + // These are empty packages that depend on others + new NuGetInfo { NuSpec = "./firebase-core/nuget/Xamarin.Firebase.Core.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, + new NuGetInfo { NuSpec = "./firebase-ads/nuget/Xamarin.Firebase.Ads.nuspec", Version = PLAY_NUGET_VERSION, RequireLicenseAcceptance = true }, }, Components = new [] { @@ -138,6 +287,15 @@ var buildSpec = new BuildSpec { new Component { ManifestDirectory = "./vision/component" }, new Component { ManifestDirectory = "./wallet/component" }, new Component { ManifestDirectory = "./support-wearable/component" }, + + new Component { ManifestDirectory = "./firebase-ads/component" }, + new Component { ManifestDirectory = "./firebase-analytics/component" }, + new Component { ManifestDirectory = "./firebase-auth/component" }, + new Component { ManifestDirectory = "./firebase-config/component" }, + new Component { ManifestDirectory = "./firebase-crash/component" }, + new Component { ManifestDirectory = "./firebase-invites/component" }, + new Component { ManifestDirectory = "./firebase-messaging/component" }, + new Component { ManifestDirectory = "./firebase-storage/component" }, } }; @@ -158,11 +316,12 @@ Task ("externals") Unzip (path + "m2repository.zip", path); // Copy the .aar's to a better location - foreach (var aar in AAR_DIRS) { + foreach (var aar in AAR_INFOS) { + CopyFile ( - string.Format (path + "m2repository/com/google/android/gms/{0}/{1}/{2}-{3}.aar", aar, AAR_VERSION, aar, AAR_VERSION), - string.Format (path + "{0}.aar", aar)); - Unzip (path + aar + ".aar", path + aar); + string.Format (path + "m2repository/com/google/{0}/{1}/{2}-{3}.aar", aar.Path, aar.AarVersion, aar.Name, aar.AarVersion), + string.Format (path + "{0}.aar", aar.Name)); + Unzip (path + aar.Name + ".aar", path + aar.Name); } // Get Wearable stuff @@ -178,17 +337,55 @@ Task ("externals") CopyDirectory (path + "google-play-services/docs", path + "docs/"); DeleteDirectory (path + "google-play-services", true); } + + // Put the uitest.keystore in our artifacts for downstream jobs to use + EnsureDirectoryExists ("./output"); + if (FileExists ("./uitest.keystore")) + CopyFile ("./uitest.keystore", "./output/uitest.keystore"); }); +Task ("diff") + .IsDependentOn ("merge") + .WithCriteria (!IsRunningOnWindows ()) + .Does (() => +{ + var SEARCH_DIRS = new FilePath [] { + MONODROID_PATH, + "/Library/Frameworks/Xamarin.Android.framework/Versions/Current/lib/xbuild-frameworks/MonoAndroid/v1.0/", + "./cast/source/bin/Release/", + "./wearable/source/bin/Release/" + }; + + MonoApiInfo ("./output/GooglePlayServices.Merged.dll", + "./output/GooglePlayServices.api-info.xml", + new MonoApiInfoToolSettings { SearchPaths = SEARCH_DIRS }); + + // Grab the last public release's api-info.xml to use as a base to compare and make an API diff + DownloadFile (BASE_API_INFO_URL, "./output/GooglePlayServices.api-info.previous.xml"); + + // Now diff against current release'd api info + // eg: mono mono-api-diff.exe ./gps.r26.xml ./gps.r27.xml > gps.diff.xml + MonoApiDiff ("./output/GooglePlayServices.api-info.previous.xml", + "./output/GooglePlayServices.api-info.xml", + "./output/GooglePlayServices.api-diff.xml"); + + // Now let's make a purty html file + // eg: mono mono-api-html.exe -c -x ./gps.previous.info.xml ./gps.current.info.xml > gps.diff.html + MonoApiHtml ("./output/GooglePlayServices.api-info.previous.xml", + "./output/GooglePlayServices.api-info.xml", + "./output/GooglePlayServices.api-diff.html"); +}); Task ("merge").IsDependentOn ("libs").Does (() => { + if (FileExists ("./output/GooglePlayServices.Merged.dll")) + DeleteFile ("./output/GooglePlayServices.Merged.dll"); + // Clean up any existing old merge files DeleteFiles ("./output/GooglePlayServices.Merged.dll"); var mergeDlls = GetFiles ("./output/*.dll"); - // Wait for ILRepack support in cake-0.5.2 ILRepack ("./output/GooglePlayServices.Merged.dll", mergeDlls.First(), mergeDlls.Skip(1), new ILRepackSettings { CopyAttrs = true, AllowMultiple = true, @@ -197,47 +394,6 @@ Task ("merge").IsDependentOn ("libs").Does (() => MONODROID_PATH }, }); - - // Don't want to think about what the paths will do to this on windows right now - if (!IsRunningOnWindows ()) { - // Next run the mono-api-info.exe to generate xml api info we can later diff with - var monoApiInfoExe = GetFiles ("../../**/mono-api-info.exe").FirstOrDefault (); - var monoApiDiffExe = GetFiles ("../../**/mono-api-diff.exe").FirstOrDefault (); - var monoApiHtmlExe = GetFiles ("../../**/mono-api-html.exe").FirstOrDefault (); - - //eg: mono mono-api-info.exe --search-directory=/Library/Frameworks/Xamarin.Android.framework/Libraries/mandroid/platforms/android-23 ./Xamarin.GooglePlayServices.r27.dll > gps.r27.xml - using(var process = StartAndReturnProcess (monoApiInfoExe, new ProcessSettings { - Arguments = "--search-directory=" + MONODROID_PATH + " ./output/GooglePlayServices.Merged.dll", - RedirectStandardOutput = true, - })) { - process.WaitForExit(); - FileWriteLines ("./output/GooglePlayServices.api-info.xml", process.GetStandardOutput ().ToArray ()); - } - - // Grab the latest published api info from S3 - var latestReleasedApiInfoUrl = "http://xamarin-components-apiinfo.s3.amazonaws.com/GooglePlayServices.Android-Latest.xml"; - DownloadFile (latestReleasedApiInfoUrl, "./output/GooglePlayServices.api-info.previous.xml"); - - // Now diff against current release'd api info - // eg: mono mono-api-diff.exe ./gps.r26.xml ./gps.r27.xml > gps.diff.xml - using(var process = StartAndReturnProcess (monoApiDiffExe, new ProcessSettings { - Arguments = "./output/GooglePlayServices.api-info.previous.xml ./output/GooglePlayServices.api-info.xml", - RedirectStandardOutput = true, - })) { - process.WaitForExit(); - FileWriteLines ("./output/GooglePlayServices.api-diff.xml", process.GetStandardOutput ().ToArray ()); - } - - // Now let's make a purty html file - // eg: mono mono-api-html.exe -c -x ./gps.previous.info.xml ./gps.current.info.xml > gps.diff.html - using(var process = StartAndReturnProcess (monoApiHtmlExe, new ProcessSettings { - Arguments = "-c -x ./output/GooglePlayServices.api-info.previous.xml ./output/GooglePlayServices.api-info.xml", - RedirectStandardOutput = true, - })) { - process.WaitForExit(); - FileWriteLines ("./output/GooglePlayServices.api-diff.html", process.GetStandardOutput ().ToArray ()); - } - } }); @@ -318,19 +474,45 @@ Task ("component-setup").Does (() => { var yamls = GetFiles ("./**/component/component.template.yaml"); foreach (var yaml in yamls) { + var NUGET_VERSION = PLAY_NUGET_VERSION; + var COMPONENT_VERSION = PLAY_COMPONENT_VERSION; + + if (yaml.FullPath.Contains ("firebase-")) { + NUGET_VERSION = FIREBASE_NUGET_VERSION; + COMPONENT_VERSION = FIREBASE_COMPONENT_VERSION; + } + var manifestTxt = FileReadText (yaml) .Replace ("$nuget-version$", NUGET_VERSION) .Replace ("$version$", COMPONENT_VERSION) - .Replace ("$wear-version$", COMPONENT_WEAR_VERSION) - .Replace ("$wear-nuget-version$", NUGET_WEAR_VERSION); + .Replace ("$wear-version$", WEAR_COMPONENT_VERSION) + .Replace ("$wear-nuget-version$", WEAR_NUGET_VERSION); var newYaml = yaml.GetDirectory ().CombineWithFilePath ("component.yaml"); FileWriteText (newYaml, manifestTxt); - } + } + + if (DirectoryExists ("./output")) + DeleteFiles ("./output/*.xam"); }); Task ("component").IsDependentOn ("component-docs").IsDependentOn ("component-setup").IsDependentOn ("component-base"); +Task ("nuget-setup").Does (() => +{ + var nuspecs = GetFiles ("./**/nuget/*.template.nuspec"); + foreach (var nuspec in nuspecs) { + var nuspecTxt = FileReadText (nuspec) + .Replace ("$aar-version$", VERSION_DESC); + + var newNuspec = nuspec.FullPath.Replace (".template.nuspec", ".nuspec"); + FileWriteText (newNuspec, nuspecTxt); + } +}); + +Task ("nuget").IsDependentOn ("nuget-setup").IsDependentOn ("libs").IsDependentOn ("nuget-base"); + + SetupXamarinBuildTasks (buildSpec, Tasks, Task); RunTarget (TARGET); diff --git a/build.sh b/build.sh index 20cfc6d04..bc44d9752 100644 --- a/build.sh +++ b/build.sh @@ -7,7 +7,7 @@ # Define directories. SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) TOOLS_DIR=$SCRIPT_DIR/tools -NUGET_EXE=$TOOLS_DIR/nuget.exe +export NUGET_EXE=$TOOLS_DIR/nuget.exe CAKE_EXE=$TOOLS_DIR/Cake/Cake.exe # Define default arguments. @@ -52,13 +52,28 @@ fi # Download NuGet if it does not exist. if [ ! -f "$NUGET_EXE" ]; then echo "Downloading NuGet..." - curl -Lsfo "$NUGET_EXE" https://dist.nuget.org/win-x86-commandline/latest/nuget.exe + curl -Lsfo "$NUGET_EXE" https://dist.nuget.org/win-x86-commandline/v3.4.4/NuGet.exe if [ $? -ne 0 ]; then echo "An error occured while downloading nuget.exe." exit 1 fi fi +# BEGIN TEMP WORKAROUND +# There is a bug in Mono's System.IO.Compression +# This binary fixes the bug for now +# Download System.IO.Compression if it does not exist. +SYSIOCOMP=$TOOLS_DIR/System.IO.Compression.dll +if [ ! -f "$SYSIOCOMP" ]; then + echo "Downloading System.IO.Compression.dll ..." + curl -Lsfo "$SYSIOCOMP" http://xamarin-components-binaries.s3.amazonaws.com/System.IO.Compression.dll + if [ $? -ne 0 ]; then + echo "An error occured while downloading System.IO.Compression.dll." + exit 1 + fi +fi +# END TEMP WORKAROUND + # Restore tools from NuGet. pushd "$TOOLS_DIR" >/dev/null mono "$NUGET_EXE" install -ExcludeVersion diff --git a/cast-framework/nuget/Xamarin.GooglePlayServices.Cast.Framework.template.nuspec b/cast-framework/nuget/Xamarin.GooglePlayServices.Cast.Framework.template.nuspec new file mode 100644 index 000000000..5cd569cad --- /dev/null +++ b/cast-framework/nuget/Xamarin.GooglePlayServices.Cast.Framework.template.nuspec @@ -0,0 +1,27 @@ + + + + Xamarin.GooglePlayServices.Cast.Framework + Xamarin Google Play Services - Cast Framework + $version$ + Xamarin Inc. + Xamarin Inc. + true + Xamarin.Android Bindings for Google Play Services - Cast Framework $aar-version$ + + Xamarin.Android Bindings for Google Play Services - Cast Framework $aar-version$ + + Copyright © Microsoft Corporation + https://github.com/xamarin/GooglePlayServicesComponents/ + https://github.com/xamarin/GooglePlayServicesComponents/blob/master/LICENSE.md + https://raw.githubusercontent.com/xamarin/GooglePlayServicesComponents/master/icons/play-services-cast-framework_128x128.png + + + + + + + + + + diff --git a/cast-framework/source/Additions/AboutAdditions.txt b/cast-framework/source/Additions/AboutAdditions.txt new file mode 100644 index 000000000..c511f1d4e --- /dev/null +++ b/cast-framework/source/Additions/AboutAdditions.txt @@ -0,0 +1,48 @@ +Additions allow you to add arbitrary C# to the generated classes +before they are compiled. This can be helpful for providing convenience +methods or adding pure C# classes. + +== Adding Methods to Generated Classes == + +Let's say the library being bound has a Rectangle class with a constructor +that takes an x and y position, and a width and length size. It will look like +this: + +public partial class Rectangle +{ + public Rectangle (int x, int y, int width, int height) + { + // JNI bindings + } +} + +Imagine we want to add a constructor to this class that takes a Point and +Size structure instead of 4 ints. We can add a new file called Rectangle.cs +with a partial class containing our new method: + +public partial class Rectangle +{ + public Rectangle (Point location, Size size) : + this (location.X, location.Y, size.Width, size.Height) + { + } +} + +At compile time, the additions class will be added to the generated class +and the final assembly will a Rectangle class with both constructors. + + +== Adding C# Classes == + +Another thing that can be done is adding fully C# managed classes to the +generated library. In the above example, let's assume that there isn't a +Point class available in Java or our library. The one we create doesn't need +to interact with Java, so we'll create it like a normal class in C#. + +By adding a Point.cs file with this class, it will end up in the binding library: + +public class Point +{ + public int X { get; set; } + public int Y { get; set; } +} diff --git a/cast-framework/source/Additions/Manifest.cs b/cast-framework/source/Additions/Manifest.cs new file mode 100644 index 000000000..82c353d50 --- /dev/null +++ b/cast-framework/source/Additions/Manifest.cs @@ -0,0 +1,28 @@ +using System; +using Android.App; +using Android.Content; + +// +// +// +// +// +// +// +// + +namespace Android.Gms.Cast.Framework.Media +{ + [BroadcastReceiver (Name="com.google.android.gms.cast.framework.media.MediaIntentReceiver")] + partial class MediaIntentReceiver { } + + [Service(Name = "com.google.android.gms.cast.framework.media.MediaNotificationService")] + partial class MediaNotificationService { } +} + +namespace Android.Gms.Cast.Framework +{ + [Service(Name = "com.google.android.gms.cast.framework.ReconnectionService")] + partial class MediaNotificationService { } +} diff --git a/cast-framework/source/Additions/PendingResultExtensions.cs b/cast-framework/source/Additions/PendingResultExtensions.cs new file mode 100644 index 000000000..748660c1d --- /dev/null +++ b/cast-framework/source/Additions/PendingResultExtensions.cs @@ -0,0 +1,172 @@ +using System; +using Java.Interop; +using System.Threading.Tasks; +using Android.Gms.Common.Apis; +using Android.Gms.Cast; + +namespace Android.Gms.Cast.Framework +{ + public partial class CastSession + { + public async Task SendMessageAsync (string @namespace, string message) + { + return (await SendMessage (@namespace, message)).JavaCast (); + } + } +} + +namespace Android.Gms.Cast.Framework.Media +{ + public partial class RemoteMediaClient + { + public async Task LoadAsync (MediaInfo mediaInfo) + { + return (await Load (mediaInfo)).JavaCast (); + } + public async Task LoadAsync (MediaInfo mediaInfo, bool autoplay) + { + return (await Load (mediaInfo, autoplay)).JavaCast (); + } + public async Task LoadAsync (MediaInfo mediaInfo, bool autoplay, long playPosition) + { + return (await Load (mediaInfo, autoplay, playPosition)).JavaCast (); + } + public async Task LoadAsync (MediaInfo mediaInfo, bool autoplay, long playPosition, Org.Json.JSONObject customData) + { + return (await Load (mediaInfo, autoplay, playPosition, customData)).JavaCast (); + } + public async Task LoadAsync (MediaInfo mediaInfo, bool autoplay, long playPosition, long [] activeTrackIds, Org.Json.JSONObject customData) + { + return (await Load (mediaInfo, autoplay, playPosition, activeTrackIds, customData)).JavaCast (); + } + public async Task PauseAsync () + { + return (await Pause ()).JavaCast (); + } + public async Task PauseAsync (Org.Json.JSONObject customData) + { + return (await Pause (customData)).JavaCast (); + } + public async Task PlayAsync () + { + return (await Play ()).JavaCast (); + } + public async Task PlayAsync (Org.Json.JSONObject customData) + { + return (await Play (customData)).JavaCast (); + } + public async Task QueueAppendItemAsync (MediaQueueItem item, Org.Json.JSONObject customData) + { + return (await QueueAppendItem (item, customData)).JavaCast (); + } + public async Task QueueInsertAndPlayItemAsync (MediaQueueItem item, int insertBeforeItemId, Org.Json.JSONObject customData) + { + return (await QueueInsertAndPlayItem (item, insertBeforeItemId, customData)).JavaCast (); + } + public async Task QueueInsertAndPlayItemAsync (MediaQueueItem item, int insertBeforeItemId, long playPosition, Org.Json.JSONObject customData) + { + return (await QueueInsertAndPlayItem (item, insertBeforeItemId, playPosition, customData)).JavaCast (); + } + public async Task QueueInsertItemsAsync (MediaQueueItem [] itemsToInsert, int insertBeforeItemId, Org.Json.JSONObject customData) + { + return (await QueueInsertItems (itemsToInsert, insertBeforeItemId, customData)).JavaCast (); + } + public async Task QueueJumpToItemAsync (int itemId, Org.Json.JSONObject customData) + { + return (await QueueJumpToItem (itemId, customData)).JavaCast (); + } + public async Task QueueJumpToItemAsync (int itemId, long playPosition, Org.Json.JSONObject customData) + { + return (await QueueJumpToItem (itemId, playPosition, customData)).JavaCast (); + } + public async Task QueueLoadAsync (MediaQueueItem [] items, int startIndex, int repeatMode, Org.Json.JSONObject customData) + { + return (await QueueLoad (items, startIndex, repeatMode, customData)).JavaCast (); + } + public async Task QueueLoadAsync (MediaQueueItem [] items, int startIndex, int repeatMode, long playPosition, Org.Json.JSONObject customData) + { + return (await QueueLoad (items, startIndex, repeatMode, playPosition, customData)).JavaCast (); + } + public async Task QueueMoveItemToNewIndexAsync (int itemId, int newIndex, Org.Json.JSONObject customData) + { + return (await QueueMoveItemToNewIndex (itemId, newIndex, customData)).JavaCast (); + } + public async Task QueueNextAsync (Org.Json.JSONObject customData) + { + return (await QueueNext (customData)).JavaCast (); + } + public async Task QueuePrevAsync (Org.Json.JSONObject customData) + { + return (await QueuePrev (customData)).JavaCast (); + } + public async Task QueueRemoveItemAsync (int itemId, Org.Json.JSONObject customData) + { + return (await QueueRemoveItem (itemId, customData)).JavaCast (); + } + public async Task QueueRemoveItemsAsync (int [] itemIdsToRemove, Org.Json.JSONObject customData) + { + return (await QueueRemoveItems (itemIdsToRemove, customData)).JavaCast (); + } + public async Task QueueReorderItemsAsync (int [] itemIdsToReorder, int insertBeforeItemId, Org.Json.JSONObject customData) + { + return (await QueueReorderItems (itemIdsToReorder, insertBeforeItemId, customData)).JavaCast (); + } + public async Task QueueSetRepeatModeAsync (int repeatMode, Org.Json.JSONObject customData) + { + return (await QueueSetRepeatMode (repeatMode, customData)).JavaCast (); + } + public async Task QueueUpdateItemsAsync (MediaQueueItem [] itemsToUpdate, Org.Json.JSONObject customData) + { + return (await QueueUpdateItems (itemsToUpdate, customData)).JavaCast (); + } + public async Task RequestStatusAsync () + { + return (await RequestStatus ()).JavaCast (); + } + public async Task SeekAsync (long position) + { + return (await Seek (position)).JavaCast (); + } + public async Task SeekAsync (long position, int resumeState) + { + return (await Seek (position, resumeState)).JavaCast (); + } + public async Task SeekAsync (long position, int resumeState, Org.Json.JSONObject customData) + { + return (await Seek (position, resumeState, customData)).JavaCast (); + } + public async Task SetActiveMediaTracksAsync (long [] trackIds) + { + return (await SetActiveMediaTracks (trackIds)).JavaCast (); + } + public async Task SetStreamMuteAsync (bool muted) + { + return (await SetStreamMute (muted)).JavaCast (); + } + public async Task SetStreamMuteAsync (bool muted, Org.Json.JSONObject customData) + { + return (await SetStreamMute (muted, customData)).JavaCast (); + } + public async Task SetStreamVolumeAsync (double volume) + { + return (await SetStreamVolume (volume)).JavaCast (); + } + public async Task SetStreamVolumeAsync (double volume, Org.Json.JSONObject customData) + { + return (await SetStreamVolume (volume, customData)).JavaCast (); + } + public async Task SetTextTrackStyleAsync (TextTrackStyle trackStyle) + { + return (await SetTextTrackStyle (trackStyle)).JavaCast (); + } + public async Task StopAsync () + { + return (await Stop ()).JavaCast (); + } + public async Task StopAsync (Org.Json.JSONObject customData) + { + return (await Stop (customData)).JavaCast (); + } + } +} + diff --git a/cast-framework/source/Cast.Framework.csproj b/cast-framework/source/Cast.Framework.csproj new file mode 100644 index 000000000..c28667590 --- /dev/null +++ b/cast-framework/source/Cast.Framework.csproj @@ -0,0 +1,113 @@ + + + + Debug + AnyCPU + {10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 8.0.30703 + 2.0 + {159A8C21-0A5B-4D99-9E07-6466F8E98AF7} + Library + GooglePlayServices.Cast.Framework + Resources + Assets + False + Xamarin.GooglePlayServices.Cast.Framework + v7.0 + class-parse + ..\..\externals\docs\reference + + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + None + false + + + full + true + bin\Release + prompt + 4 + false + false + + + + + + + + ..\..\packages\Xamarin.Android.Support.v7.AppCompat.24.2.1\lib\MonoAndroid403\Xamarin.Android.Support.v7.AppCompat.dll + + + ..\..\packages\Xamarin.Android.Support.v7.MediaRouter.24.2.1\lib\MonoAndroid403\Xamarin.Android.Support.v7.MediaRouter.dll + + + ..\..\packages\Xamarin.Android.Support.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Compat.dll + + + ..\..\packages\Xamarin.Android.Support.Core.UI.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.UI.dll + + + ..\..\packages\Xamarin.Android.Support.Core.Utils.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.Utils.dll + + + ..\..\packages\Xamarin.Android.Support.Media.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Media.Compat.dll + + + ..\..\packages\Xamarin.Android.Support.Fragment.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Fragment.dll + + + ..\..\packages\Xamarin.Android.Support.v4.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.v4.dll + False + + + + + + Properties\GpsConsts.cs + + + + + + + + + + + + + + + + + + {3F6BAE25-ADEB-468C-8384-AD655623C341} + Base + + + {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE} + Basement + + + {C1A9C587-B744-44D2-AD42-14386D424667} + Cast + + + + + + Jars\play-services-cast-framework.jar + + + diff --git a/cast-framework/source/Jars/AboutJars.txt b/cast-framework/source/Jars/AboutJars.txt new file mode 100644 index 000000000..320a154be --- /dev/null +++ b/cast-framework/source/Jars/AboutJars.txt @@ -0,0 +1,37 @@ +This directory is for Android .jars. + +There are 4 types of jars that are supported: + +== Input Jar and Embedded Jar == + +This is the jar that bindings should be generated for. + +For example, if you were binding the Google Maps library, this would +be Google's "maps.jar". + +The difference between EmbeddedJar and InputJar is, EmbeddedJar is to be +embedded in the resulting dll as EmbeddedResource, while InputJar is not. +There are couple of reasons you wouldn't like to embed the target jar +in your dll (the ones that could be internally loaded by +feature e.g. maps.jar, or you cannot embed jars that are under some +proprietary license). + +Set the build action for these jars in the properties page to "InputJar". + + +== Reference Jar and Embedded Reference Jar == + +These are jars that are referenced by the input jar. C# bindings will +not be created for these jars. These jars will be used to resolve +types used by the input jar. + +NOTE: Do not add "android.jar" as a reference jar. It will be added automatically +based on the Target Framework selected. + +Set the build action for these jars in the properties page to "ReferenceJar". + +"EmbeddedJar" works like "ReferenceJar", but like "EmbeddedJar", it is +embedded in your dll. But at application build time, they are not included +in the final apk, like ReferenceJar files. + + diff --git a/cast-framework/source/Properties/AssemblyInfo.cs b/cast-framework/source/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..cead9a25c --- /dev/null +++ b/cast-framework/source/Properties/AssemblyInfo.cs @@ -0,0 +1,48 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using Android.App; + +// Information about this assembly is defined by the following attributes. +// Change them to the values specific to your project. + +[assembly: AssemblyTitle ("Xamarin.GooglePlayServices.Cast.Framework")] +[assembly: AssemblyDescription ("")] +[assembly: AssemblyConfiguration ("")] +[assembly: AssemblyCompany ("Microsoft Corporation")] +[assembly: AssemblyProduct ("")] +[assembly: AssemblyCopyright ("Copyright © Microsoft Corporation")] +[assembly: AssemblyTrademark ("")] +[assembly: AssemblyCulture ("")] + +// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". +// The form "{Major}.{Minor}.*" will automatically update the build and revision, +// and "{Major}.{Minor}.{Build}.*" will update just the revision. + +[assembly: AssemblyVersion ("1.0.0")] + +// The following attributes are used to specify the signing key for the assembly, +// if desired. See the Mono documentation for more information about signing. + +//[assembly: AssemblyDelaySign(false)] +//[assembly: AssemblyKeyFile("")] + +[assembly: Java.Interop.JavaLibraryReference ("classes.jar", + PackageName = __GpsConsts.PackageName, + SourceUrl = __GpsConsts.Url, + EmbeddedArchive = __Consts.AarPath, + Version = __GpsConsts.Version, + Sha1sum = __GpsConsts.Sha1sum)] +// AppCompat-v7 resources +[assembly: Android.IncludeAndroidResourcesFromAttribute ("./", + PackageName = __GpsConsts.PackageName, + SourceUrl = __GpsConsts.Url, + EmbeddedArchive = __Consts.AarPath, + Version = __GpsConsts.Version, + Sha1sum = __GpsConsts.Sha1sum)] + +// Google Addon feed with GPS in it: +// https://dl-ssl.google.com/android/repository/addon.xml + +static class __Consts { + public const string AarPath = "m2repository/com/google/android/gms/play-services-cast-framework/" + __GpsConsts.Version + "/play-services-cast-framework-" + __GpsConsts.Version + ".aar"; +} diff --git a/cast-framework/source/Transforms/EnumFields.xml b/cast-framework/source/Transforms/EnumFields.xml new file mode 100644 index 000000000..e9af0eeb3 --- /dev/null +++ b/cast-framework/source/Transforms/EnumFields.xml @@ -0,0 +1,18 @@ + + + diff --git a/cast-framework/source/Transforms/EnumMethods.xml b/cast-framework/source/Transforms/EnumMethods.xml new file mode 100644 index 000000000..2efa81467 --- /dev/null +++ b/cast-framework/source/Transforms/EnumMethods.xml @@ -0,0 +1,18 @@ + + + diff --git a/cast-framework/source/Transforms/Metadata.generated.xml b/cast-framework/source/Transforms/Metadata.generated.xml new file mode 100644 index 000000000..26c2f6238 --- /dev/null +++ b/cast-framework/source/Transforms/Metadata.generated.xml @@ -0,0 +1,2 @@ + + diff --git a/cast-framework/source/Transforms/Metadata.xml b/cast-framework/source/Transforms/Metadata.xml new file mode 100644 index 000000000..359fb6b55 --- /dev/null +++ b/cast-framework/source/Transforms/Metadata.xml @@ -0,0 +1,24 @@ + + + Android.Gms.Cast.Framework + Android.Gms.Cast.Framework.Internal.FeatureHighlight + Android.Gms.Cast.Framework.Media + Android.Gms.Cast.Framework.Media.UIController + Android.Gms.Cast.Framework.Media.Widget + + + + + + + + + + + + source + size + dest + flags + + diff --git a/cast-framework/source/packages.config b/cast-framework/source/packages.config new file mode 100644 index 000000000..71e0c9953 --- /dev/null +++ b/cast-framework/source/packages.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/cast/component/component.template.yaml b/cast/component/component.template.yaml index 297ddc400..b2068e821 100644 --- a/cast/component/component.template.yaml +++ b/cast/component/component.template.yaml @@ -4,15 +4,10 @@ id: googleplayservices-cast publisher: Xamarin Inc. publisher-url: http://xamarin.com summary: Extend your app to the big screen with Google Cast -license: ../../component/License.md +license: ../../License.md icons: - - icons/googleplayservices-cast_128x128.png - - icons/googleplayservices-cast_512x512.png -libraries: - android: - - ../../output/Xamarin.GooglePlayServices.Base.dll - - ../../output/Xamarin.GooglePlayServices.Basement.dll - - ../../output/Xamarin.GooglePlayServices.Cast.dll + - ../../icons/play-services-cast_128x128.png + - ../../icons/play-services-cast_512x512.png is_shell: true packages: android: @@ -21,14 +16,16 @@ samples: - name: "Casting Call" path: ../../cast/samples/CastingCall.sln removeProjects: - - Xamarin.GooglePlayServices.Base - - Xamarin.GooglePlayServices.Basement - - Xamarin.GooglePlayServices.Cast + - Base + - Basement + - Tasks + - Cast installNuGets: - project: CastingCall packages: - Xamarin.GooglePlayServices.Base - Xamarin.GooglePlayServices.Basement + - Xamarin.GooglePlayServices.Tasks - Xamarin.GooglePlayServices.Cast local-nuget-repo: ../../output/ no_build: true diff --git a/cast/component/icons/googleplayservices-cast_128x128.png b/cast/component/icons/googleplayservices-cast_128x128.png deleted file mode 100644 index 1b89e44b1..000000000 Binary files a/cast/component/icons/googleplayservices-cast_128x128.png and /dev/null differ diff --git a/cast/component/icons/googleplayservices-cast_512x512.png b/cast/component/icons/googleplayservices-cast_512x512.png deleted file mode 100644 index bb3941157..000000000 Binary files a/cast/component/icons/googleplayservices-cast_512x512.png and /dev/null differ diff --git a/cast/nuget/Xamarin.GooglePlayServices.Cast.nuspec b/cast/nuget/Xamarin.GooglePlayServices.Cast.template.nuspec similarity index 70% rename from cast/nuget/Xamarin.GooglePlayServices.Cast.nuspec rename to cast/nuget/Xamarin.GooglePlayServices.Cast.template.nuspec index 384106b96..8915232d9 100644 --- a/cast/nuget/Xamarin.GooglePlayServices.Cast.nuspec +++ b/cast/nuget/Xamarin.GooglePlayServices.Cast.template.nuspec @@ -7,25 +7,23 @@ Xamarin Inc. Xamarin Inc. true - Xamarin.Android Bindings for Google Play Services - Cast + Xamarin.Android Bindings for Google Play Services - Cast $aar-version$ - Xamarin.Android Bindings for Google Play Services - Cast + Xamarin.Android Bindings for Google Play Services - Cast $aar-version$ The Google Cast SDK lets you extend your Android app to control a TV or sound system. It supports many media formats, protocols and codecs to ease integration. Continuous playback is enabled by autoplay and queuing APIs and Game Manager APIs make Cast enabled gaming a breeze. - Copyright 2013-2016 + Copyright © Microsoft Corporation http://components.xamarin.com/view/googleplayservices-cast/ http://components.xamarin.com/license/googleplayservices-cast/ - https://xamarin-component-icons.s3.amazonaws.com/Xamarin.GooglePlayServices.Cast.png + https://raw.githubusercontent.com/xamarin/GooglePlayServicesComponents/master/icons/play-services-cast_128x128.png - - - + - + diff --git a/cast/samples/CastingCall.UITests/CastingCall.UITests.csproj b/cast/samples/CastingCall.UITests/CastingCall.UITests.csproj index 7e53b7931..f708f1f24 100644 --- a/cast/samples/CastingCall.UITests/CastingCall.UITests.csproj +++ b/cast/samples/CastingCall.UITests/CastingCall.UITests.csproj @@ -33,7 +33,7 @@ ..\packages\NUnit.2.6.4\lib\nunit.framework.dll - ..\packages\Xamarin.UITest.1.1.1\lib\Xamarin.UITest.dll + ..\packages\Xamarin.UITest.2.0.1\lib\Xamarin.UITest.dll diff --git a/cast/samples/CastingCall.UITests/Tests.cs b/cast/samples/CastingCall.UITests/Tests.cs index 46c90fba3..105fb66eb 100644 --- a/cast/samples/CastingCall.UITests/Tests.cs +++ b/cast/samples/CastingCall.UITests/Tests.cs @@ -42,7 +42,7 @@ public void CheckRoutes () app.Tap (q => q.Id ("mediaRouteButton")); - app.WaitForElement (q => q.Id ("media_route_list")); + app.WaitForElement (q => q.Text("Cast to")); app.Screenshot ("Routes"); } diff --git a/cast/samples/CastingCall.UITests/packages.config b/cast/samples/CastingCall.UITests/packages.config index 2d9e3ac42..f55a18725 100644 --- a/cast/samples/CastingCall.UITests/packages.config +++ b/cast/samples/CastingCall.UITests/packages.config @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/cast/samples/CastingCall.sln b/cast/samples/CastingCall.sln index 8967340bf..dfb69ba54 100644 --- a/cast/samples/CastingCall.sln +++ b/cast/samples/CastingCall.sln @@ -5,11 +5,13 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CastingCall.UITests", "Cast EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CastingCall", "CastingCall\CastingCall.csproj", "{3FB8C922-3AFB-47F6-BCD4-D5F34E375573}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.GooglePlayServices.Base", "..\..\base\source\Base.csproj", "{3F6BAE25-ADEB-468C-8384-AD655623C341}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Base", "..\..\base\source\Base.csproj", "{3F6BAE25-ADEB-468C-8384-AD655623C341}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.GooglePlayServices.Cast", "..\source\Cast.csproj", "{C1A9C587-B744-44D2-AD42-14386D424667}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cast", "..\source\Cast.csproj", "{C1A9C587-B744-44D2-AD42-14386D424667}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.GooglePlayServices.Basement", "..\..\basement\source\Basement.csproj", "{6A38FACF-F0C5-4A49-8A8A-7CE6634207CE}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Basement", "..\..\basement\source\Basement.csproj", "{6A38FACF-F0C5-4A49-8A8A-7CE6634207CE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tasks", "..\..\tasks\source\Tasks.csproj", "{53F87D88-8871-41A2-9F81-B79AB02FEC24}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -37,5 +39,9 @@ Global {C1A9C587-B744-44D2-AD42-14386D424667}.Debug|Any CPU.Build.0 = Debug|Any CPU {C1A9C587-B744-44D2-AD42-14386D424667}.Release|Any CPU.ActiveCfg = Release|Any CPU {C1A9C587-B744-44D2-AD42-14386D424667}.Release|Any CPU.Build.0 = Release|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Debug|Any CPU.Build.0 = Debug|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Release|Any CPU.ActiveCfg = Release|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/cast/samples/CastingCall/CastingCall.csproj b/cast/samples/CastingCall/CastingCall.csproj index 656980ef6..6c38ad19a 100644 --- a/cast/samples/CastingCall/CastingCall.csproj +++ b/cast/samples/CastingCall/CastingCall.csproj @@ -15,7 +15,8 @@ True False CastingCall - v4.2 + v7.0 + armeabi;armeabi-v7a;x86;arm64-v8a;x86_64 true @@ -27,7 +28,6 @@ 4 None false - armeabi;armeabi-v7a;x86;arm64-v8a;x86_64 False @@ -38,7 +38,6 @@ 4 false false - armeabi;armeabi-v7a;x86;arm64-v8a;x86_64 True @@ -46,14 +45,38 @@ + + ..\packages\Xamarin.Android.Support.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Compat.dll + + + ..\packages\Xamarin.Android.Support.Core.UI.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.UI.dll + + + ..\packages\Xamarin.Android.Support.Core.Utils.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.Utils.dll + + + ..\packages\Xamarin.Android.Support.Media.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Media.Compat.dll + + + ..\packages\Xamarin.Android.Support.Fragment.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Fragment.dll + - ..\packages\Xamarin.Android.Support.v4.23.1.1.1\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll + ..\packages\Xamarin.Android.Support.v4.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.v4.dll + + + ..\packages\Xamarin.Android.Support.v7.Palette.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.v7.Palette.dll + + + ..\packages\Xamarin.Android.Support.Vector.Drawable.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Vector.Drawable.dll + + + ..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Animated.Vector.Drawable.dll - ..\packages\Xamarin.Android.Support.v7.AppCompat.23.1.1.1\lib\MonoAndroid403\Xamarin.Android.Support.v7.AppCompat.dll + ..\packages\Xamarin.Android.Support.v7.AppCompat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.v7.AppCompat.dll - ..\packages\Xamarin.Android.Support.v7.MediaRouter.23.1.1.1\lib\MonoAndroid403\Xamarin.Android.Support.v7.MediaRouter.dll + ..\packages\Xamarin.Android.Support.v7.MediaRouter.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.v7.MediaRouter.dll @@ -94,6 +117,11 @@ {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE} Basement + + {53F87D88-8871-41A2-9F81-B79AB02FEC24} + Tasks + + \ No newline at end of file diff --git a/cast/samples/CastingCall/Properties/AssemblyInfo.cs b/cast/samples/CastingCall/Properties/AssemblyInfo.cs index b264f7531..91e59c092 100644 --- a/cast/samples/CastingCall/Properties/AssemblyInfo.cs +++ b/cast/samples/CastingCall/Properties/AssemblyInfo.cs @@ -8,9 +8,9 @@ [assembly: AssemblyTitle ("CastingCall")] [assembly: AssemblyDescription ("")] [assembly: AssemblyConfiguration ("")] -[assembly: AssemblyCompany ("")] +[assembly: AssemblyCompany ("Microsoft Corporation")] [assembly: AssemblyProduct ("")] -[assembly: AssemblyCopyright ("redth")] +[assembly: AssemblyCopyright ("Copyright © Microsoft Corporation")] [assembly: AssemblyTrademark ("")] [assembly: AssemblyCulture ("")] diff --git a/cast/samples/CastingCall/packages.config b/cast/samples/CastingCall/packages.config index 4af8ff6d2..e9e558e42 100644 --- a/cast/samples/CastingCall/packages.config +++ b/cast/samples/CastingCall/packages.config @@ -1,6 +1,14 @@ - - - - - + + + + + + + + + + + + + \ No newline at end of file diff --git a/cast/source/Cast.csproj b/cast/source/Cast.csproj index fd20de13f..d75dea8bc 100644 --- a/cast/source/Cast.csproj +++ b/cast/source/Cast.csproj @@ -3,7 +3,7 @@ Debug AnyCPU - {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} {C1A9C587-B744-44D2-AD42-14386D424667} Library GooglePlayServices.Cast @@ -11,7 +11,8 @@ Assets False Xamarin.GooglePlayServices.Cast - v4.2 + v7.0 + class-parse ..\..\externals\docs\reference + + source + size + dest + flags + + API diff --git a/cast/source/packages.config b/cast/source/packages.config index e352dcae3..c771ee60a 100644 --- a/cast/source/packages.config +++ b/cast/source/packages.config @@ -1,6 +1,13 @@  - - - + + + + + + + + + + \ No newline at end of file diff --git a/clearcut/nuget/Xamarin.GooglePlayServices.Clearcut.template.nuspec b/clearcut/nuget/Xamarin.GooglePlayServices.Clearcut.template.nuspec new file mode 100644 index 000000000..7eba0d8a2 --- /dev/null +++ b/clearcut/nuget/Xamarin.GooglePlayServices.Clearcut.template.nuspec @@ -0,0 +1,26 @@ + + + + Xamarin.GooglePlayServices.Clearcut + Xamarin Google Play Services - Clearcut + $version$ + Xamarin Inc. + Xamarin Inc. + true + Xamarin.Android Bindings for Google Play Services - Clearcut $aar-version$ + + Xamarin.Android Bindings for Google Play Services - Clearcut $aar-version$ + + Copyright © Microsoft Corporation + https://github.com/xamarin/GooglePlayServicesComponents/ + https://github.com/xamarin/GooglePlayServicesComponents/blob/master/LICENSE.md + https://raw.githubusercontent.com/xamarin/GooglePlayServicesComponents/master/icons/play-services-clearcut_128x128.png + + + + + + + + + diff --git a/clearcut/source/Additions/AboutAdditions.txt b/clearcut/source/Additions/AboutAdditions.txt new file mode 100644 index 000000000..c511f1d4e --- /dev/null +++ b/clearcut/source/Additions/AboutAdditions.txt @@ -0,0 +1,48 @@ +Additions allow you to add arbitrary C# to the generated classes +before they are compiled. This can be helpful for providing convenience +methods or adding pure C# classes. + +== Adding Methods to Generated Classes == + +Let's say the library being bound has a Rectangle class with a constructor +that takes an x and y position, and a width and length size. It will look like +this: + +public partial class Rectangle +{ + public Rectangle (int x, int y, int width, int height) + { + // JNI bindings + } +} + +Imagine we want to add a constructor to this class that takes a Point and +Size structure instead of 4 ints. We can add a new file called Rectangle.cs +with a partial class containing our new method: + +public partial class Rectangle +{ + public Rectangle (Point location, Size size) : + this (location.X, location.Y, size.Width, size.Height) + { + } +} + +At compile time, the additions class will be added to the generated class +and the final assembly will a Rectangle class with both constructors. + + +== Adding C# Classes == + +Another thing that can be done is adding fully C# managed classes to the +generated library. In the above example, let's assume that there isn't a +Point class available in Java or our library. The one we create doesn't need +to interact with Java, so we'll create it like a normal class in C#. + +By adding a Point.cs file with this class, it will end up in the binding library: + +public class Point +{ + public int X { get; set; } + public int Y { get; set; } +} diff --git a/appstate/source/AppState.csproj b/clearcut/source/Clearcut.csproj similarity index 77% rename from appstate/source/AppState.csproj rename to clearcut/source/Clearcut.csproj index 0dee1d1bf..28f8188de 100644 --- a/appstate/source/AppState.csproj +++ b/clearcut/source/Clearcut.csproj @@ -3,21 +3,22 @@ Debug AnyCPU - {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 8.0.30703 2.0 - {8B84EE13-119C-41EB-98E8-E42D3ECD0DFD} + {44CF1968-FCDA-4141-AE78-1EFD12DDF7D6} Library - GooglePlayServices.AppState + GooglePlayServices.Clearcut Resources Assets False - Xamarin.GooglePlayServices.AppState - v4.1 + Xamarin.GooglePlayServices.Clearcut + v7.0 + class-parse ..\..\externals\docs\reference + ..\..\..\key-data\Xamarin-public.snk --> true @@ -45,12 +46,11 @@ - ..\..\packages\Xamarin.Android.Support.v4.23.1.1.1\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll + ..\..\packages\Xamarin.Android.Support.v4.24.2.1\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll - Properties\GpsConsts.cs @@ -58,7 +58,6 @@ - @@ -66,11 +65,6 @@ - - - Jars\play-services-appstate.jar - - {3F6BAE25-ADEB-468C-8384-AD655623C341} @@ -82,4 +76,9 @@ - \ No newline at end of file + + + Jars\play-services-clearcut.jar + + + diff --git a/clearcut/source/Jars/AboutJars.txt b/clearcut/source/Jars/AboutJars.txt new file mode 100644 index 000000000..320a154be --- /dev/null +++ b/clearcut/source/Jars/AboutJars.txt @@ -0,0 +1,37 @@ +This directory is for Android .jars. + +There are 4 types of jars that are supported: + +== Input Jar and Embedded Jar == + +This is the jar that bindings should be generated for. + +For example, if you were binding the Google Maps library, this would +be Google's "maps.jar". + +The difference between EmbeddedJar and InputJar is, EmbeddedJar is to be +embedded in the resulting dll as EmbeddedResource, while InputJar is not. +There are couple of reasons you wouldn't like to embed the target jar +in your dll (the ones that could be internally loaded by +feature e.g. maps.jar, or you cannot embed jars that are under some +proprietary license). + +Set the build action for these jars in the properties page to "InputJar". + + +== Reference Jar and Embedded Reference Jar == + +These are jars that are referenced by the input jar. C# bindings will +not be created for these jars. These jars will be used to resolve +types used by the input jar. + +NOTE: Do not add "android.jar" as a reference jar. It will be added automatically +based on the Target Framework selected. + +Set the build action for these jars in the properties page to "ReferenceJar". + +"EmbeddedJar" works like "ReferenceJar", but like "EmbeddedJar", it is +embedded in your dll. But at application build time, they are not included +in the final apk, like ReferenceJar files. + + diff --git a/clearcut/source/Properties/AssemblyInfo.cs b/clearcut/source/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..5c6c81ba9 --- /dev/null +++ b/clearcut/source/Properties/AssemblyInfo.cs @@ -0,0 +1,48 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using Android.App; + +// Information about this assembly is defined by the following attributes. +// Change them to the values specific to your project. + +[assembly: AssemblyTitle ("Xamarin.GooglePlayServices.Clearcut")] +[assembly: AssemblyDescription ("")] +[assembly: AssemblyConfiguration ("")] +[assembly: AssemblyCompany ("Microsoft Corporation")] +[assembly: AssemblyProduct ("")] +[assembly: AssemblyCopyright ("Copyright © Microsoft Corporation")] +[assembly: AssemblyTrademark ("")] +[assembly: AssemblyCulture ("")] + +// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". +// The form "{Major}.{Minor}.*" will automatically update the build and revision, +// and "{Major}.{Minor}.{Build}.*" will update just the revision. + +[assembly: AssemblyVersion ("1.0.0")] + +// The following attributes are used to specify the signing key for the assembly, +// if desired. See the Mono documentation for more information about signing. + +//[assembly: AssemblyDelaySign(false)] +//[assembly: AssemblyKeyFile("")] + +[assembly: Java.Interop.JavaLibraryReference ("classes.jar", + PackageName = __GpsConsts.PackageName, + SourceUrl = __GpsConsts.Url, + EmbeddedArchive = __Consts.AarPath, + Version = __GpsConsts.Version, + Sha1sum = __GpsConsts.Sha1sum)] +// AppCompat-v7 resources +[assembly: Android.IncludeAndroidResourcesFromAttribute ("./", + PackageName = __GpsConsts.PackageName, + SourceUrl = __GpsConsts.Url, + EmbeddedArchive = __Consts.AarPath, + Version = __GpsConsts.Version, + Sha1sum = __GpsConsts.Sha1sum)] + +// Google Addon feed with GPS in it: +// https://dl-ssl.google.com/android/repository/addon.xml + +static class __Consts { + public const string AarPath = "m2repository/com/google/android/gms/play-services-clearcut/" + __GpsConsts.Version + "/play-services-clearcut-" + __GpsConsts.Version + ".aar"; +} diff --git a/clearcut/source/Transforms/EnumFields.xml b/clearcut/source/Transforms/EnumFields.xml new file mode 100644 index 000000000..e9af0eeb3 --- /dev/null +++ b/clearcut/source/Transforms/EnumFields.xml @@ -0,0 +1,18 @@ + + + diff --git a/clearcut/source/Transforms/EnumMethods.xml b/clearcut/source/Transforms/EnumMethods.xml new file mode 100644 index 000000000..2efa81467 --- /dev/null +++ b/clearcut/source/Transforms/EnumMethods.xml @@ -0,0 +1,18 @@ + + + diff --git a/clearcut/source/Transforms/Metadata.generated.xml b/clearcut/source/Transforms/Metadata.generated.xml new file mode 100644 index 000000000..26c2f6238 --- /dev/null +++ b/clearcut/source/Transforms/Metadata.generated.xml @@ -0,0 +1,2 @@ + + diff --git a/clearcut/source/Transforms/Metadata.xml b/clearcut/source/Transforms/Metadata.xml new file mode 100644 index 000000000..767a0f4d3 --- /dev/null +++ b/clearcut/source/Transforms/Metadata.xml @@ -0,0 +1,20 @@ + + + Android.Gms.Clearcut + + + + + + + + + + + + source + size + dest + flags + + diff --git a/component/GettingStarted.FIREBASE-CONFIGURE.md b/component/GettingStarted.FIREBASE-CONFIGURE.md new file mode 100644 index 000000000..3b232a984 --- /dev/null +++ b/component/GettingStarted.FIREBASE-CONFIGURE.md @@ -0,0 +1,22 @@ +Configuring Firebase +-------------------- + +1. Create a Firebase project in the [Firebase Console][1], if you don't already have one setup. If you have an existing Google project associated with your mobile app, you can use the **Import Google Project** option. Otherwise, use the **Create New Project** option. + +2. Click **Add Firebase to your Android app**. + + a. Enter your app's ***Package Name*** + + b. Enter the SHA-1 Hash for your signing certificate. If you don't know how to find this, [check out this guide][2] + +3. Click **Add App** and download the ***google-services.json*** file generated for you. + +4. Add the ***google-services.json*** file to your Xamarin.Android project. + +5. Set the *Build Action* for your ***google-services.json*** file to ***GoogleServicesJson***. + +The build process will take the api keys and values from your ***google-services.json*** and translate them into the correct resource string key/value pairs in your app. + + + + diff --git a/component/GettingStarted.FIREBASE-LEARNMORE.md b/component/GettingStarted.FIREBASE-LEARNMORE.md new file mode 100644 index 000000000..647a71f30 --- /dev/null +++ b/component/GettingStarted.FIREBASE-LEARNMORE.md @@ -0,0 +1,5 @@ + +Learn More +========== + +You can learn more about the various Firebase SDKs & APIs by visiting the official [Firebase][5] documentation diff --git a/component/GettingStarted.FIREBASE-SAMPLES.md b/component/GettingStarted.FIREBASE-SAMPLES.md new file mode 100644 index 000000000..1b682e220 --- /dev/null +++ b/component/GettingStarted.FIREBASE-SAMPLES.md @@ -0,0 +1,5 @@ +Samples +======= + +You can find a Sample Application within each Firebase component. The sample will demonstrate the necessary configuration and some basic API usages. + diff --git a/component/GettingStarted.LINKS.md b/component/GettingStarted.LINKS.md index 18e14271a..548ab83c4 100644 --- a/component/GettingStarted.LINKS.md +++ b/component/GettingStarted.LINKS.md @@ -1,3 +1,5 @@ [1]: https://console.developers.google.com/ "Google Developers Console" [2]: https://developer.xamarin.com/guides/android/deployment,_testing,_and_metrics/MD5_SHA1/ "Finding your SHA-1 Fingerprints" [3]: https://developers.google.com/android/ "Google APIs for Android" +[4]: https://firebase.google.com/console/ "Firebase Developer Console" +[5]: https://firebase.google.com/ "Firebase" \ No newline at end of file diff --git a/component/License.md b/component/License.md deleted file mode 100755 index f2eb68ef3..000000000 --- a/component/License.md +++ /dev/null @@ -1,18 +0,0 @@ - -**Xamarin is not responsible for, nor does it grant any licenses to, third-party packages. Some packages may require or install dependencies which are governed by additional licenses.** - -This component depends on [Google Play Services Client Library](https://developers.google.com/android/guides/overview), which is subject to the terms of [Android Software Development Kit License Agreement](http://developer.android.com/sdk/terms.html) - -### Xamarin Component for Google Play Services Client Library -The MIT License (MIT) - -Copyright (c) .NET Foundation Contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -20160427 - diff --git a/drive/component/component.template.yaml b/drive/component/component.template.yaml index a39a6ed86..7d2bd5b56 100644 --- a/drive/component/component.template.yaml +++ b/drive/component/component.template.yaml @@ -4,15 +4,10 @@ id: googleplayservices-drive publisher: Xamarin Inc. publisher-url: http://xamarin.com summary: "Read, write, and sync files stored in Google Drive from your mobile and web apps." -license: ../../component/License.md +license: ../../License.md icons: - - icons/googleplayservices-drive_128x128.png - - icons/googleplayservices-drive_512x512.png -libraries: - android: - - ../../output/Xamarin.GooglePlayServices.Base.dll - - ../../output/Xamarin.GooglePlayServices.Basement.dll - - ../../output/Xamarin.GooglePlayServices.Drive.dll + - ../../icons/play-services-drive_128x128.png + - ../../icons/play-services-drive_512x512.png is_shell: true packages: android: @@ -21,14 +16,16 @@ samples: - name: "Drive Sample" path: ../../drive/samples/DriveSample.sln removeProjects: - - Xamarin.GooglePlayServices.Base - - Xamarin.GooglePlayServices.Basement - - Xamarin.GooglePlayServices.Drive + - Base + - Basement + - Tasks + - Drive installNuGets: - project: DriveSample packages: - Xamarin.GooglePlayServices.Base - Xamarin.GooglePlayServices.Basement + - Xamarin.GooglePlayServices.Tasks - Xamarin.GooglePlayServices.Drive local-nuget-repo: ../../output/ no_build: true diff --git a/drive/component/icons/googleplayservices-drive_128x128.png b/drive/component/icons/googleplayservices-drive_128x128.png deleted file mode 100644 index d1c6fea8f..000000000 Binary files a/drive/component/icons/googleplayservices-drive_128x128.png and /dev/null differ diff --git a/drive/component/icons/googleplayservices-drive_512x512.png b/drive/component/icons/googleplayservices-drive_512x512.png deleted file mode 100644 index 6f702287f..000000000 Binary files a/drive/component/icons/googleplayservices-drive_512x512.png and /dev/null differ diff --git a/drive/nuget/Xamarin.GooglePlayServices.Drive.nuspec b/drive/nuget/Xamarin.GooglePlayServices.Drive.template.nuspec similarity index 73% rename from drive/nuget/Xamarin.GooglePlayServices.Drive.nuspec rename to drive/nuget/Xamarin.GooglePlayServices.Drive.template.nuspec index 5f825679b..7c1f7db4b 100644 --- a/drive/nuget/Xamarin.GooglePlayServices.Drive.nuspec +++ b/drive/nuget/Xamarin.GooglePlayServices.Drive.template.nuspec @@ -7,22 +7,22 @@ Xamarin Inc. Xamarin Inc. true - Xamarin.Android Bindings for Google Play Services - Drive + Xamarin.Android Bindings for Google Play Services - Drive $aar-version$ - Xamarin.Android Bindings for Google Play Services - Drive + Xamarin.Android Bindings for Google Play Services - Drive $aar-version$ With Drive now part of Android, integrating Drive services into your Android application has never been easier. With sync and offline support, we make it easier for you to focus on writing great apps. Simply read and write files and we’ll handle the details. - Copyright 2013-2016 + Copyright © Microsoft Corporation http://components.xamarin.com/view/googleplayservices-drive/ http://components.xamarin.com/license/googleplayservices-drive/ - https://xamarin-component-icons.s3.amazonaws.com/Xamarin.GooglePlayServices.Drive.png + https://raw.githubusercontent.com/xamarin/GooglePlayServicesComponents/master/icons/play-services-drive_128x128.png - + diff --git a/drive/samples/DriveSample.UITests/DriveSample.UITests.csproj b/drive/samples/DriveSample.UITests/DriveSample.UITests.csproj index 7e2eb894d..690b2de6a 100644 --- a/drive/samples/DriveSample.UITests/DriveSample.UITests.csproj +++ b/drive/samples/DriveSample.UITests/DriveSample.UITests.csproj @@ -29,12 +29,12 @@ - - ..\packages\Xamarin.UITest.1.1.1\lib\Xamarin.UITest.dll - ..\packages\NUnit.2.6.4\lib\nunit.framework.dll + + ..\packages\Xamarin.UITest.2.0.1\lib\Xamarin.UITest.dll + diff --git a/drive/samples/DriveSample.UITests/packages.config b/drive/samples/DriveSample.UITests/packages.config index 2d9e3ac42..f55a18725 100644 --- a/drive/samples/DriveSample.UITests/packages.config +++ b/drive/samples/DriveSample.UITests/packages.config @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/drive/samples/DriveSample.sln b/drive/samples/DriveSample.sln index 249dafb46..b76292c1b 100644 --- a/drive/samples/DriveSample.sln +++ b/drive/samples/DriveSample.sln @@ -5,11 +5,13 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DriveSample", "DriveSample\ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DriveSample.UITests", "DriveSample.UITests\DriveSample.UITests.csproj", "{929B6BAA-0E43-45BE-AC1A-3D9648887078}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.GooglePlayServices.Base", "..\..\base\source\Base.csproj", "{3F6BAE25-ADEB-468C-8384-AD655623C341}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Base", "..\..\base\source\Base.csproj", "{3F6BAE25-ADEB-468C-8384-AD655623C341}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.GooglePlayServices.Drive", "..\source\drive\Drive.csproj", "{8BAFA1ED-B5D9-49ED-A553-E557D2A0357F}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Basement", "..\..\basement\source\Basement.csproj", "{6A38FACF-F0C5-4A49-8A8A-7CE6634207CE}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.GooglePlayServices.Basement", "..\..\basement\source\Basement.csproj", "{6A38FACF-F0C5-4A49-8A8A-7CE6634207CE}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tasks", "..\..\tasks\source\Tasks.csproj", "{53F87D88-8871-41A2-9F81-B79AB02FEC24}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Drive", "..\source\Drive.csproj", "{8BAFA1ED-B5D9-49ED-A553-E557D2A0357F}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -29,13 +31,17 @@ Global {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE}.Debug|Any CPU.Build.0 = Debug|Any CPU {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE}.Release|Any CPU.ActiveCfg = Release|Any CPU {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE}.Release|Any CPU.Build.0 = Release|Any CPU - {8BAFA1ED-B5D9-49ED-A553-E557D2A0357F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8BAFA1ED-B5D9-49ED-A553-E557D2A0357F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8BAFA1ED-B5D9-49ED-A553-E557D2A0357F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8BAFA1ED-B5D9-49ED-A553-E557D2A0357F}.Release|Any CPU.Build.0 = Release|Any CPU {929B6BAA-0E43-45BE-AC1A-3D9648887078}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {929B6BAA-0E43-45BE-AC1A-3D9648887078}.Debug|Any CPU.Build.0 = Debug|Any CPU {929B6BAA-0E43-45BE-AC1A-3D9648887078}.Release|Any CPU.ActiveCfg = Release|Any CPU {929B6BAA-0E43-45BE-AC1A-3D9648887078}.Release|Any CPU.Build.0 = Release|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Debug|Any CPU.Build.0 = Debug|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Release|Any CPU.ActiveCfg = Release|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Release|Any CPU.Build.0 = Release|Any CPU + {8BAFA1ED-B5D9-49ED-A553-E557D2A0357F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8BAFA1ED-B5D9-49ED-A553-E557D2A0357F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8BAFA1ED-B5D9-49ED-A553-E557D2A0357F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8BAFA1ED-B5D9-49ED-A553-E557D2A0357F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/drive/samples/DriveSample/DriveSample.csproj b/drive/samples/DriveSample/DriveSample.csproj index 0febcf89f..1bfe3f785 100644 --- a/drive/samples/DriveSample/DriveSample.csproj +++ b/drive/samples/DriveSample/DriveSample.csproj @@ -13,9 +13,10 @@ Resource Resources\Resource.designer.cs True - True + false DriveSample - v5.1 + v7.0 + armeabi;armeabi-v7a;x86;arm64-v8a;x86_64 true @@ -27,7 +28,6 @@ 4 None false - armeabi;armeabi-v7a;x86;arm64-v8a;x86_64 full @@ -37,15 +37,29 @@ 4 false false - armeabi;armeabi-v7a;x86;arm64-v8a;x86_64 + + ..\packages\Xamarin.Android.Support.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Compat.dll + + + ..\packages\Xamarin.Android.Support.Core.UI.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.UI.dll + + + ..\packages\Xamarin.Android.Support.Core.Utils.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.Utils.dll + + + ..\packages\Xamarin.Android.Support.Media.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Media.Compat.dll + + + ..\packages\Xamarin.Android.Support.Fragment.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Fragment.dll + - ..\packages\Xamarin.Android.Support.v4.23.1.1.1\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll + ..\packages\Xamarin.Android.Support.v4.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.v4.dll @@ -68,7 +82,7 @@ - + {3F6BAE25-ADEB-468C-8384-AD655623C341} @@ -82,5 +96,9 @@ {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE} Basement + + {53F87D88-8871-41A2-9F81-B79AB02FEC24} + Tasks + \ No newline at end of file diff --git a/drive/samples/DriveSample/Properties/AndroidManifest.xml b/drive/samples/DriveSample/Properties/AndroidManifest.xml index b6efaf69f..43c4e212a 100644 --- a/drive/samples/DriveSample/Properties/AndroidManifest.xml +++ b/drive/samples/DriveSample/Properties/AndroidManifest.xml @@ -1,6 +1,6 @@  - + diff --git a/drive/samples/DriveSample/Properties/AssemblyInfo.cs b/drive/samples/DriveSample/Properties/AssemblyInfo.cs index edaaaa211..28e22ff91 100644 --- a/drive/samples/DriveSample/Properties/AssemblyInfo.cs +++ b/drive/samples/DriveSample/Properties/AssemblyInfo.cs @@ -8,9 +8,9 @@ [assembly: AssemblyTitle ("DriveSample")] [assembly: AssemblyDescription ("")] [assembly: AssemblyConfiguration ("")] -[assembly: AssemblyCompany ("")] +[assembly: AssemblyCompany ("Microsoft Corporation")] [assembly: AssemblyProduct ("")] -[assembly: AssemblyCopyright ("redth")] +[assembly: AssemblyCopyright ("Copyright © Microsoft Corporation")] [assembly: AssemblyTrademark ("")] [assembly: AssemblyCulture ("")] diff --git a/drive/samples/DriveSample/packages.config b/drive/samples/DriveSample/packages.config index 01c2aac28..71e0c9953 100644 --- a/drive/samples/DriveSample/packages.config +++ b/drive/samples/DriveSample/packages.config @@ -1,4 +1,9 @@ - - - + + + + + + + + \ No newline at end of file diff --git a/drive/source/Drive.csproj b/drive/source/Drive.csproj index 62540611c..bb180080b 100644 --- a/drive/source/Drive.csproj +++ b/drive/source/Drive.csproj @@ -3,7 +3,7 @@ Debug AnyCPU - {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} {8BAFA1ED-B5D9-49ED-A553-E557D2A0357F} Library GooglePlayServices.Drive @@ -11,7 +11,8 @@ Assets False Xamarin.GooglePlayServices.Drive - v4.1 + v7.0 + class-parse ..\..\externals\docs\reference + source + size + dest + flags + diff --git a/drive/source/packages.config b/drive/source/packages.config deleted file mode 100644 index 59cde6e53..000000000 --- a/drive/source/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/firebase-ads/component/Details.template.md b/firebase-ads/component/Details.template.md new file mode 100644 index 000000000..e4af98987 --- /dev/null +++ b/firebase-ads/component/Details.template.md @@ -0,0 +1,6 @@ +Firebase - Ads +========================== + +AdMob by Google is an easy way to monetize mobile apps with targeted, in-app advertising. + +AdMob by Google is a mobile advertising platform that you can use to generate revenue from your app. Using AdMob with Firebase Analytics provides you with additional app usage data and analytics capabilities. Firebase integrates with AdMob without requiring changes to your existing AdMob configuration. diff --git a/firebase-ads/component/GettingStarted.template.md b/firebase-ads/component/GettingStarted.template.md new file mode 100644 index 000000000..123eb4c37 --- /dev/null +++ b/firebase-ads/component/GettingStarted.template.md @@ -0,0 +1,63 @@ +Get Started with Firebase Ads for Android + +AdMob by Google is an easy way to monetize mobile apps with targeted, in-app advertising. + + +{FIREBASE-CONFIGURE} + + +### Add your Ad Unit ID's to your app's resources + +An ad unit ID is a unique identifier given to the places in your app where ads are displayed. Create an ad unit for each activity your app will perform. If you have an app with two activities, for example, each displaying a banner, you need two ad units, each with its own ID. AdMob ad unit IDs have the form `ca-app-pub-XXXXXXXXXXXXXXXX/NNNNNNNNNN`. + +For your new app to display an ad, it needs to include an ad unit ID. Open your app's string resource file, which is found at `YourAppSource/Resources/values/strings.xml`. + +```xml + + + ca-app-pub-3940256099942544/6300978111 + +``` + +### Place an AdView in your Layout + +In your Layout xml file, add an AdView: + +```xml + +``` + +You will need to add the `ads` namespace as well: + +```xml + +``` + + +### Initialize the Google Mobile Ads SDK + +To initialize the Google Mobile Ads SDK at app launch, call MobileAds.Initialize() in the onCreate() method of the MainActivity class. + +Open your MainActivity.java file. It's in the BannerExample/app/src/main/java/ folder, though the exact subdirectory path varies based on the domain you used when creating your project above. Once it's open in the editor, look for the onCreate() method in the MainActivity class: + + + + +{FIREBASE-SAMPLES} + + + +{FIREBASE-LEARNMORE} + + + +{LINKS} diff --git a/firebase-ads/component/component.template.yaml b/firebase-ads/component/component.template.yaml new file mode 100644 index 000000000..2b30ffc20 --- /dev/null +++ b/firebase-ads/component/component.template.yaml @@ -0,0 +1,40 @@ +version: $version$ +name: Firebase - Ads +id: firebase-ads +publisher: Xamarin Inc. +publisher-url: http://xamarin.com +summary: AdMob by Google is an easy way to monetize mobile apps with targeted, in-app advertising. +license: ../../License.md +icons: + - ../../icons/firebase-ads_128x128.png + - ../../icons/firebase-ads_512x512.png +is_shell: true +packages: + android: + - Xamarin.Firebase.Ads, Version=$nuget-version$ +samples: + - name: "Firebase AdMob Quickstart" + path: ../../firebase-ads/samples/FirebaseAdmobQuickstart.sln + removeProjects: + - Base + - Basement + - Basement-BuildTasks + - Clearcut + - Gass + - Tasks + - Ads + - Ads.Lite + installNuGets: + - project: FirebaseAdmobQuickstart + packages: + - Xamarin.GooglePlayServices.Base + - Xamarin.GooglePlayServices.Basement + - Xamarin.GooglePlayServices.Clearcut + - Xamarin.GooglePlayServices.Gass + - Xamarin.GooglePlayServices.Tasks + - Xamarin.GooglePlayServices.Ads + - Xamarin.GooglePlayServices.Ads.Lite + removeNodes: + - "//xNS:Import[contains (@Project, 'Xamarin.GooglePlayServices.Basement.targets')]" +local-nuget-repo: ../../output/ +no_build: true diff --git a/firebase-ads/nuget/Xamarin.Firebase.Ads.template.nuspec b/firebase-ads/nuget/Xamarin.Firebase.Ads.template.nuspec new file mode 100644 index 000000000..cba9253cf --- /dev/null +++ b/firebase-ads/nuget/Xamarin.Firebase.Ads.template.nuspec @@ -0,0 +1,27 @@ + + + + Xamarin.Firebase.Ads + Xamarin Firebase - Ads + $version$ + Xamarin Inc. + Xamarin Inc. + true + Xamarin.Android Bindings for Firebase - Ads $aar-version$ + + Xamarin.Android Bindings for Firebase - Ads $aar-version$ + + Copyright © Microsoft Corporation + https://github.com/xamarin/GooglePlayServicesComponents/ + https://github.com/xamarin/GooglePlayServicesComponents/blob/master/LICENSE.md + https://raw.githubusercontent.com/xamarin/GooglePlayServicesComponents/master/icons/firebase-ads_128x128.png + + + + + + + + + + diff --git a/firebase-ads/samples/FirebaseAdmobQuickstart.UITests/FirebaseAdmobQuickstart.UITests.csproj b/firebase-ads/samples/FirebaseAdmobQuickstart.UITests/FirebaseAdmobQuickstart.UITests.csproj new file mode 100644 index 000000000..09d310e6c --- /dev/null +++ b/firebase-ads/samples/FirebaseAdmobQuickstart.UITests/FirebaseAdmobQuickstart.UITests.csproj @@ -0,0 +1,51 @@ + + + + Debug + AnyCPU + {BF596B95-1220-43D0-B507-BEC78426338D} + Library + FirebaseAdmobQuickstart.UITests + FirebaseAdmobQuickstart.UITests + v4.5 + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + + + true + bin\Release + prompt + 4 + + + + + ..\packages\NUnit.2.6.3\lib\nunit.framework.dll + + + ..\packages\Xamarin.UITest.2.0.1\lib\Xamarin.UITest.dll + + + + + + + + + + + {45F9F3D0-BBC1-4A43-9D67-40F40AD17A41} + FirebaseAdmobQuickstart + False + False + + + + \ No newline at end of file diff --git a/firebase-ads/samples/FirebaseAdmobQuickstart.UITests/Tests.cs b/firebase-ads/samples/FirebaseAdmobQuickstart.UITests/Tests.cs new file mode 100644 index 000000000..fb472f7ec --- /dev/null +++ b/firebase-ads/samples/FirebaseAdmobQuickstart.UITests/Tests.cs @@ -0,0 +1,60 @@ +using System; +using System.IO; +using System.Linq; +using NUnit.Framework; +using Xamarin.UITest; +using Xamarin.UITest.Android; +using Xamarin.UITest.Queries; + +namespace FirebaseAdmobQuickstart.UITests +{ + [TestFixture] + public class Tests + { + AndroidApp app; + + [SetUp] + public void BeforeEachTest() + { + app = ConfigureApp + .Android + .ApkFile("app.apk") + .PreferIdeSettings() + .StartApp(); + } + + //[Test] + public void Repl() + { + app.Repl(); + } + + [Test] + public void AppLaunches() + { + app.Screenshot("Launch"); + } + + [Test] + public void ShowBannerAd() + { + app.Screenshot("Launch"); + + app.WaitForElement(t => t.Class("AdView")); + + app.Screenshot("Banner Ad"); + } + + [Test] + public void InterstitialAd() + { + app.Screenshot("Launch"); + + app.Tap(q => q.Id("load_interstitial_button")); + + app.WaitForElement(q => q.Marked("Interstitial close button")); + + app.Screenshot("Interstitial Ad"); + } + } +} diff --git a/firebase-ads/samples/FirebaseAdmobQuickstart.UITests/packages.config b/firebase-ads/samples/FirebaseAdmobQuickstart.UITests/packages.config new file mode 100644 index 000000000..bf72f65b8 --- /dev/null +++ b/firebase-ads/samples/FirebaseAdmobQuickstart.UITests/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/firebase-ads/samples/FirebaseAdmobQuickstart.sln b/firebase-ads/samples/FirebaseAdmobQuickstart.sln new file mode 100644 index 000000000..4afa36a28 --- /dev/null +++ b/firebase-ads/samples/FirebaseAdmobQuickstart.sln @@ -0,0 +1,71 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FirebaseAdmobQuickstart", "FirebaseAdmobQuickstart\FirebaseAdmobQuickstart.csproj", "{45F9F3D0-BBC1-4A43-9D67-40F40AD17A41}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ads.Lite", "..\..\ads-lite\source\Ads.Lite.csproj", "{ECB1F68B-B588-4F3B-9A86-510CF4AAA784}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Basement", "..\..\basement\source\Basement.csproj", "{6A38FACF-F0C5-4A49-8A8A-7CE6634207CE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ads", "..\..\ads\source\Ads.csproj", "{CC4E534D-4992-4FBB-9528-A071EDDEA7E7}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Base", "..\..\base\source\Base.csproj", "{3F6BAE25-ADEB-468C-8384-AD655623C341}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Clearcut", "..\..\clearcut\source\Clearcut.csproj", "{44CF1968-FCDA-4141-AE78-1EFD12DDF7D6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Gass", "..\..\gass\source\Gass.csproj", "{D705BF83-81FD-4CD9-AF3B-09C50FF42C83}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tasks", "..\..\tasks\source\Tasks.csproj", "{53F87D88-8871-41A2-9F81-B79AB02FEC24}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Basement-BuildTasks", "..\..\basement\buildtasks\Basement-BuildTasks.csproj", "{21D99A15-AB98-4691-A45B-D236B2A91DEB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FirebaseAdmobQuickstart.UITests", "FirebaseAdmobQuickstart.UITests\FirebaseAdmobQuickstart.UITests.csproj", "{BF596B95-1220-43D0-B507-BEC78426338D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {45F9F3D0-BBC1-4A43-9D67-40F40AD17A41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {45F9F3D0-BBC1-4A43-9D67-40F40AD17A41}.Debug|Any CPU.Build.0 = Debug|Any CPU + {45F9F3D0-BBC1-4A43-9D67-40F40AD17A41}.Release|Any CPU.ActiveCfg = Release|Any CPU + {45F9F3D0-BBC1-4A43-9D67-40F40AD17A41}.Release|Any CPU.Build.0 = Release|Any CPU + {ECB1F68B-B588-4F3B-9A86-510CF4AAA784}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ECB1F68B-B588-4F3B-9A86-510CF4AAA784}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ECB1F68B-B588-4F3B-9A86-510CF4AAA784}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ECB1F68B-B588-4F3B-9A86-510CF4AAA784}.Release|Any CPU.Build.0 = Release|Any CPU + {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE}.Release|Any CPU.Build.0 = Release|Any CPU + {CC4E534D-4992-4FBB-9528-A071EDDEA7E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CC4E534D-4992-4FBB-9528-A071EDDEA7E7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CC4E534D-4992-4FBB-9528-A071EDDEA7E7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CC4E534D-4992-4FBB-9528-A071EDDEA7E7}.Release|Any CPU.Build.0 = Release|Any CPU + {3F6BAE25-ADEB-468C-8384-AD655623C341}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3F6BAE25-ADEB-468C-8384-AD655623C341}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3F6BAE25-ADEB-468C-8384-AD655623C341}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3F6BAE25-ADEB-468C-8384-AD655623C341}.Release|Any CPU.Build.0 = Release|Any CPU + {44CF1968-FCDA-4141-AE78-1EFD12DDF7D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {44CF1968-FCDA-4141-AE78-1EFD12DDF7D6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {44CF1968-FCDA-4141-AE78-1EFD12DDF7D6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {44CF1968-FCDA-4141-AE78-1EFD12DDF7D6}.Release|Any CPU.Build.0 = Release|Any CPU + {D705BF83-81FD-4CD9-AF3B-09C50FF42C83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D705BF83-81FD-4CD9-AF3B-09C50FF42C83}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D705BF83-81FD-4CD9-AF3B-09C50FF42C83}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D705BF83-81FD-4CD9-AF3B-09C50FF42C83}.Release|Any CPU.Build.0 = Release|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Debug|Any CPU.Build.0 = Debug|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Release|Any CPU.ActiveCfg = Release|Any CPU + {53F87D88-8871-41A2-9F81-B79AB02FEC24}.Release|Any CPU.Build.0 = Release|Any CPU + {21D99A15-AB98-4691-A45B-D236B2A91DEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {21D99A15-AB98-4691-A45B-D236B2A91DEB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {21D99A15-AB98-4691-A45B-D236B2A91DEB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {21D99A15-AB98-4691-A45B-D236B2A91DEB}.Release|Any CPU.Build.0 = Release|Any CPU + {BF596B95-1220-43D0-B507-BEC78426338D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BF596B95-1220-43D0-B507-BEC78426338D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BF596B95-1220-43D0-B507-BEC78426338D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BF596B95-1220-43D0-B507-BEC78426338D}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/location/samples/PlacesAsync/Assets/AboutAssets.txt b/firebase-ads/samples/FirebaseAdmobQuickstart/Assets/AboutAssets.txt similarity index 100% rename from location/samples/PlacesAsync/Assets/AboutAssets.txt rename to firebase-ads/samples/FirebaseAdmobQuickstart/Assets/AboutAssets.txt diff --git a/firebase-ads/samples/FirebaseAdmobQuickstart/FirebaseAdmobQuickstart.csproj b/firebase-ads/samples/FirebaseAdmobQuickstart/FirebaseAdmobQuickstart.csproj new file mode 100644 index 000000000..244f81e90 --- /dev/null +++ b/firebase-ads/samples/FirebaseAdmobQuickstart/FirebaseAdmobQuickstart.csproj @@ -0,0 +1,145 @@ + + + + Debug + AnyCPU + {45F9F3D0-BBC1-4A43-9D67-40F40AD17A41} + {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Admob + Admob + v7.0 + True + Resources\Resource.designer.cs + Resource + Properties\AndroidManifest.xml + Resources + Assets + true + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + false + None + arm64-v8a;armeabi;armeabi-v7a;x86;x86_64 + false + + + true + bin\Release + prompt + 4 + false + false + + + + + + + + ..\packages\Xamarin.Android.Support.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Compat.dll + + + ..\packages\Xamarin.Android.Support.Core.UI.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.UI.dll + + + ..\packages\Xamarin.Android.Support.Core.Utils.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Core.Utils.dll + + + ..\packages\Xamarin.Android.Support.Media.Compat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Media.Compat.dll + + + ..\packages\Xamarin.Android.Support.Fragment.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Fragment.dll + + + ..\packages\Xamarin.Android.Support.Vector.Drawable.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Vector.Drawable.dll + + + ..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.Animated.Vector.Drawable.dll + + + ..\packages\Xamarin.Android.Support.v7.AppCompat.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.v7.AppCompat.dll + + + ..\packages\Xamarin.Android.Support.v4.24.2.1\lib\MonoAndroid70\Xamarin.Android.Support.v4.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {CC4E534D-4992-4FBB-9528-A071EDDEA7E7} + Ads + + + {ECB1F68B-B588-4F3B-9A86-510CF4AAA784} + Ads.Lite + + + {3F6BAE25-ADEB-468C-8384-AD655623C341} + Base + + + {6A38FACF-F0C5-4A49-8A8A-7CE6634207CE} + Basement + + + {44CF1968-FCDA-4141-AE78-1EFD12DDF7D6} + Clearcut + + + {D705BF83-81FD-4CD9-AF3B-09C50FF42C83} + Gass + + + {53F87D88-8871-41A2-9F81-B79AB02FEC24} + Tasks + + + + + + + + + + + + \ No newline at end of file diff --git a/firebase-ads/samples/FirebaseAdmobQuickstart/MainActivity.cs b/firebase-ads/samples/FirebaseAdmobQuickstart/MainActivity.cs new file mode 100644 index 000000000..943e6dfab --- /dev/null +++ b/firebase-ads/samples/FirebaseAdmobQuickstart/MainActivity.cs @@ -0,0 +1,192 @@ +using System; +using Android.App; +using Android.Content; +using Android.OS; +using Android.Widget; +using Android.Support.V4.App; +using Android.Support.V7.App; +// [SNIPPET load_banner_ad] +// Load an ad into the AdView. +// [START load_banner_ad] +// [START_EXCLUDE] with InterstitialAd +using Android.Gms.Ads; +// [END_EXCLUDE] + +namespace Admob +{ + [Activity(Label = "Admob", MainLauncher = true), IntentFilter(new[] { Intent.ActionView }, Categories = new[] { Intent.ActionMain, Intent.CategoryLauncher })] + [MetaData("android.support.PARENT_ACTIVITY", Value = ".MainActivity")] + public class MainActivity : AppCompatActivity //FragmentActivity, IAppCompatCallback, Android.Support.V4.App.TaskStackBuilder.ISupportParentable, Android.Support.V7.App.ActionBarDrawerToggle.IDelegateProvider + { + private AdView mAdView; + // [START_EXCLUDE] + private InterstitialAd mInterstitialAd; + private Button mLoadInterstitialButton; + // [END_EXCLUDE] + + protected override void OnCreate(Bundle savedInstanceState) + { + base.OnCreate(savedInstanceState); + SetContentView(Resource.Layout.activity_main); + + mAdView = (AdView)FindViewById(Resource.Id.adView); + AdRequest adRequest = new AdRequest.Builder().Build(); + mAdView.LoadAd(adRequest); + // [END load_banner_ad] + + // AdMob ad unit IDs are not currently stored inside the google-services.json file. + // Developers using AdMob can store them as custom values in a string resource file or + // simply use constants. Note that the ad units used here are configured to return only test + // ads, and should not be used outside this sample. + + // [START instantiate_interstitial_ad] + // Create an InterstitialAd object. This same object can be re-used whenever you want to + // show an interstitial. + mInterstitialAd = new InterstitialAd(this); + mInterstitialAd.AdUnitId = GetString(Resource.String.interstitial_ad_unit_id); + // [END instantiate_interstitial_ad] + + // [START create_interstitial_ad_listener] + var adListener = new CustomAdlistener(); + adListener.AdClosed += () => + { + RequestNewInterstitial(); + BeginSecondActivity(); + }; + + mInterstitialAd.AdListener = adListener; + // [END create_interstitial_ad_listener] + + // [START display_interstitial_ad] + mLoadInterstitialButton = (Button)FindViewById(Resource.Id.load_interstitial_button); + mLoadInterstitialButton.Click += delegate + { + if (mInterstitialAd.IsLoaded) + { + mInterstitialAd.Show(); + } + else { + BeginSecondActivity(); + } + }; + // [END display_interstitial_ad] + } + + /** + * Load a new interstitial ad asynchronously. + */ + // [START request_new_interstitial] + private void RequestNewInterstitial() + { + AdRequest adRequest = new AdRequest.Builder().Build(); + mInterstitialAd.LoadAd(adRequest); + } + // [END request_new_interstitial] + + private void BeginSecondActivity() + { + Intent intent = new Intent(this, typeof(SecondActivity)); + StartActivity(intent); + } + + // [START add_lifecycle_methods] + /** Called when leaving the activity */ + protected override void OnPause() + { + if (mAdView != null) + { + mAdView.Pause(); + } + base.OnPause(); + } + + /** Called when returning to the activity */ + protected override void OnResume() + { + base.OnResume(); + if (mAdView != null) + { + mAdView.Resume(); + } + if (!mInterstitialAd.IsLoaded) + { + RequestNewInterstitial(); + } + } + + /** Called before the activity is destroyed */ + protected override void OnDestroy() + { + if (mAdView != null) + { + mAdView.Destroy(); + } + base.OnDestroy(); + } + // [END add_lifecycle_methods] + + + AdView GetAdView() + { + return mAdView; + } + + //public Intent SupportParentActivityIntent + //{ + // get + // { + // throw new NotImplementedException(); + // } + //} + + //public Android.Support.V7.App.ActionBarDrawerToggle.IDelegate DrawerToggleDelegate + //{ + // get + // { + // throw new NotImplementedException(); + // } + //} + + //public void OnSupportActionModeFinished(Android.Support.V7.View.ActionMode mode) + //{ + // throw new NotImplementedException(); + //} + + //public void OnSupportActionModeStarted(Android.Support.V7.View.ActionMode mode) + //{ + // throw new NotImplementedException(); + //} + + //public Android.Support.V7.View.ActionMode OnWindowStartingSupportActionMode(Android.Support.V7.View.ActionMode.ICallback callback) + //{ + // throw new NotImplementedException(); + //} + + } + + class CustomAdlistener : AdListener + { + // Declare the delegate (if using non-generic pattern). + public delegate void AdLoadedEvent(); + public delegate void AdClosedEvent(); + public delegate void AdOpenedEvent(); + // Declare the event. + public event AdLoadedEvent AdLoaded; + public event AdClosedEvent AdClosed; + public event AdOpenedEvent AdOpened; + public override void OnAdLoaded() + { + if (AdLoaded != null) this.AdLoaded(); + base.OnAdLoaded(); + } + public override void OnAdClosed() + { + + } + public override void OnAdOpened() + { + if (AdOpened != null) this.AdOpened(); + base.OnAdOpened(); + } + } +} \ No newline at end of file diff --git a/firebase-ads/samples/FirebaseAdmobQuickstart/Properties/AndroidManifest.xml b/firebase-ads/samples/FirebaseAdmobQuickstart/Properties/AndroidManifest.xml new file mode 100644 index 000000000..e396006a3 --- /dev/null +++ b/firebase-ads/samples/FirebaseAdmobQuickstart/Properties/AndroidManifest.xml @@ -0,0 +1,12 @@ + + + + + + + + + \ No newline at end of file diff --git a/firebase-ads/samples/FirebaseAdmobQuickstart/Properties/AssemblyInfo.cs b/firebase-ads/samples/FirebaseAdmobQuickstart/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..92a06e771 --- /dev/null +++ b/firebase-ads/samples/FirebaseAdmobQuickstart/Properties/AssemblyInfo.cs @@ -0,0 +1,28 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using Android.App; + +// Information about this assembly is defined by the following attributes. +// Change them to the values specific to your project. + +[assembly: AssemblyTitle("Admob")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Xamarin")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("adlair")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". +// The form "{Major}.{Minor}.*" will automatically update the build and revision, +// and "{Major}.{Minor}.{Build}.*" will update just the revision. + +[assembly: AssemblyVersion("1.0.0")] + +// The following attributes are used to specify the signing key for the assembly, +// if desired. See the Mono documentation for more information about signing. + +//[assembly: AssemblyDelaySign(false)] +//[assembly: AssemblyKeyFile("")] + diff --git a/location/samples/PlacesAsync/Resources/AboutResources.txt b/firebase-ads/samples/FirebaseAdmobQuickstart/Resources/AboutResources.txt similarity index 100% rename from location/samples/PlacesAsync/Resources/AboutResources.txt rename to firebase-ads/samples/FirebaseAdmobQuickstart/Resources/AboutResources.txt diff --git a/firebase-ads/samples/FirebaseAdmobQuickstart/Resources/drawable-hdpi/firebase_lockup_400.png b/firebase-ads/samples/FirebaseAdmobQuickstart/Resources/drawable-hdpi/firebase_lockup_400.png new file mode 100644 index 000000000..5df880022 Binary files /dev/null and b/firebase-ads/samples/FirebaseAdmobQuickstart/Resources/drawable-hdpi/firebase_lockup_400.png differ diff --git a/firebase-ads/samples/FirebaseAdmobQuickstart/Resources/drawable-mdpi/firebase_lockup_400.png b/firebase-ads/samples/FirebaseAdmobQuickstart/Resources/drawable-mdpi/firebase_lockup_400.png new file mode 100644 index 000000000..0c7bd7505 Binary files /dev/null and b/firebase-ads/samples/FirebaseAdmobQuickstart/Resources/drawable-mdpi/firebase_lockup_400.png differ diff --git a/firebase-ads/samples/FirebaseAdmobQuickstart/Resources/drawable-xhdpi/firebase_lockup_400.png b/firebase-ads/samples/FirebaseAdmobQuickstart/Resources/drawable-xhdpi/firebase_lockup_400.png new file mode 100644 index 000000000..d73f83a6f Binary files /dev/null and b/firebase-ads/samples/FirebaseAdmobQuickstart/Resources/drawable-xhdpi/firebase_lockup_400.png differ diff --git a/firebase-ads/samples/FirebaseAdmobQuickstart/Resources/drawable-xxhdpi/firebase_lockup_400.png b/firebase-ads/samples/FirebaseAdmobQuickstart/Resources/drawable-xxhdpi/firebase_lockup_400.png new file mode 100644 index 000000000..dd256063e Binary files /dev/null and b/firebase-ads/samples/FirebaseAdmobQuickstart/Resources/drawable-xxhdpi/firebase_lockup_400.png differ diff --git a/firebase-ads/samples/FirebaseAdmobQuickstart/Resources/drawable-xxxhdpi/firebase_lockup_400.png b/firebase-ads/samples/FirebaseAdmobQuickstart/Resources/drawable-xxxhdpi/firebase_lockup_400.png new file mode 100644 index 000000000..a92c3c10f Binary files /dev/null and b/firebase-ads/samples/FirebaseAdmobQuickstart/Resources/drawable-xxxhdpi/firebase_lockup_400.png differ diff --git a/firebase-ads/samples/FirebaseAdmobQuickstart/Resources/layout/activity_main.xml b/firebase-ads/samples/FirebaseAdmobQuickstart/Resources/layout/activity_main.xml new file mode 100755 index 000000000..9cd05a8a3 --- /dev/null +++ b/firebase-ads/samples/FirebaseAdmobQuickstart/Resources/layout/activity_main.xml @@ -0,0 +1,31 @@ + + + +