Программное обеспечение GNU GENERAL PUBLIC LICENSE как часть коммерческого [закрытого] продукта

Нет, это неправильно. Прежде всего, вы не можете ссылаться на позицию, переданную в onBindViewHolder после возврата этого метода. RecyclerView не перепривязывает вид при изменении его положения (из-за перемещения предметов и т. Д.).

Вместо этого вы можете использовать ViewHolder#getPosition(), который вернет вам обновленную позицию.

Если вы это исправите, ваш код перемещения должен работать & amp; обеспечить хорошую анимацию.

Вызов notifyDataSetChanged предотвратит предсказательную анимацию, поэтому избегайте ее как можно дольше. Подробности см. В документации .

Редактировать (из комментария): чтобы получить положение извне, возьмите держатель дочернего вида из списка переработчика, а затем получите положение из vh. См. RecyclerView API для деталей

7
задан taras 23 May 2009 в 08:34
поделиться

4 ответа

Это зависит от того, что вы подразумеваете под «коммерческим продуктом». Если вы используете код GPL, ваш код попадает под действие GPL, и вы не можете предоставить для него лицензию, которая снимает ограничения лицензии GNU. Это не означает, что вы не можете продавать продукт, но это означает, что вы должны предоставить своим лицензиатам по запросу его исходный код.

4
ответ дан 6 December 2019 в 15:29
поделиться

Как обычно, IANAL, но:

Если вы используете программный модуль под лицензией GPL, ваше программное обеспечение будет подпадать под определение «производной работы» и, следовательно, также будет лицензировано под GPL.

Вы захотите просмотреть точное определение «производной работы», тем не менее.

2
ответ дан 6 December 2019 в 15:29
поделиться

Если вы не поставляете программное обеспечение под лицензией GPL вместе с вашим продуктом, я думаю, у вас все в порядке.

  • Затем пользователь должен будет загрузить программу
  • . Если вы внесете какие-либо изменения в программу GPL для распространения, вы должны опубликовать эти
1
ответ дан 6 December 2019 в 15:29
поделиться

Использование GPL в коммерческом продукте - очень сложный вопрос. Во времена GPLv2 существовала серая зона, которая была очень тщательно очищена в GPLv3. Чтобы предоставить подробную информацию, вы должны сообщить нам, какой модуль вы используете и к какой версии GPL он подпадает.

Все сводится к тому, «является ли ваш код производным от модуля GPL». Приведу глупый пример. Если модуль GPL - это пузырьковая сортировка, а ваше приложение использует API модуля, это производная работа, поэтому все подпадает под GPL. Если вы создаете веб-сервис вокруг модуля, веб-сервис является GPL, но все, что использует веб-сервис, нет. В еще более серой зоне, если у вас есть старый код, использующий другой алгоритм сортировки, и вы создаете слой «упаковки», чтобы изменить преобразование API из старой сортировки в новую, тогда только уровень упаковки будет GPL, поскольку исходное приложение не является производной работой (это было доступный до того, как вы использовали модуль GPL, и не был написан с учетом модуля GPL). Обратите внимание, что это все очень спорно, но такие вещи, как не-GPL двоичной Linux модуль ядра существует на основе этой интерпретации GPLv2

Как Нил уже сказал:. Падение под GPL не означает, что вы должны опубликовать свой код. Только когда человек, у которого есть лицензия на ваше программное обеспечение, просит об этом, вы должны предоставить ее. Случайный человек не может просто попросить код, если он / она не купил приложение. Конечно,

7
ответ дан 6 December 2019 в 15:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: