|
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,29 @@ 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 jcw_type = CecilImporter.CreateType (t, cache, methodClassifier: classifier); |
| 478 | + |
| 479 | + jcw_type.GenerateOnCreateOverrides = generateOnCreateOverrides; |
| 480 | + jcw_type.ApplicationJavaClass = ApplicationJavaClass; |
| 481 | + jcw_type.MonoRuntimeInitialization = monoInit; |
| 482 | + |
| 483 | + var options = new CallableWrapperWriterOptions { |
| 484 | + CodeGenerationTarget = JavaPeerStyle.XAJavaInterop1 |
480 | 485 | }; |
481 | 486 |
|
482 | | - jti.Generate (writer); |
| 487 | + jcw_type.Generate (writer, options); |
| 488 | + |
483 | 489 | if (useMarshalMethods) { |
484 | 490 | if (classifier.FoundDynamicallyRegisteredMethods (t)) { |
485 | 491 | 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 | 492 | } |
487 | 493 | } |
| 494 | + |
488 | 495 | writer.Flush (); |
489 | 496 |
|
490 | | - var path = jti.GetDestinationPath (outputPath); |
| 497 | + var path = jcw_type.GetDestinationPath (outputPath); |
491 | 498 | Files.CopyIfStreamChanged (writer.BaseStream, path); |
492 | | - if (jti.HasExport && !hasExportReference) |
| 499 | + if (jcw_type.HasExport && !hasExportReference) |
493 | 500 | Diagnostic.Error (4210, Properties.Resources.XA4210); |
494 | 501 | } catch (XamarinAndroidException xae) { |
495 | 502 | ok = false; |
|
0 commit comments