Merge branch 'main' into mu-20240913-config-bump-fixes

This commit is contained in:
moljac 2024-09-14 15:51:50 +02:00 коммит произвёл GitHub
Родитель 01755f69f6 9c3f372429
Коммит 4e375b8788
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
1039 изменённых файлов: 43989 добавлений и 199 удалений

Просмотреть файл

@ -18,7 +18,7 @@
<!-- .NET 6+ generates Resource.designer.cs files for bindings projects which we do not want -->
<AndroidGenerateResourceDesigner>false</AndroidGenerateResourceDesigner>
<!-- .NET 6+ packages support back to API-21 -->
<SupportedOSPlatformVersion>21</SupportedOSPlatformVersion>

Просмотреть файл

@ -16,6 +16,7 @@
#load "build/cake/update-config.cake"
#load "build/cake/tests.cake"
#load "build/cake/gps-parameters.cake"
using System.Text.RegularExpressions;
using System.Xml;
@ -270,6 +271,7 @@ Task("javadocs")
});
Task ("binderate")
.IsDependentOn("javadocs-gps")
.IsDependentOn("binderate-config-verify")
.Does (() =>
{
@ -361,15 +363,15 @@ Task("binderate-config-verify")
artifact_version_suffix = artifact_version_parts[1];
}
Information($"groupId = {jo["groupId"]}");
Information($"artifactId = {jo["artifactId"]}");
Information($"artifact_version = {artifact_version}");
Information($"artifact_version_prefix = {artifact_version_prefix}");
Information($"artifact_version_suffix = {artifact_version_suffix}");
Information($"nuget_version = {nuget_version}");
Information($"nuget_version_prefix = {nuget_version_prefix}");
Information($"nuget_version_suffix = {nuget_version_suffix}");
Information($"nugetId = {jo["nugetId"]}");
//Information($"groupId = {jo["groupId"]}");
//Information($"artifactId = {jo["artifactId"]}");
//Information($"artifact_version = {artifact_version}");
//Information($"artifact_version_prefix = {artifact_version_prefix}");
//Information($"artifact_version_suffix = {artifact_version_suffix}");
//Information($"nuget_version = {nuget_version}");
//Information($"nuget_version_prefix = {nuget_version_prefix}");
//Information($"nuget_version_suffix = {nuget_version_suffix}");
//Information($"nugetId = {jo["nugetId"]}");
string[] artifact_version_prefix_parts = artifact_version_prefix.Split(new string[]{ "." }, StringSplitOptions.RemoveEmptyEntries);
@ -395,7 +397,7 @@ Task("binderate-config-verify")
nuget_version_new += $"-{nuget_version_suffix}";
}
Information($"nuget_version_new = {nuget_version_new}");
//Information($"nuget_version_new = {nuget_version_new}");
if
(
@ -465,9 +467,9 @@ Task("binderate-fix")
string groupId = (string) jo["groupId"];
string artifactId = (string) jo["artifactId"];
Information($" Verifying files for :");
Information($" group : {groupId}");
Information($" artifact : {artifactId}");
//Information($" Verifying files for :");
//Information($" group : {groupId}");
//Information($" artifact : {artifactId}");
bool? dependency_only = (bool?) jo["dependencyOnly"];
if ( dependency_only == true)
@ -679,6 +681,42 @@ Task("libs-native")
CopyFileToDirectory($"{root}/extensions-aar/build/outputs/aar/extensions-aar-release.aar", outputDir);
Unzip($"{outputDir}/extensions-aar-release.aar", outputDir);
root = "./source/com.google.android.play/core.extensions/";
RunGradle(root, "build");
outputDir = "./externals/com.xamarin.google.android.play.core.extensions/";
EnsureDirectoryExists(outputDir);
CleanDirectories(outputDir);
CopyFileToDirectory($"{root}/extensions-aar/build/outputs/aar/extensions-aar-release.aar", outputDir);
Unzip($"{outputDir}/extensions-aar-release.aar", outputDir);
MoveFile($"{outputDir}/classes.jar", $"{outputDir}/extensions.jar");
root = "./source/com.google.android.play/asset.delivery.extensions/";
RunGradle(root, "build");
outputDir = "./externals/com.xamarin.google.android.play.asset.delivery.extensions/";
EnsureDirectoryExists(outputDir);
CleanDirectories(outputDir);
CopyFileToDirectory($"{root}/extensions-aar/build/outputs/aar/extensions-aar-release.aar", outputDir);
Unzip($"{outputDir}/extensions-aar-release.aar", outputDir);
MoveFile($"{outputDir}/classes.jar", $"{outputDir}/extensions.jar");
root = "./source/com.google.android.play/feature.delivery.extensions/";
RunGradle(root, "build");
outputDir = "./externals/com.xamarin.google.android.play.feature.delivery.extensions/";
EnsureDirectoryExists(outputDir);
CleanDirectories(outputDir);
CopyFileToDirectory($"{root}/extensions-aar/build/outputs/aar/extensions-aar-release.aar", outputDir);
Unzip($"{outputDir}/extensions-aar-release.aar", outputDir);
MoveFile($"{outputDir}/classes.jar", $"{outputDir}/extensions.jar");
});
Task("nuget")

Просмотреть файл

@ -0,0 +1,40 @@
// Contains tasks for retrieving pre-generated parameter names for some GPS packages.
// Ideally these days this could be replaced with `<JavaDocJar>` or `<AndroidSourceJar>`,
// but for now we'll just copy what was in the GPS repository.
var REF_DOCS_FILE = "./build/data/docs/play-services-firebase.zip";
var REF_METADATA_FILE = "./build/data/paramnames/play-services-firebase-metadata.xml";
var REF_PARAMNAMES_FILE = "./build/data/paramnames/play-services-firebase-paramnames.txt";
// Extracts parameter names and places them in the right spot for the GPS template
Task ("javadocs-gps")
.Does (() =>
{
EnsureDirectoryExists ("./externals/");
if (!FileExists ("./externals/docs.zip"))
CopyFile (REF_DOCS_FILE, "./externals/docs.zip");
if (!DirectoryExists ("./externals/docs"))
Unzip ("./externals/docs.zip", "./externals/docs");
if (!FileExists ("./externals/paramnames.txt"))
CopyFile (REF_PARAMNAMES_FILE, "./externals/paramnames.txt");
if (!FileExists ("./externals/paramnames.xml"))
CopyFile (REF_METADATA_FILE, "./externals/paramnames.xml");
return;
var astJar = new FilePath ("./util/JavaASTParameterNames-1.0.jar");
var sourcesJars = GetFiles ("./externals/**/*-sources.jar");
foreach (var srcJar in sourcesJars) {
var srcJarPath = MakeAbsolute (srcJar).FullPath;
var outTxtPath = srcJarPath.Replace ("-sources.jar", "-paramnames.txt");
var outXmlPath = srcJarPath.Replace ("-sources.jar", "-paramnames.xml");
StartProcess ("java", "-jar \"" + MakeAbsolute(astJar).FullPath + "\" --text \"" + srcJarPath + "\" \"" + outTxtPath + "\"");
StartProcess ("java", "-jar \"" + MakeAbsolute(astJar).FullPath + "\" --xml \"" + srcJarPath + "\" \"" + outXmlPath + "\"");
}
});

Просмотреть файл

@ -15,7 +15,7 @@ stages:
- template: job-extended-tests.yml
parameters:
jobName: Android
agentCount: 10
agentCount: 20
testFilter: cat = Android
testProject: $(extendedTestProject)
testAssembly: $(extendedTestAssembly)

Двоичные данные
build/data/docs/play-services-firebase.zip Normal file

Двоичный файл не отображается.

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -1,5 +1,218 @@
_COROUTINE
Android.Annotation
Android.BillingClient
Android.BillingClient.Api
Android.BillingClient.Ktx
Android.Gms.Actions
Android.Gms.Ads
Android.Gms.Ads.AdManager
Android.Gms.Ads.Afsn
Android.Gms.Ads.Afsn.Search
Android.Gms.Ads.AppOpen
Android.Gms.Ads.Formats
Android.Gms.Ads.H5
Android.Gms.Ads.Initialization
Android.Gms.Ads.Internal.Util.Client
Android.Gms.Ads.Interstitial
Android.Gms.Ads.Mediation
Android.Gms.Ads.Mediation.CustomEvent
Android.Gms.Ads.Mediation.Rtb
Android.Gms.Ads.NativeAd
Android.Gms.Ads.Query
Android.Gms.Ads.Rewarded
Android.Gms.Ads.RewardedInterstitial
Android.Gms.Ads.Search
Android.Gms.Analytics
Android.Gms.Analytics.Ecommerce
Android.Gms.AppIndex
Android.Gms.AppIndex.Builders
Android.Gms.AppIndexing
Android.Gms.AppInvite
Android.Gms.AppSet
Android.Gms.Auth
Android.Gms.Auth.Account
Android.Gms.Auth.Api
Android.Gms.Auth.Api.AccountTransfer
Android.Gms.Auth.Api.Identity
Android.Gms.Auth.Api.Phone
Android.Gms.Auth.Api.Proxy
Android.Gms.Auth.Api.SignIn
Android.Gms.Auth.Api.SignIn.Internal
Android.Gms.Auth.Managed.Blockstore
Android.Gms.Auth.Managed.Blockstore.RestoreCredential
Android.Gms.Auth.Managed.Blockstore.RestoreCredential.Internal
Android.Gms.Auth.Managed.Password
Android.Gms.Awareness
Android.Gms.Awareness.Fence
Android.Gms.Awareness.Snapshot
Android.Gms.Awareness.State
Android.Gms.Cast
Android.Gms.Cast.Framework
Android.Gms.Cast.Framework.Internal.FeatureHighlight
Android.Gms.Cast.Framework.Media
Android.Gms.Cast.Framework.Media.Internal
Android.Gms.Cast.Framework.Media.UIController
Android.Gms.Cast.Framework.Media.Widget
Android.Gms.Cast.TV
Android.Gms.Cast.TV.Auth
Android.Gms.Cast.TV.CAC
Android.Gms.Cast.TV.Internal
Android.Gms.Cast.TV.Media
Android.Gms.Clearcut
Android.Gms.CloudMessaging
Android.Gms.Common
Android.Gms.Common.Annotations
Android.Gms.Common.Api.Internal
Android.Gms.Common.Apis
Android.Gms.Common.Apis.Internal
Android.Gms.Common.Config
Android.Gms.Common.Data
Android.Gms.Common.Images
Android.Gms.Common.Internal
Android.Gms.Common.Internal.SafeParcel
Android.Gms.Common.Logging
Android.Gms.Common.ModuleInstall
Android.Gms.Common.ModuleInstall.Internal
Android.Gms.Common.Providers
Android.Gms.Common.Server
Android.Gms.Common.Server.Converter
Android.Gms.Common.Server.Response
Android.Gms.Common.SqlLite
Android.Gms.Common.Stats
Android.Gms.Common.Util
Android.Gms.Common.Util.Concurrent
Android.Gms.Common.Util.Wrappers
Android.Gms.DevicePerformance
Android.Gms.DevicePerformance.Internal
Android.Gms.Drive
Android.Gms.Drive.Events
Android.Gms.Drive.MetadataTypes
Android.Gms.Drive.Query
Android.Gms.Drive.Widget
Android.Gms.Dynamic
Android.Gms.Dynamite
Android.Gms.Dynamite.Descriptors.Ads.Dynamite
Android.Gms.Dynamite.Descriptors.Cronet
Android.Gms.Dynamite.Descriptors.Firebase.Auth
Android.Gms.Dynamite.Descriptors.Firebase.ML.Vision.Barcode
Android.Gms.Dynamite.Descriptors.Flags
Android.Gms.Dynamite.Descriptors.Gms.CastTVDynamite
Android.Gms.Dynamite.Descriptors.MLKit.Barcode
Android.Gms.Dynamite.Descriptors.TagManager
Android.Gms.Dynamite.Descriptors.Vision.Face
Android.Gms.Dynamite.Descriptors.Vision.Ica
Android.Gms.Extensions
Android.Gms.Fido
Android.Gms.Fido.Common
Android.Gms.Fido.Fido2
Android.Gms.Fido.Fido2.Api.Common
Android.Gms.Fido.U2F
Android.Gms.Fido.U2F.Api.Common
Android.Gms.Fido.U2F.MessageBased
Android.Gms.Fitness
Android.Gms.Fitness.Data
Android.Gms.Fitness.Request
Android.Gms.Fitness.Result
Android.Gms.Fitness.Service
Android.Gms.Flags
Android.Gms.Flags.Impl
Android.Gms.Games
Android.Gms.Games.Achievement
Android.Gms.Games.Event
Android.Gms.Games.Internal
Android.Gms.Games.Internal.Experience
Android.Gms.Games.Internal.Game
Android.Gms.Games.Internal.Player
Android.Gms.Games.Internal.V2.AppShortcuts
Android.Gms.Games.Internal.V2.Resolution
Android.Gms.Games.Leaderboard
Android.Gms.Games.LeaderBoard
Android.Gms.Games.MultiPlayer
Android.Gms.Games.MultiPlayer.RealTime
Android.Gms.Games.Provider
Android.Gms.Games.Quest
Android.Gms.Games.Snapshot
Android.Gms.Games.Stats
Android.Gms.Games.Video
Android.Gms.Gcm
Android.Gms.Home.Matter
Android.Gms.Home.Matter.Commissioning
Android.Gms.Home.Matter.Commissioning.Internal
Android.Gms.Home.Matter.Common
Android.Gms.Home.Matter.Discovery
Android.Gms.Home.Matter.Settings
Android.Gms.Identity.Intents
Android.Gms.Identity.Intents.Model
Android.Gms.Iid
Android.Gms.InstantApp
Android.Gms.Internal.Constants
Android.Gms.Internal.MLKitLanguageIdBundled
Android.Gms.Location
Android.Gms.Location.Places
Android.Gms.Location.Places.UI
Android.Gms.Maps
Android.Gms.Maps.Model
Android.Gms.Measurement
Android.Gms.Measurement.Api
Android.Gms.Measurement.Dynamite
Android.Gms.Nearby
Android.Gms.Nearby.Connection
Android.Gms.Nearby.FastPair
Android.Gms.Nearby.Messages
Android.Gms.Nearby.Messages.Audio
Android.Gms.Nearby.Uwb
Android.Gms.Net
Android.Gms.Oss.Licenses
Android.Gms.Panorama
Android.Gms.Pay
Android.Gms.People.ProtoModel
Android.Gms.Phenotype
Android.Gms.Plus
Android.Gms.Plus.Model.People
Android.Gms.PredictOnDevice
Android.Gms.PredictOnDevice.Component
Android.Gms.Recaptcha
Android.Gms.SafetyNet
Android.Gms.Search
Android.Gms.Security
Android.Gms.SignIn
Android.Gms.Stats
Android.Gms.StreamProtect
Android.Gms.Tagmanager
Android.Gms.TagManager
Android.Gms.Tasks
Android.Gms.TfLite.Client
Android.Gms.TfLite.Dynamite
Android.Gms.TfLite.Dynamite.Acceleration
Android.Gms.TfLite.Dynamite.Internal
Android.Gms.TfLite.Gpu
Android.Gms.TfLite.Gpu.Support
Android.Gms.TfLite.Java
Android.Gms.TfLite.NnApi
Android.Gms.TfLite.Support
Android.Gms.ThreadNetwork
Android.Gms.Vision
Android.Gms.Vision.Barcodes
Android.Gms.Vision.Clearcut
Android.Gms.Vision.Dynamite.Descriptors.Google.MLKit.Dynamite.Face
Android.Gms.Vision.Dynamite.Descriptors.Google.MLKit.Dynamite.Text.Chinese
Android.Gms.Vision.Dynamite.Descriptors.Google.MLKit.Dynamite.Text.Devanagari
Android.Gms.Vision.Dynamite.Descriptors.Google.MLKit.Dynamite.Text.Japanese
Android.Gms.Vision.Dynamite.Descriptors.Google.MLKit.Dynamite.Text.Korean
Android.Gms.Vision.Dynamite.Descriptors.Google.MLKit.Dynamite.Text.Latin
Android.Gms.Vision.Face
Android.Gms.Vision.Faces
Android.Gms.Vision.Faces.Internal.Client
Android.Gms.Vision.Internal
Android.Gms.Vision.Label
Android.Gms.Vision.Label.Internal.Client
Android.Gms.Vision.Texts
Android.Gms.Wallet
Android.Gms.Wallet.Button
Android.Gms.Wallet.Contract
Android.Gms.Wallet.Wobs
Android.Gms.Wearable
Android.Libraries.Vision.VisionKit.Pipeline
Android.Support.CustomTabs
Android.Support.Customtabs.Trusted
Android.Support.V4.App
@ -498,10 +711,253 @@ AndroidX.Work.Impl.Utils.Futures
AndroidX.Work.Impl.Utils.TaskExecutor
AndroidX.Work.Impl.Workers
AndroidX.Work.MultiProcess
Bumptech.Glide
Bumptech.Glide.DiskLruCache
Bumptech.Glide.GifDecoder
Bumptech.Glide.Load
Bumptech.Glide.Load.Data
Bumptech.Glide.Load.Data.Mediastore
Bumptech.Glide.Load.Engine
Bumptech.Glide.Load.Engine.BitmapRecycle
Bumptech.Glide.Load.Engine.Cache
Bumptech.Glide.Load.Engine.Executor
Bumptech.Glide.Load.Engine.Prefill
Bumptech.Glide.Load.Model
Bumptech.Glide.Load.Model.Stream
Bumptech.Glide.Load.Resource
Bumptech.Glide.Load.Resource.Bitmap
Bumptech.Glide.Load.Resource.Bytes
Bumptech.Glide.Load.Resource.Drawable
Bumptech.Glide.Load.Resource.File
Bumptech.Glide.Load.Resource.Gif
Bumptech.Glide.Load.Resource.Transcode
Bumptech.Glide.Manager
Bumptech.Glide.Module
Bumptech.Glide.Provider
Bumptech.Glide.Request
Bumptech.Glide.Request.Target
Bumptech.Glide.Request.Transition
Bumptech.Glide.Signature
Bumptech.Glide.Util
Bumptech.Glide.Util.Pool
Dagger
Dagger.Assisted
Dagger.Internal
Dagger.Multibindings
Firebase
Firebase.Abt
Firebase.Abt.Component
Firebase.Analytics
Firebase.Analytics.Connector
Firebase.Analytics.Connector.Internal
Firebase.Analytics.Ktx
Firebase.Analytics.Ktx.KtxTesting
Firebase.Analytics.KtxTesting
Firebase.Annotations
Firebase.Annotations.Concurrent
Firebase.AppCheck
Firebase.AppCheck.Debug
Firebase.AppCheck.Debug.Internal
Firebase.AppCheck.Internal
Firebase.AppCheck.Internal.Util
Firebase.AppCheck.Interop
Firebase.AppCheck.Ktx
Firebase.AppCheck.PlayIntegrity
Firebase.AppCheck.PlayIntegrity.Internal
Firebase.AppCheck.SafetyNet
Firebase.AppCheck.SafetyNet.Internal
Firebase.AppIndexing
Firebase.AppIndexing.Builders
Firebase.AppIndexing.Internal
Firebase.AppInvite
Firebase.Auth
Firebase.Auth.Internal
Firebase.Auth.Ktx
Firebase.Components
Firebase.Concurrent
Firebase.Crash
Firebase.Crash.Component
Firebase.Crashlytics
Firebase.Crashlytics.Internal
Firebase.Crashlytics.Internal.Analytics
Firebase.Crashlytics.Internal.Breadcrumbs
Firebase.Crashlytics.Internal.Common
Firebase.Crashlytics.Internal.Metadata
Firebase.Crashlytics.Internal.Model
Firebase.Crashlytics.Internal.Model.Serialization
Firebase.Crashlytics.Internal.Network
Firebase.Crashlytics.Internal.Persistence
Firebase.Crashlytics.Internal.Send
Firebase.Crashlytics.Internal.Settings
Firebase.Crashlytics.Internal.Stacktrace
Firebase.Crashlytics.Ktx
Firebase.Crashlytics.NDK
Firebase.Database
Firebase.Database.Android
Firebase.Database.Annotations
Firebase.Database.Collection
Firebase.Database.Connection
Firebase.Database.Connection.Util
Firebase.Database.Core
Firebase.Database.Core.Operation
Firebase.Database.Core.Persistence
Firebase.Database.Core.Utilities
Firebase.Database.Core.Utilities.Encoding
Firebase.Database.Core.Utilities.Tuple
Firebase.Database.Core.View
Firebase.Database.Core.View.Filter
Firebase.Database.Ktx
Firebase.Database.Logging
Firebase.Database.Snapshot
Firebase.Database.Tubesock
Firebase.Database.Util
Firebase.DataTransport
Firebase.DynamicLinks
Firebase.DynamicLinks.Internal
Firebase.DynamicLinks.Ktx
Firebase.DynamicLoading
Firebase.Emulators
Firebase.Encoders
Firebase.Encoders.Annotations
Firebase.Encoders.JSON
Firebase.Encoders.Proto
Firebase.Events
Firebase.Firestore
Firebase.Firestore.Auth
Firebase.Firestore.Bundle
Firebase.Firestore.Core
Firebase.Firestore.Index
Firebase.Firestore.Ktx
Firebase.Firestore.Local
Firebase.Firestore.Model
Firebase.Firestore.Model.Mutation
Firebase.Firestore.Proto
Firebase.Firestore.Remote
Firebase.Firestore.Util
Firebase.Functions
Firebase.Functions.Dagger
Firebase.Functions.Dagger.Assisted
Firebase.Functions.Dagger.Interal
Firebase.Functions.Ktx
Firebase.HeartBeatInfo
Firebase.Iid
Firebase.Iid.Internal
Firebase.InAppMessaging
Firebase.InAppMessaging.Dagger
Firebase.InAppMessaging.Display
Firebase.InAppMessaging.Display.Dagger
Firebase.InAppMessaging.Display.Dagger.MultiBindings
Firebase.InAppMessaging.Display.Internal
Firebase.InAppMessaging.Display.Internal.BindingWrappers
Firebase.InAppMessaging.Display.Internal.Injection.Components
Firebase.InAppMessaging.Display.Internal.Injection.Keys
Firebase.InAppMessaging.Display.Internal.Injection.Modules
Firebase.InAppMessaging.Display.Internal.Injection.Scopes
Firebase.InAppMessaging.Display.Internal.Layout
Firebase.InAppMessaging.Display.Internal.Layout.Util
Firebase.InAppMessaging.Display.Ktx
Firebase.InAppMessaging.Internal
Firebase.InAppMessaging.Internal.Injection.Components
Firebase.InAppMessaging.Internal.Injection.Modules
Firebase.InAppMessaging.Internal.Injection.Qualifiers
Firebase.InAppMessaging.Internal.Injection.Scopes
Firebase.InAppMessaging.Internal.Time
Firebase.InAppMessaging.Ktx
Firebase.InAppMessaging.Model
Firebase.Inject
Firebase.Installations
Firebase.Installations.Internal
Firebase.Installations.InterOp
Firebase.Installations.Ktx
Firebase.Installations.Local
Firebase.Installations.Remote
Firebase.Installations.Time
Firebase.Internal
Firebase.Internal.Api
Firebase.Ktx
Firebase.Logger
Firebase.Messaging
Firebase.Messaging.DirectBoot
Firebase.Messaging.Ktx
Firebase.Messaging.Reporting
Firebase.Messaging.Threads
Firebase.ML.Common
Firebase.ML.Common.ModelDownload
Firebase.ML.Custom
Firebase.ML.Internal
Firebase.ML.Internal.ModelDownload
Firebase.ML.NaturalLanguage
Firebase.ML.NaturalLanguage.LanguageId
Firebase.ML.NaturalLanguage.LanguageId.Internal
Firebase.ML.NaturalLanguage.SmartReply
Firebase.ML.NaturalLanguage.Translate
Firebase.ML.NaturalLanguage.Translate.Internal
Firebase.ML.Vision
Firebase.ML.Vision.AutoML
Firebase.ML.Vision.AutoML.Internal
Firebase.ML.Vision.Barcode
Firebase.ML.Vision.Barcode.Internal
Firebase.ML.Vision.Cloud
Firebase.ML.Vision.Cloud.Landmark
Firebase.ML.Vision.Common
Firebase.ML.Vision.Document
Firebase.ML.Vision.Dynamite.AutoML
Firebase.ML.Vision.Face
Firebase.ML.Vision.ImageLabel
Firebase.ML.Vision.Label
Firebase.ML.Vision.Objects
Firebase.ML.Vision.Objects.Internal
Firebase.ML.Vision.Text
Firebase.Perf
Firebase.Perf.Application
Firebase.Perf.Config
Firebase.Perf.Injection.Components
Firebase.Perf.Injection.Modules
Firebase.Perf.Ktx
Firebase.Perf.Logging
Firebase.Perf.Metrics
Firebase.Perf.Metrics.Resource
Firebase.Perf.Metrics.Validator
Firebase.Perf.Network
Firebase.Perf.Session
Firebase.Perf.Session.Gauges
Firebase.Perf.Transport
Firebase.Perf.Util
Firebase.Perf.V1
Firebase.PlatformInfo
Firebase.ProtoliteWrapper
Firebase.Provider
Firebase.RemoteConfig
Firebase.RemoteConfig.Internal
Firebase.RemoteConfig.Internal.Rollouts
Firebase.RemoteConfig.InterOp
Firebase.RemoteConfig.InterOp.Rollouts
Firebase.RemoteConfig.Ktx
Firebase.RemoteConfigInterOp
Firebase.Sessions
Firebase.Sessions.Api
Firebase.Storage
Firebase.Storage.Internal
Firebase.Storage.Ktx
Firebase.Storage.Network
Firebase.Storage.Network.Connection
Firebase.Tracing
Firebase.Util
Firebse.ML.Vision.Dynamite.Objects
Firestore.Admin.V1
Firestore.Bundle
Google.Ads.Identifier
Google.Ads.InteractiveMedia.Omid.Library.AdSession
Google.Ads.InteractiveMedia.PAL
Google.Ads.InteractiveMedia.PAL.Utils
Google.Ads.InteractiveMedia.V3.Api
Google.Ads.InteractiveMedia.V3.Api.Player
Google.Ads.InteractiveMedia.V3.Api.Signals
Google.Ads.InteractiveMedia.V3.Impl
Google.Ads.InteractiveMedia.V3.Impl.Data
Google.Ads.Mediation
Google.Ads.Mediation.Admob
Google.Ads.Nonagon.Util.Logging.Csi
Google.Android.Libraries.AppActions.Service
Google.Android.Material.Animation
Google.Android.Material.AppBar
@ -559,6 +1015,8 @@ Google.Android.Material.Tooltip
Google.Android.Material.Transformation
Google.Android.Material.Transition
Google.Android.Material.Transition.Platform
Google.AndroidLibraries.BarHopper
Google.Api
Google.Assistant.AppActions.Suggestions
Google.Assistant.AppActions.Suggestions.Client
Google.Assistant.AppActions.Widgets
@ -566,8 +1024,20 @@ Google.Assistant.AppActions.Widgets.PinAppWidget
Google.AutoValue.Annotations
Google.AutoValue.Extension.Serializable
Google.AutoValue.Extension.ToPrettyString
Google.Cloud.Audit
Google.Cloud.Datastore.Core.Number
Google.Common.Util.Concurrent
Google.Common.Util.Concurrent.Internal
Google.Developers.Mobile.Targeting.Proto
Google.Firestore.V1
Google.Geo.Type
Google.Internal.Firebase.InAppMessaging.V1
Google.Internal.Firebase.InAppMessaging.V1.SdkServing
Google.Logging.Type
Google.Longrunning
Google.Rpc
Google.Rpc.Context
Google.Type
Google.ZXing
Google.ZXing.Aztec
Google.ZXing.Aztec.Decoder
@ -611,6 +1081,7 @@ Javax.Annotation.Concurrent
Javax.Annotation.Meta
JavaX.Inject
JetBrains.Annotations
JWT
Kotlin
Kotlin.Annotation
Kotlin.Collections
@ -759,8 +1230,14 @@ Square.Retrofit2.Adapter.RxJava2
Square.Retrofit2.Converter.Gson
Square.Retrofit2.Converter.Scalars
Square.Retrofit2.Http
Volley
Volley.CroNet
Volley.Toolbox
Xamarin.Android.InstallReferrer.Api
Xamarin.Android.InstallReferrer.Commons
Xamarin.Android.Libraries.Intelligence.Acceleration
Xamarin.Android.Libraries.Intelligence.Acceleration.Process
Xamarin.Android.Libraries.Vision.VisionKit.Pipeline
Xamarin.AopAlliance.Aop
Xamarin.AopAlliance.Intercept
Xamarin.Brotli.Dec
@ -806,6 +1283,33 @@ Xamarin.Google.Android.DataTransport.Runtime.Synchronization
Xamarin.Google.Android.DataTransport.Runtime.Time
Xamarin.Google.Android.DataTransport.Runtime.Util
Xamarin.Google.Android.Finsky.ExternalReferrer
Xamarin.Google.Android.Odml.Image
Xamarin.Google.Android.Play.Asset.Delivery
Xamarin.Google.Android.Play.Core
Xamarin.Google.Android.Play.Core.AppUpdate
Xamarin.Google.Android.Play.Core.AppUpdate.Install
Xamarin.Google.Android.Play.Core.AppUpdate.Install.Model
Xamarin.Google.Android.Play.Core.AppUpdate.Testing
Xamarin.Google.Android.Play.Core.AssetPacks
Xamarin.Google.Android.Play.Core.AssetPacks.Model
Xamarin.Google.Android.Play.Core.Common
Xamarin.Google.Android.Play.Core.Install
Xamarin.Google.Android.Play.Core.Install.Model
Xamarin.Google.Android.Play.Core.Integrity
Xamarin.Google.Android.Play.Core.Integrity.Model
Xamarin.Google.Android.Play.Core.Ktx
Xamarin.Google.Android.Play.Core.Listener
Xamarin.Google.Android.Play.Core.MissingSplits
Xamarin.Google.Android.Play.Core.Review
Xamarin.Google.Android.Play.Core.Review.Model
Xamarin.Google.Android.Play.Core.Review.Testing
Xamarin.Google.Android.Play.Core.SplitCompat
Xamarin.Google.Android.Play.Core.SplitInstall
Xamarin.Google.Android.Play.Core.SplitInstall.Model
Xamarin.Google.Android.Play.Core.SplitInstall.Testing
Xamarin.Google.Android.Play.Core.Tasks
Xamarin.Google.Android.Play.Feature.Delivery
Xamarin.Google.Android.Recaptcha
Xamarin.Google.Crypto.Tink
Xamarin.Google.Crypto.Tink.Aead
Xamarin.Google.Crypto.Tink.Aead.Internal
@ -858,7 +1362,87 @@ Xamarin.Google.Inject.Multibindings
Xamarin.Google.Inject.Name
Xamarin.Google.Inject.Spi
Xamarin.Google.Inject.Util
Xamarin.Google.MLKit.Barhopper
Xamarin.Google.MLKit.Common
Xamarin.Google.MLKit.Common.Internal
Xamarin.Google.MLKit.Common.Internal.Model
Xamarin.Google.MLKit.Common.Model
Xamarin.Google.MLKit.Common.SDKInternal
Xamarin.Google.MLKit.Common.SDKInternal.Model
Xamarin.Google.MLKit.LinkFirebase
Xamarin.Google.MLKit.LinkFirebase.Internal
Xamarin.Google.MLKit.NL.LanguageId
Xamarin.Google.MLKit.NL.LanguageId.Bundled.Internal
Xamarin.Google.MLKit.NL.LanguageId.Internal
Xamarin.Google.MLKit.NL.LanguageId.Thin.Internal
Xamarin.Google.MLKit.NL.SmartReply
Xamarin.Google.MLKit.NL.SmartReply.Internal
Xamarin.Google.MLKit.NL.SmartReply.JNI
Xamarin.Google.MLKit.NL.Translate
Xamarin.Google.MLKit.NL.Translate.Internal
Xamarin.Google.MLKit.ObjectDetection.Additions
Xamarin.Google.MLKit.Vision.BarCode
Xamarin.Google.MLKit.Vision.Barcode.Common
Xamarin.Google.MLKit.Vision.Barcode.Common.Internal
Xamarin.Google.MLKit.Vision.BarCode.Internal
Xamarin.Google.MLKit.Vision.CodeScanner
Xamarin.Google.MLKit.Vision.CodeScanner.Internal
Xamarin.Google.MLKit.Vision.Common
Xamarin.Google.MLKit.Vision.Common.Internal
Xamarin.Google.MLKit.Vision.DigitalInk
Xamarin.Google.MLKit.Vision.DigitalInk.Downloading
Xamarin.Google.MLKit.Vision.DigitalInk.Internal
Xamarin.Google.MLKit.Vision.Face
Xamarin.Google.MLKit.Vision.Face.Internal
Xamarin.Google.MLKit.Vision.Interfaces
Xamarin.Google.MLKit.Vision.Label
Xamarin.Google.MLKit.Vision.Label.AutoML
Xamarin.Google.MLKit.Vision.Label.AutoML.Internal
Xamarin.Google.MLKit.Vision.Label.Custom
Xamarin.Google.MLKit.Vision.Label.Custom.Internal
Xamarin.Google.MLKit.Vision.Label.Defaults
Xamarin.Google.MLKit.Vision.Label.Defaults.Internal
Xamarin.Google.MLKit.Vision.Label.Defaults.Thin
Xamarin.Google.MLKit.Vision.Label.Internal
Xamarin.Google.MLKit.Vision.MediaPipe
Xamarin.Google.MLKit.Vision.MediaPipe.Pose
Xamarin.Google.MLKit.Vision.MediaPipe.Segmentation
Xamarin.Google.MLKit.Vision.MediaPipe.Utils
Xamarin.Google.MLKit.Vision.Objects
Xamarin.Google.MLKit.Vision.Objects.Custom
Xamarin.Google.MLKit.Vision.Objects.Custom.Internal
Xamarin.Google.MLKit.Vision.Objects.Defaults
Xamarin.Google.MLKit.Vision.Objects.Defaults.Internal
Xamarin.Google.MLKit.Vision.Objects.Internal
Xamarin.Google.MLKit.Vision.Pose
Xamarin.Google.MLKit.Vision.Pose.Accurate
Xamarin.Google.MLKit.Vision.Pose.Defaults
Xamarin.Google.MLKit.Vision.Pose.Internal
Xamarin.Google.MLKit.Vision.Text
Xamarin.Google.MLKit.Vision.Text.Chinese
Xamarin.Google.MLKit.Vision.Text.Devanagari
Xamarin.Google.MLKit.Vision.Text.Internal
Xamarin.Google.MLKit.Vision.Text.Japanese
Xamarin.Google.MLKit.Vision.Text.Korean
Xamarin.Google.MLKit.Vision.Text.Latin
Xamarin.Google.MLKit.Vision.Text.Pipeline
Xamarin.Google.MLKit.Vision.Vkp
Xamarin.Google.Research.Xeno.Effect
Xamarin.Google.UserMesssagingPlatform
Xamarin.GoogleAndroid.Libraries.Identity.GoogleId
Xamarin.GoogleAndroid.Libraries.Places.Api
Xamarin.GoogleAndroid.Libraries.Places.Api.Model
Xamarin.GoogleAndroid.Libraries.Places.Api.Net
Xamarin.GoogleAndroid.Libraries.Places.Compat
Xamarin.GoogleAndroid.Libraries.Places.Compat.UI
Xamarin.GoogleAndroid.Libraries.Places.Widget
Xamarin.GoogleAndroid.Libraries.Places.Widget.Internal.UI
Xamarin.GoogleAndroid.Libraries.Places.Widget.Listener
Xamarin.GoogleAndroid.Libraries.Places.Widget.Model
Xamarin.GoogleAndroid.Libraries.Vision.VisionKit.Pipeline
Xamarin.GoogleAndroid.Libraries.Vision.VisionKit.Pipeline.Alt
Xamarin.GoogleAndroid.TV.Ads
Xamarin.GoogleAndroid.TV.Ads.Controls
Xamarin.Grpc
Xamarin.Grpc.Android
Xamarin.Grpc.Core.InProcess

Просмотреть файл

@ -1,31 +1,49 @@
<metadata>
<remove-node
path="/api/package[@name='androidx.media3.session']/class[@name='MediaLibraryService.MediaLibrarySession.Builder']/method[@name='setSessionActivity' and count(parameter)=1 and parameter[1][@type='android.app.PendingIntent']]"
/>
<remove-node
path="/api/package[@name='androidx.media3.session']/class[@name='MediaLibraryService.MediaLibrarySession.Builder']/method[@name='setId' and count(parameter)=1 and parameter[1][@type='java.lang.String']]"
/>
<remove-node
path="/api/package[@name='androidx.media3.session']/class[@name='MediaLibraryService.MediaLibrarySession.Builder']/method[@name='setExtras' and count(parameter)=1 and parameter[1][@type='android.os.Bundle']]"
/>
<remove-node
path="/api/package[@name='androidx.media3.session']/class[@name='MediaLibraryService.MediaLibrarySession.Builder']/method[@name='setBitmapLoader' and count(parameter)=1 and parameter[1][@type='androidx.media3.session.BitmapLoader']]"
/>
<metadata>
<attr
path="/api/package[@name='androidx.media3.session']/class[@name='MediaLibraryService.MediaLibrarySession.Builder']/method[@name='setSessionActivity' and count(parameter)=1 and parameter[1][@name='p0']]"
name="managedName"
>
SetSessionActivityAsBuilder
</attr>
<attr
path="/api/package[@name='androidx.media3.session']/class[@name='MediaLibraryService.MediaLibrarySession.Builder']/method[@name='setId' and count(parameter)=1 and parameter[1][@name='p0']]"
name="managedName"
>
SetIdWithIntAsBuilder
</attr>
<attr
path="/api/package[@name='androidx.media3.session']/class[@name='MediaLibraryService.MediaLibrarySession.Builder']/method[@name='setExtras' and count(parameter)=1 and parameter[1][@name='p0']]"
name="managedName"
>
SetExtrasWithBundleAsBuilder
</attr>
<remove-node
path="/api/package[@name='androidx.media3.session']/class[@name='MediaLibraryService.MediaLibrarySession.Builder']/method[@name='build' and count(parameter)=0]"
/>
<remove-node
path="/api/package[@name='androidx.media3.session']/class[@name='MediaSession.Builder']/method[@name='setSessionActivity' and count(parameter)=1 and parameter[1][@type='android.app.PendingIntent']]"
/>
<remove-node
path="/api/package[@name='androidx.media3.session']/class[@name='MediaSession.Builder']/method[@name='setId' and count(parameter)=1 and parameter[1][@type='java.lang.String']]"
/>
<remove-node
path="/api/package[@name='androidx.media3.session']/class[@name='MediaSession.Builder']/method[@name='setExtras' and count(parameter)=1 and parameter[1][@type='android.os.Bundle']]"
/>
<remove-node
path="/api/package[@name='androidx.media3.session']/class[@name='MediaSession.Builder']/method[@name='setBitmapLoader' and count(parameter)=1 and parameter[1][@type='androidx.media3.session.BitmapLoader']]"
/>
<attr
path="/api/package[@name='androidx.media3.session']/class[@name='MediaSession.Builder']/method[@name='setSessionActivity' and count(parameter)=1 and parameter[1][@name='p0']]"
name="managedName"
>
SetSessionActivityWithPendingIntent
</attr>
<attr
path="/api/package[@name='androidx.media3.session']/class[@name='MediaSession.Builder']/method[@name='setId' and count(parameter)=1 and parameter[1][@name='p0']]"
name="managedName"
>
SetIdAsBuilder
</attr>
<attr
path="/api/package[@name='androidx.media3.session']/class[@name='MediaSession.Builder']/method[@name='setExtras' and count(parameter)=1 and parameter[1][@name='p0']]"
name="managedName"
>
SetExtrasWithBundle
</attr>
<attr
path="/api/package[@name='androidx.media3.session']/class[@name='MediaSession.Builder']/method[@name='setBitmapLoader' and count(parameter)=1 and parameter[1][@type='p0']]"
name="managedName"
>
SetBitmapLoader
</attr>
<attr
path="/api/package[@name='androidx.media3.session']/class[@name='MediaLibraryService']/method[@name='onGetSession' and count(parameter)=1 and parameter[1][@type='androidx.media3.session.MediaSession.ControllerInfo']]"
name="managedReturn"
@ -89,7 +107,6 @@
>
SetShowPlayButtonIfPlaybackIsSuppressedBuilder
</attr>
<attr
path="/api/package[@name='androidx.media3.session']/class[@name='MediaLibraryService.MediaLibrarySession.Builder']/method[@name='setPeriodicPositionUpdateEnabled' and @return='androidx.media3.session.MediaLibraryService.MediaLibrarySession.Builder' and count(parameter)=1 and parameter[1][@type='boolean']]"
name="managedName"
@ -108,5 +125,4 @@
>
SetShowPlayButtonIfPlaybackIsSuppressedBuilder
</attr>
</metadata>

Просмотреть файл

@ -0,0 +1,54 @@
<enum-field-mappings>
<!--
This example converts the constants Fragment_id, Fragment_name,
and Fragment_tag from android.support.v4.app.FragmentActivity.FragmentTag
to an enum called Android.Support.V4.App.FragmentTagType with values
Id, Name, and Tag.
<mapping clr-enum-type="Android.Support.V4.App.FragmentTagType" jni-class="android/support/v4/app/FragmentActivity$FragmentTag">
<field clr-name="Id" jni-name="Fragment_id" value="1" />
<field clr-name="Name" jni-name="Fragment_name" value="0" />
<field clr-name="Tag" jni-name="Fragment_tag" value="2" />
</type>
Notes:
- An optional "bitfield" attribute marks the enum type with [Flags].
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
-->
<mapping clr-enum-type="Android.BillingClient.Api.ChildDirectedTypes" jni-interface="com/android/billingclient/api/BillingClient$ChildDirected">
<field clr-name="Directed" jni-name="CHILD_DIRECTED" value="1" />
<field clr-name="NotDirected" jni-name="NOT_CHILD_DIRECTED" value="2" />
<field clr-name="Unspecified" jni-name="UNSPECIFIED" value="0" />
</mapping>
<mapping clr-enum-type="Android.BillingClient.Api.UnderAgeOfConsentTypes" jni-interface="com/android/billingclient/api/BillingClient$UnderAgeOfConsent">
<field clr-name="NotUnderAgeOfConsent" jni-name="NOT_UNDER_AGE_OF_CONSENT" value="2" />
<field clr-name="UnderAgeOfConsent" jni-name="UNDER_AGE_OF_CONSENT" value="1" />
<field clr-name="Unspecified" jni-name="UNSPECIFIED" value="0" />
</mapping>
<mapping clr-enum-type="Android.BillingClient.Api.PurchaseState" jni-interface="com/android/billingclient/api/Purchase$PurchaseState">
<field clr-name="Pending" jni-name="PENDING" value="2" />
<field clr-name="Purchased" jni-name="PURCHASED" value="1" />
<field clr-name="Unspecified" jni-name="UNSPECIFIED_STATE" value="0" />
</mapping>
<mapping clr-enum-type="Android.BillingClient.Api.BillingResponseCode" jni-interface="com/android/billingclient/api/BillingClient$BillingResponseCode">
<field clr-name="BillingUnavailable" jni-name="BILLING_UNAVAILABLE" value="3" />
<field clr-name="DeveloperError" jni-name="DEVELOPER_ERROR" value="5" />
<field clr-name="Error" jni-name="ERROR" value="6" />
<field clr-name="FeatureNotSupported" jni-name="FEATURE_NOT_SUPPORTED" value="-2" />
<field clr-name="ItemAlreadyOwned" jni-name="ITEM_ALREADY_OWNED" value="7" />
<field clr-name="ItemNotOwned" jni-name="ITEM_NOT_OWNED" value="8" />
<field clr-name="ItemUnavailable" jni-name="ITEM_UNAVAILABLE" value="4" />
<field clr-name="Ok" jni-name="OK" value="0" />
<field clr-name="ServiceDisconnected" jni-name="SERVICE_DISCONNECTED" value="-1" />
<field clr-name="ServiceTimeout" jni-name="SERVICE_TIMEOUT" value="-3" />
<field clr-name="ServiceUnavailable" jni-name="SERVICE_UNAVAILABLE" value="2" />
<field clr-name="UserCancelled" jni-name="USER_CANCELED" value="1" />
</mapping>
</enum-field-mappings>

Просмотреть файл

@ -0,0 +1,31 @@
<enum-method-mappings>
<!--
This example changes the Java method:
android.support.v4.app.Fragment.SavedState.writeToParcel (int flags)
to be:
android.support.v4.app.Fragment.SavedState.writeToParcel (Android.OS.ParcelableWriteFlags flags)
when bound in C#.
<mapping jni-class="android/support/v4/app/Fragment.SavedState">
<method jni-name="writeToParcel" parameter="flags" clr-enum-type="Android.OS.ParcelableWriteFlags" />
</mapping>
Notes:
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
- To change the type of the return value, use "return" as the parameter name.
- The parameter names will be p0, p1, ... unless you provide JavaDoc file in the project.
-->
<mapping jni-class="com/android/billingclient/api/BillingClient.Builder">
<method jni-name="setChildDirected" parameter="childDirected" clr-enum-type="Android.BillingClient.Api.ChildDirectedTypes" />
<method jni-name="setUnderAgeOfConsent" parameter="underAgeOfConsent" clr-enum-type="Android.BillingClient.Api.UnderAgeOfConsentTypes" />
</mapping>
<mapping jni-class="com/android/billingclient/api/BillingResult">
<method jni-name="getResponseCode" parameter="return" clr-enum-type="Android.BillingClient.Api.BillingResponseCode" />
</mapping>
<mapping jni-class="com/android/billingclient/api/Purchase">
<method jni-name="getPurchaseState" parameter="return" clr-enum-type="Android.BillingClient.Api.PurchaseState" />
</mapping>
</enum-method-mappings>

Просмотреть файл

@ -0,0 +1,21 @@
<metadata>
<!-- namespaces -->
<attr
path="/api/package[@name='com.android.billingclient']"
name="managedName"
>
Android.BillingClient
</attr>
<attr
path="/api/package[@name='com.android.billingclient.api']"
name="managedName"
>
Android.BillingClient.Api
</attr>
<attr
path="/api/package[@name='com.android.billingclient.ktx']"
name="managedName"
>
Android.BillingClient.Ktx
</attr>
</metadata>

Просмотреть файл

@ -0,0 +1,292 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Android.BillingClient.Api
{
public class ConsumeResult
{
public BillingResult BillingResult { get; set; }
public string PurchaseToken { get; set; }
}
public class QueryPurchaseHistoryResult
{
public BillingResult Result { get; set; }
public IList<PurchaseHistoryRecord> PurchaseHistoryRecords { get; set; }
}
[Obsolete("Use QueryProductDetailsAsync(QueryProductDetailsParams) instead")]
public class QuerySkuDetailsResult
{
public BillingResult Result { get; set; }
public IList<SkuDetails> SkuDetails { get; set; }
}
public class QueryProductDetailsResult
{
public BillingResult Result { get; set; }
public IList<ProductDetails> ProductDetails { get; set; }
}
public class QueryPurchasesResult
{
public BillingResult Result { get; set; }
public IList<Purchase> Purchases { get; set; }
}
public partial class BillingClient
{
public partial class Builder
{
InternalPurchasesUpdatedListener purchasesUpdatedListener;
public void SetListener(Action<BillingResult, IList<Purchase>> handler)
{
purchasesUpdatedListener = new InternalPurchasesUpdatedListener
{
PurchasesUpdatedHandler = (r, p) => handler?.Invoke(r, p)
};
SetListener(purchasesUpdatedListener);
}
}
public Task<BillingResult> AcknowledgePurchaseAsync(AcknowledgePurchaseParams acknowledgePurchaseParams)
{
var tcs = new TaskCompletionSource<BillingResult>();
var listener = new InternalAcknowledgePurchaseResponseListener
{
AcknowledgePurchaseResponseHandler = r => tcs.TrySetResult(r)
};
AcknowledgePurchase(acknowledgePurchaseParams, listener);
return tcs.Task;
}
public Task<ConsumeResult> ConsumeAsync(ConsumeParams consumeParams)
{
var tcs = new TaskCompletionSource<ConsumeResult>();
var listener = new InternalConsumeResponseListener
{
ConsumeResponseHandler = (r, s) => tcs.TrySetResult(new ConsumeResult
{
BillingResult = r,
PurchaseToken = s
})
};
Consume(consumeParams, listener);
return tcs.Task;
}
[Obsolete("Use QueryPurchaseHistoryAsync(QueryPurchaseHistoryParams) instead")]
public Task<QueryPurchaseHistoryResult> QueryPurchaseHistoryAsync(string skuType)
{
var tcs = new TaskCompletionSource<QueryPurchaseHistoryResult>();
var listener = new InternalPurchaseHistoryResponseListener
{
PurchaseHistoryResponseHandler = (r, h) => tcs.TrySetResult(new QueryPurchaseHistoryResult
{
Result = r,
PurchaseHistoryRecords = h
})
};
QueryPurchaseHistory(skuType, listener);
return tcs.Task;
}
public Task<QueryPurchaseHistoryResult> QueryPurchaseHistoryAsync(QueryPurchaseHistoryParams queryPurchaseHistoryParams)
{
var tcs = new TaskCompletionSource<QueryPurchaseHistoryResult>();
var listener = new InternalPurchaseHistoryResponseListener
{
PurchaseHistoryResponseHandler = (r, h) => tcs.TrySetResult(new QueryPurchaseHistoryResult
{
Result = r,
PurchaseHistoryRecords = h
})
};
QueryPurchaseHistory(queryPurchaseHistoryParams, listener);
return tcs.Task;
}
[Obsolete("Use QueryProductDetailsAsync(QueryProductDetailsParams) instead")]
public Task<QuerySkuDetailsResult> QuerySkuDetailsAsync(SkuDetailsParams skuDetailsParams)
{
var tcs = new TaskCompletionSource<QuerySkuDetailsResult>();
var listener = new InternalSkuDetailsResponseListener
{
SkuDetailsResponseHandler = (r, s) => tcs.TrySetResult(new QuerySkuDetailsResult
{
Result = r,
SkuDetails = s
})
};
QuerySkuDetails(skuDetailsParams, listener);
return tcs.Task;
}
public Task<QueryProductDetailsResult> QueryProductDetailsAsync(QueryProductDetailsParams productDetailsParams)
{
var tcs = new TaskCompletionSource<QueryProductDetailsResult>();
var listener = new InternalProductDetailsResponseListener
{
ProductDetailsResponseHandler = (r, s) => tcs.TrySetResult(new QueryProductDetailsResult
{
Result = r,
ProductDetails = s
})
};
QueryProductDetails(productDetailsParams, listener);
return tcs.Task;
}
public Task<QueryPurchasesResult> QueryPurchasesAsync(QueryPurchasesParams purchasesParams)
{
var tcs = new TaskCompletionSource<QueryPurchasesResult>();
var listener = new InternalPurchasesResponseListener
{
PurchasesResponseHandler = (r, s) => tcs.TrySetResult(new QueryPurchasesResult
{
Result = r,
Purchases = s
})
};
QueryPurchases(purchasesParams, listener);
return tcs.Task;
}
public Task<BillingResult> StartConnectionAsync(Action onDisconnected = null)
{
var tcs = new TaskCompletionSource<BillingResult>();
var listener = new InternalBillingClientStateListener
{
BillingServiceDisconnectedHandler = () =>
{
onDisconnected?.Invoke();
tcs.TrySetResult(null);
},
BillingSetupFinishedHandler = r =>
tcs.TrySetResult(r)
};
StartConnection(listener);
return tcs.Task;
}
public void StartConnection(Action<BillingResult> setupFinished, Action onDisconnected)
{
var listener = new InternalBillingClientStateListener
{
BillingServiceDisconnectedHandler = () =>
onDisconnected?.Invoke(),
BillingSetupFinishedHandler = r =>
setupFinished?.Invoke(r)
};
StartConnection(listener);
}
}
internal class InternalAcknowledgePurchaseResponseListener : Java.Lang.Object, IAcknowledgePurchaseResponseListener
{
public Action<BillingResult> AcknowledgePurchaseResponseHandler { get; set; }
public void OnAcknowledgePurchaseResponse(BillingResult result)
=> AcknowledgePurchaseResponseHandler?.Invoke(result);
}
internal class InternalBillingClientStateListener : Java.Lang.Object, IBillingClientStateListener
{
public Action BillingServiceDisconnectedHandler { get; set; }
public Action<BillingResult> BillingSetupFinishedHandler { get; set; }
public void OnBillingServiceDisconnected()
=> BillingServiceDisconnectedHandler?.Invoke();
public void OnBillingSetupFinished(BillingResult result)
=> BillingSetupFinishedHandler?.Invoke(result);
}
internal class InternalConsumeResponseListener : Java.Lang.Object, IConsumeResponseListener
{
public Action<BillingResult, string> ConsumeResponseHandler { get; set; }
public void OnConsumeResponse(BillingResult result, string str)
=> ConsumeResponseHandler?.Invoke(result, str);
}
internal class InternalPriceChangeConfirmationListener : Java.Lang.Object //, IPriceChangeConfirmationListener
{
public Action<BillingResult> PriceChangeConfirmationHandler { get; set; }
public void OnPriceChangeConfirmationResult(BillingResult result)
=> PriceChangeConfirmationHandler?.Invoke(result);
}
internal class InternalPurchaseHistoryResponseListener : Java.Lang.Object, IPurchaseHistoryResponseListener
{
public Action<BillingResult, IList<PurchaseHistoryRecord>> PurchaseHistoryResponseHandler { get; set; }
public void OnPurchaseHistoryResponse(BillingResult result, IList<PurchaseHistoryRecord> history)
=> PurchaseHistoryResponseHandler?.Invoke(result, history);
}
internal class InternalPurchasesUpdatedListener : Java.Lang.Object, IPurchasesUpdatedListener
{
public Action<BillingResult, IList<Purchase>> PurchasesUpdatedHandler { get; set; }
public void OnPurchasesUpdated(BillingResult result, IList<Purchase> purchases)
=> PurchasesUpdatedHandler?.Invoke(result, purchases);
}
[Obsolete("Use QueryProductDetailsAsync(QueryProductDetailsParams) instead")]
internal class InternalSkuDetailsResponseListener : Java.Lang.Object, ISkuDetailsResponseListener
{
public Action<BillingResult, IList<SkuDetails>> SkuDetailsResponseHandler { get; set; }
public void OnSkuDetailsResponse(BillingResult result, IList<SkuDetails> skuDetails)
=> SkuDetailsResponseHandler?.Invoke(result, skuDetails);
}
internal class InternalProductDetailsResponseListener : Java.Lang.Object, IProductDetailsResponseListener
{
public Action<BillingResult, IList<ProductDetails>> ProductDetailsResponseHandler { get; set; }
public void OnProductDetailsResponse(BillingResult result, IList<ProductDetails> skuDetails)
=> ProductDetailsResponseHandler?.Invoke(result, skuDetails);
}
internal class InternalPurchasesResponseListener : Java.Lang.Object, IPurchasesResponseListener
{
public Action<BillingResult, IList<Purchase>> PurchasesResponseHandler { get; set; }
public void OnQueryPurchasesResponse(BillingResult result, IList<Purchase> purchases)
=> PurchasesResponseHandler?.Invoke(result, purchases);
}
}

Просмотреть файл

@ -0,0 +1,30 @@
<enum-field-mappings>
<mapping clr-enum-type="Android.BillingClient.Api.PurchaseState" jni-interface="com/android/billingclient/api/Purchase$PurchaseState">
<field clr-name="Pending" jni-name="PENDING" value="2" />
<field clr-name="Purchased" jni-name="PURCHASED" value="1" />
<field clr-name="Unspecified" jni-name="UNSPECIFIED_STATE" value="0" />
</mapping>
<mapping clr-enum-type="Android.BillingClient.Api.ConnectionState" jni-interface="com/android/billingclient/api/BillingClient$ConnectionState">
<field clr-name="Closed" jni-name="CLOSED" value="3" />
<field clr-name="Connected" jni-name="CONNECTED" value="2" />
<field clr-name="Connecting" jni-name="CONNECTING" value="1" />
<field clr-name="Disconnected" jni-name="DISCONNECTED" value="0" />
</mapping>
<mapping clr-enum-type="Android.BillingClient.Api.BillingResponseCode" jni-interface="com/android/billingclient/api/BillingClient$BillingResponseCode">
<field clr-name="BillingUnavailable" jni-name="BILLING_UNAVAILABLE" value="3" />
<field clr-name="DeveloperError" jni-name="DEVELOPER_ERROR" value="5" />
<field clr-name="Error" jni-name="ERROR" value="6" />
<field clr-name="FeatureNotSupported" jni-name="FEATURE_NOT_SUPPORTED" value="-2" />
<field clr-name="ItemAlreadyOwned" jni-name="ITEM_ALREADY_OWNED" value="7" />
<field clr-name="ItemNotOwned" jni-name="ITEM_NOT_OWNED" value="8" />
<field clr-name="ItemUnavailable" jni-name="ITEM_UNAVAILABLE" value="4" />
<field clr-name="NetworkError" jni-name="NETWORK_ERROR" value="12" />
<field clr-name="Ok" jni-name="OK" value="0" />
<field clr-name="ServiceDisconnected" jni-name="SERVICE_DISCONNECTED" value="-1" />
<field clr-name="ServiceTimeout" jni-name="SERVICE_TIMEOUT" value="-3" />
<field clr-name="ServiceUnavailable" jni-name="SERVICE_UNAVAILABLE" value="2" />
<field clr-name="UserCancelled" jni-name="USER_CANCELED" value="1" />
</mapping>
</enum-field-mappings>

Просмотреть файл

@ -0,0 +1,13 @@
<enum-method-mappings>
<mapping jni-class="com/android/billingclient/api/BillingResult">
<method jni-name="getResponseCode" parameter="return" clr-enum-type="Android.BillingClient.Api.BillingResponseCode" />
</mapping>
<mapping jni-class="com/android/billingclient/api/BillingClient">
<method jni-name="getConnectionState" parameter="return" clr-enum-type="Android.BillingClient.Api.ConnectionState" />
</mapping>
<mapping jni-class="com/android/billingclient/api/Purchase">
<method jni-name="getPurchaseState" parameter="return" clr-enum-type="Android.BillingClient.Api.PurchaseState" />
</mapping>
</enum-method-mappings>

Просмотреть файл

@ -0,0 +1,15 @@
<metadata>
<!-- namespaces -->
<attr path="/api/package[@name='com.android.billingclient']" name="managedName">Android.BillingClient</attr>
<attr path="/api/package[@name='com.android.billingclient.api']" name="managedName">Android.BillingClient.Api</attr>
<!-- These just produce warnings but aren't part of the public API -->
<remove-node path="/api/package[@name='com.android.billingclient.api']/class[@name='QueryProductDetailsParams']/method[@name='zza' and count(parameter)=0]" />
<remove-node path="/api/package[@name='com.google.android.gms.internal.play_billing']" />
<attr path="/api/package[@name='com.android.billingclient.api']/class[@name='BillingClient']/method[@name='consumeAsync']" name="managedName">Consume</attr>
<attr path="/api/package[@name='com.android.billingclient.api']/class[@name='BillingClient']/method[@name='queryPurchaseHistoryAsync']" name="managedName">QueryPurchaseHistory</attr>
<attr path="/api/package[@name='com.android.billingclient.api']/class[@name='BillingClient']/method[@name='querySkuDetailsAsync']" name="managedName">QuerySkuDetails</attr>
<attr path="/api/package[@name='com.android.billingclient.api']/class[@name='BillingClient']/method[@name='queryProductDetailsAsync']" name="managedName">QueryProductDetails</attr>
<attr path="/api/package[@name='com.android.billingclient.api']/class[@name='BillingClient']/method[@name='queryPurchasesAsync']" name="managedName">QueryPurchases</attr>
</metadata>

Просмотреть файл

@ -0,0 +1,4 @@
using System;
using Android.Views;
using Android.Widget;
using Android.Graphics;

Просмотреть файл

@ -0,0 +1,2 @@
<enum-field-mappings>
</enum-field-mappings>

Просмотреть файл

@ -0,0 +1,2 @@
<enum-method-mappings>
</enum-method-mappings>

Просмотреть файл

@ -0,0 +1,17 @@
<metadata>
<!--
<attr
path="/api/package[@name='package']"
name="managedName"
>
Package
</attr>
-->
<attr
path="/api/package[@name='com.android.volley.cronet']"
name="managedName"
>
Volley.CroNet
</attr>
</metadata>

Просмотреть файл

@ -0,0 +1,2 @@
<metadata>
</metadata>

Просмотреть файл

@ -0,0 +1,3 @@
<metadata>
</metadata>

Просмотреть файл

@ -0,0 +1,10 @@
using System;
namespace Volley.Toolbox {
public partial class StringRequest {
protected override void DeliverResponse (Java.Lang.Object response)
{
DeliverResponse ((string)response);
}
}
}

Просмотреть файл

@ -0,0 +1,2 @@
<enum-field-mappings>
</enum-field-mappings>

Просмотреть файл

@ -0,0 +1,2 @@
<enum-method-mappings>
</enum-method-mappings>

Просмотреть файл

@ -0,0 +1,11 @@
<metadata>
<!--
<attr
path="/api/package[@name='package']"
name="managedName"
>
Package
</attr>
-->
</metadata>

Просмотреть файл

@ -0,0 +1,2 @@
<metadata>
</metadata>

Просмотреть файл

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<attr path="/api/package[@name='com.android.volley']" name="managedName">Volley</attr>
<attr path="/api/package[@name='com.android.volley']/class[@name='Request']/method[@name='getMethod' and count(parameter)=0]" name="propertyName"></attr>
<attr path="/api/package[@name='com.android.volley']/class[@name='Request']/method[@name='compareTo' and count(parameter)=1 and parameter[1][@type='com.android.volley.Request&lt;T&gt;']]/parameter[1]" name="managedType">Java.Lang.Object</attr>
<attr path="/api/package[@name='com.android.volley']/class[@name='Response']/field[@name='error']" name="managedName">VolleyError</attr>
<attr path="/api/package[@name='com.android.volley']/interface[@name='Request.NetworkRequestCompleteListener']" name="visibility">private</attr>
<attr path="/api/package[@name='com.android.volley.toolbox']" name="managedName">Volley.Toolbox</attr>
<attr path="/api/package[@name='com.android.volley.toolbox']/class[@name='ImageRequest']/method[@name='deliverResponse' and count(parameter)=1 and parameter[1][@type='android.graphics.Bitmap']]/parameter[1]" name="managedType">Java.Lang.Object</attr>
<remove-node path="/api/package[@name='com.android.volley.toolbox']/class[@name='JsonRequest']/method[@name='parseNetworkResponse' and count(parameter)=1 and parameter[1][@type='com.android.volley.NetworkResponse']]" />
<attr
path="/api/package[@name='com.android.volley']/interface[@name='RequestQueue.RequestEvent']"
name="managedName"
>
RequestQueueRequestEvent
</attr>
<attr
path="/api/package[@name='com.android.volley.toolbox']/class[@name='AsyncHttpStack']/method[@name='executeRequest' and count(parameter)=3 and parameter[1][@type='com.android.volley.Request&lt;?&gt;'] and parameter[2][@type='java.util.Map&lt;java.lang.String, java.lang.String&gt;'] and parameter[3][@type='com.android.volley.toolbox.AsyncHttpStack.OnRequestComplete']]"
name="abstract"
>
false
</attr>
</metadata>

Просмотреть файл

@ -0,0 +1,15 @@
<metadata>
<attr
path="/api/package[@name='com.bumptech.glide.annotation']"
name="managedName"
>
Bumptech.Glide.Annotations
</attr>
<attr
path="/api/package[@name='com.bumptech.glide.annotation.compiler']"
name="managedName"
>
Bumptech.Glide.Annotations.Compilers
</attr>
</metadata>

Просмотреть файл

@ -0,0 +1,7 @@
<Project>
<ItemGroup>
<AndroidJavaLibrary Condition=" '$(AndroidApplication)' == 'true' " Include="$(MSBuildThisFileDirectory)..\..\jar\annotations.jar">
<AndroidXSkipAndroidXMigration>true</AndroidXSkipAndroidXMigration>
</AndroidJavaLibrary>
</ItemGroup>
</Project>

Просмотреть файл

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<metadata>
<attr path="/api/package[@name='com.bumptech.glide.disklrucache']" name="managedName">Bumptech.Glide.DiskLruCache</attr>
</metadata>

Просмотреть файл

@ -0,0 +1,7 @@
<Project>
<ItemGroup>
<AndroidJavaLibrary Condition=" '$(AndroidApplication)' == 'true' " Include="$(MSBuildThisFileDirectory)..\..\jar\disklrucache.jar">
<AndroidXSkipAndroidXMigration>true</AndroidXSkipAndroidXMigration>
</AndroidJavaLibrary>
</ItemGroup>
</Project>

Просмотреть файл

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<metadata>
<attr path="/api/package[@name='com.bumptech.glide.gifdecoder']" name="managedName">Bumptech.Glide.GifDecoder</attr>
</metadata>

Просмотреть файл

@ -0,0 +1,7 @@
<Project>
<ItemGroup>
<AndroidAarLibrary Include="$(MSBuildThisFileDirectory)..\..\aar\gifdecoder.aar">
<AndroidXSkipAndroidXMigration>true</AndroidXSkipAndroidXMigration>
</AndroidAarLibrary>
</ItemGroup>
</Project>

Просмотреть файл

@ -0,0 +1,458 @@
using System.Collections;
using System.Linq;
using Android.Content;
using Android.Content.Res;
using Android.Graphics;
using Android.Graphics.Drawables;
using Android.Net;
using Android.OS;
using Android.Runtime;
using Bumptech.Glide.Load;
using Bumptech.Glide.Load.Engine;
using Bumptech.Glide.Load.Resource.Bitmap;
using Bumptech.Glide.Request;
using Bumptech.Glide.Request.Transition;
using Java.IO;
using Java.Lang;
using Java.Util.Concurrent;
namespace Bumptech.Glide
{
public partial class RequestBuilder
{
public virtual RequestBuilder Apply(BaseRequestOptions o) => (RequestBuilder)Apply_T(o);
public virtual RequestBuilder AutoClone() => (RequestBuilder)AutoClone_T();
public virtual RequestBuilder CenterCrop() => (RequestBuilder)CenterCrop_T();
public virtual RequestBuilder CenterInside() => (RequestBuilder)CenterInside_T();
public virtual RequestBuilder CircleCrop() => (RequestBuilder)CircleCrop_T();
public new virtual RequestBuilder Clone() => (RequestBuilder)Clone_T();
public virtual RequestBuilder Decode(Class resourceClass) => (RequestBuilder)Decode_T(resourceClass);
public virtual RequestBuilder DisallowHardwareConfig() => (RequestBuilder)DisallowHardwareConfig_T();
public virtual RequestBuilder Downsample(DownsampleStrategy strategy) => (RequestBuilder)Downsample_T(strategy);
public virtual RequestBuilder DontAnimate() => (RequestBuilder)DontAnimate_T();
public virtual RequestBuilder DontTransform() => (RequestBuilder)DontTransform_T();
public virtual RequestBuilder EncodeFormat(Bitmap.CompressFormat format) => (RequestBuilder)EncodeFormat_T(format);
public virtual RequestBuilder EncodeQuality(int quality) => (RequestBuilder)EncodeQuality_T(quality);
public virtual RequestBuilder Error(Drawable drawable) => (RequestBuilder)Error_T(drawable);
public virtual RequestBuilder Error(int resourceId) => (RequestBuilder)Error_T(resourceId);
public virtual RequestBuilder Fallback(Drawable drawable) => (RequestBuilder)Fallback_T(drawable);
public virtual RequestBuilder Fallback(int resourceId) => (RequestBuilder)Fallback_T(resourceId);
public virtual RequestBuilder FitCenter() => (RequestBuilder)FitCenter_T();
public virtual RequestBuilder Format(DecodeFormat format) => (RequestBuilder)Format_T(format);
public virtual RequestBuilder Frame(long frameTimeMicros) => (RequestBuilder)Frame_T(frameTimeMicros);
public virtual RequestBuilder Lock() => (RequestBuilder)Lock_T();
public virtual RequestBuilder OptionalCenterCrop() => (RequestBuilder)OptionalCenterCrop_T();
public virtual RequestBuilder OptionalCenterInside() => (RequestBuilder)OptionalCenterInside_T();
public virtual RequestBuilder OptionalCircleCrop() => (RequestBuilder)OptionalCircleCrop_T();
public virtual RequestBuilder OptionalFitCenter() => (RequestBuilder)OptionalFitCenter_T();
public virtual RequestBuilder OptionalTransform(Class resourceClass, ITransformation transformation) => (RequestBuilder)OptionalTransform_T(resourceClass, transformation);
public virtual RequestBuilder OptionalTransform(ITransformation transformation) => (RequestBuilder)OptionalTransform_T(transformation);
public virtual RequestBuilder Override(int width, int height) => (RequestBuilder)Override_T(width, height);
public virtual RequestBuilder Override(int size) => (RequestBuilder)Override_T(size);
public virtual RequestBuilder Placeholder(Drawable drawable) => (RequestBuilder)Placeholder_T(drawable);
public virtual RequestBuilder Placeholder(int resourceId) => (RequestBuilder)Placeholder_T(resourceId);
public virtual RequestBuilder Set(Option option, Object value) => (RequestBuilder)Set_T(option, value);
public virtual RequestBuilder SetDiskCacheStrategy(DiskCacheStrategy strategy) => (RequestBuilder)DiskCacheStrategy_T(strategy);
public virtual RequestBuilder SetOnlyRetrieveFromCache(bool flag) => (RequestBuilder)OnlyRetrieveFromCache_T(flag);
public virtual RequestBuilder SetPriority(Priority priority) => (RequestBuilder)Priority_T(priority);
public virtual RequestBuilder SetSignature(IKey signature) => (RequestBuilder)Signature_T(signature);
public virtual RequestBuilder SetSizeMultiplier(float sizeMultiplier) => (RequestBuilder)SizeMultiplier_T(sizeMultiplier);
public virtual RequestBuilder SetTheme(Resources.Theme theme) => (RequestBuilder)Theme_T(theme);
public virtual RequestBuilder SetUseAnimationPool(bool flag) => (RequestBuilder)UseAnimationPool_T(flag);
public virtual RequestBuilder SetUseUnlimitedSourceGeneratorsPool(bool flag) => (RequestBuilder)UseUnlimitedSourceGeneratorsPool_T(flag);
public virtual RequestBuilder SkipMemoryCache(bool skip) => (RequestBuilder)SkipMemoryCache_T(skip);
public virtual RequestBuilder Timeout(int timeoutMs) => (RequestBuilder)Timeout_T(timeoutMs);
public virtual RequestBuilder Transform(Class resourceClass, ITransformation transformation) => (RequestBuilder)Transform_T(resourceClass, transformation);
public virtual RequestBuilder Transform(params ITransformation[] transformations) => (RequestBuilder)Transform_T(transformations);
public virtual RequestBuilder Transform(ITransformation transformation) => (RequestBuilder)Transform_T(transformation);
}
}
namespace Bumptech.Glide.Load.Data
{
public partial class AssetFileDescriptorLocalUriFetcher
{
protected override void Close(Object data) => Close((AssetFileDescriptor)data);
protected override Object LoadResource(Uri uri, ContentResolver contentResolver) => LoadResource_T(uri, contentResolver);
}
public partial class FileDescriptorAssetPathFetcher
{
protected override void Close(Object data) => Close((ParcelFileDescriptor)data);
protected override Object LoadResource(AssetManager assetManager, string path) => LoadResource_T(assetManager, path);
}
public partial class FileDescriptorLocalUriFetcher
{
protected override void Close(Object data) => Close((ParcelFileDescriptor)data);
protected override Object LoadResource(Uri uri, ContentResolver contentResolver) => LoadResource_T(uri, contentResolver);
}
public partial class StreamAssetPathFetcher
{
protected override void Close(Object data)
{
var stream = InputStreamInvoker.FromJniHandle(((InputStream)data).Handle, JniHandleOwnership.DoNotTransfer);
Close(stream);
}
protected override Object LoadResource(AssetManager assetManager, string path)
{
var handle = InputStreamAdapter.ToLocalJniHandle(LoadResource_T(assetManager, path));
try
{
return new Object(handle, JniHandleOwnership.TransferLocalRef);
}
finally
{
JNIEnv.DeleteLocalRef(handle);
}
}
}
public partial class StreamLocalUriFetcher
{
protected override void Close(Object data)
{
var stream = InputStreamInvoker.FromJniHandle(((InputStream)data).Handle, JniHandleOwnership.DoNotTransfer);
Close(stream);
}
protected override Object LoadResource(Uri uri, ContentResolver contentResolver)
{
var handle = InputStreamAdapter.ToLocalJniHandle(LoadResource_T(uri, contentResolver));
try
{
return new Object(handle, JniHandleOwnership.TransferLocalRef);
}
finally
{
JNIEnv.DeleteLocalRef(handle);
}
}
}
}
namespace Bumptech.Glide.Load.Engine.Executor
{
public partial class GlideExecutor
{
IList IExecutorService.InvokeAll(ICollection tasks) => InvokeAll(tasks.Cast<ICallable>().ToList()).ToList();
IList IExecutorService.InvokeAll(ICollection tasks, long timeout, TimeUnit unit) => InvokeAll(tasks.Cast<ICallable>().ToList(), timeout, unit).ToList();
Object IExecutorService.InvokeAny(ICollection tasks) => InvokeAny(tasks.Cast<ICallable>().ToList());
Object IExecutorService.InvokeAny(ICollection tasks, long timeout, TimeUnit unit) => InvokeAny(tasks.Cast<ICallable>().ToList(), timeout, unit);
}
}
namespace Bumptech.Glide.Load.Model
{
public partial class AssetUriLoader
{
public virtual ModelLoaderLoadData BuildLoadData(Object model, int width, int height, Options options) =>
BuildLoadData((Uri)model, width, height, options);
public virtual bool Handles(Object model) => Handles((Uri)model);
}
public partial class ByteArrayLoader
{
public virtual ModelLoaderLoadData BuildLoadData(Object model, int width, int height, Options options) =>
BuildLoadData(model?.ToArray<byte>(), width, height, options);
public virtual bool Handles(Object model) => Handles(model?.ToArray<byte>());
}
public partial class StringLoader
{
public virtual ModelLoaderLoadData BuildLoadData(Object model, int width, int height, Options options) =>
BuildLoadData(model?.ToString(), width, height, options);
public virtual bool Handles(Object model) => Handles(model?.ToString());
}
public partial class FileLoader
{
public virtual ModelLoaderLoadData BuildLoadData(Object model, int width, int height, Options options) =>
BuildLoadData((File)model, width, height, options);
public virtual bool Handles(Object model) => Handles((File)model);
}
public partial class ResourceLoader
{
public virtual ModelLoaderLoadData BuildLoadData(Object model, int width, int height, Options options) =>
BuildLoadData((Integer)model, width, height, options);
public virtual bool Handles(Object model) => Handles((Integer)model);
}
public partial class UriLoader
{
public virtual ModelLoaderLoadData BuildLoadData(Object model, int width, int height, Options options) =>
BuildLoadData((Uri)model, width, height, options);
public virtual bool Handles(Object model) => Handles((Uri)model);
}
public partial class UrlUriLoader
{
public virtual ModelLoaderLoadData BuildLoadData(Object model, int width, int height, Options options) =>
BuildLoadData((Uri)model, width, height, options);
public virtual bool Handles(Object model) => Handles((Uri)model);
}
}
namespace Bumptech.Glide.Load.Model.Stream
{
partial class QMediaStoreUriLoader
{
public bool Handles(Java.Lang.Object uri)
=> Handles((Uri)uri);
public ModelLoaderLoadData BuildLoadData(Object uri, int width, int height, Options options)
=> BuildLoadData((Uri)uri, width, height, options);
}
}
namespace Bumptech.Glide.Load.Resource
{
partial class ImageDecoderResourceDecoder
{
public IResource Decode(Object source, int requestedWidth, int requestedHeight, Options options)
=> Decode((ImageDecoder.Source)source, requestedWidth, requestedHeight, options);
public bool Handles(Object source, Options options)
=> Handles((ImageDecoder.Source)source, options);
}
}
namespace Bumptech.Glide.Load.Resource.Gif
{
public partial class GifDrawableEncoder
{
public virtual unsafe bool Encode(Object data, global::Java.IO.File file, global::Bumptech.Glide.Load.Options options)
=> Encode((IResource)data, file, options);
}
}
namespace Bumptech.Glide.Load.Resource.Bitmap
{
public partial class BitmapDrawableEncoder
{
public virtual bool Encode(Object data, Java.IO.File file, Options options) => Encode((IResource)data, file, options);
}
public partial class BitmapEncoder
{
public virtual bool Encode(Object data, Java.IO.File file, Options options) => Encode((IResource)data, file, options);
}
public partial class StreamBitmapDecoder : IResourceDecoder
{
IResource IResourceDecoder.Decode(Object source, int width, int height, Options options)
{
var stream = InputStreamInvoker.FromJniHandle(source.Handle, JniHandleOwnership.DoNotTransfer);
return Decode(stream, width, height, options);
}
bool IResourceDecoder.Handles(Object source, Options options)
{
var stream = InputStreamInvoker.FromJniHandle(source.Handle, JniHandleOwnership.DoNotTransfer);
return Handles(stream, options);
}
}
}
namespace Bumptech.Glide.Request
{
public partial class RequestOptions
{
public virtual RequestOptions Apply(BaseRequestOptions o) => (RequestOptions)Apply_T(o);
public virtual RequestOptions AutoClone() => (RequestOptions)AutoClone_T();
public virtual RequestOptions CenterCrop() => (RequestOptions)CenterCrop_T();
public virtual RequestOptions CenterInside() => (RequestOptions)CenterInside_T();
public virtual RequestOptions CircleCrop() => (RequestOptions)CircleCrop_T();
public new virtual RequestOptions Clone() => (RequestOptions)Clone_T();
public virtual RequestOptions Decode(Class resourceClass) => (RequestOptions)Decode_T(resourceClass);
public virtual RequestOptions DisallowHardwareConfig() => (RequestOptions)DisallowHardwareConfig_T();
public virtual RequestOptions DontAnimate() => (RequestOptions)DontAnimate_T();
public virtual RequestOptions DontTransform() => (RequestOptions)DontTransform_T();
public virtual RequestOptions Downsample(DownsampleStrategy strategy) => (RequestOptions)Downsample_T(strategy);
public virtual RequestOptions EncodeFormat(Bitmap.CompressFormat format) => (RequestOptions)EncodeFormat_T(format);
public virtual RequestOptions EncodeQuality(int quality) => (RequestOptions)EncodeQuality_T(quality);
public virtual RequestBuilder Error(Drawable drawable) => (RequestBuilder)Error_T(drawable);
public virtual RequestOptions Error(int resourceId) => (RequestOptions)Error_T(resourceId);
public virtual RequestOptions Fallback(Drawable drawable) => (RequestOptions)Fallback_T(drawable);
public virtual RequestOptions Fallback(int resourceId) => (RequestOptions)Fallback_T(resourceId);
public virtual RequestOptions FitCenter() => (RequestOptions)FitCenter_T();
public virtual RequestOptions Format(DecodeFormat format) => (RequestOptions)Format_T(format);
public virtual RequestOptions Frame(long frameTimeMicros) => (RequestOptions)Frame_T(frameTimeMicros);
public virtual RequestOptions Lock() => (RequestOptions)Lock_T();
public virtual RequestOptions OptionalCenterCrop() => (RequestOptions)OptionalCenterCrop_T();
public virtual RequestOptions OptionalCenterInside() => (RequestOptions)OptionalCenterInside_T();
public virtual RequestOptions OptionalCircleCrop() => (RequestOptions)OptionalCircleCrop_T();
public virtual RequestOptions OptionalFitCenter() => (RequestOptions)OptionalFitCenter_T();
public virtual RequestOptions OptionalTransform(Class resourceClass, ITransformation transformation) => (RequestOptions)OptionalTransform_T(resourceClass, transformation);
public virtual RequestOptions OptionalTransform(ITransformation transformation) => (RequestOptions)OptionalTransform_T(transformation);
public virtual RequestOptions Override(int width, int height) => (RequestOptions)Override_T(width, height);
public virtual RequestOptions Override(int size) => (RequestOptions)Override_T(size);
public virtual RequestOptions Placeholder(Drawable drawable) => (RequestOptions)Placeholder_T(drawable);
public virtual RequestOptions Placeholder(int resourceId) => (RequestOptions)Placeholder_T(resourceId);
public virtual RequestOptions Set(Option option, Object value) => (RequestOptions)Set_T(option, value);
public virtual RequestOptions SetDiskCacheStrategy(DiskCacheStrategy strategy) => (RequestOptions)DiskCacheStrategy_T(strategy);
public virtual RequestOptions SetOnlyRetrieveFromCache(bool flag) => (RequestOptions)OnlyRetrieveFromCache_T(flag);
public virtual RequestOptions SetPriority(Priority priority) => (RequestOptions)Priority_T(priority);
public virtual RequestOptions SetSignature(IKey signature) => (RequestOptions)Signature_T(signature);
public virtual RequestOptions SetSizeMultiplier(float sizeMultiplier) => (RequestOptions)SizeMultiplier_T(sizeMultiplier);
public virtual RequestOptions SetTheme(Resources.Theme theme) => (RequestOptions)Theme_T(theme);
public virtual RequestOptions SetUseAnimationPool(bool flag) => (RequestOptions)UseAnimationPool_T(flag);
public virtual RequestOptions SetUseUnlimitedSourceGeneratorsPool(bool flag) => (RequestOptions)UseUnlimitedSourceGeneratorsPool_T(flag);
public virtual RequestOptions SkipMemoryCache(bool skip) => (RequestOptions)SkipMemoryCache_T(skip);
public virtual RequestOptions Timeout(int timeoutMs) => (RequestOptions)Timeout_T(timeoutMs);
public virtual RequestOptions Transform(Class resourceClass, ITransformation transformation) => (RequestOptions)Transform_T(resourceClass, transformation);
public virtual RequestOptions Transform(params ITransformation[] transformations) => (RequestOptions)Transform_T(transformations);
public virtual RequestOptions Transform(ITransformation transformation) => (RequestOptions)Transform_T(transformation);
}
}
namespace Bumptech.Glide.Request.Target
{
public partial class AppWidgetTarget
{
public override void OnResourceReady(Object resource, ITransition transition) => OnResourceReady((Bitmap)resource, transition);
}
public partial class BitmapImageViewTarget
{
protected override void SetResource(Object resource) => SetResource((Bitmap)resource);
}
public partial class BitmapThumbnailImageViewTarget
{
protected override Drawable GetDrawable(Object resource) => GetDrawable((Bitmap)resource);
}
public partial class DrawableImageViewTarget
{
protected override void SetResource(Object resource) => SetResource((Drawable)resource);
}
public partial class DrawableThumbnailImageViewTarget
{
protected override Drawable GetDrawable(Object resource) => GetDrawable((Drawable)resource);
}
public partial class NotificationTarget
{
public override void OnResourceReady(Object resource, ITransition transition) => OnResourceReady((Bitmap)resource, transition);
}
}
namespace Bumptech.Glide.Request.Transition
{
public partial class BitmapTransitionFactory
{
protected override Bitmap GetBitmap(Object current) => GetBitmap((Bitmap)current);
}
}

Просмотреть файл

@ -0,0 +1,177 @@
<?xml version="1.0" encoding="utf-8"?>
<metadata>
<attr path="/api/package[@name='com.bumptech.glide']" name="managedName">Bumptech.Glide</attr>
<attr path="/api/package[@name='com.bumptech.glide.load']" name="managedName">Bumptech.Glide.Load</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.data']" name="managedName">Bumptech.Glide.Load.Data</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.data.mediastore']" name="managedName">Bumptech.Glide.Load.Data.Mediastore</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.engine']" name="managedName">Bumptech.Glide.Load.Engine</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.engine.bitmap_recycle']" name="managedName">Bumptech.Glide.Load.Engine.BitmapRecycle</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.engine.cache']" name="managedName">Bumptech.Glide.Load.Engine.Cache</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.engine.executor']" name="managedName">Bumptech.Glide.Load.Engine.Executor</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.engine.prefill']" name="managedName">Bumptech.Glide.Load.Engine.Prefill</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.model']" name="managedName">Bumptech.Glide.Load.Model</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.model.stream']" name="managedName">Bumptech.Glide.Load.Model.Stream</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.resource']" name="managedName">Bumptech.Glide.Load.Resource</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.resource.bitmap']" name="managedName">Bumptech.Glide.Load.Resource.Bitmap</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.resource.bytes']" name="managedName">Bumptech.Glide.Load.Resource.Bytes</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.resource.drawable']" name="managedName">Bumptech.Glide.Load.Resource.Drawable</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.resource.file']" name="managedName">Bumptech.Glide.Load.Resource.File</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.resource.gif']" name="managedName">Bumptech.Glide.Load.Resource.Gif</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.resource.transcode']" name="managedName">Bumptech.Glide.Load.Resource.Transcode</attr>
<attr path="/api/package[@name='com.bumptech.glide.manager']" name="managedName">Bumptech.Glide.Manager</attr>
<attr path="/api/package[@name='com.bumptech.glide.module']" name="managedName">Bumptech.Glide.Module</attr>
<attr path="/api/package[@name='com.bumptech.glide.provider']" name="managedName">Bumptech.Glide.Provider</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']" name="managedName">Bumptech.Glide.Request</attr>
<attr path="/api/package[@name='com.bumptech.glide.request.target']" name="managedName">Bumptech.Glide.Request.Target</attr>
<attr path="/api/package[@name='com.bumptech.glide.request.transition']" name="managedName">Bumptech.Glide.Request.Transition</attr>
<attr path="/api/package[@name='com.bumptech.glide.signature']" name="managedName">Bumptech.Glide.Signature</attr>
<attr path="/api/package[@name='com.bumptech.glide.util']" name="managedName">Bumptech.Glide.Util</attr>
<attr path="/api/package[@name='com.bumptech.glide.util.pool']" name="managedName">Bumptech.Glide.Util.Pool</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.data']/class[@name='AssetFileDescriptorLocalUriFetcher']/method[@name='loadResource' and count(parameter)=2 and parameter[1][@type='android.net.Uri'] and parameter[2][@type='android.content.ContentResolver']]" name="managedName">LoadResource_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.data']/class[@name='FileDescriptorAssetPathFetcher']/method[@name='loadResource' and count(parameter)=2 and parameter[1][@type='android.content.res.AssetManager'] and parameter[2][@type='java.lang.String']]" name="managedName">LoadResource_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.data']/class[@name='FileDescriptorLocalUriFetcher']/method[@name='loadResource' and count(parameter)=2 and parameter[1][@type='android.net.Uri'] and parameter[2][@type='android.content.ContentResolver']]" name="managedName">LoadResource_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.data']/class[@name='StreamAssetPathFetcher']/method[@name='loadResource' and count(parameter)=2 and parameter[1][@type='android.content.res.AssetManager'] and parameter[2][@type='java.lang.String']]" name="managedName">LoadResource_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.data']/class[@name='StreamLocalUriFetcher']/method[@name='loadResource' and count(parameter)=2 and parameter[1][@type='android.net.Uri'] and parameter[2][@type='android.content.ContentResolver']]" name="managedName">LoadResource_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request.target']/class[@name='ViewTarget']/field[@name='view']" name="managedName">_view</attr>
<attr path="/api/package[@name='com.bumptech.glide.request.target']/class[@name='ViewTarget']/method[@name='getView' and count(parameter)=0]" name="return">android.view.View</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='apply' and count(parameter)=1 and parameter[1][@type='com.bumptech.glide.request.BaseRequestOptions&lt;?&gt;']]" name="managedName">Apply_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='autoClone' and count(parameter)=0]" name="managedName">AutoClone_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='centerCrop' and count(parameter)=0]" name="managedName">CenterCrop_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='centerInside' and count(parameter)=0]" name="managedName">CenterInside_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='circleCrop' and count(parameter)=0]" name="managedName">CircleCrop_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='clone' and count(parameter)=0]" name="managedName">Clone_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='decode' and count(parameter)=1 and parameter[1][@type='java.lang.Class&lt;?&gt;']]" name="managedName">Decode_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='disallowHardwareConfig' and count(parameter)=0]" name="managedName">DisallowHardwareConfig_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='diskCacheStrategy' and count(parameter)=1 and parameter[1][@type='com.bumptech.glide.load.engine.DiskCacheStrategy']]" name="managedName">DiskCacheStrategy_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='dontAnimate' and count(parameter)=0]" name="managedName">DontAnimate_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='dontTransform' and count(parameter)=0]" name="managedName">DontTransform_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='downsample' and count(parameter)=1 and parameter[1][@type='com.bumptech.glide.load.resource.bitmap.DownsampleStrategy']]" name="managedName">Downsample_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='encodeFormat' and count(parameter)=1 and parameter[1][@type='android.graphics.Bitmap.CompressFormat']]" name="managedName">EncodeFormat_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='encodeQuality' and count(parameter)=1 and parameter[1][@type='int']]" name="managedName">EncodeQuality_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='error' and count(parameter)=1 and parameter[1][@type='android.graphics.drawable.Drawable']]" name="managedName">Error_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='error' and count(parameter)=1 and parameter[1][@type='int']]" name="managedName">Error_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='fallback' and count(parameter)=1 and parameter[1][@type='android.graphics.drawable.Drawable']]" name="managedName">Fallback_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='fallback' and count(parameter)=1 and parameter[1][@type='int']]" name="managedName">Fallback_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='fitCenter' and count(parameter)=0]" name="managedName">FitCenter_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='format' and count(parameter)=1 and parameter[1][@type='com.bumptech.glide.load.DecodeFormat']]" name="managedName">Format_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='frame' and count(parameter)=1 and parameter[1][@type='long']]" name="managedName">Frame_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='lock' and count(parameter)=0]" name="managedName">Lock_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='onlyRetrieveFromCache' and count(parameter)=1 and parameter[1][@type='boolean']]" name="managedName">OnlyRetrieveFromCache_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='optionalCenterCrop' and count(parameter)=0]" name="managedName">OptionalCenterCrop_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='optionalCenterInside' and count(parameter)=0]" name="managedName">OptionalCenterInside_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='optionalCircleCrop' and count(parameter)=0]" name="managedName">OptionalCircleCrop_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='optionalFitCenter' and count(parameter)=0]" name="managedName">OptionalFitCenter_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='optionalTransform' and count(parameter)=2 and parameter[1][@type='java.lang.Class&lt;Y&gt;'] and parameter[2][@type='com.bumptech.glide.load.Transformation&lt;Y&gt;']]" name="managedName">OptionalTransform_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='optionalTransform' and count(parameter)=1 and parameter[1][@type='com.bumptech.glide.load.Transformation&lt;android.graphics.Bitmap&gt;']]" name="managedName">OptionalTransform_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='override' and count(parameter)=2 and parameter[1][@type='int'] and parameter[2][@type='int']]" name="managedName">Override_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='override' and count(parameter)=1 and parameter[1][@type='int']]" name="managedName">Override_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='placeholder' and count(parameter)=1 and parameter[1][@type='android.graphics.drawable.Drawable']]" name="managedName">Placeholder_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='placeholder' and count(parameter)=1 and parameter[1][@type='int']]" name="managedName">Placeholder_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='priority' and count(parameter)=1 and parameter[1][@type='com.bumptech.glide.Priority']]" name="managedName">Priority_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='set' and count(parameter)=2 and parameter[1][@type='com.bumptech.glide.load.Option&lt;Y&gt;'] and parameter[2][@type='Y']]" name="managedName">Set_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='signature' and count(parameter)=1 and parameter[1][@type='com.bumptech.glide.load.Key']]" name="managedName">Signature_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='sizeMultiplier' and count(parameter)=1 and parameter[1][@type='float']]" name="managedName">SizeMultiplier_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='skipMemoryCache' and count(parameter)=1 and parameter[1][@type='boolean']]" name="managedName">SkipMemoryCache_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='theme' and count(parameter)=1 and parameter[1][@type='android.content.res.Resources.Theme']]" name="managedName">Theme_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='timeout' and count(parameter)=1 and parameter[1][@type='int']]" name="managedName">Timeout_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='transform' and count(parameter)=2 and parameter[1][@type='java.lang.Class&lt;Y&gt;'] and parameter[2][@type='com.bumptech.glide.load.Transformation&lt;Y&gt;']]" name="managedName">Transform_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='transform' and count(parameter)=1 and parameter[1][@type='com.bumptech.glide.load.Transformation&lt;android.graphics.Bitmap&gt;...']]" name="managedName">Transform_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='transform' and count(parameter)=1 and parameter[1][@type='com.bumptech.glide.load.Transformation&lt;android.graphics.Bitmap&gt;']]" name="managedName">Transform_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='useAnimationPool' and count(parameter)=1 and parameter[1][@type='boolean']]" name="managedName">UseAnimationPool_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.request']/class[@name='BaseRequestOptions']/method[@name='useUnlimitedSourceGeneratorsPool' and count(parameter)=1 and parameter[1][@type='boolean']]" name="managedName">UseUnlimitedSourceGeneratorsPool_T</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.data.mediastore']/interface[@name='ThumbnailQuery']" name="visibility">public</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.engine']/interface[@name='EngineJobListener']" name="visibility">public</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.engine.bitmap_recycle']/class[@name='BaseKeyPool']" name="visibility">public</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.engine.bitmap_recycle']/interface[@name='LruPoolStrategy']" name="visibility">public</attr>
<attr path="/api/package[@name='com.bumptech.glide.load.engine.bitmap_recycle']/interface[@name='Poolable']" name="visibility">public</attr>
<attr path="/api/package[@name='com.bumptech.glide.module']/interface[@name='AppliesOptions']" name="visibility">public</attr>
<attr path="/api/package[@name='com.bumptech.glide.module']/interface[@name='RegistersComponents']" name="visibility">public</attr>
<add-node path="/api/package[@name='com.bumptech.glide']/class[@name='GlideBuilder']">
<method abstract="false" deprecated="not deprecated" final="false" name="build" native="false" return="com.bumptech.glide.Glide" return-not-null="true" static="false" synchronized="false" visibility="public">
<parameter name="context" type="android.content.Context" not-null="true" />
</method>
</add-node>
<attr path="/api/package[@name='com.bumptech.glide']/class[@name='GeneratedAppGlideModule']" name="visibility">public</attr>
<add-node path="/api/package[@name='com.bumptech.glide']/class[@name='GeneratedAppGlideModule']">
<constructor deprecated="not deprecated" final="false" name="GeneratedAppGlideModule" static="false" type="com.bumptech.glide.GeneratedAppGlideModule" synthetic="false" visibility="public" />
<method abstract="true" deprecated="not deprecated" final="false" name="getExcludedModuleClasses" native="false" return="java.util.Set&lt;java.lang.Class&gt;" return-not-null="true" static="false" synchronized="false" visibility="public" />
<method abstract="false" deprecated="not deprecated" final="false" name="getRequestManagerFactory" native="false" return="com.bumptech.glide.manager.RequestManagerRetriever.RequestManagerFactory" static="false" synchronized="false" visibility="public" />
</add-node>
<add-node path="/api/package[@name='com.bumptech.glide.load.model.stream']/class[@name='BaseGlideUrlLoader']">
<method abstract="true" deprecated="not deprecated" final="false" name="handles" native="false" return="boolean" static="false" synchronized="false" visibility="public">
<parameter name="model" type="Model" />
</method>
</add-node>
<add-node path="/api/package[@name='com.bumptech.glide.request.target']/class[@name='BaseTarget']">
<method abstract="true" deprecated="not deprecated" final="false" name="onResourceReady" native="false" return="void" static="false" synchronized="false" visibility="public">
<parameter name="resource" type="Z" />
<parameter name="transition" type="com.bumptech.glide.request.transition.Transition&lt;? super Z&gt;" />
</method>
</add-node>
<add-node path="/api/package[@name='com.bumptech.glide.request.target']/class[@name='CustomTarget']">
<method abstract="true" deprecated="not deprecated" final="false" name="onResourceReady" native="false" return="void" static="false" synchronized="false" visibility="public">
<parameter name="resource" type="T">
</parameter>
<parameter name="transition" type="com.bumptech.glide.request.transition.Transition&lt;? super T&gt;">
</parameter>
</method>
</add-node>
<add-node path="/api/package[@name='com.bumptech.glide.request.target']/class[@name='CustomViewTarget']">
<method abstract="true" deprecated="not deprecated" final="false" name="onResourceReady" native="false" return="void" static="false" synchronized="false" visibility="public">
<parameter name="resource" type="Z">
</parameter>
<parameter name="transition" type="com.bumptech.glide.request.transition.Transition&lt;? super Z&gt;">
</parameter>
</method>
</add-node>
<remove-node path="//implements[@name='com.bumptech.glide.ModelTypes']" />
<remove-node path="/api/package[@name='com.bumptech.glide.load.data']/class[@name='InputStreamRewinder']/implements[@name='com.bumptech.glide.load.data.DataRewinder']" />
<remove-node path="/api/package[@name='com.bumptech.glide.load.data']/class[@name='InputStreamRewinder.Factory']/implements[@name='com.bumptech.glide.load.data.DataRewinder.Factory']" />
<remove-node path="/api/package[@name='com.bumptech.glide.load.engine']/interface[@name='EngineJobListener']" />
<remove-node path="/api/package[@name='com.bumptech.glide.load.engine.bitmap_recycle']/class[@name='ByteArrayAdapter']/implements[@name='com.bumptech.glide.load.engine.bitmap_recycle.ArrayAdapterInterface']" />
<remove-node path="/api/package[@name='com.bumptech.glide.load.engine.bitmap_recycle']/class[@name='IntegerArrayAdapter']/implements[@name='com.bumptech.glide.load.engine.bitmap_recycle.ArrayAdapterInterface']" />
<remove-node path="/api/package[@name='com.bumptech.glide.load.model']/class[@name='StreamEncoder']/implements[@name='com.bumptech.glide.load.Encoder']" />
<remove-node path="/api/package[@name='com.bumptech.glide.load.resource.bitmap']/class[@name='StreamBitmapDecoder']/implements[@name='com.bumptech.glide.load.ResourceDecoder']" />
<remove-node path="/api/package[@name='com.bumptech.glide.load.resource.bytes']/class[@name='BytesResource']/implements[@name='com.bumptech.glide.load.engine.Resource']" />
<remove-node path="/api/package[@name='com.bumptech.glide.load.resource.gif']/class[@name='StreamGifDecoder']/implements[@name='com.bumptech.glide.load.ResourceDecoder']" />
<remove-node path="/api/package[@name='com.bumptech.glide.load.resource.bitmap']/class[@name='InputStreamBitmapImageDecoderResourceDecoder']/implements[@name='com.bumptech.glide.load.ResourceDecoder']" />
<remove-node path="/api/package[@name='com.bumptech.glide.request']/class[@name='ExperimentalRequestListener']" />
<attr
path="/api/package[@name='com.bumptech.glide.load.model']/class[@name='DirectResourceLoader']/method[@name='buildLoadData' and count(parameter)=4 and parameter[1][@type='java.lang.Integer'] and parameter[2][@type='int'] and parameter[3][@type='int'] and parameter[4][@type='com.bumptech.glide.load.Options']]/parameter[1]"
name="managedType"
>
Java.Lang.Object
</attr>
<attr
path="/api/package[@name='com.bumptech.glide.load.model']/class[@name='DirectResourceLoader']/method[@name='handles' and count(parameter)=1 and parameter[1][@type='java.lang.Integer']]/parameter[1]"
name="managedType"
>
Java.Lang.Object
</attr>
<attr
path="/api/package[@name='com.bumptech.glide.load.model']/class[@name='ResourceUriLoader']/method[@name='buildLoadData' and count(parameter)=4 and parameter[1][@type='android.net.Uri'] and parameter[2][@type='int'] and parameter[3][@type='int'] and parameter[4][@type='com.bumptech.glide.load.Options']]/parameter[1]"
name="managedType"
>
Java.Lang.Object
</attr>
<attr
path="/api/package[@name='com.bumptech.glide.load.model']/class[@name='ResourceUriLoader']/method[@name='handles' and count(parameter)=1 and parameter[1][@type='android.net.Uri']]/parameter[1]"
name="managedType"
>
Java.Lang.Object
</attr>
</metadata>

Просмотреть файл

@ -0,0 +1,7 @@
<Project>
<ItemGroup>
<AndroidAarLibrary Include="$(MSBuildThisFileDirectory)..\..\aar\glide.aar">
<AndroidXSkipAndroidXMigration>true</AndroidXSkipAndroidXMigration>
</AndroidAarLibrary>
</ItemGroup>
</Project>

Просмотреть файл

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<metadata>
<attr path="/api/package[@name='com.bumptech.glide.integration.recyclerview']" name="managedName">Bumptech.Glide.Integration.RecyclerView</attr>
</metadata>

Просмотреть файл

@ -0,0 +1,7 @@
<Project>
<ItemGroup>
<AndroidAarLibrary Include="$(MSBuildThisFileDirectory)..\..\aar\recyclerview-integration.aar">
<AndroidXSkipAndroidXMigration>true</AndroidXSkipAndroidXMigration>
</AndroidAarLibrary>
</ItemGroup>
</Project>

Просмотреть файл

@ -0,0 +1,48 @@
<metadata>
<attr
path="/api/package[@name='com.google.ads.interactivemedia.v3.api']"
name="managedName"
>
Google.Ads.InteractiveMedia.V3.Api
</attr>
<attr
path="/api/package[@name='com.google.ads.interactivemedia.v3.api.player']"
name="managedName"
>
Google.Ads.InteractiveMedia.V3.Api.Player
</attr>
<attr
path="/api/package[@name='com.google.ads.interactivemedia.v3.api.signals']"
name="managedName"
>
Google.Ads.InteractiveMedia.V3.Api.Signals
</attr>
<attr
path="/api/package[@name='com.google.ads.interactivemedia.v3.impl']"
name="managedName"
>
Google.Ads.InteractiveMedia.V3.Impl
</attr>
<attr
path="/api/package[@name='com.google.ads.interactivemedia.v3.impl.data']"
name="managedName"
>
Google.Ads.InteractiveMedia.V3.Impl.Data
</attr>
<attr
path="/api/package[@name='com.google.ads.interactivemedia.omid.library.adsession']"
name="managedName"
>
Google.Ads.InteractiveMedia.Omid.Library.AdSession
</attr>
<attr
path="/api/package[@name='com.google.ads.interactivemedia.v3.impl.util']"
name="managedName"
>
Google.Ads.InteractiveMedia.V3.Impl.Util
</attr>
</metadata>

Просмотреть файл

@ -0,0 +1,18 @@
<metadata>
<remove-node
path="/api/package[@name='com.google.ads.interactivemedia.v3.impl']/class[@name='AdsRequestImpl']"
/>
<remove-node
path="/api/package[@name='com.google.ads.interactivemedia.v3.impl.data']/class[@name='AdsRenderingSettingsImpl']"
/>
<remove-node
path="/api/package[@name='com.google.ads.interactivemedia.v3.impl.util']/class[@name='IdentifierInfoFactory']"
/>
<remove-node
path="/api/package[@name='com.google.ads.interactivemedia.v3.impl']/class[@name='JavaScriptMessageRouter']"
/>
<remove-node
path="/api/package[@name='com.google.ads.interactivemedia.v3.impl.data']/class[@name='NetworkResponseData']"
/>
</metadata>

Просмотреть файл

@ -0,0 +1,18 @@
<enum-field-mappings>
<!--
This example converts the constants Fragment_id, Fragment_name,
and Fragment_tag from android.support.v4.app.FragmentActivity.FragmentTag
to an enum called Android.Support.V4.App.FragmentTagType with values
Id, Name, and Tag.
<mapping clr-enum-type="Android.Support.V4.App.FragmentTagType" jni-class="android/support/v4/app/FragmentActivity$FragmentTag">
<field clr-name="Id" jni-name="Fragment_id" value="1" />
<field clr-name="Name" jni-name="Fragment_name" value="0" />
<field clr-name="Tag" jni-name="Fragment_tag" value="2" />
</type>
Notes:
- An optional "bitfield" attribute marks the enum type with [Flags].
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
-->
</enum-field-mappings>

Просмотреть файл

@ -0,0 +1,18 @@
<enum-method-mappings>
<!--
This example changes the Java method:
android.support.v4.app.Fragment.SavedState.writeToParcel (int flags)
to be:
android.support.v4.app.Fragment.SavedState.writeToParcel (Android.OS.ParcelableWriteFlags flags)
when bound in C#.
<mapping jni-class="android/support/v4/app/Fragment.SavedState">
<method jni-name="writeToParcel" parameter="flags" clr-enum-type="Android.OS.ParcelableWriteFlags" />
</mapping>
Notes:
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
- To change the type of the return value, use "return" as the parameter name.
- The parameter names will be p0, p1, ... unless you provide JavaDoc file in the project.
-->
</enum-method-mappings>

Просмотреть файл

@ -0,0 +1,10 @@
<metadata>
<!-- Rename Namespaces -->
<attr path="/api/package[@name='com.google.ads']" name="managedName">Google.Ads</attr>
</metadata>

Просмотреть файл

@ -0,0 +1,18 @@
<enum-field-mappings>
<!--
This example converts the constants Fragment_id, Fragment_name,
and Fragment_tag from android.support.v4.app.FragmentActivity.FragmentTag
to an enum called Android.Support.V4.App.FragmentTagType with values
Id, Name, and Tag.
<mapping clr-enum-type="Android.Support.V4.App.FragmentTagType" jni-class="android/support/v4/app/FragmentActivity$FragmentTag">
<field clr-name="Id" jni-name="Fragment_id" value="1" />
<field clr-name="Name" jni-name="Fragment_name" value="0" />
<field clr-name="Tag" jni-name="Fragment_tag" value="2" />
</type>
Notes:
- An optional "bitfield" attribute marks the enum type with [Flags].
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
-->
</enum-field-mappings>

Просмотреть файл

@ -0,0 +1,18 @@
<enum-method-mappings>
<!--
This example changes the Java method:
android.support.v4.app.Fragment.SavedState.writeToParcel (int flags)
to be:
android.support.v4.app.Fragment.SavedState.writeToParcel (Android.OS.ParcelableWriteFlags flags)
when bound in C#.
<mapping jni-class="android/support/v4/app/Fragment.SavedState">
<method jni-name="writeToParcel" parameter="flags" clr-enum-type="Android.OS.ParcelableWriteFlags" />
</mapping>
Notes:
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
- To change the type of the return value, use "return" as the parameter name.
- The parameter names will be p0, p1, ... unless you provide JavaDoc file in the project.
-->
</enum-method-mappings>

Просмотреть файл

@ -0,0 +1,14 @@
<metadata>
<!-- Rename Namespaces -->
<attr path="/api/package[@name='com.google.ads']" name="managedName">Google.Ads</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.identifier']" name="managedName">Google.Ads.Identifier</attr>
<remove-node
path="/api/package[@name='com.google.android.gms.ads.identifier']/class[@name='AdvertisingIdClient']/method[@name='finalize' and count(parameter)=0]"
/>
</metadata>

Просмотреть файл

@ -0,0 +1,58 @@
using System;
using Android.Runtime;
using Java.Interop;
namespace Android.Gms.Ads.Formats
{
public partial interface IShouldDelayBannerRenderingListener
{
// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.gms.ads.formats']/interface[@name='ShouldDelayBannerRenderingListener']/method[@name='zzb' and count(parameter)=1 and parameter[1][@type='java.lang.Runnable']]"
//[Register("zzb", "(Ljava/lang/Runnable;)Z", "GetZzb_Ljava_lang_Runnable_Handler:Android.Gms.Ads.Formats.IShouldDelayBannerRenderingListenerInvoker, Xamarin.GooglePlayServices.Ads.Lite")]
//bool Zzb(global::Java.Lang.IRunnable p0);
}
internal partial class IShouldDelayBannerRenderingListenerInvoker : global::Java.Lang.Object //, IShouldDelayBannerRenderingListener
{
// static Delegate cb_zzb_Ljava_lang_Runnable_;
//#pragma warning disable 0169
// static Delegate GetZzb_Ljava_lang_Runnable_Handler()
// {
// if (cb_zzb_Ljava_lang_Runnable_ == null)
// cb_zzb_Ljava_lang_Runnable_ = JNINativeWrapper.CreateDelegate((_JniMarshal_PPL_Z)n_Zzb_Ljava_lang_Runnable_);
// return cb_zzb_Ljava_lang_Runnable_;
// }
// static bool n_Zzb_Ljava_lang_Runnable_(IntPtr jnienv, IntPtr native__this, IntPtr native_p0)
// {
// var __this = global::Java.Lang.Object.GetObject<global::Android.Gms.Ads.Formats.IShouldDelayBannerRenderingListener>(jnienv, native__this, JniHandleOwnership.DoNotTransfer);
// var p0 = (global::Java.Lang.IRunnable)global::Java.Lang.Object.GetObject<global::Java.Lang.IRunnable>(native_p0, JniHandleOwnership.DoNotTransfer);
// bool __ret = __this.Zzb(p0);
// return __ret;
// }
//#pragma warning restore 0169
// IntPtr id_zzb_Ljava_lang_Runnable_;
// public unsafe bool Zzb(global::Java.Lang.IRunnable p0)
// {
// if (id_zzb_Ljava_lang_Runnable_ == IntPtr.Zero)
// id_zzb_Ljava_lang_Runnable_ = JNIEnv.GetMethodID(class_ref, "zzb", "(Ljava/lang/Runnable;)Z");
// JValue* __args = stackalloc JValue[1];
// __args[0] = new JValue((p0 == null) ? IntPtr.Zero : ((global::Java.Lang.Object)p0).Handle);
// var __ret = JNIEnv.CallBooleanMethod(((global::Java.Lang.Object)this).Handle, id_zzb_Ljava_lang_Runnable_, __args);
// return __ret;
// }
//public unsafe bool Zzb(global::Java.Lang.IRunnable p0)
//{
// throw new NotImplementedException();
//}
}
internal sealed partial class IShouldDelayBannerRenderingListenerImplementor
{
//public bool Zzb(global::Java.Lang.IRunnable p0)
//{
// throw new NotImplementedException();
//}
}
}

Просмотреть файл

@ -0,0 +1,18 @@
<enum-field-mappings>
<!--
This example converts the constants Fragment_id, Fragment_name,
and Fragment_tag from android.support.v4.app.FragmentActivity.FragmentTag
to an enum called Android.Support.V4.App.FragmentTagType with values
Id, Name, and Tag.
<mapping clr-enum-type="Android.Support.V4.App.FragmentTagType" jni-class="android/support/v4/app/FragmentActivity$FragmentTag">
<field clr-name="Id" jni-name="Fragment_id" value="1" />
<field clr-name="Name" jni-name="Fragment_name" value="0" />
<field clr-name="Tag" jni-name="Fragment_tag" value="2" />
</type>
Notes:
- An optional "bitfield" attribute marks the enum type with [Flags].
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
-->
</enum-field-mappings>

Просмотреть файл

@ -0,0 +1,32 @@
<enum-method-mappings>
<!--
This example changes the Java method:
android.support.v4.app.Fragment.SavedState.writeToParcel (int flags)
to be:
android.support.v4.app.Fragment.SavedState.writeToParcel (Android.OS.ParcelableWriteFlags flags)
when bound in C#.
<mapping jni-class="android/support/v4/app/Fragment.SavedState">
<method jni-name="writeToParcel" parameter="flags" clr-enum-type="Android.OS.ParcelableWriteFlags" />
</mapping>
Notes:
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
- To change the type of the return value, use "return" as the parameter name.
- The parameter names will be p0, p1, ... unless you provide JavaDoc file in the project.
-->
<!--
instead of:
<attr
path="/api/package[@name='com.google.android.gms.ads']/class[@name='AdActivity']/method[@name='onRequestPermissionsResult' and count(parameter)=3 and parameter[1][@type='int'] and parameter[2][@type='java.lang.String[]'] and parameter[3][@type='int[]']]/parameter[3]"
name="managedType"
>
Android.Content.PM.Permission[]
</attr>
-->
<mapping jni-class="com/google/android/gms/ads/AdActivity">
<method jni-name="onRequestPermissionsResult" parameter="p2" clr-enum-type="Android.Content.PM.Permission[]" />
</mapping>
</enum-method-mappings>

Просмотреть файл

@ -0,0 +1,604 @@
<metadata>
<!-- Rename Namespaces -->
<attr path="/api/package[@name='com.google.ads']" name="managedName">Google.Ads</attr>
<attr path="/api/package[@name='com.google.ads.mediation']" name="managedName">Google.Ads.Mediation</attr>
<attr path="/api/package[@name='com.google.ads.mediation.admob']" name="managedName">Google.Ads.Mediation.Admob</attr>
<attr path="/api/package[@name='com.google.ads.mediation.customevent']" name="managedName">Google.Ads.Mediation.CustomEvent</attr>
<attr path="/api/package[@name='com.google.android.gms.ads']" name="managedName">Android.Gms.Ads</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.formats']" name="managedName">Android.Gms.Ads.Formats</attr>
<!-- <attr path="/api/package[@name='com.google.android.gms.ads.identifier']" name="managedName">Android.Gms.Ads.Identifier</attr>-->
<attr path="/api/package[@name='com.google.android.gms.ads.reward']" name="managedName">Android.Gms.Ads.Reward</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.rewardedinterstitial']" name="managedName">Android.Gms.Ads.RewardedInterstitial</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.reward.mediation']" name="managedName">Android.Gms.Ads.Reward.Mediation</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.doubleclick']" name="managedName">Android.Gms.Ads.DoubleClick</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']" name="managedName">Android.Gms.Ads.Mediation</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation.admob']" name="managedName">Android.Gms.Ads.Mediation.Admob</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation.customevent']" name="managedName">Android.Gms.Ads.Mediation.CustomEvent</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.purchase']" name="managedName">Android.Gms.Ads.Purchase</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.search']" name="managedName">Android.Gms.Ads.Search</attr>
<attr path="/api/package[@name='com.google.android.gms.internal']" name="managedName">Android.Gms.Internal</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.admanager']" name="managedName">Android.Gms.Ads.AdManager</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.nativead']" name="managedName">Android.Gms.Ads.NativeAd</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.doubleclick']/interface[@name='AppEventListener']/method[@name='onAppEvent']/parameter[1]" name="managedName">name</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.doubleclick']/interface[@name='AppEventListener']/method[@name='onAppEvent']/parameter[2]" name="managedName">data</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation.customevent']/interface[@name='CustomEventListener']/method[@name='onAdFailedToLoad']/parameter[1]" name="managedName">errorCode</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.purchase']/interface[@name='InAppPurchaseListener']/method[@name='onInAppPurchaseRequested']/parameter[1]" name="managedName">inAppPurchase</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.purchase']/interface[@name='PlayStorePurchaseListener']/method[@name='isValidPurchase']/parameter[1]" name="managedName">productId</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.purchase']/interface[@name='PlayStorePurchaseListener']/method[@name='onInAppPurchaseFinished']/parameter[1]" name="managedName">inAppPurchaseResult</attr>
<!-- Remove some internal namespaces -->
<remove-node path="/api/package[@name='com.google.android.gms.ads.internal.offline.buffering']" />
<!--
<remove-node path="/api/package[contains(@name, 'android.gms.internal')]" />
<remove-node path="/api/package[contains(@name, 'com.google.android.gms.ads.internal')]" />
-->
<!-- Remove *zz* obfuscated items -->
<!--
<remove-node path="/api/package/class[contains(@name, 'zz')]" />
<remove-node path="/api/package/interface[contains(@name, 'zz')]" />
<remove-node path="/api/*/*[@name != 'interface']/method[contains(@name, 'zz')]" />
-->
<!--
<remove-node path="/api/*/*/field[contains(@name, 'zz')]" />
-->
<!-- Some classes are private that need to be public to subclass -->
<attr path="/api/package[@name='com.google.android.gms.ads']/class[@name='BaseAdView']" name="visibility">public</attr>
<!-- Fix up Duplicate event arg types -->
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onDismissScreen']" name="argsType">BannerDismissScreenEventArgs</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onFailedToReceiveAd']" name="argsType">BannerFailedToReceiveAdEventArgs</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onLeaveApplication']" name="argsType">BannerLeaveApplicationEventArgs</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onPresentScreen']" name="argsType">BannerPresentScreenEventArgs</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onReceivedAd']" name="argsType">BannerReceiveAdEventArgs</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onDismissScreen']" name="argsType">IntersitionalDismissScreenEventArgs</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onFailedToReceiveAd']" name="argsType">IntersitionalFailedToReceiveAdEventArgs</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onLeaveApplication']" name="argsType">InterstitialLeaveApplicationEventArgs</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onPresentScreen']" name="argsType">InterstitialPresentScreenEventArgs</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onReceivedAd']" name="argsType">InterstitialReceiveAdEventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onAdClicked']" name="argsType">MediationInterstitialAdClickedEventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onAdClosed']" name="argsType">MediationInterstitialAdClosedEventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onAdFailedToLoad' and count(parameter)=2 and parameter[1][@type='com.google.android.gms.ads.mediation.MediationInterstitialAdapter'] and parameter[2][@type='int']]" name="argsType">MediationInterstitialAdFailedToLoadEventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onAdFailedToLoad' and count(parameter)=2 and parameter[1][@type='com.google.android.gms.ads.mediation.MediationInterstitialAdapter'] and parameter[2][@type='com.google.android.gms.ads.AdError']]" name="argsType">MediationInterstitialAdFailedToLoad2EventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onAdLeftApplication']" name="argsType">MediationInterstitialAdLeftApplicationEventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onAdLoaded']" name="argsType">MediationInterstitialAdLoadedEventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onAdOpened']" name="argsType">MediationInterstitialAdOpenedEventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onAdClicked']" name="argsType">MediationBannerAdClickedEventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onAdClosed']" name="argsType">MediationBannerAdClosedEventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onAdFailedToLoad' and count(parameter)=2 and parameter[1][@type='com.google.android.gms.ads.mediation.MediationBannerAdapter'] and parameter[2][@type='int']]" name="argsType">MediationBannerAdFailedToLoadEventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onAdFailedToLoad' and count(parameter)=2 and parameter[1][@type='com.google.android.gms.ads.mediation.MediationBannerAdapter'] and parameter[2][@type='com.google.android.gms.ads.AdError']]" name="argsType">MediationBannerAdFailedToLoad2EventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onAdLeftApplication']" name="argsType">MediationBannerAdLeftApplicationEventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onAdLoaded']" name="argsType">MediationBannerAdLoadedEventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onAdOpened']" name="argsType">MediationBannerAdOpenedEventArgs</attr>
<!-- Having 2 methods that are going to generate EventArgs with the same name is a problem -->
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onAdFailedToLoad' and count(parameter)=2 and parameter[1][@type='com.google.android.gms.ads.mediation.MediationInterstitialAdapter'] and parameter[2][@type='com.google.android.gms.ads.AdError']]" name="managedName">OnAdFailedToLoad2</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onAdFailedToLoad' and count(parameter)=2 and parameter[1][@type='com.google.android.gms.ads.mediation.MediationBannerAdapter'] and parameter[2][@type='com.google.android.gms.ads.AdError']]" name="managedName">OnAdFailedToLoad2</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation.customevent']/interface[@name='CustomEventListener']/method[@name='onAdFailedToLoad' and count(parameter)=1 and parameter[1][@type='com.google.android.gms.ads.AdError']]" name="managedName">OnAdFailedToLoad2</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='zza']" name="obfuscated">false</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationNativeListener']/method[@name='zza']" name="obfuscated">false</attr>
<!--
17.1.0 zzc
17.2.0 zzb
-->
<attr path="/api/package[@name='com.google.android.gms.ads.reward.mediation']/interface[@name='MediationRewardedVideoAdListener']/method[@name='zzb']" name="obfuscated">false</attr>
<!-- Fix parameter names to be consistent with previous releases -->
<attr path="/api/package[@name='com.google.android.gms.ads.formats']/class[@name='NativeAdView']/method[@name='setNativeAd' and count(parameter)=1 and parameter[1][@type='com.google.android.gms.ads.formats.NativeAd']]/parameter[1]" name="managedName">ad</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.formats']/interface[@name='NativeAppInstallAd.OnAppInstallAdLoadedListener']/method[@name='onAppInstallAdLoaded' and count(parameter)=1 and parameter[1][@type='com.google.android.gms.ads.formats.NativeAppInstallAd']]/parameter[1]" name="managedName">ad</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.formats']/interface[@name='NativeContentAd.OnContentAdLoadedListener']/method[@name='onContentAdLoaded' and count(parameter)=1 and parameter[1][@type='com.google.android.gms.ads.formats.NativeContentAd']]/parameter[1]" name="managedName">ad</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation.customevent']/interface[@name='CustomEventNativeListener']/method[@name='onAdLoaded' and count(parameter)=1 and parameter[1][@type='com.google.android.gms.ads.mediation.NativeAdMapper']]/parameter[1]" name="managedName">ad</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationNativeListener']/method[@name='onAdFailedToLoad' and count(parameter)=2 and parameter[1][@type='com.google.android.gms.ads.mediation.MediationNativeAdapter'] and parameter[2][@type='int']]/parameter[2]" name="managedName">errorCode</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onAdFailedToLoad']/parameter[2]" name="managedName">errorCode</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onAdFailedToLoad']/parameter[2]" name="managedName">errorCode</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onReceivedAd']/parameter[1]" name="managedName">adapter</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onFailedToReceiveAd']/parameter[1]" name="managedName">adapter</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onFailedToReceiveAd']/parameter[2]" name="managedName">errorCode</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onPresentScreen']/parameter[1]" name="managedName">adapter</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onDismissScreen']/parameter[1]" name="managedName">adapter</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onLeaveApplication']/parameter[1]" name="managedName">adapter</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onClick']/parameter[1]" name="managedName">adapter</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onReceivedAd']/parameter[1]" name="managedName">adapter</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onFailedToReceiveAd']/parameter[1]" name="managedName">adapter</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onFailedToReceiveAd']/parameter[2]" name="managedName">errorCode</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onPresentScreen']/parameter[1]" name="managedName">adapter</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onDismissScreen']/parameter[1]" name="managedName">adapter</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onLeaveApplication']/parameter[1]" name="managedName">adapter</attr>
<!-- <attr path="/api/package[@name='com.google.ads.doubleclick']/interface[@name='OnCustomRenderedAdLoadedListener']/method[@name='onCustomRenderedAdLoaded']/parameter[1]" name="managedName">ad</attr>-->
<remove-node path="/api/package[@name='com.google.android.gms.ads']/class[@name='AdSize']/field[@name='zzako']" />
<!--
<remove-node path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationBannerListener']" />
<remove-node path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationNativeListener']" />
-->
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationNativeListener']/method[@name='zza']" name="obfuscated">false</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='zza']" name="obfuscated">false</attr>
<add-node path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationBannerListener']">
<method abstract="false" deprecated="not deprecated" final="false" name="zza" native="false" return="void" static="false" synchronized="false" visibility="public">
<parameter name="adapter" type="com.google.android.gms.ads.mediation.MediationBannerAdapter"></parameter>
<parameter name="str1" type="java.lang.String"></parameter>
<parameter name="str2" type="java.lang.String"></parameter>
</method>
</add-node>
<!--
(,17.1.2] zzc
[17.2.0,) zzb
-->
<add-node path="/api/package[@name='com.google.android.gms.ads.reward.mediation']/interface[@name='MediationRewardedVideoAdListener']">
<method abstract="false" deprecated="not deprecated" final="false" name="zzb" native="false" return="void" static="false" synchronized="false" visibility="public">
<parameter name="bundle" type="android.os.Bundle"></parameter>
</method>
</add-node>
<attr
path="/api/*/*/method[@name='getCustomEventExtrasBundle' and count(parameter)=1 and parameter[1][@type='java.lang.Class&lt;T&gt;']]/parameter[@name='p0']"
name="managedName"
>
adapterClass
</attr>
<attr
path="/api/*/*/method[@name='getNetworkExtras' and count(parameter)=1 and parameter[1][@type='java.lang.Class&lt;T&gt;']]/parameter[@name='p0']"
name="managedName"
>
networkExtrasClass
</attr>
<attr
path="/api/*/*/method[@name='getNetworkExtrasBundle' and count(parameter)=1 and parameter[1][@type='java.lang.Class&lt;T&gt;']]/parameter[@name='p0']"
name="managedName"
>
adapterClass
</attr>
<attr
path="/api/*/*/method[@name='AddCustomEventExtrasBundle' and count(parameter)=2 and parameter[1][@type='java.lang.Class&lt;T&gt;']]/parameter[@name='p0']"
name="managedName"
>
adapterClass
</attr>
<attr
path="/api/*/*/method[@name='AddCustomEventExtrasBundle' and count(parameter)=2 and parameter[1][@type='java.lang.Class&lt;T&gt;']]/parameter[@name='p1']"
name="managedName"
>
customEventExtras
</attr>
<attr
path="/api/*/*/method[@name='AddNetworkExtrasBundle' and count(parameter)=2 and parameter[1][@type='java.lang.Class&lt;T&gt;']]/parameter[@name='p0']"
name="managedName"
>
adapterClass
</attr>
<attr
path="/api/*/*/method[@name='AddNetworkExtrasBundle' and count(parameter)=2 and parameter[1][@type='java.lang.Class&lt;T&gt;']]/parameter[@name='p1']"
name="managedName"
>
networkExtras
</attr>
<attr
path="/api/*/*/method[@name='AdView' and count(parameter)=1 and parameter[1][@type='java.lang.Class&lt;T&gt;']]/parameter[@name='p1']"
name="managedName"
>
networkExtras
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.rewarded']"
name="managedName"
>
Android.Gms.Ads.Rewarded
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.mediation.rtb']"
name="managedName"
>
Android.Gms.Ads.Mediation.Rtb
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.initialization']"
name="managedName"
>
Android.Gms.Ads.Initialization
</attr>
<!--
causing ACW errors:
./samples/com.google.android.gms/play-services-ads-lite/AdsLiteSample/obj/Debug/android/src/crc6449ab38c9a8eed94c/MainActivity.java(36,36):
Error JAVAC0000: error: cannot inherit from final AdActivity
extends com.google.android.gms.ads.AdActivity
(JAVAC0000) (AdsLiteSample) javac
<attr
path="/api/package[@name='com.google.android.gms.ads']/class[@name='AdActivity']"
name="final"
>
false
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.appopen']"
name="managedName"
>
Android.Gms.Ads.AppOpen
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.instream']"
name="managedName"
>
Android.Gms.Ads.InStream
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.query']"
name="managedName"
>
Android.Gms.Ads.Query
</attr>
-->
<!--
https://github.com/xamarin/GooglePlayServicesComponents/issues/334
error: ShouldDelayBannerRenderingListenerImplementor is not abstract and does not override abstract method zzb(Runnable) in ShouldDelayBannerRenderingListener
-->
<!--
Attempt 01:
<remove-node
path="/api/package[@name='com.google.android.gms.ads.formats']/interface[@name='ShouldDelayBannerRenderingListener']"
/>
<remove-node
path="/api/package[@name='com.google.android.gms.ads.formats']/interface[@name='ShouldDelayBannerRenderingListener']/method[@name='zzb']"
/>
-->
<!--
Additions.cs for tweaking
-->
<remove-node
path="/api/package[@name='com.google.android.gms.ads.formats']/interface[@name='ShouldDelayBannerRenderingListener']"
/>
<!--
Attempt 02:
<attr
path="/api/package[@name='com.google.android.gms.ads.formats']/interface[@name='ShouldDelayBannerRenderingListener']"
name="abstract"
>
false
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.formats']/interface[@name='ShouldDelayBannerRenderingListener']/method[@name='zzb']"
name="obfuscated"
>
false
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.formats']/interface[@name='ShouldDelayBannerRenderingListener']/method[@name='zzb']"
name="abstract"
>
false
</attr>
-->
<!--
<attr
path="/api/package[@name='com.google.android.gms.ads.formats']/interface[@name='ShouldDelayBannerRenderingListener']/method[@name='zzb']"
name="obfuscated"
>
false
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.formats']/interface[@name='ShouldDelayBannerRenderingListener']/method[@name='zzb']"
name="final"
>
true
</attr>
-->
<!--
<attr
path="/api/package[@name='com.google.android.gms.ads.formats']/interface[@name='ShouldDelayBannerRenderingListener']"
name="abstract"
>true</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.formats']/interface[@name='ShouldDelayBannerRenderingListener']/method[@name='zzb']"
name="abstract"
>true</attr>
-->
<!--
TODO: issue in java.interop why was this necessary?
<add-node
path="/api/package[@name='com.google.android.gms.ads.formats']/interface[@name='ShouldDelayBannerRenderingListener']"
>
<method
visibility="public" static="false" abstract="false" return="boolean" name="zzb"
jni-signature="(Ljava/lang/Runnable;)Z" jni-return="Z"
bridge="false" native="false" deprecated="not deprecated" synchronized="false" synthetic="false"
obfuscated="false" final="true"
>
<parameter type="java.lang.Runnable" name="runnable" >
</parameter>
</method>
</add-node>
-->
<remove-node
path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationNativeListener']"
/>
<!--
<attr
path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationNativeListener']/method[@name='onAdLoaded' and count(parameter)=2 and parameter[1][@type='com.google.android.gms.ads.mediation.MediationNativeAdapter'] and parameter[2][@type='com.google.android.gms.ads.mediation.NativeAdMapper']]"
name="managedName"
>
OnNativeAdLoaded
</attr>
<remove-node
path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationNativeListener']/method[@name='zza' and count(parameter)=2 and parameter[1][@type='com.google.android.gms.ads.mediation.MediationNativeAdapter'] and parameter[2][@type='com.google.android.gms.ads.formats.NativeCustomTemplateAd']]"
/>
<remove-node
path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationNativeListener']/method[@name='zza' and count(parameter)=3 and parameter[1][@type='com.google.android.gms.ads.mediation.MediationNativeAdapter'] and parameter[2][@type='com.google.android.gms.ads.formats.NativeCustomTemplateAd'] and parameter[3][@type='java.lang.String']]"
/>
-->
<attr
path="/api/package[@name='com.google.android.gms.ads.formats']/interface[@name='ShouldDelayBannerRenderingListener']/method[@name='zzb']"
name="abstract"
>
false
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='zza']"
name="obfuscated"
>
false
</attr>
<attr
path="/api/package[@name='com.google.android.gms.internal.ads']/interface[@name='zzxb']"
name="obfuscated"
>
false
</attr>
<attr
path="/api/package[@name='com.google.android.gms.internal.ads']/interface[@name='zzxg']"
name="obfuscated"
>
false
</attr>
<attr
path="/api/package[@name='com.google.android.gms.internal.ads']/interface[@name='zzabt']"
name="obfuscated"
>
false
</attr>
<attr
path="/api/package[@name='com.google.android.gms.internal.ads']/interface[@name='zzabv']"
name="obfuscated"
>
false
</attr>
<attr
path="/api/package[@name='com.google.android.gms.internal.ads']/interface[@name='zzrl']"
name="obfuscated"
>
false
</attr>
<attr
path="/api/package[@name='com.google.android.gms.internal.ads']/interface[@name='zzrl']"
name="obfuscated"
>
false
</attr>
<attr
path="/api/package[@name='com.google.android.gms.internal.ads']/interface[@name='zzyw']"
name="obfuscated"
>
false
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationNativeListener']"
name="abstract"
>
true
</attr>
<add-node path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationNativeListener']">
<method abstract="false" deprecated="not deprecated" final="true" name="zza" native="false" return="void" static="false" synchronized="false" visibility="public">
<parameter name="adapter" type="com.google.android.gms.ads.mediation.MediationNativeAdapter"></parameter>
<parameter name="customTemplateAd" type="com.android.gms.ads.formats.NativeCustomTemplateAd"></parameter>
<parameter name="str" type="java.lang.String"></parameter>
</method>
</add-node>
<add-node path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationNativeListener']">
<method abstract="false" deprecated="not deprecated" final="true" name="zza" native="false" return="void" static="false" synchronized="false" visibility="public">
<parameter name="adapter" type="com.google.android.gms.ads.mediation.MediationNativeAdapter"></parameter>
<parameter name="customTemplateAd" type="com.android.gms.ads.formats.NativeCustomTemplateAd"></parameter>
</method>
</add-node>
<attr
path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationNativeListener']/method[@name='zza' and count(parameter)=2 and parameter[1][@type='com.google.android.gms.ads.mediation.MediationNativeAdapter'] and parameter[2][@type='com.google.android.gms.ads.formats.NativeCustomTemplateAd']]"
name="managedName"
>
Zza1
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationNativeListener']/method[@name='zza' and count(parameter)=2 and parameter[1][@type='com.google.android.gms.ads.mediation.MediationNativeAdapter'] and parameter[2][@type='com.google.android.gms.ads.formats.NativeCustomTemplateAd']]"
name="obfuscated"
>
false
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationNativeListener']/method[@name='zza' and count(parameter)=2 and parameter[1][@type='com.google.android.gms.ads.mediation.MediationNativeAdapter'] and parameter[2][@type='com.google.android.gms.ads.formats.NativeCustomTemplateAd']]"
name="abstract"
>
true
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationNativeListener']/method[@name='zza' and count(parameter)=3 and parameter[1][@type='com.google.android.gms.ads.mediation.MediationNativeAdapter'] and parameter[2][@type='com.google.android.gms.ads.formats.NativeCustomTemplateAd'] and parameter[3][@type='java.lang.String']]"
name="managedName"
>
Zza2
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationNativeListener']/method[@name='zza' and count(parameter)=3 and parameter[1][@type='com.google.android.gms.ads.mediation.MediationNativeAdapter'] and parameter[2][@type='com.google.android.gms.ads.formats.NativeCustomTemplateAd'] and parameter[3][@type='java.lang.String']]"
name="obfuscated"
>
false
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationNativeListener']/method[@name='zza' and count(parameter)=3 and parameter[1][@type='com.google.android.gms.ads.mediation.MediationNativeAdapter'] and parameter[2][@type='com.google.android.gms.ads.formats.NativeCustomTemplateAd'] and parameter[3][@type='java.lang.String']]"
name="abstract"
>
true
</attr>
<attr
path="/api/package[@name='com.google.android.gms.internal.ads']"
name="managedName"
>
Android.Gms.Internal.Ads
</attr>
<!--
./samples/com.google.android.gms/play-services-ads-lite/AdsLiteSample/obj/Debug/android/src/crc6449ab38c9a8eed94c/MainActivity.java(14,14): Error JAVAC0000: error: onCreate(Bundle) in MainActivity cannot override onCreate(Bundle) in AdActivity
public void onCreate (android.os.Bundle p0)
overridden method is final
(JAVAC0000) (AdsLiteSample) javac
<attr
path="/api/package[@name='com.google.android.gms.ads']/class[@name='AdActivity']/method[@name='onCreate' and count(parameter)=1 and parameter[1][@type='android.os.Bundle']]"
name="final"
>
false
</attr>
-->
<attr
path="/api/package[@name='com.google.android.gms.internal.ads']"
name="managedName"
>
Android.Gms.Internal.Ads
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads']/class[@name='AdValue']/method[@name='getPrecisionType' and count(parameter)=0]"
name="managedName"
>
PrecisionTypeData
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.query']"
name="managedName"
>
Android.Gms.Ads.Query
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.appopen']"
name="managedName"
>
Android.Gms.Ads.AppOpen
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.instream']"
name="managedName"
>
Android.Gms.Ads.InStream
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.interstitial']"
name="managedName"
>
Android.Gms.Ads.Interstitial
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.h5']"
name="managedName"
>
Android.Gms.Ads.H5
</attr>
<!--
better in Transforms/EnumMethods.xml
<attr
path="/api/package[@name='com.google.android.gms.ads']/class[@name='AdActivity']/method[@name='onRequestPermissionsResult' and count(parameter)=3 and parameter[1][@type='int'] and parameter[2][@type='java.lang.String[]'] and parameter[3][@type='int[]']]/parameter[3]"
name="managedType"
>
Android.Content.PM.Permission[]
</attr>
-->
<attr
path="/api/package[@name='com.google.android.gms.ads.admanager']/class[@name='AdManagerAdRequest.Builder']/method[@name='self' and count(parameter)=0]"
name="managedReturn"
>
Java.Lang.Object
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads']/class[@name='AdRequest.Builder']/method[@name='self' and count(parameter)=0]"
name="managedReturn"
>
Java.Lang.Object
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.admanager']/class[@name='AdManagerAdRequest.Builder']/method[@name='self' and count(parameter)=0]"
name="visibility"
>
protected
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads']/class[@name='AdRequest.Builder']/method[@name='self' and count(parameter)=0]"
name="visibility"
>
protected
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.internal.util.client']"
name="managedName"
>
Android.Gms.Ads.Internal.Util.Client
</attr>
</metadata>

Просмотреть файл

@ -0,0 +1,18 @@
<enum-field-mappings>
<!--
This example converts the constants Fragment_id, Fragment_name,
and Fragment_tag from android.support.v4.app.FragmentActivity.FragmentTag
to an enum called Android.Support.V4.App.FragmentTagType with values
Id, Name, and Tag.
<mapping clr-enum-type="Android.Support.V4.App.FragmentTagType" jni-class="android/support/v4/app/FragmentActivity$FragmentTag">
<field clr-name="Id" jni-name="Fragment_id" value="1" />
<field clr-name="Name" jni-name="Fragment_name" value="0" />
<field clr-name="Tag" jni-name="Fragment_tag" value="2" />
</type>
Notes:
- An optional "bitfield" attribute marks the enum type with [Flags].
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
-->
</enum-field-mappings>

Просмотреть файл

@ -0,0 +1,18 @@
<enum-method-mappings>
<!--
This example changes the Java method:
android.support.v4.app.Fragment.SavedState.writeToParcel (int flags)
to be:
android.support.v4.app.Fragment.SavedState.writeToParcel (Android.OS.ParcelableWriteFlags flags)
when bound in C#.
<mapping jni-class="android/support/v4/app/Fragment.SavedState">
<method jni-name="writeToParcel" parameter="flags" clr-enum-type="Android.OS.ParcelableWriteFlags" />
</mapping>
Notes:
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
- To change the type of the return value, use "return" as the parameter name.
- The parameter names will be p0, p1, ... unless you provide JavaDoc file in the project.
-->
</enum-method-mappings>

Просмотреть файл

@ -0,0 +1,114 @@
<metadata>
<!-- Rename Namespaces -->
<attr path="/api/package[@name='com.google.ads']" name="managedName">Google.Ads</attr>
<attr path="/api/package[@name='com.google.ads.mediation']" name="managedName">Google.Ads.Mediation</attr>
<attr path="/api/package[@name='com.google.ads.mediation.admob']" name="managedName">Google.Ads.Mediation.Admob</attr>
<attr path="/api/package[@name='com.google.ads.mediation.customevent']" name="managedName">Google.Ads.Mediation.CustomEvent</attr>
<attr path="/api/package[@name='com.google.ads.afma.nano']" name="managedName">Google.Ads.Afma.Nano</attr>
<attr path="/api/package[@name='com.google.android.gms.ads']" name="managedName">Android.Gms.Ads</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.formats']" name="managedName">Android.Gms.Ads.Formats</attr>
<!-- <attr path="/api/package[@name='com.google.android.gms.ads.identifier']" name="managedName">Android.Gms.Ads.Identifier</attr>-->
<attr path="/api/package[@name='com.google.android.gms.ads.reward']" name="managedName">Android.Gms.Ads.Reward</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.reward.mediation']" name="managedName">Android.Gms.Ads.Reward.Mediation</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.doubleclick']" name="managedName">Android.Gms.Ads.DoubleClick</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']" name="managedName">Android.Gms.Ads.Mediation</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation.admob']" name="managedName">Android.Gms.Ads.Mediation.Admob</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation.customevent']" name="managedName">Android.Gms.Ads.Mediation.CustomEvent</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.nonagon.transaction.omid']" name="managedName">Android.Gms.Ads.Nonagon.Transaction.Omid</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.purchase']" name="managedName">Android.Gms.Ads.Purchase</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.search']" name="managedName">Android.Gms.Ads.Search</attr>
<attr path="/api/package[@name='com.google.android.gms.internal']" name="managedName">Android.Gms.Internal</attr>
<attr path="/api/package[@name='com.google.android.gms.dynamite.descriptors.com.google.android.gms.ads.dynamite']" name="managedName">Android.Gms.Dynamite.Descriptors.Ads.Dynamite</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.doubleclick']/interface[@name='AppEventListener']/method[@name='onAppEvent']/parameter[1]" name="managedName">name</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.doubleclick']/interface[@name='AppEventListener']/method[@name='onAppEvent']/parameter[2]" name="managedName">data</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation.customevent']/interface[@name='CustomEventListener']/method[@name='onAdFailedToLoad']/parameter[1]" name="managedName">errorCode</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.purchase']/interface[@name='InAppPurchaseListener']/method[@name='onInAppPurchaseRequested']/parameter[1]" name="managedName">inAppPurchase</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.purchase']/interface[@name='PlayStorePurchaseListener']/method[@name='isValidPurchase']/parameter[1]" name="managedName">productId</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.purchase']/interface[@name='PlayStorePurchaseListener']/method[@name='onInAppPurchaseFinished']/parameter[1]" name="managedName">inAppPurchaseResult</attr>
<!-- Remove some internal namespaces -->
<remove-node path="/api/package[contains(@name, 'android.gms.internal')]" />
<remove-node path="/api/package[contains(@name, 'com.google.android.gms.ads.internal')]" />
<!-- Remove *zz* obfuscated items -->
<remove-node path="/api/package/class[contains(@name, 'zz')]" />
<!-- <remove-node path="/api/package/interface[contains(@name, 'zz')]" />-->
<remove-node path="/api/*/*/method[contains(@name, 'zz')]" />
<!-- <remove-node path="/api/*/*/field[contains(@name, 'zz')]" />-->
<!-- Fix params for some inherited parcelable types -->
<attr path="/api/*/*/method[@name='createFromParcel']/parameter[@name='p0']" name="managedName">source</attr>
<attr path="/api/*/*/method[@name='newArray']/parameter[@name='p0']" name="managedName">size</attr>
<attr path="/api/*/*/method[@name='writeToParcel']/parameter[@name='p0']" name="managedName">dest</attr>
<attr path="/api/*/*/method[@name='writeToParcel']/parameter[@name='p1']" name="managedName">flags</attr>
<!-- Some classes are private that need to be public to subclass -->
<attr path="/api/package[@name='com.google.android.gms.ads']/class[@name='BaseAdView']" name="visibility">public</attr>
<!-- Fix up Duplicate event arg types -->
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onDismissScreen']" name="argsType">BannerDismissScreenEventArgs</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onFailedToReceiveAd']" name="argsType">BannerFailedToReceiveAdEventArgs</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onLeaveApplication']" name="argsType">BannerLeaveApplicationEventArgs</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onPresentScreen']" name="argsType">BannerPresentScreenEventArgs</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onReceivedAd']" name="argsType">BannerReceiveAdEventArgs</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onDismissScreen']" name="argsType">IntersitionalDismissScreenEventArgs</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onFailedToReceiveAd']" name="argsType">IntersitionalFailedToReceiveAdEventArgs</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onLeaveApplication']" name="argsType">InterstitialLeaveApplicationEventArgs</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onPresentScreen']" name="argsType">InterstitialPresentScreenEventArgs</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onReceivedAd']" name="argsType">InterstitialReceiveAdEventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onAdClicked']" name="argsType">MediationInterstitialAdClickedEventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onAdClosed']" name="argsType">MediationInterstitialAdClosedEventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onAdFailedToLoad']" name="argsType">MediationInterstitialAdFailedToLoadEventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onAdLeftApplication']" name="argsType">MediationInterstitialAdLeftApplicationEventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onAdLoaded']" name="argsType">MediationInterstitialAdLoadedEventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onAdOpened']" name="argsType">MediationInterstitialAdOpenedEventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onAdClicked']" name="argsType">MediationBannerAdClickedEventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onAdClosed']" name="argsType">MediationBannerAdClosedEventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onAdFailedToLoad']" name="argsType">MediationBannerAdFailedToLoadEventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onAdLeftApplication']" name="argsType">MediationBannerAdLeftApplicationEventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onAdLoaded']" name="argsType">MediationBannerAdLoadedEventArgs</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onAdOpened']" name="argsType">MediationBannerAdOpenedEventArgs</attr>
<!-- Fix parameter names to be consistent with previous releases -->
<attr path="/api/package[@name='com.google.android.gms.ads.formats']/class[@name='NativeAdView']/method[@name='setNativeAd' and count(parameter)=1 and parameter[1][@type='com.google.android.gms.ads.formats.NativeAd']]/parameter[1]" name="managedName">ad</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.formats']/interface[@name='NativeAppInstallAd.OnAppInstallAdLoadedListener']/method[@name='onAppInstallAdLoaded' and count(parameter)=1 and parameter[1][@type='com.google.android.gms.ads.formats.NativeAppInstallAd']]/parameter[1]" name="managedName">ad</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.formats']/interface[@name='NativeContentAd.OnContentAdLoadedListener']/method[@name='onContentAdLoaded' and count(parameter)=1 and parameter[1][@type='com.google.android.gms.ads.formats.NativeContentAd']]/parameter[1]" name="managedName">ad</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation.customevent']/interface[@name='CustomEventNativeListener']/method[@name='onAdLoaded' and count(parameter)=1 and parameter[1][@type='com.google.android.gms.ads.mediation.NativeAdMapper']]/parameter[1]" name="managedName">ad</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationNativeListener']/method[@name='onAdFailedToLoad' and count(parameter)=2 and parameter[1][@type='com.google.android.gms.ads.mediation.MediationNativeAdapter'] and parameter[2][@type='int']]/parameter[2]" name="managedName">errorCode</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onAdFailedToLoad']/parameter[2]" name="managedName">errorCode</attr>
<attr path="/api/package[@name='com.google.android.gms.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onAdFailedToLoad']/parameter[2]" name="managedName">errorCode</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onReceivedAd']/parameter[1]" name="managedName">adapter</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onFailedToReceiveAd']/parameter[1]" name="managedName">adapter</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onFailedToReceiveAd']/parameter[2]" name="managedName">errorCode</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onPresentScreen']/parameter[1]" name="managedName">adapter</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onDismissScreen']/parameter[1]" name="managedName">adapter</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onLeaveApplication']/parameter[1]" name="managedName">adapter</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationBannerListener']/method[@name='onClick']/parameter[1]" name="managedName">adapter</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onReceivedAd']/parameter[1]" name="managedName">adapter</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onFailedToReceiveAd']/parameter[1]" name="managedName">adapter</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onFailedToReceiveAd']/parameter[2]" name="managedName">errorCode</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onPresentScreen']/parameter[1]" name="managedName">adapter</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onDismissScreen']/parameter[1]" name="managedName">adapter</attr>
<attr path="/api/package[@name='com.google.ads.mediation']/interface[@name='MediationInterstitialListener']/method[@name='onLeaveApplication']/parameter[1]" name="managedName">adapter</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.nonagon.util.logging.csi']"
name="managedName"
>
Google.Ads.Nonagon.Util.Logging.Csi
</attr>
</metadata>

Просмотреть файл

@ -0,0 +1,18 @@
<enum-field-mappings>
<!--
This example converts the constants Fragment_id, Fragment_name,
and Fragment_tag from android.support.v4.app.FragmentActivity.FragmentTag
to an enum called Android.Support.V4.App.FragmentTagType with values
Id, Name, and Tag.
<mapping clr-enum-type="Android.Support.V4.App.FragmentTagType" jni-class="android/support/v4/app/FragmentActivity$FragmentTag">
<field clr-name="Id" jni-name="Fragment_id" value="1" />
<field clr-name="Name" jni-name="Fragment_name" value="0" />
<field clr-name="Tag" jni-name="Fragment_tag" value="2" />
</type>
Notes:
- An optional "bitfield" attribute marks the enum type with [Flags].
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
-->
</enum-field-mappings>

Просмотреть файл

@ -0,0 +1,18 @@
<enum-method-mappings>
<!--
This example changes the Java method:
android.support.v4.app.Fragment.SavedState.writeToParcel (int flags)
to be:
android.support.v4.app.Fragment.SavedState.writeToParcel (Android.OS.ParcelableWriteFlags flags)
when bound in C#.
<mapping jni-class="android/support/v4/app/Fragment.SavedState">
<method jni-name="writeToParcel" parameter="flags" clr-enum-type="Android.OS.ParcelableWriteFlags" />
</mapping>
Notes:
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
- To change the type of the return value, use "return" as the parameter name.
- The parameter names will be p0, p1, ... unless you provide JavaDoc file in the project.
-->
</enum-method-mappings>

Просмотреть файл

@ -0,0 +1,27 @@
<metadata>
<attr
path="/api/package[@name='com.google.android.gms.ads.afsn']"
name="managedName"
>
Android.Gms.Ads.Afsn
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.afsn.purchases']"
name="managedName"
>
Android.Gms.Ads.Afsn.Purchase
</attr>
<attr
path="/api/package[@name='com.google.android.gms.ads.afsn.search']"
name="managedName"
>
Android.Gms.Ads.Afsn.Search
</attr>
<attr
path="/api/package[@name='com.google.android.gms.internal.skipjack']"
name="managedName"
>
Android.Gms.Internal.SkipJack
</attr>
</metadata>

Просмотреть файл

@ -0,0 +1,5 @@
<metadata>
s
</metadata>

Просмотреть файл

@ -0,0 +1,18 @@
<enum-field-mappings>
<!--
This example converts the constants Fragment_id, Fragment_name,
and Fragment_tag from android.support.v4.app.FragmentActivity.FragmentTag
to an enum called Android.Support.V4.App.FragmentTagType with values
Id, Name, and Tag.
<mapping clr-enum-type="Android.Support.V4.App.FragmentTagType" jni-class="android/support/v4/app/FragmentActivity$FragmentTag">
<field clr-name="Id" jni-name="Fragment_id" value="1" />
<field clr-name="Name" jni-name="Fragment_name" value="0" />
<field clr-name="Tag" jni-name="Fragment_tag" value="2" />
</type>
Notes:
- An optional "bitfield" attribute marks the enum type with [Flags].
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
-->
</enum-field-mappings>

Просмотреть файл

@ -0,0 +1,18 @@
<enum-method-mappings>
<!--
This example changes the Java method:
android.support.v4.app.Fragment.SavedState.writeToParcel (int flags)
to be:
android.support.v4.app.Fragment.SavedState.writeToParcel (Android.OS.ParcelableWriteFlags flags)
when bound in C#.
<mapping jni-class="android/support/v4/app/Fragment.SavedState">
<method jni-name="writeToParcel" parameter="flags" clr-enum-type="Android.OS.ParcelableWriteFlags" />
</mapping>
Notes:
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
- To change the type of the return value, use "return" as the parameter name.
- The parameter names will be p0, p1, ... unless you provide JavaDoc file in the project.
-->
</enum-method-mappings>

Просмотреть файл

@ -0,0 +1,115 @@
<metadata>
<!-- Fix Namespaces -->
<attr path="/api/package[@name='com.google.android.gms.analytics']" name="managedName">Android.Gms.Analytics</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics.internal']" name="managedName">Android.Gms.Analytics.Internal</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics.ecommerce']" name="managedName">Android.Gms.Analytics.Ecommerce</attr>
<attr path="/api/package[@name='com.google.android.gms.tagmanager']" name="managedName">Android.Gms.Tagmanager</attr>
<attr path="/api/package[@name='com.google.android.gms.tagmanager']/class[@name='TagManager']" name="managedName">TagManagerClass</attr>
<!-- Remove some internal namespaces -->
<remove-node path="/api/package[contains(@name, 'com.google.android.gms.internal')]" />
<!-- Remove *zz* obfuscated items -->
<remove-node path="/api/package/class[contains(@name, 'zz')]" />
<remove-node path="/api/package/interface[contains(@name, 'zz')]" />
<remove-node path="/api/*/*/method[contains(@name, 'zz')]" />
<!-- <remove-node path="/api/*/*/field[contains(@name, 'zz')]" />-->
<!-- Fix params for some inherited parcelable types -->
<attr path="/api/*/*/method[@name='createFromParcel']/parameter[@name='p0']" name="managedName">source</attr>
<attr path="/api/*/*/method[@name='newArray']/parameter[@name='p0']" name="managedName">size</attr>
<attr path="/api/*/*/method[@name='writeToParcel']/parameter[@name='p0']" name="managedName">dest</attr>
<attr path="/api/*/*/method[@name='writeToParcel']/parameter[@name='p1']" name="managedName">flags</attr>
<attr path="/api/package[@name='com.google.android.gms.tagmanager']/interface[@name='ContainerHolder.ContainerAvailableListener']/method[@name='onContainerAvailable']/parameter[1]" name="managedName">containerHolder</attr>
<attr path="/api/package[@name='com.google.android.gms.tagmanager']/interface[@name='ContainerHolder.ContainerAvailableListener']/method[@name='onContainerAvailable']/parameter[2]" name="managedName">containerVersion</attr>
<!-- This ctor is used internally and has parameters of *zz* types so remove it -->
<remove-node path="/api/package[@name='com.google.android.gms.analytics']/class[@name='GoogleAnalytics']/constructor[@name='GoogleAnalytics' and count(parameter)=1]" />
<!-- Fix inheritence to not be internal type -->
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='GoogleAnalytics']" name="extends">Java.Lang.Object</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='Tracker']" name="extends">Java.Lang.Object</attr>
<!-- Fix visibility -->
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.HitBuilder']" name="visibility">public</attr>
<attr path="/api/package[@name='com.google.android.gms.internal']/class[@name='zztc']" name="obfuscated">false</attr>
<attr path="/api/package[@name='com.google.android.gms.internal']/interface[@name='zztc.zza']" name="obfuscated">false</attr>
<!-- Fix return type of HitBuilder builder methods -->
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.HitBuilder']/method[@name='addImpression']" name="return">com.google.android.gms.analytics.HitBuilders.HitBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.HitBuilder']/method[@name='addProduct']" name="return">com.google.android.gms.analytics.HitBuilders.HitBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.HitBuilder']/method[@name='addPromotion']" name="return">com.google.android.gms.analytics.HitBuilders.HitBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.HitBuilder']/method[@name='set']" name="return">com.google.android.gms.analytics.HitBuilders.HitBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.HitBuilder']/method[@name='setAll']" name="return">com.google.android.gms.analytics.HitBuilders.HitBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.HitBuilder']/method[@name='setCampaignParamsFromUrl']" name="return">com.google.android.gms.analytics.HitBuilders.HitBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.HitBuilder']/method[@name='setCustomDimension']" name="return">com.google.android.gms.analytics.HitBuilders.HitBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.HitBuilder']/method[@name='setCustomMetric']" name="return">com.google.android.gms.analytics.HitBuilders.HitBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.HitBuilder']/method[@name='setHitType']" name="return">com.google.android.gms.analytics.HitBuilders.HitBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.HitBuilder']/method[@name='setNewSession']" name="return">com.google.android.gms.analytics.HitBuilders.HitBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.HitBuilder']/method[@name='setNonInteraction']" name="return">com.google.android.gms.analytics.HitBuilders.HitBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.HitBuilder']/method[@name='setProductAction']" name="return">com.google.android.gms.analytics.HitBuilders.HitBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.HitBuilder']/method[@name='setPromotionAction']" name="return">com.google.android.gms.analytics.HitBuilders.HitBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.EventBuilder']/method[@name='setAction']" name="return">com.google.android.gms.analytics.HitBuilders.EventBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.EventBuilder']/method[@name='setCategory']" name="return">com.google.android.gms.analytics.HitBuilders.EventBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.EventBuilder']/method[@name='setLabel']" name="return">com.google.android.gms.analytics.HitBuilders.EventBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.EventBuilder']/method[@name='setValue']" name="return">com.google.android.gms.analytics.HitBuilders.EventBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.ExceptionBuilder']/method[@name='setDescription']" name="return">com.google.android.gms.analytics.HitBuilders.ExceptionBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.ExceptionBuilder']/method[@name='setFatal']" name="return">com.google.android.gms.analytics.HitBuilders.ExceptionBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.ItemBuilder']/method[@name='setCategory']" name="return">com.google.android.gms.analytics.HitBuilders.ItemBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.ItemBuilder']/method[@name='setCurrencyCode']" name="return">com.google.android.gms.analytics.HitBuilders.ItemBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.ItemBuilder']/method[@name='setName']" name="return">com.google.android.gms.analytics.HitBuilders.ItemBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.ItemBuilder']/method[@name='setPrice']" name="return">com.google.android.gms.analytics.HitBuilders.ItemBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.ItemBuilder']/method[@name='setQuantity']" name="return">com.google.android.gms.analytics.HitBuilders.ItemBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.ItemBuilder']/method[@name='setSku']" name="return">com.google.android.gms.analytics.HitBuilders.ItemBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.ItemBuilder']/method[@name='setTransactionId']" name="return">com.google.android.gms.analytics.HitBuilders.ItemBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.SocialBuilder']/method[@name='setAction']" name="return">com.google.android.gms.analytics.HitBuilders.SocialBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.SocialBuilder']/method[@name='setNetwork']" name="return">com.google.android.gms.analytics.HitBuilders.SocialBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.SocialBuilder']/method[@name='setTarget']" name="return">com.google.android.gms.analytics.HitBuilders.SocialBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.TimingBuilder']/method[@name='setCategory']" name="return">com.google.android.gms.analytics.HitBuilders.TimingBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.TimingBuilder']/method[@name='setLabel']" name="return">com.google.android.gms.analytics.HitBuilders.TimingBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.TimingBuilder']/method[@name='setValue']" name="return">com.google.android.gms.analytics.HitBuilders.TimingBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.TimingBuilder']/method[@name='setVariable']" name="return">com.google.android.gms.analytics.HitBuilders.TimingBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.TransactionBuilder']/method[@name='setAffiliation']" name="return">com.google.android.gms.analytics.HitBuilders.TransactionBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.TransactionBuilder']/method[@name='setCurrencyCode']" name="return">com.google.android.gms.analytics.HitBuilders.TransactionBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.TransactionBuilder']/method[@name='setRevenue']" name="return">com.google.android.gms.analytics.HitBuilders.TransactionBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.TransactionBuilder']/method[@name='setShipping']" name="return">com.google.android.gms.analytics.HitBuilders.TransactionBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.TransactionBuilder']/method[@name='setTax']" name="return">com.google.android.gms.analytics.HitBuilders.TransactionBuilder</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.TransactionBuilder']/method[@name='setTransactionId']" name="return">com.google.android.gms.analytics.HitBuilders.TransactionBuilder</attr>
<!-- Fix return type for inheritence -->
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.AppViewBuilder']/method[@name='build']" name="return">java.util.Map&lt;java.lang.String, java.lang.String&gt;</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.EventBuilder']/method[@name='build']" name="return">java.util.Map&lt;java.lang.String, java.lang.String&gt;</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.ExceptionBuilder']/method[@name='build']" name="return">java.util.Map&lt;java.lang.String, java.lang.String&gt;</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.ItemBuilder']/method[@name='build']" name="return">java.util.Map&lt;java.lang.String, java.lang.String&gt;</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.SocialBuilder']/method[@name='build']" name="return">java.util.Map&lt;java.lang.String, java.lang.String&gt;</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.TimingBuilder']/method[@name='build']" name="return">java.util.Map&lt;java.lang.String, java.lang.String&gt;</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.TransactionBuilder']/method[@name='build']" name="return">java.util.Map&lt;java.lang.String, java.lang.String&gt;</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.ScreenViewBuilder']/method[@name='build']" name="return">java.util.Map&lt;java.lang.String, java.lang.String&gt;</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='HitBuilders.HitBuilder']/method[@name='build']" name="return">java.util.Map&lt;java.lang.String, java.lang.String&gt;</attr>
<!-- Fix inheritence of IntentService - Not required for 5.1 -->
<!-- <attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='AnalyticsService']" name="extends">mono.android.app.IntentService</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='AnalyticsService']/method[@name='onHandleIntent']" name="visibility">protected</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='CampaignTrackingService']" name="extends">mono.android.app.IntentService</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics']/class[@name='CampaignTrackingService']/method[@name='onHandleIntent']" name="visibility">protected</attr>
<attr path="/api/package[@name='com.google.android.gms.tagmanager']/class[@name='InstallReferrerService']" name="extends">mono.android.app.IntentService</attr>
<attr path="/api/package[@name='com.google.android.gms.tagmanager']/class[@name='InstallReferrerService']/method[@name='onHandleIntent']" name="visibility">protected</attr>
-->
<remove-node
path="/api/package[@name='com.google.android.gms.internal.measurement']"
>
</remove-node>
</metadata>

Просмотреть файл

@ -0,0 +1,18 @@
<enum-field-mappings>
<!--
This example converts the constants Fragment_id, Fragment_name,
and Fragment_tag from android.support.v4.app.FragmentActivity.FragmentTag
to an enum called Android.Support.V4.App.FragmentTagType with values
Id, Name, and Tag.
<mapping clr-enum-type="Android.Support.V4.App.FragmentTagType" jni-class="android/support/v4/app/FragmentActivity$FragmentTag">
<field clr-name="Id" jni-name="Fragment_id" value="1" />
<field clr-name="Name" jni-name="Fragment_name" value="0" />
<field clr-name="Tag" jni-name="Fragment_tag" value="2" />
</type>
Notes:
- An optional "bitfield" attribute marks the enum type with [Flags].
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
-->
</enum-field-mappings>

Просмотреть файл

@ -0,0 +1,18 @@
<enum-method-mappings>
<!--
This example changes the Java method:
android.support.v4.app.Fragment.SavedState.writeToParcel (int flags)
to be:
android.support.v4.app.Fragment.SavedState.writeToParcel (Android.OS.ParcelableWriteFlags flags)
when bound in C#.
<mapping jni-class="android/support/v4/app/Fragment.SavedState">
<method jni-name="writeToParcel" parameter="flags" clr-enum-type="Android.OS.ParcelableWriteFlags" />
</mapping>
Notes:
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
- To change the type of the return value, use "return" as the parameter name.
- The parameter names will be p0, p1, ... unless you provide JavaDoc file in the project.
-->
</enum-method-mappings>

Просмотреть файл

@ -0,0 +1,29 @@
<metadata>
<!-- Fix Namespaces -->
<attr path="/api/package[@name='com.google.android.gms.analytics']" name="managedName">Android.Gms.Analytics</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics.internal']" name="managedName">Android.Gms.Analytics.Internal</attr>
<attr path="/api/package[@name='com.google.android.gms.analytics.ecommerce']" name="managedName">Android.Gms.Analytics.Ecommerce</attr>
<attr path="/api/package[@name='com.google.android.gms.tagmanager']" name="managedName">Android.Gms.Tagmanager</attr>
<attr path="/api/package[@name='com.google.android.gms.tagmanager']/class[@name='TagManager']" name="managedName">TagManagerClass</attr>
<!-- Remove some internal namespaces -->
<remove-node path="/api/package[contains(@name, 'com.google.android.gms.internal')]" />
<!-- Remove *zz* obfuscated items -->
<remove-node path="/api/package/class[contains(@name, 'zz')]" />
<remove-node path="/api/package/interface[contains(@name, 'zz')]" />
<remove-node path="/api/*/*/method[contains(@name, 'zz')]" />
<!-- <remove-node path="/api/*/*/field[contains(@name, 'zz')]" />-->
<!-- Fix params for some inherited parcelable types -->
<attr path="/api/*/*/method[@name='createFromParcel']/parameter[@name='p0']" name="managedName">source</attr>
<attr path="/api/*/*/method[@name='newArray']/parameter[@name='p0']" name="managedName">size</attr>
<attr path="/api/*/*/method[@name='writeToParcel']/parameter[@name='p0']" name="managedName">dest</attr>
<attr path="/api/*/*/method[@name='writeToParcel']/parameter[@name='p1']" name="managedName">flags</attr>
<remove-node path="/api/package[@name='com.google.android.gms.analytics']/class[@name='AnalyticsService']/implements[@name='com.google.android.gms.internal.zztc.zza']" />
</metadata>

Просмотреть файл

@ -0,0 +1,26 @@
<metadata>
<attr
path="/api/package[@name='com.google.android.gms.appindex']"
name="managedName"
>
Android.Gms.AppIndex
</attr>
<attr
path="/api/package[@name='com.google.android.gms.appindex.builders']"
name="managedName"
>
Android.Gms.AppIndex.Builders
</attr>
<attr
path="/api/package[@name='com.google.android.gms.internal.appindex']"
name="managedName"
>
Android.Gms.Internal.AppIndex
</attr>
<attr
path="/api/package[@name='com.google.firebase.appindexing.internal']"
name="managedName"
>
Firebase.AppIndexing.Internal
</attr>
</metadata>

Просмотреть файл

@ -0,0 +1,3 @@
<metadata>
</metadata>

Просмотреть файл

@ -0,0 +1,16 @@

using System;
using Android.Runtime;
namespace Android.Gms.People.ProtoModel
{
internal static class FreezeMethodImplementor
{
internal static Java.Lang.Object Freeze(ref IntPtr id_freeze, IntPtr class_ref, IntPtr Handle)
{
if (id_freeze == IntPtr.Zero)
id_freeze = JNIEnv.GetMethodID(class_ref, "freeze", "()Ljava/lang/Object;");
return (Java.Lang.Object)global::Java.Lang.Object.GetObject<global::Java.Lang.Object>(JNIEnv.CallObjectMethod(Handle, id_freeze), JniHandleOwnership.TransferLocalRef);
}
}
}

Просмотреть файл

@ -0,0 +1,27 @@
using System;
using System.Threading.Tasks;
using Android.Runtime;
using Android.Gms.Common.Apis;
using Android.App;
namespace Android.Gms.AppInvite
{
public static partial class IAppInviteApiExtensions
{
public static async Task<Statuses> ConvertInvitationAsync (this IAppInviteApi api, GoogleApiClient client, string invitationId) {
return (await api.ConvertInvitation (client, invitationId)).JavaCast<Statuses> ();
}
[Obsolete]
public static async Task<Statuses> UpdateInvitationOnInstallAsync (this IAppInviteApi api, GoogleApiClient client, string invitationId) {
return (await api.UpdateInvitationOnInstall (client, invitationId)).JavaCast<Statuses> ();
}
[Obsolete]
public static async Task<IAppInviteInvitationResult> GetInvitationAsync (this IAppInviteApi api, GoogleApiClient client, Activity activity, bool flag) {
return (await api.GetInvitation(client, activity, flag)).JavaCast<IAppInviteInvitationResult>();
}
}
}

Просмотреть файл

@ -0,0 +1,18 @@
<enum-field-mappings>
<!--
This example converts the constants Fragment_id, Fragment_name,
and Fragment_tag from android.support.v4.app.FragmentActivity.FragmentTag
to an enum called Android.Support.V4.App.FragmentTagType with values
Id, Name, and Tag.
<mapping clr-enum-type="Android.Support.V4.App.FragmentTagType" jni-class="android/support/v4/app/FragmentActivity$FragmentTag">
<field clr-name="Id" jni-name="Fragment_id" value="1" />
<field clr-name="Name" jni-name="Fragment_name" value="0" />
<field clr-name="Tag" jni-name="Fragment_tag" value="2" />
</type>
Notes:
- An optional "bitfield" attribute marks the enum type with [Flags].
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
-->
</enum-field-mappings>

Просмотреть файл

@ -0,0 +1,18 @@
<enum-method-mappings>
<!--
This example changes the Java method:
android.support.v4.app.Fragment.SavedState.writeToParcel (int flags)
to be:
android.support.v4.app.Fragment.SavedState.writeToParcel (Android.OS.ParcelableWriteFlags flags)
when bound in C#.
<mapping jni-class="android/support/v4/app/Fragment.SavedState">
<method jni-name="writeToParcel" parameter="flags" clr-enum-type="Android.OS.ParcelableWriteFlags" />
</mapping>
Notes:
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
- To change the type of the return value, use "return" as the parameter name.
- The parameter names will be p0, p1, ... unless you provide JavaDoc file in the project.
-->
</enum-method-mappings>

Просмотреть файл

@ -0,0 +1,34 @@
<metadata>
<!-- Fix Namespaces -->
<attr path="/api/package[@name='com.google.android.gms.appinvite']" name="managedName">Android.Gms.AppInvite</attr>
<attr path="/api/package[@name='com.google.android.gms.people.protomodel']" name="managedName">Android.Gms.People.ProtoModel</attr>
<attr path="/api/package[@name='com.google.android.gms.internal']" name="managedName">Android.Gms.Internal</attr>
<attr path="/api/package[@name='com.google.firebase.appinvite']" name="managedName">Firebase.AppInvite</attr>
<!-- Remove some internal namespaces -->
<remove-node path="/api/package[contains(@name, 'com.google.android.gms.internal')]" />
<!-- Remove *zz* obfuscated items -->
<!-- <remove-node path="/api/package/class[contains(@name, 'zz')]" />-->
<!-- <remove-node path="/api/package/interface[contains(@name, 'zz')]" />-->
<remove-node path="/api/*/*/method[contains(@name, 'zz')]" />
<remove-node path="/api/*/*/field[contains(@name, 'zz')]" />
<!-- <remove-node path="/api/*/*/field[@name='CREATOR' and contains(@type, 'zz')]" />-->
<!-- Fix params for some inherited parcelable types -->
<attr path="/api/*/*/method[@name='createFromParcel']/parameter[@name='p0']" name="managedName">source</attr>
<attr path="/api/*/*/method[@name='newArray']/parameter[@name='p0']" name="managedName">size</attr>
<attr path="/api/*/*/method[@name='writeToParcel']/parameter[@name='p0']" name="managedName">dest</attr>
<attr path="/api/*/*/method[@name='writeToParcel']/parameter[@name='p1']" name="managedName">flags</attr>
<attr path="/api/package[@name='com.google.android.gms.appinvite']/class[@name='AppInvite']" name="managedName">AppInviteClass</attr>
<!-- Fix API name to be uppercase to be consistent in avoiding naming conflicts with fields in C# bindings -->
<attr path="/api/package[@name='com.google.android.gms.appinvite']/class[@name='AppInvite']/field[@name='API']" name="managedName">API</attr>
<attr path="/api/package[@name='com.google.android.gms.people.protomodel']/class[@name='FetchBackUpDeviceContactInfoResponseEntity']" name="extends">Java.Lang.Object</attr>
<remove-node
path="/api/package[@name='com.google.android.gms.internal.measurement']"
>
</remove-node>
</metadata>

Просмотреть файл

@ -0,0 +1,4 @@
using System;
using Android.Views;
using Android.Widget;
using Android.Graphics;

Просмотреть файл

@ -0,0 +1,2 @@
<enum-field-mappings>
</enum-field-mappings>

Просмотреть файл

@ -0,0 +1,2 @@
<enum-method-mappings>
</enum-method-mappings>

Просмотреть файл

@ -0,0 +1,9 @@
<metadata>
<attr
path="/api/package[@name='com.google.android.gms.appset']"
name="managedName"
>
Android.Gms.AppSet
</attr>
</metadata>

Просмотреть файл

@ -0,0 +1,2 @@
<metadata>
</metadata>

Просмотреть файл

@ -0,0 +1,3 @@
<metadata>
</metadata>

Просмотреть файл

@ -0,0 +1,18 @@
<enum-field-mappings>
<!--
This example converts the constants Fragment_id, Fragment_name,
and Fragment_tag from android.support.v4.app.FragmentActivity.FragmentTag
to an enum called Android.Support.V4.App.FragmentTagType with values
Id, Name, and Tag.
<mapping clr-enum-type="Android.Support.V4.App.FragmentTagType" jni-class="android/support/v4/app/FragmentActivity$FragmentTag">
<field clr-name="Id" jni-name="Fragment_id" value="1" />
<field clr-name="Name" jni-name="Fragment_name" value="0" />
<field clr-name="Tag" jni-name="Fragment_tag" value="2" />
</type>
Notes:
- An optional "bitfield" attribute marks the enum type with [Flags].
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
-->
</enum-field-mappings>

Просмотреть файл

@ -0,0 +1,18 @@
<enum-method-mappings>
<!--
This example changes the Java method:
android.support.v4.app.Fragment.SavedState.writeToParcel (int flags)
to be:
android.support.v4.app.Fragment.SavedState.writeToParcel (Android.OS.ParcelableWriteFlags flags)
when bound in C#.
<mapping jni-class="android/support/v4/app/Fragment.SavedState">
<method jni-name="writeToParcel" parameter="flags" clr-enum-type="Android.OS.ParcelableWriteFlags" />
</mapping>
Notes:
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
- To change the type of the return value, use "return" as the parameter name.
- The parameter names will be p0, p1, ... unless you provide JavaDoc file in the project.
-->
</enum-method-mappings>

Просмотреть файл

@ -0,0 +1,16 @@
<metadata>
<!-- Remove some internal namespaces -->
<remove-node path="/api/package[contains(@name, 'com.google.android.gms.internal')]" />
<!-- Remove *zz* obfuscated items -->
<remove-node path="/api/package/class[contains(@name, 'zz')]" />
<remove-node path="/api/package/interface[contains(@name, 'zz')]" />
<remove-node path="/api/*/*/method[contains(@name, 'zz')]" />
<remove-node path="/api/*/*/field[contains(@name, 'zz')]" />
<!-- Fix params for some inherited parcelable types -->
<attr path="/api/*/*/method[@name='createFromParcel']/parameter[@name='p0']" name="managedName">source</attr>
<attr path="/api/*/*/method[@name='newArray']/parameter[@name='p0']" name="managedName">size</attr>
<attr path="/api/*/*/method[@name='writeToParcel']/parameter[@name='p0']" name="managedName">dest</attr>
<attr path="/api/*/*/method[@name='writeToParcel']/parameter[@name='p1']" name="managedName">flags</attr>
</metadata>

Просмотреть файл

@ -0,0 +1,18 @@
<enum-field-mappings>
<!--
This example converts the constants Fragment_id, Fragment_name,
and Fragment_tag from android.support.v4.app.FragmentActivity.FragmentTag
to an enum called Android.Support.V4.App.FragmentTagType with values
Id, Name, and Tag.
<mapping clr-enum-type="Android.Support.V4.App.FragmentTagType" jni-class="android/support/v4/app/FragmentActivity$FragmentTag">
<field clr-name="Id" jni-name="Fragment_id" value="1" />
<field clr-name="Name" jni-name="Fragment_name" value="0" />
<field clr-name="Tag" jni-name="Fragment_tag" value="2" />
</type>
Notes:
- An optional "bitfield" attribute marks the enum type with [Flags].
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
-->
</enum-field-mappings>

Просмотреть файл

@ -0,0 +1,18 @@
<enum-method-mappings>
<!--
This example changes the Java method:
android.support.v4.app.Fragment.SavedState.writeToParcel (int flags)
to be:
android.support.v4.app.Fragment.SavedState.writeToParcel (Android.OS.ParcelableWriteFlags flags)
when bound in C#.
<mapping jni-class="android/support/v4/app/Fragment.SavedState">
<method jni-name="writeToParcel" parameter="flags" clr-enum-type="Android.OS.ParcelableWriteFlags" />
</mapping>
Notes:
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
- To change the type of the return value, use "return" as the parameter name.
- The parameter names will be p0, p1, ... unless you provide JavaDoc file in the project.
-->
</enum-method-mappings>

Просмотреть файл

@ -0,0 +1,28 @@
<metadata>
<!-- Fix Namespaces -->
<attr path="/api/package[@name='com.google.android.gms.gass.internal']" name="managedName">Android.Gms.Gass.Internal</attr>
<attr path="/api/package[@name='com.google.android.gms.auth.api.phone']" name="managedName">Android.Gms.Auth.Api.Phone</attr>
<remove-node path="/api/package[@name='com.google.android.gms.internal.auth-api-phone']" ></remove-node>
<!-- Remove some internal namespaces -->
<remove-node path="/api/package[contains(@name, 'com.google.android.gms.internal')]" />
<!-- Remove *zz* obfuscated items -->
<remove-node path="/api/package/class[contains(@name, 'zz')]" />
<remove-node path="/api/package/interface[contains(@name, 'zz')]" />
<remove-node path="/api/*/*/method[contains(@name, 'zz')]" />
<remove-node path="/api/*/*/field[contains(@name, 'zz')]" />
<!-- Fix params for some inherited parcelable types -->
<attr path="/api/*/*/method[@name='createFromParcel']/parameter[@name='p0']" name="managedName">source</attr>
<attr path="/api/*/*/method[@name='newArray']/parameter[@name='p0']" name="managedName">size</attr>
<attr path="/api/*/*/method[@name='writeToParcel']/parameter[@name='p0']" name="managedName">dest</attr>
<attr path="/api/*/*/method[@name='writeToParcel']/parameter[@name='p1']" name="managedName">flags</attr>
<!-- We don't want to subclass this type, it will change the base type on a bunch of things from past versions -->
<attr path="/api/package/*[@extends='com.google.android.gms.common.internal.safeparcel.zza']" name="extends">java.lang.Object</attr>
<attr path="/api/package/*[@extends='com.google.android.gms.common.internal.safeparcel.zza']" name="extends-generic-aware">java.lang.Object</attr>
<remove-node path="/api/package/*/implements[@name='com.google.android.gms.common.internal.ReflectedParcelable']" />
</metadata>

Просмотреть файл

@ -0,0 +1,39 @@
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<IProxyApiProxyResult> PerformProxyRequestAsync (this IProxyApi api, GoogleApiClient client, Android.Gms.Auth.Api.Proxy.ProxyRequest request)
{
return (await api.PerformProxyRequest (client, request)).JavaCast<IProxyApiProxyResult> ();
}
}
}
namespace Android.Gms.Auth.Account
{
public static partial class IWorkAccountApiExtensions
{
public static async Task<IWorkAccountApiAddAccountResult> AddWorkAccountAsync(this IWorkAccountApi api, GoogleApiClient client, string token)
{
return (await api.AddWorkAccount(client, token)).JavaCast<IWorkAccountApiAddAccountResult>();
}
public static async Task<IResult> PerformProxyRequestAsync(this IWorkAccountApi api, GoogleApiClient client, Accounts.Account account)
{
return (await api.RemoveWorkAccount(client, account)).JavaCast<IResult>();
}
public static async Task<IResult> SetWorkAuthenticatorEnabledWithResultAsync(this IWorkAccountApi api, Android.Gms.Common.Apis.GoogleApiClient client, bool enabled)
{
return (await api.SetWorkAuthenticatorEnabledWithResult(client, enabled)).JavaCast<IResult>();
}
}
}

Просмотреть файл

@ -0,0 +1,50 @@
using System;
using System.Threading.Tasks;
using Android.Gms.Extensions;
namespace Android.Gms.Auth.Account
{
public partial class WorkAccountClient
{
public virtual Task<Android.Accounts.Account> AddWorkAccountAsync(string token)
{
return AddWorkAccount(token).AsAsync<Android.Accounts.Account>();
}
public virtual Task RemoveWorkAccountAsync(Android.Accounts.Account account)
{
return RemoveWorkAccount(account).AsAsync();
}
public virtual Task SetWorkAuthenticatorEnabledAsync(bool enabled)
{
return SetWorkAuthenticatorEnabled(enabled).AsAsync();
}
}
}
namespace Android.Gms.Auth.Api.AccountTransfer
{
public partial class AccountTransferClient
{
public Task<DeviceMetaData> GetDeviceMetaDataAsync(string accountType)
{
return GetDeviceMetaData(accountType).AsAsync<DeviceMetaData>();
}
public Task NotifyCompletionAsync(string accountType, int completionStatus)
{
return NotifyCompletion(accountType, completionStatus).AsAsync();
}
public Task SendDataAsync(string accountType, byte[] transferData)
{
return SendData(accountType, transferData).AsAsync();
}
public Task ShowUserChallengeAsync(string accountType, Android.App.PendingIntent pendingIntent)
{
return ShowUserChallenge(accountType, pendingIntent).AsAsync();
}
}
}

Просмотреть файл

@ -0,0 +1,22 @@
using System;
using System.Threading.Tasks;
using Android.Gms.Extensions;
using Android.OS;
using Java.Lang;
namespace Android.Gms.Auth
{
// mc++ ckeck with Jon
public partial class Zzd : global::Android.OS.IParcelableCreator
{
public Java.Lang.Object CreateFromParcel(Parcel source)
{
throw new NotImplementedException("Zzd.CreateFromParcel");
}
public Java.Lang.Object[] NewArray(int size)
{
return new Java.Lang.Object[size];
}
}
}

Просмотреть файл

@ -0,0 +1,18 @@
<enum-field-mappings>
<!--
This example converts the constants Fragment_id, Fragment_name,
and Fragment_tag from android.support.v4.app.FragmentActivity.FragmentTag
to an enum called Android.Support.V4.App.FragmentTagType with values
Id, Name, and Tag.
<mapping clr-enum-type="Android.Support.V4.App.FragmentTagType" jni-class="android/support/v4/app/FragmentActivity$FragmentTag">
<field clr-name="Id" jni-name="Fragment_id" value="1" />
<field clr-name="Name" jni-name="Fragment_name" value="0" />
<field clr-name="Tag" jni-name="Fragment_tag" value="2" />
</type>
Notes:
- An optional "bitfield" attribute marks the enum type with [Flags].
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
-->
</enum-field-mappings>

Просмотреть файл

@ -0,0 +1,18 @@
<enum-method-mappings>
<!--
This example changes the Java method:
android.support.v4.app.Fragment.SavedState.writeToParcel (int flags)
to be:
android.support.v4.app.Fragment.SavedState.writeToParcel (Android.OS.ParcelableWriteFlags flags)
when bound in C#.
<mapping jni-class="android/support/v4/app/Fragment.SavedState">
<method jni-name="writeToParcel" parameter="flags" clr-enum-type="Android.OS.ParcelableWriteFlags" />
</mapping>
Notes:
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
- To change the type of the return value, use "return" as the parameter name.
- The parameter names will be p0, p1, ... unless you provide JavaDoc file in the project.
-->
</enum-method-mappings>

Просмотреть файл

@ -0,0 +1,42 @@
<metadata>
<!-- Fix Namespaces -->
<attr path="/api/package[@name='com.google.android.gms.auth']" name="managedName">Android.Gms.Auth</attr>
<attr path="/api/package[@name='com.google.android.gms.auth.account']" name="managedName">Android.Gms.Auth.Account</attr>
<attr path="/api/package[@name='com.google.android.gms.auth.api']" name="managedName">Android.Gms.Auth.Api</attr>
<attr path="/api/package[@name='com.google.android.gms.auth.api.proxy']" name="managedName">Android.Gms.Auth.Api.Proxy</attr>
<attr path="/api/package[@name='com.google.android.gms.auth.api.accounttransfer']" name="managedName">Android.Gms.Auth.Api.AccountTransfer</attr>
<!-- Remove some internal namespaces -->
<remove-node path="/api/package[contains(@name, 'com.google.android.gms.internal')]" />
<!-- Remove *zz* obfuscated items -->
<remove-node path="/api/package/class[contains(@name, 'zz') and @name != 'zzd' and @name != 'zze' and @name != 'zzg' and @name != 'zzl']" />
<remove-node path="/api/package/interface[contains(@name, 'zz')]" />
<remove-node path="/api/*/*/method[contains(@name, 'zz')]" />
<remove-node path="/api/*/*/field[contains(@name, 'zz')]" />
<!-- Fix params for some inherited parcelable types -->
<attr path="/api/*/*/method[@name='createFromParcel']/parameter[@name='p0']" name="managedName">source</attr>
<attr path="/api/*/*/method[@name='newArray']/parameter[@name='p0']" name="managedName">size</attr>
<attr path="/api/*/*/method[@name='writeToParcel']/parameter[@name='p0']" name="managedName">dest</attr>
<attr path="/api/*/*/method[@name='writeToParcel']/parameter[@name='p1']" name="managedName">flags</attr>
<!-- <attr path="/api/package[@name='com.google.android.gms.auth']/class[@name='zze']" name="obfuscated">falsed</attr>-->
<attr path="/api/package[@name='com.google.android.gms.auth']/class[@name='zzd']" name="obfuscated">false</attr>
<attr path="/api/package[@name='com.google.android.gms.auth']/class[@name='zzg']" name="obfuscated">false</attr>
<attr path="/api/package[@name='com.google.android.gms.auth']/class[@name='zzl']" name="obfuscated">false</attr>
<!-- <attr path="/api/package[@name='com.google.android.gms.auth']/class[@name='GoogleAuthUtil']" name="extends">Java.Lang.Object</attr>-->
<!-- TODO: Consider removing when Cycle 9 is released -->
<!--
<remove-node path="/api/package[@name='com.google.android.gms.auth.api.proxy']/class[@name='zzd']/implements[@name='android.os.Parcelable.Creator']" />
-->
<!-- End TODO -->
<attr path="/api/package/*[@extends='com.google.android.gms.common.internal.safeparcel.zza']" name="extends">java.lang.Object</attr>
<attr path="/api/package/*[@extends='com.google.android.gms.common.internal.safeparcel.zza']" name="extends-generic-aware">java.lang.Object</attr>
<remove-node path="/api/package/*/implements[@name='com.google.android.gms.common.internal.ReflectedParcelable']" />
</metadata>

Просмотреть файл

@ -0,0 +1,4 @@
using System;
using Android.Views;
using Android.Widget;
using Android.Graphics;

Просмотреть файл

@ -0,0 +1,2 @@
<enum-field-mappings>
</enum-field-mappings>

Просмотреть файл

@ -0,0 +1,2 @@
<enum-method-mappings>
</enum-method-mappings>

Просмотреть файл

@ -0,0 +1,21 @@
<metadata>
<attr
path="/api/package[@name='com.google.android.gms.auth.blockstore']"
name="managedName"
>
Android.Gms.Auth.Managed.Blockstore
</attr>
<attr
path="/api/package[@name='com.google.android.gms.auth.blockstore.restorecredential']"
name="managedName"
>
Android.Gms.Auth.Managed.Blockstore.RestoreCredential
</attr>
<attr
path="/api/package[@name='com.google.android.gms.auth.blockstore.restorecredential.internal']"
name="managedName"
>
Android.Gms.Auth.Managed.Blockstore.RestoreCredential.Internal
</attr>
</metadata>

Просмотреть файл

@ -0,0 +1,2 @@
<metadata>
</metadata>

Просмотреть файл

@ -0,0 +1,3 @@
<metadata>
</metadata>

Просмотреть файл

@ -0,0 +1,34 @@
using System;
using System.Threading.Tasks;
using Android.Content;
using Android.Gms.Extensions;
namespace Android.Gms.Auth.Api.SignIn
{
public partial class GoogleSignIn
{
public static Task<GoogleSignInAccount> GetSignedInAccountFromIntentAsync (Intent intent)
{
return GetSignedInAccountFromIntent (intent).AsAsync<GoogleSignInAccount>();
}
}
public partial class GoogleSignInClient
{
public Task RevokeAccessAsync ()
{
return RevokeAccess ().AsAsync ();
}
public Task SignOutAsync ()
{
return SignOut ().AsAsync ();
}
public Task<GoogleSignInAccount> SilentSignInAsync ()
{
return SilentSignIn ().AsAsync<GoogleSignInAccount> ();
}
}
}

Просмотреть файл

@ -0,0 +1,18 @@
<enum-field-mappings>
<!--
This example converts the constants Fragment_id, Fragment_name,
and Fragment_tag from android.support.v4.app.FragmentActivity.FragmentTag
to an enum called Android.Support.V4.App.FragmentTagType with values
Id, Name, and Tag.
<mapping clr-enum-type="Android.Support.V4.App.FragmentTagType" jni-class="android/support/v4/app/FragmentActivity$FragmentTag">
<field clr-name="Id" jni-name="Fragment_id" value="1" />
<field clr-name="Name" jni-name="Fragment_name" value="0" />
<field clr-name="Tag" jni-name="Fragment_tag" value="2" />
</type>
Notes:
- An optional "bitfield" attribute marks the enum type with [Flags].
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
-->
</enum-field-mappings>

Просмотреть файл

@ -0,0 +1,18 @@
<enum-method-mappings>
<!--
This example changes the Java method:
android.support.v4.app.Fragment.SavedState.writeToParcel (int flags)
to be:
android.support.v4.app.Fragment.SavedState.writeToParcel (Android.OS.ParcelableWriteFlags flags)
when bound in C#.
<mapping jni-class="android/support/v4/app/Fragment.SavedState">
<method jni-name="writeToParcel" parameter="flags" clr-enum-type="Android.OS.ParcelableWriteFlags" />
</mapping>
Notes:
- For Java interfaces, use "jni-interface" attribute instead of "jni-class" attribute.
- To change the type of the return value, use "return" as the parameter name.
- The parameter names will be p0, p1, ... unless you provide JavaDoc file in the project.
-->
</enum-method-mappings>

Просмотреть файл

@ -0,0 +1,58 @@
<metadata>
<!-- Fix Namespaces -->
<!-- <attr path="/api/package[@name='com.google.android.gms.auth']" name="managedName">Android.Gms.Auth</attr>-->
<attr path="/api/package[@name='com.google.android.gms.auth.api']" name="managedName">Android.Gms.Auth.Api</attr>
<attr path="/api/package[@name='com.google.android.gms.auth.api.consent']" name="managedName">Android.Gms.Auth.Api.Consent</attr>
<attr path="/api/package[@name='com.google.android.gms.auth.api.credentials']" name="managedName">Android.Gms.Auth.Api.Credentials</attr>
<attr path="/api/package[@name='com.google.android.gms.auth.api.credentials.internal']" name="managedName">Android.Gms.Auth.Api.Credentials.Internal</attr>
<attr path="/api/package[@name='com.google.android.gms.auth.api.signin']" name="managedName">Android.Gms.Auth.Api.SignIn</attr>
<attr path="/api/package[@name='com.google.android.gms.auth.api.signin.internal']" name="managedName">Android.Gms.Auth.Api.SignIn.Internal</attr>
<!-- Remove some internal namespaces -->
<remove-node path="/api/package[contains(@name, 'com.google.android.gms.internal')]" />
<!-- Remove *zz* obfuscated items -->
<remove-node path="/api/package/class[contains(@name, 'zz')]" />
<remove-node path="/api/package/interface[contains(@name, 'zz')]" />
<remove-node path="/api/*/*/method[contains(@name, 'zz')]" />
<remove-node path="/api/*/*/field[contains(@name, 'zz')]" />
<!-- Fix params for some inherited parcelable types -->
<attr path="/api/*/*/method[@name='createFromParcel']/parameter[@name='p0']" name="managedName">source</attr>
<attr path="/api/*/*/method[@name='newArray']/parameter[@name='p0']" name="managedName">size</attr>
<attr path="/api/*/*/method[@name='writeToParcel']/parameter[@name='p0']" name="managedName">dest</attr>
<attr path="/api/*/*/method[@name='writeToParcel']/parameter[@name='p1']" name="managedName">flags</attr>
<attr path="/api/package[@name='com.google.android.gms.auth.api']/class[@name='Auth']/field[@name='CREDENTIALS_API']" name="managedName">CREDENTIALS_API</attr>
<attr path="/api/package[@name='com.google.android.gms.auth.api']/class[@name='Auth']/field[@name='PROXY_API']" name="managedName">PROXY_API</attr>
<attr path="/api/package[@name='com.google.android.gms.auth.api']/class[@name='Auth']/field[@name='GOOGLE_SIGN_IN_API']" name="managedName">GOOGLE_SIGN_IN_API</attr>
<!-- We don't want to subclass this type, it will change the base type on a bunch of things from past versions -->
<attr path="/api/package/*[@extends='com.google.android.gms.common.internal.safeparcel.zza']" name="extends">java.lang.Object</attr>
<attr path="/api/package/*[@extends='com.google.android.gms.common.internal.safeparcel.zza']" name="extends-generic-aware">java.lang.Object</attr>
<remove-node path="/api/package/*/implements[@name='com.google.android.gms.common.internal.ReflectedParcelable']" />
<remove-node path="/api/package/*/implements[@name='com.google.android.gms.common.internal.DowngradeableSafeParcel']" />
<attr
path="/api/package[@name='com.google.android.gms.auth.api.identity']"
name="managedName"
>
Android.Gms.Auth.Api.Identity
</attr>
<remove-node
path="/api/package[@name='com.google.android.gms.auth.api.identity']/class[starts-with(@name,'zb')]/implements"
/>
<remove-node
path="/api/package[@name='com.google.android.gms.auth.api.signin']/class[starts-with(@name,'zb')]/implements"
/>
<remove-node
path="/api/package[@name='com.google.android.gms.auth.api.credentials']/class[starts-with(@name,'zb')]/implements"
/>
<remove-node
path="/api/package[@name='com.google.android.gms.auth.api.signin.internal']/class[starts-with(@name,'zb')]"
/>
</metadata>

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше