Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(848)

Unified Diff: remoting/client/jni/jni_client.cc

Issue 2753963002: Refactoring and rewriting the chromoting jni instance to be chromoting session. (Closed)
Patch Set: Updating based on feedback. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/client/jni/jni_client.h ('k') | remoting/client/jni/jni_runtime_delegate.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..ecd078704df9d1cecd58b00ca3d34c3c52cda2bd 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();
}
@@ -63,6 +76,10 @@ void JniClient::DisconnectFromHost() {
runtime_->network_task_runner()->DeleteSoon(FROM_HERE,
secret_fetcher_.release());
}
+ if (audio_player_) {
+ runtime_->network_task_runner()->DeleteSoon(FROM_HERE,
+ audio_player_.release());
+ }
display_handler_.reset();
}
@@ -164,6 +181,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 +196,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 +288,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)));
}
« no previous file with comments | « remoting/client/jni/jni_client.h ('k') | remoting/client/jni/jni_runtime_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698