Библиотека привязок Xamarin с частным вложенным интерфейсом - PullRequest
0 голосов
/ 01 июня 2019

Я работаю над созданием приложения Xamarin с использованием пакета Stripe Terminal aar для Android. После создания библиотеки привязки Android для пакета Stripe Terminal мне удалось ее скомпилировать с помощью следующих обновлений файла Metadata.xml

<remove-node path="/api/package[@name='com.stripe.stripeterminal']/class[@name='DaggerTerminalComponent']" />
<remove-node path="/api/package[@name='com.stripe.stripeterminal']/interface[@name='ErrorCallback']" />
<remove-node path="/api/package[@name='com.stripe.stripeterminal']/interface[@name='BbposBluetoothAdapter']" />  
<attr path="/api/package[@name='com.stripe.stripeterminal']/interface[@name='ErrorCallback']" name="visibility">public</attr>  
<attr path="/api/package[@name='com.stripe.stripeterminal']/class[@name='Terminal']" name="managedName">StripeTerminal</attr>

Проблема заключается в удалении интерфейса ErrorCallback, при этом удаляются все классы Java и методы, расширяющие этот интерфейс. Если я добавлю следующее

<attr path="/api/package[@name='com.stripe.stripeterminal']/interface[@name='ErrorCallback']" name="visibility">public</attr>

Я могу заставить вещи идти дальше, и методы, которые мне нужны, возвращаются, как и метод ниже, Callback Extends ErrorCallback

public Cancelable discoverReaders(DiscoveryConfiguration config, DiscoveryListener discoveryListener, Callback callback)

Тогда java жалуется, что ErrorCallback является частным, и я получаю эту ошибку при сборке проекта Android. Рассматривая выходные данные кода Java Xamarin, включая ErrorCallback в список расширенных интерфейсов.

ошибка: ошибка вызова не является общедоступной в com.stripe.stripeterminal; недоступен извне пакет

Можно ли это исправить с помощью правильных обновлений файла Metadata.xml, если нет, можно ли это исправить с помощью частичного класса в библиотеке привязок, и как бы вы начали с этого?

...