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

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

Issue 2100943004: [Remoting Android] Make JniClient own JniDisplayHandler (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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
Index: remoting/client/jni/jni_display_handler.cc
diff --git a/remoting/client/jni/jni_display_handler.cc b/remoting/client/jni/jni_display_handler.cc
index b699461e800a7585be9c90817bad05ebff8d9fe4..16a4a46719e99cca5825c3bb70562cd48a8cf6f1 100644
--- a/remoting/client/jni/jni_display_handler.cc
+++ b/remoting/client/jni/jni_display_handler.cc
@@ -53,15 +53,22 @@ void DisplayCursorShapeStub::SetCursorShape(
}
// JniDisplayHandler definitions.
-JniDisplayHandler::JniDisplayHandler(
- ChromotingJniRuntime* runtime,
- base::android::ScopedJavaGlobalRef<jobject> java_display)
+JniDisplayHandler::JniDisplayHandler(ChromotingJniRuntime* runtime)
: runtime_(runtime),
- java_display_(java_display),
- weak_factory_(this) {}
+ weak_factory_(this) {
+ JNIEnv* env = base::android::AttachCurrentThread();
+ java_display_.Reset(Java_Display_createJavaDisplayObject(
+ env, reinterpret_cast<intptr_t>(this)));
+}
JniDisplayHandler::~JniDisplayHandler() {
DCHECK(runtime_->display_task_runner()->BelongsToCurrentThread());
+ Java_Display_invalidate(base::android::AttachCurrentThread(),
+ java_display_.obj());
+}
+
+base::android::ScopedJavaLocalRef<jobject> JniDisplayHandler::GetJavaDisplay() {
+ return base::android::ScopedJavaLocalRef<jobject>(java_display_);
Lambros 2016/06/27 23:51:44 I'm not sure if this is correct? ScopedJavaLocalRe
Sergey Ulanov 2016/06/27 23:59:18 It's a java object, so it cannot be owned. This li
Yuwei 2016/06/28 00:03:26 It will eventually call SetNewLocalRef(env, other.
}
void JniDisplayHandler::UpdateCursorShape(
@@ -124,16 +131,6 @@ bool JniDisplayHandler::RegisterJni(JNIEnv* env) {
return RegisterNativesImpl(env);
}
-void JniDisplayHandler::Destroy(
- JNIEnv* env,
- const base::android::JavaParamRef<jobject>& caller) {
- if (runtime_->display_task_runner()->BelongsToCurrentThread()) {
- delete this;
- } else {
- runtime_->display_task_runner()->DeleteSoon(FROM_HERE, this);
- }
-}
-
void JniDisplayHandler::ScheduleRedraw(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& caller) {
@@ -142,10 +139,4 @@ void JniDisplayHandler::ScheduleRedraw(
weak_factory_.GetWeakPtr()));
}
-static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& caller) {
- return reinterpret_cast<intptr_t>(new JniDisplayHandler(
- ChromotingJniRuntime::GetInstance(),
- base::android::ScopedJavaGlobalRef<jobject>(env, caller)));
-}
-
} // namespace remoting
« remoting/client/jni/jni_client.cc ('K') | « remoting/client/jni/jni_display_handler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698