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 85bd49da70552f62c6516577eaa57ee7f79f51c7..ae6948a6b01222d9f0f3e5b8f6556da09a894e9f 100644 |
| --- a/remoting/client/jni/jni_client.cc |
| +++ b/remoting/client/jni/jni_client.cc |
| @@ -8,9 +8,10 @@ |
| #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_touch_event_data.h" |
| @@ -40,15 +41,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_); |
| + |
| + audio_player_.reset(new AudioPlayerAndroid()); |
| + |
| + session_.reset(new ChromotingSession( |
| + GetWeakPtr(), display_handler_->CreateCursorShapeStub(), |
| + display_handler_->CreateVideoRenderer(), audio_player_->GetWeakPtr(), info, |
|
Yuwei
2017/03/21 20:40:30
Line longer than 80 characters.
nicholss
2017/03/29 20:32:36
Done.
|
| + client_auth_config)); |
| session_->Connect(); |
| } |
| @@ -64,6 +76,7 @@ void JniClient::DisconnectFromHost() { |
| secret_fetcher_.release()); |
| } |
| display_handler_.reset(); |
| + audio_player_.reset(); |
| } |
| void JniClient::OnConnectionState(protocol::ConnectionToHost::State state, |
| @@ -164,6 +177,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 +192,18 @@ void JniClient::AuthenticationResponse( |
| const JavaParamRef<jstring>& pin, |
| jboolean createPair, |
| const JavaParamRef<jstring>& deviceName) { |
| - session_->ProvideSecret(ConvertJavaStringToUTF8(env, pin).c_str(), createPair, |
| - ConvertJavaStringToUTF8(env, deviceName)); |
| + if (session_) { |
| + session_->ProvideSecret(ConvertJavaStringToUTF8(env, pin).c_str(), |
|
Yuwei
2017/03/21 20:40:30
These c_str() calls are suspicious... Will it buil
nicholss
2017/03/29 20:32:36
I dropped them, it built locally but it was not an
|
| + createPair, |
| + ConvertJavaStringToUTF8(env, deviceName)); |
| + } |
| + |
| + if (secret_fetcher_) { |
| + runtime_->network_task_runner()->PostTask( |
| + FROM_HERE, |
| + base::Bind(&JniPairingSecretFetcher::ProvideSecret, secret_fetcher_, |
| + ConvertJavaStringToUTF8(env, pin).c_str())); |
| + } |
| } |
| 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))); |
| } |