Chromium Code Reviews| Index: remoting/client/jni/jni_client.cc |
| diff --git a/remoting/client/jni/jni_client.cc b/remoting/client/jni/jni_client.cc |
| index cc31d79adc3bc0cc84c2081a00541684353d9aa0..50dedd5952b3e86aa8ff6d4386ecbec8b2cd7795 100644 |
| --- a/remoting/client/jni/jni_client.cc |
| +++ b/remoting/client/jni/jni_client.cc |
| @@ -8,11 +8,13 @@ |
| #include "base/android/jni_string.h" |
| #include "base/logging.h" |
| #include "jni/Client_jni.h" |
| +#include "remoting/client/audio_player_android.h" |
| #include "remoting/client/chromoting_client_runtime.h" |
| -#include "remoting/client/jni/chromoting_jni_instance.h" |
| -#include "remoting/client/jni/connect_to_host_info.h" |
| +#include "remoting/client/chromoting_session.h" |
| +#include "remoting/client/connect_to_host_info.h" |
| #include "remoting/client/jni/jni_gl_display_handler.h" |
| #include "remoting/client/jni/jni_pairing_secret_fetcher.h" |
| +#include "remoting/client/jni/jni_runtime_delegate.h" |
| #include "remoting/client/jni/jni_touch_event_data.h" |
| #include "remoting/protocol/video_renderer.h" |
| @@ -40,15 +42,26 @@ JniClient::~JniClient() { |
| void JniClient::ConnectToHost(const ConnectToHostInfo& info) { |
| DCHECK(runtime_->ui_task_runner()->BelongsToCurrentThread()); |
| DCHECK(!display_handler_); |
| + DCHECK(!audio_player_); |
| DCHECK(!session_); |
| DCHECK(!secret_fetcher_); |
| display_handler_.reset(new JniGlDisplayHandler(java_client_)); |
| secret_fetcher_.reset( |
| new JniPairingSecretFetcher(GetWeakPtr(), info.host_id)); |
| - session_.reset( |
| - new ChromotingJniInstance(GetWeakPtr(), secret_fetcher_->GetWeakPtr(), |
| - display_handler_->CreateCursorShapeStub(), |
| - display_handler_->CreateVideoRenderer(), info)); |
| + |
| + protocol::ClientAuthenticationConfig client_auth_config; |
| + client_auth_config.host_id = info.host_id; |
| + client_auth_config.pairing_client_id = info.pairing_id; |
| + client_auth_config.pairing_secret = info.pairing_secret; |
| + client_auth_config.fetch_secret_callback = base::Bind( |
| + &JniPairingSecretFetcher::FetchSecret, secret_fetcher_->GetWeakPtr()); |
| + |
| + audio_player_.reset(new AudioPlayerAndroid()); |
| + |
| + session_.reset(new ChromotingSession( |
| + weak_ptr_, display_handler_->CreateCursorShapeStub(), |
| + display_handler_->CreateVideoRenderer(), audio_player_->GetWeakPtr(), |
| + info, client_auth_config)); |
| session_->Connect(); |
| } |
| @@ -64,6 +77,7 @@ void JniClient::DisconnectFromHost() { |
| secret_fetcher_.release()); |
| } |
| display_handler_.reset(); |
| + audio_player_.reset(); |
|
Yuwei
2017/03/30 21:18:56
You will need to delete audio_player_ on the netwo
|
| } |
| void JniClient::OnConnectionState(protocol::ConnectionToHost::State state, |
| @@ -164,6 +178,7 @@ void JniClient::Connect( |
| info.host_version = ConvertJavaStringToUTF8(env, host_version); |
| info.host_os = ConvertJavaStringToUTF8(env, host_os); |
| info.host_os_version = ConvertJavaStringToUTF8(env, host_os_version); |
| + |
| ConnectToHost(info); |
| } |
| @@ -178,8 +193,17 @@ void JniClient::AuthenticationResponse( |
| const JavaParamRef<jstring>& pin, |
| jboolean createPair, |
| const JavaParamRef<jstring>& deviceName) { |
| - session_->ProvideSecret(ConvertJavaStringToUTF8(env, pin), createPair, |
| - ConvertJavaStringToUTF8(env, deviceName)); |
| + if (session_) { |
| + session_->ProvideSecret(ConvertJavaStringToUTF8(env, pin), createPair, |
| + ConvertJavaStringToUTF8(env, deviceName)); |
| + } |
| + |
| + if (secret_fetcher_) { |
| + runtime_->network_task_runner()->PostTask( |
| + FROM_HERE, base::Bind(&JniPairingSecretFetcher::ProvideSecret, |
| + secret_fetcher_->GetWeakPtr(), |
| + ConvertJavaStringToUTF8(env, pin))); |
| + } |
| } |
| void JniClient::SendMouseEvent( |
| @@ -261,7 +285,7 @@ void JniClient::OnThirdPartyTokenFetched( |
| const JavaParamRef<jstring>& shared_secret) { |
| runtime_->network_task_runner()->PostTask( |
| FROM_HERE, |
| - base::Bind(&ChromotingJniInstance::HandleOnThirdPartyTokenFetched, |
| + base::Bind(&ChromotingSession::HandleOnThirdPartyTokenFetched, |
| session_->GetWeakPtr(), ConvertJavaStringToUTF8(env, token), |
| ConvertJavaStringToUTF8(env, shared_secret))); |
| } |