|
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