Skip to content

JCW Implementor types "pollute" original package #1132

@jonpryor

Description

@jonpryor

Consider a xamarin/xamarin-android build, after which the following file may exist:

src/Mono.Android/obj/Debug/net8.0/android-34/jcw/src/android/hardware/Camera_IOnZoomChangeListenerImplementor.java

This comes from the C# binding:

namespace Android.Hardware {
	public partial class Camera : Java.Lang.Object {
		// Note: no [Register]
		internal sealed partial class IOnZoomChangeListenerImplementor : global::Java.Lang.Object, IOnZoomChangeListener {
		}
	}
}

which results in the Java Callable Wrapper:

package android.hardware;

public class Camera_IOnZoomChangeListenerImplementor
  extends java.lang.Object
  implements
    mono.android.IGCUserPeer,
    android.hardware.Camera.OnZoomChangeListener
{
    // …
}

…and therein lies the issue: why is Camera.IOnZoomChangeListenerImplementor resulting in the Java Callable Wrapper of android.hardware.Camera_IOnZoomChangeListenerImplementor, and not crc64….Camera_IOnZoomChangeListenerImplementor? Why are we "polluting" the original package name?

Metadata

Metadata

Assignees

No one assigned

    Labels

    callable-wrappersIssues with Java Callable Wrappers

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions