Странная логика в загрузке Google gdpr согласия на Android - PullRequest
0 голосов
/ 24 октября 2019

Это фрагмент кода из официальной спецификации , описывающий, как загрузить форму согласия gdpr:

val form:ConsentForm = ConsentForm.Builder(context, privacyUrl)
         .withListener(object : ConsentFormListener() {
             override fun onConsentFormLoaded() {
                 // Consent form loaded successfully.
                 form.show()// No, you can't do it! Unresolved reference:form
             }

             override fun onConsentFormOpened() {
                 // Consent form was displayed.
             }

             override fun onConsentFormClosed(
                 consentStatus: ConsentStatus?, userPrefersAdFree: Boolean?
             ) {
                 // Consent form was closed.
             }

             override fun onConsentFormError(errorDescription: String?) {
                 // Consent form error.
             }
         })
            .withPersonalizedAdsOption()
            .withNonPersonalizedAdsOption()
            .withAdFreeOption()
            .build()
        form.load()

Предположим, я хочу показать форму сразу после загрузки. Как сделатьЯ делаю это? Просто позвоните form.show()? Ответ - нет.
Вы не можете ссылаться на form переменную внутри onConsentFormLoaded, так как form даже не объявлен. Почему Google это сделал? Есть ли способ исправить это без дополнительных учеников? У меня есть это в статическом классе, и Android Studio предупреждает, что хранить контекстные классы (ConsentForm) в статических полях плохо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...