| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/android/network_change_notifier_delegate_android.h" | 5 #include "net/android/network_change_notifier_delegate_android.h" |
| 6 | 6 |
| 7 #include "base/android/jni_array.h" | 7 #include "base/android/jni_array.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "jni/NetworkChangeNotifier_jni.h" | 9 #include "jni/NetworkChangeNotifier_jni.h" |
| 10 #include "net/android/network_change_notifier_android.h" | 10 #include "net/android/network_change_notifier_android.h" |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 56 std::vector<int64_t> int64_list; | 56 std::vector<int64_t> int64_list; |
| 57 base::android::JavaLongArrayToInt64Vector(env, long_array, &int64_list); | 57 base::android::JavaLongArrayToInt64Vector(env, long_array, &int64_list); |
| 58 network_map->clear(); | 58 network_map->clear(); |
| 59 for (auto i = int64_list.begin(); i != int64_list.end(); ++i) { | 59 for (auto i = int64_list.begin(); i != int64_list.end(); ++i) { |
| 60 NetworkChangeNotifier::NetworkHandle network_handle = *i; | 60 NetworkChangeNotifier::NetworkHandle network_handle = *i; |
| 61 CHECK(++i != int64_list.end()); | 61 CHECK(++i != int64_list.end()); |
| 62 (*network_map)[network_handle] = static_cast<ConnectionType>(*i); | 62 (*network_map)[network_handle] = static_cast<ConnectionType>(*i); |
| 63 } | 63 } |
| 64 } | 64 } |
| 65 | 65 |
| 66 jdouble GetMaxBandwidthForConnectionSubtype(JNIEnv* env, | |
| 67 const JavaParamRef<jclass>& caller, | |
| 68 jint subtype) { | |
| 69 return NetworkChangeNotifierAndroid::GetMaxBandwidthForConnectionSubtype( | |
| 70 ConvertConnectionSubtype(subtype)); | |
| 71 } | |
| 72 | |
| 73 NetworkChangeNotifierDelegateAndroid::NetworkChangeNotifierDelegateAndroid() | 66 NetworkChangeNotifierDelegateAndroid::NetworkChangeNotifierDelegateAndroid() |
| 74 : observers_(new base::ObserverListThreadSafe<Observer>()) { | 67 : observers_(new base::ObserverListThreadSafe<Observer>()) { |
| 75 JNIEnv* env = base::android::AttachCurrentThread(); | 68 JNIEnv* env = base::android::AttachCurrentThread(); |
| 76 java_network_change_notifier_.Reset(Java_NetworkChangeNotifier_init(env)); | 69 java_network_change_notifier_.Reset(Java_NetworkChangeNotifier_init(env)); |
| 77 Java_NetworkChangeNotifier_addNativeObserver( | 70 Java_NetworkChangeNotifier_addNativeObserver( |
| 78 env, java_network_change_notifier_, reinterpret_cast<intptr_t>(this)); | 71 env, java_network_change_notifier_, reinterpret_cast<intptr_t>(this)); |
| 79 SetCurrentConnectionType( | 72 SetCurrentConnectionType( |
| 80 ConvertConnectionType(Java_NetworkChangeNotifier_getCurrentConnectionType( | 73 ConvertConnectionType(Java_NetworkChangeNotifier_getCurrentConnectionType( |
| 81 env, java_network_change_notifier_))); | 74 env, java_network_change_notifier_))); |
| 82 SetCurrentMaxBandwidth( | 75 SetCurrentMaxBandwidth( |
| 83 Java_NetworkChangeNotifier_getCurrentMaxBandwidthInMbps( | 76 NetworkChangeNotifierAndroid::GetMaxBandwidthForConnectionSubtype( |
| 84 env, java_network_change_notifier_)); | 77 GetCurrentConnectionSubtype())); |
| 85 SetCurrentDefaultNetwork(Java_NetworkChangeNotifier_getCurrentDefaultNetId( | 78 SetCurrentDefaultNetwork(Java_NetworkChangeNotifier_getCurrentDefaultNetId( |
| 86 env, java_network_change_notifier_)); | 79 env, java_network_change_notifier_)); |
| 87 NetworkMap network_map; | 80 NetworkMap network_map; |
| 88 ScopedJavaLocalRef<jlongArray> networks_and_types = | 81 ScopedJavaLocalRef<jlongArray> networks_and_types = |
| 89 Java_NetworkChangeNotifier_getCurrentNetworksAndTypes( | 82 Java_NetworkChangeNotifier_getCurrentNetworksAndTypes( |
| 90 env, java_network_change_notifier_); | 83 env, java_network_change_notifier_); |
| 91 JavaLongArrayToNetworkMap(env, networks_and_types.obj(), &network_map); | 84 JavaLongArrayToNetworkMap(env, networks_and_types.obj(), &network_map); |
| 92 SetCurrentNetworksAndTypes(network_map); | 85 SetCurrentNetworksAndTypes(network_map); |
| 93 } | 86 } |
| 94 | 87 |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 182 | 175 |
| 183 jint NetworkChangeNotifierDelegateAndroid::GetConnectionType(JNIEnv*, | 176 jint NetworkChangeNotifierDelegateAndroid::GetConnectionType(JNIEnv*, |
| 184 jobject) const { | 177 jobject) const { |
| 185 DCHECK(thread_checker_.CalledOnValidThread()); | 178 DCHECK(thread_checker_.CalledOnValidThread()); |
| 186 return GetCurrentConnectionType(); | 179 return GetCurrentConnectionType(); |
| 187 } | 180 } |
| 188 | 181 |
| 189 void NetworkChangeNotifierDelegateAndroid::NotifyMaxBandwidthChanged( | 182 void NetworkChangeNotifierDelegateAndroid::NotifyMaxBandwidthChanged( |
| 190 JNIEnv* env, | 183 JNIEnv* env, |
| 191 const JavaParamRef<jobject>& obj, | 184 const JavaParamRef<jobject>& obj, |
| 192 jdouble new_max_bandwidth) { | 185 jint subtype) { |
| 193 DCHECK(thread_checker_.CalledOnValidThread()); | 186 DCHECK(thread_checker_.CalledOnValidThread()); |
| 194 | 187 double new_max_bandwidth = |
| 188 NetworkChangeNotifierAndroid::GetMaxBandwidthForConnectionSubtype( |
| 189 ConvertConnectionSubtype(subtype)); |
| 195 SetCurrentMaxBandwidth(new_max_bandwidth); | 190 SetCurrentMaxBandwidth(new_max_bandwidth); |
| 196 observers_->Notify(FROM_HERE, &Observer::OnMaxBandwidthChanged, | 191 observers_->Notify(FROM_HERE, &Observer::OnMaxBandwidthChanged, |
| 197 new_max_bandwidth, GetCurrentConnectionType()); | 192 new_max_bandwidth, GetCurrentConnectionType()); |
| 198 } | 193 } |
| 199 | 194 |
| 200 void NetworkChangeNotifierDelegateAndroid::NotifyOfNetworkConnect( | 195 void NetworkChangeNotifierDelegateAndroid::NotifyOfNetworkConnect( |
| 201 JNIEnv* env, | 196 JNIEnv* env, |
| 202 const JavaParamRef<jobject>& obj, | 197 const JavaParamRef<jobject>& obj, |
| 203 jlong net_id, | 198 jlong net_id, |
| 204 jint connection_type) { | 199 jint connection_type) { |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 354 env, base::android::ToJavaLongArray(env, networks)); | 349 env, base::android::ToJavaLongArray(env, networks)); |
| 355 } | 350 } |
| 356 | 351 |
| 357 void NetworkChangeNotifierDelegateAndroid::FakeDefaultNetwork( | 352 void NetworkChangeNotifierDelegateAndroid::FakeDefaultNetwork( |
| 358 NetworkChangeNotifier::NetworkHandle network, | 353 NetworkChangeNotifier::NetworkHandle network, |
| 359 ConnectionType type) { | 354 ConnectionType type) { |
| 360 JNIEnv* env = base::android::AttachCurrentThread(); | 355 JNIEnv* env = base::android::AttachCurrentThread(); |
| 361 Java_NetworkChangeNotifier_fakeDefaultNetwork(env, network, type); | 356 Java_NetworkChangeNotifier_fakeDefaultNetwork(env, network, type); |
| 362 } | 357 } |
| 363 | 358 |
| 364 void NetworkChangeNotifierDelegateAndroid::FakeMaxBandwidthChanged( | 359 void NetworkChangeNotifierDelegateAndroid::FakeConnectionSubtypeChanged( |
| 365 double max_bandwidth_mbps) { | 360 ConnectionSubtype subtype) { |
| 366 JNIEnv* env = base::android::AttachCurrentThread(); | 361 JNIEnv* env = base::android::AttachCurrentThread(); |
| 367 Java_NetworkChangeNotifier_fakeMaxBandwidthChanged(env, max_bandwidth_mbps); | 362 Java_NetworkChangeNotifier_fakeConnectionSubtypeChanged(env, subtype); |
| 368 } | 363 } |
| 369 | 364 |
| 370 } // namespace net | 365 } // namespace net |
| OLD | NEW |