Deprecate ContextUtils.getApplicationContext.

Allows passing in the application context to NetworkMonitor in
startMonitoring. The audio code will refactored once it is moved under
sdk/android.

Bug: webrtc:8937
Change-Id: I50c917a845fc4f711899a97d34c04813cc68b68c
Reviewed-on: https://webrtc-review.googlesource.com/58091
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22231}
This commit is contained in:
Sami Kalliomäki
2018-02-27 16:43:13 +01:00
committed by Commit Bot
parent d2ed0a4c9e
commit 9ddc14daca
7 changed files with 75 additions and 16 deletions

View File

@ -17,6 +17,13 @@
namespace webrtc {
std::unique_ptr<rtc::NetworkMonitorFactory> CreateAndroidNetworkMonitorFactory(
JNIEnv* env,
jobject application_context) {
return rtc::MakeUnique<jni::AndroidNetworkMonitorFactory>(
env, JavaParamRef<jobject>(application_context));
}
std::unique_ptr<rtc::NetworkMonitorFactory>
CreateAndroidNetworkMonitorFactory() {
return rtc::MakeUnique<jni::AndroidNetworkMonitorFactory>();

View File

@ -11,6 +11,8 @@
#ifndef SDK_ANDROID_NATIVE_API_BASE_NETWORKMONITOR_H_
#define SDK_ANDROID_NATIVE_API_BASE_NETWORKMONITOR_H_
#include <jni.h>
#include <memory>
#include "rtc_base/networkmonitor.h"
@ -21,6 +23,11 @@ namespace webrtc {
// network changes as soon as they occur, requesting a cellular interface
// (dependent on permissions), and binding sockets to network interfaces (more
// reliable than binding to IP addresses on Android).
std::unique_ptr<rtc::NetworkMonitorFactory> CreateAndroidNetworkMonitorFactory(
JNIEnv* env,
jobject application_context);
// Deprecated. Pass in application context instead.
std::unique_ptr<rtc::NetworkMonitorFactory>
CreateAndroidNetworkMonitorFactory();

View File

@ -46,7 +46,7 @@ class JavaRef<jobject> {
}
protected:
JavaRef() : obj_(nullptr) {}
constexpr JavaRef() : obj_(nullptr) {}
explicit JavaRef(jobject obj) : obj_(obj) {}
jobject obj_;
@ -172,6 +172,7 @@ class ScopedJavaGlobalRef : public JavaRef<T> {
public:
using JavaRef<T>::obj_;
explicit constexpr ScopedJavaGlobalRef(std::nullptr_t) {}
ScopedJavaGlobalRef(JNIEnv* env, const JavaRef<T>& other)
: JavaRef<T>(static_cast<T>(env->NewGlobalRef(other.obj()))) {}
explicit ScopedJavaGlobalRef(const ScopedJavaLocalRef<T>& other)