Ответ 1
Так оно и есть. Я имею в виду, даже мне это не понравилось, очевидно, пользователь знает, что он покупает приложение, но я думаю, что Google будет отвечать на него таким образом только
Мне бы хотелось использовать вызов getSkuDetails()
из In-app Billing v3 API для динамического отображения списка опций покупки inapp с правильно переведенными названиями и соответствующей ценой.
Однако свойство title имеет значение "<item title> (app name)"
, которое менее полезно. Как я могу получить только название элемента без имени приложения без взлома строки?
Так оно и есть. Я имею в виду, даже мне это не понравилось, очевидно, пользователь знает, что он покупает приложение, но я думаю, что Google будет отвечать на него таким образом только
Поскольку никто не ответил с фактическим шаблоном регулярных выражений, который соответствует имени приложения в скобках в названии SKU, я решил опубликовать здесь код для дальнейшего использования:
// matches the last text surrounded by parentheses at the end of the SKU title
val skuTitleAppNameRegex = """(?> \(.+?\))$""".toRegex()
val titleWithoutAppName = skuDetails.title.replace(skuTitleAppNameRegex, "")
Регулярное выражение допускает добавление дополнительного текста в скобках в заголовке вашего SKU. Единственное, чего вам следует избегать, это скобки в названии вашего приложения, но, немного подкорректировав регулярное выражение, вы также можете обойти это.
Поскольку регулярные выражения общеизвестно дороги в создании, желательно хранить их в поле и избегать их построения каждый раз, когда вы анализируете свои SKU.