|
20 | 20 |
|
21 | 21 | using Xamarin.Android.Tools; |
22 | 22 | using Microsoft.Android.Build.Tasks; |
| 23 | +using Java.Interop.Tools.JavaCallableWrappers.Adapters; |
23 | 24 |
|
24 | 25 | namespace Xamarin.Android.Tasks |
25 | 26 | { |
@@ -473,23 +474,32 @@ bool CreateJavaSources (IEnumerable<JavaType> newJavaTypes, TypeDefinitionCache |
473 | 474 |
|
474 | 475 | using (var writer = MemoryStreamPool.Shared.CreateStreamWriter ()) { |
475 | 476 | try { |
476 | | - var jti = new JavaCallableWrapperGenerator (t, Log.LogWarning, cache, classifier) { |
477 | | - GenerateOnCreateOverrides = generateOnCreateOverrides, |
478 | | - ApplicationJavaClass = ApplicationJavaClass, |
479 | | - MonoRuntimeInitialization = monoInit, |
| 477 | + var reader_options = new CallableWrapperReaderOptions { |
| 478 | + DefaultApplicationJavaClass = ApplicationJavaClass, |
| 479 | + DefaultGenerateOnCreateOverrides = generateOnCreateOverrides, |
| 480 | + DefaultMonoRuntimeInitialization = monoInit, |
| 481 | + MethodClassifier = classifier, |
480 | 482 | }; |
481 | 483 |
|
482 | | - jti.Generate (writer); |
| 484 | + var jcw_type = CecilImporter.CreateType (t, cache, reader_options); |
| 485 | + |
| 486 | + var writer_options = new CallableWrapperWriterOptions { |
| 487 | + CodeGenerationTarget = JavaPeerStyle.XAJavaInterop1 |
| 488 | + }; |
| 489 | + |
| 490 | + jcw_type.Generate (writer, writer_options); |
| 491 | + |
483 | 492 | if (useMarshalMethods) { |
484 | 493 | if (classifier.FoundDynamicallyRegisteredMethods (t)) { |
485 | 494 | Log.LogWarning ($"Type '{t.GetAssemblyQualifiedName (cache)}' will register some of its Java override methods dynamically. This may adversely affect runtime performance. See preceding warnings for names of dynamically registered methods."); |
486 | 495 | } |
487 | 496 | } |
| 497 | + |
488 | 498 | writer.Flush (); |
489 | 499 |
|
490 | | - var path = jti.GetDestinationPath (outputPath); |
| 500 | + var path = jcw_type.GetDestinationPath (outputPath); |
491 | 501 | Files.CopyIfStreamChanged (writer.BaseStream, path); |
492 | | - if (jti.HasExport && !hasExportReference) |
| 502 | + if (jcw_type.HasExport && !hasExportReference) |
493 | 503 | Diagnostic.Error (4210, Properties.Resources.XA4210); |
494 | 504 | } catch (XamarinAndroidException xae) { |
495 | 505 | ok = false; |
|
0 commit comments