forked from organicmaps/organicmaps
[android] Made autorization listener shared_ptr
This commit is contained in:
parent
9edf4b4bd7
commit
4345bbcbec
2 changed files with 11 additions and 7 deletions
|
@ -1546,18 +1546,22 @@ JNIEXPORT void JNICALL
|
|||
Java_com_mapswithme_maps_Framework_nativeAuthenticateUser(JNIEnv * env, jclass, jstring socialToken,
|
||||
jint socialTokenType, jobject listener)
|
||||
{
|
||||
jobject gListener = env->NewGlobalRef(listener);
|
||||
std::shared_ptr<_jobject> gListener(env->NewGlobalRef(listener), [](jobject l)
|
||||
{
|
||||
jni::GetEnv()->DeleteGlobalRef(l);
|
||||
});
|
||||
|
||||
auto const tokenStr = jni::ToNativeString(env, socialToken);
|
||||
auto & user = frm()->GetUser();
|
||||
auto s = make_unique<User::Subscriber>();
|
||||
s->m_postCallAction = User::Subscriber::Action::RemoveSubscriber;
|
||||
s->m_onAuthenticate = [env, gListener](bool success)
|
||||
s->m_onAuthenticate = [gListener](bool success)
|
||||
{
|
||||
GetPlatform().RunTask(Platform::Thread::Gui, [env, gListener, success]()
|
||||
GetPlatform().RunTask(Platform::Thread::Gui, [gListener, success]
|
||||
{
|
||||
static jmethodID const callback = jni::GetMethodID(env, gListener, "onAuthorized", "(Z)V");
|
||||
env->CallVoidMethod(gListener, callback, success);
|
||||
env->DeleteGlobalRef(gListener);
|
||||
auto e = jni::GetEnv();
|
||||
static jmethodID const callback = jni::GetMethodID(e, gListener.get(), "onAuthorized", "(Z)V");
|
||||
e->CallVoidMethod(gListener.get(), callback, success);
|
||||
});
|
||||
};
|
||||
user.AddSubscriber(std::move(s));
|
||||
|
|
|
@ -104,7 +104,7 @@ public class BookmarkBackupController implements Authorizer.Callback
|
|||
mAuthorizer.detach();
|
||||
}
|
||||
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data)
|
||||
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data)
|
||||
{
|
||||
if (mAuthorizer != null)
|
||||
mAuthorizer.onActivityResult(requestCode, resultCode, data);
|
||||
|
|
Loading…
Add table
Reference in a new issue