blob: 36950caf4394211621c2e6422212a57f8cbf4ea7 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "flutter/shell/platform/android/platform_message_response_android.h"
#include "flutter/fml/make_copyable.h"
#include "flutter/shell/platform/android/jni/platform_view_android_jni.h"
namespace flutter {
PlatformMessageResponseAndroid::PlatformMessageResponseAndroid(
int response_id,
std::shared_ptr<PlatformViewAndroidJNI> jni_facade,
fml::RefPtr<fml::TaskRunner> platform_task_runner)
: response_id_(response_id),
jni_facade_(jni_facade),
platform_task_runner_(std::move(platform_task_runner)) {}
PlatformMessageResponseAndroid::~PlatformMessageResponseAndroid() = default;
// |flutter::PlatformMessageResponse|
void PlatformMessageResponseAndroid::Complete(
std::unique_ptr<fml::Mapping> data) {
platform_task_runner_->PostTask(
fml::MakeCopyable([response_id = response_id_, //
data = std::move(data), //
jni_facade = jni_facade_]() mutable {
jni_facade->FlutterViewHandlePlatformMessageResponse(response_id,
std::move(data));
}));
}
// |flutter::PlatformMessageResponse|
void PlatformMessageResponseAndroid::CompleteEmpty() {
platform_task_runner_->PostTask(
fml::MakeCopyable([response_id = response_id_, //
jni_facade = jni_facade_ //
]() {
// Make the response call into Java.
jni_facade->FlutterViewHandlePlatformMessageResponse(response_id,
nullptr);
}));
}
} // namespace flutter