VKCOM / vk-android-sdk

Android library for working with VK API, authorization through VK app, using VK functions.
MIT License
456 stars 226 forks source link

Как использовать библиотеку из проекта на java #525

Closed panovvitalik closed 1 year ago

panovvitalik commented 1 year ago

Как обычно при попытке перехода к более новой версии: 4.0.1 (с 3.2.2) все сломалось. Проект на java. Есть возможность как-то использовать данную библиотеку из проекта на java?

Например, как для начала теперь делать логин?

Раньше была одна строчка кода: VK.login(activity, ListUtils.createObjectList(VKScope.PHOTOS, VKScope.OFFLINE))

Теперь предлагается написать что-то типа:

ActivityResultLauncher launcher = VK.login(activity, new ActivityResultCallback() { @Override public void onActivityResult(VKAuthenticationResult result) { // Что здесь нужно добавить, чтобы обработать success резалт??? } }); launcher.launch(ListUtils.createObjectList(VKScope.PHOTOS, VKScope.OFFLINE));

Но как дописать этот кусок кода?

p.s. И пожалуйста вопрос конкретный! - указан в теме поэтому не нужно предлагать:

libalex commented 1 year ago

Ну вот на Kotlin пример выглядит так:

val authLauncher = VK.login(activity) { result : VKAuthenticationResult ->
    when (result) {
        is VKAuthenticationResult.Success -> {
            // User passed authorization
        }
        is VKAuthenticationResult.Failed -> {
            // User didn't pass authorization
        }
    }
}

На Java можно написать примерно так:

ActivityResultLauncher authLauncher = VK.login(activity, new ActivityResultCallback<VKAuthenticationResult>() {
    @Override
    public void onActivityResult(VKAuthenticationResult result) {
        if (result instanceof VKAuthenticationResult.Success) {
            // User passed authorization
        }
        if (result instanceof VKAuthenticationResult.Failed) {
            // User didn't pass authorization
        }
    }
});

Ну и дальше можно обрабатывать результат авторизации.

panovvitalik commented 1 year ago

@libalex "instanceof" - действительно, - два разных класса теперь сделали. Спасибо, помогло! Попробую дальше тогда....