diff --git a/webrtc/base/BUILD.gn b/webrtc/base/BUILD.gn index 45f0718402..e94169d0ce 100644 --- a/webrtc/base/BUILD.gn +++ b/webrtc/base/BUILD.gn @@ -979,6 +979,7 @@ if (rtc_include_tests) { if (is_android) { android_library("base_java") { java_files = [ + "java/src/org/webrtc/ContextUtils.java", "java/src/org/webrtc/Logging.java", "java/src/org/webrtc/Size.java", "java/src/org/webrtc/ThreadUtils.java", diff --git a/webrtc/base/java/src/org/webrtc/ContextUtils.java b/webrtc/base/java/src/org/webrtc/ContextUtils.java new file mode 100644 index 0000000000..3b9a652fed --- /dev/null +++ b/webrtc/base/java/src/org/webrtc/ContextUtils.java @@ -0,0 +1,42 @@ +/* + * Copyright 2017 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +package org.webrtc; + +import android.content.Context; + +/** + * Class for storing the application context and retrieving it in a static context. Similar to + * org.chromium.base.ContextUtils. + */ +public class ContextUtils { + private static Context applicationContext; + + /** + * Stores the application context that will be returned by getApplicationContext. This is called + * by PeerConnectionFactory.initializeAndroidGlobals. + */ + public static void initialize(Context applicationContext) { + if (ContextUtils.applicationContext != null) { + throw new RuntimeException("Multiple ContextUtils.initialize calls."); + } + if (applicationContext == null) { + throw new RuntimeException("Application context cannot be null for ContextUtils.initialize."); + } + ContextUtils.applicationContext = applicationContext; + } + + /** + * Returns the stored application context. + */ + public static Context getApplicationContext() { + return applicationContext; + } +}