Index: net/android/network_change_notifier.cc |
diff --git a/net/android/network_change_notifier.cc b/net/android/network_change_notifier.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..460efd390a7dd868230d64b1b2d85cc0d1d6c205 |
--- /dev/null |
+++ b/net/android/network_change_notifier.cc |
@@ -0,0 +1,56 @@ |
+// Copyright (c) 2012 The Chromium 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 "net/android/network_change_notifier.h" |
+ |
+#include "base/logging.h" |
+#include "base/android/jni_android.h" |
+ |
+using net::android::NetworkChangeNotifier; |
+#include "jni/network_change_notifier_jni.h" |
Ryan Sleevi
2012/04/13 22:37:58
This seems like a cheap hack to avoid the "don't u
Yaron
2012/04/17 16:18:03
Hmm. So the header is auto-generated by the jni_ge
Ryan Sleevi
2012/04/17 17:56:06
Update the jni generator? ;)
|
+ |
+namespace net { |
+namespace android { |
+ |
+ |
Ryan Sleevi
2012/04/13 22:37:58
nit: delete this whitespace
Yaron
2012/04/17 16:18:03
Done.
|
+NetworkChangeNotifier::NetworkChangeNotifier() { |
+ JNIEnv* env = base::android::AttachCurrentThread(); |
+ CHECK(java_network_change_notifier_android_object_.is_null()); |
Ryan Sleevi
2012/04/13 22:37:58
Why CHECK here? You're in a constructor - how is t
Yaron
2012/04/17 16:18:03
Done.
|
+ CreateJavaObject(env); |
+} |
+ |
+NetworkChangeNotifier::~NetworkChangeNotifier() { |
+ CHECK(!java_network_change_notifier_android_object_.is_null()); |
Ryan Sleevi
2012/04/13 22:37:58
Unnecessary CHECK? This is also guaranteed.
Yaron
2012/04/17 16:18:03
Done.
|
+ JNIEnv* env = base::android::AttachCurrentThread(); |
+ Java_NetworkChangeNotifier_unregisterReceiver( |
+ env, java_network_change_notifier_android_object_.obj()); |
+ java_network_change_notifier_android_object_.Reset(); |
Ryan Sleevi
2012/04/13 22:37:58
Isn't this unnecessary and guaranteed by the destr
Yaron
2012/04/17 16:18:03
Done.
|
+} |
+ |
+void NetworkChangeNotifier::CreateJavaObject(JNIEnv* env) { |
+ java_network_change_notifier_android_object_.Reset( |
+ Java_NetworkChangeNotifier_create( |
+ env, |
+ base::android::GetApplicationContext(), |
+ reinterpret_cast<jint>(this))); |
+ CHECK(!java_network_change_notifier_android_object_.is_null()); |
Ryan Sleevi
2012/04/13 22:37:58
Do you really need to CHECK here? Would a DCHECK s
Yaron
2012/04/17 16:18:03
Done.
|
+} |
+ |
+void NetworkChangeNotifier::NotifyObservers(JNIEnv* env, jobject obj) { |
+ NotifyObserversOfOnlineStateChange(); |
+} |
+ |
+bool NetworkChangeNotifier::IsCurrentlyOffline() const { |
+ CHECK(!java_network_change_notifier_android_object_.is_null()); |
Ryan Sleevi
2012/04/13 22:37:58
And here
Yaron
2012/04/17 16:18:03
Done.
|
+ JNIEnv* env = base::android::AttachCurrentThread(); |
+ return !Java_NetworkChangeNotifier_isConnected( |
+ env, java_network_change_notifier_android_object_.obj()); |
+} |
+ |
+bool RegisterNetworkChangeNotifier(JNIEnv* env) { |
+ return RegisterNativesImpl(env); |
+} |
+ |
+} // namespace android |
+} // namespace net |