15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/android/base_jni_registrar.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "base/android/application_status_listener.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/android/build_info.h"
9f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/android/command_line_android.h"
10f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/android/content_uri_utils.h"
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/android/cpu_features.h"
12f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "base/android/event_log.h"
13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/android/field_trial_list.h"
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/android/important_file_writer_android.h"
15bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch#include "base/android/java_handler_thread.h"
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/android/jni_android.h"
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/android/jni_registrar.h"
1803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "base/android/jni_utils.h"
197d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "base/android/memory_pressure_listener_android.h"
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/android/path_service_android.h"
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/android/path_utils.h"
22eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/android/sys_utils.h"
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/android/thread_utils.h"
245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "base/android/trace_event_binding.h"
25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "base/basictypes.h"
26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "base/debug/trace_event.h"
277d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "base/message_loop/message_pump_android.h"
28a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "base/power_monitor/power_monitor_device_source_android.h"
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace base {
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace android {
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)static RegistrationMethod kBaseRegisteredMethods[] = {
34a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  { "ApplicationStatusListener",
35a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      base::android::ApplicationStatusListener::RegisterBindings },
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { "BuildInfo", base::android::BuildInfo::RegisterBindings },
37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  { "CommandLine", base::android::RegisterCommandLine },
38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  { "ContentUriUtils", base::RegisterContentUriUtils },
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  { "CpuFeatures", base::android::RegisterCpuFeatures },
40f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  { "EventLog", base::android::RegisterEventLog },
41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  { "FieldTrialList", base::android::RegisterFieldTrialList },
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  { "ImportantFileWriterAndroid",
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    base::android::RegisterImportantFileWriterAndroid },
4403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  { "JNIUtils", base::android::RegisterJNIUtils },
457d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  { "MemoryPressureListenerAndroid",
467d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)      base::android::MemoryPressureListenerAndroid::Register },
47bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch  { "JavaHandlerThread", base::android::JavaHandlerThread::RegisterBindings },
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { "PathService", base::android::RegisterPathService },
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { "PathUtils", base::android::RegisterPathUtils },
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { "SystemMessageHandler", base::MessagePumpForUI::RegisterBindings },
51eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  { "SysUtils", base::android::SysUtils::Register },
52c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  { "PowerMonitor", base::RegisterPowerMonitor },
532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  { "ThreadUtils", base::RegisterThreadUtils },
545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  { "TraceEvent", base::android::RegisterTraceEvent },
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool RegisterJni(JNIEnv* env) {
58c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  TRACE_EVENT0("startup", "base_android::RegisterJni");
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return RegisterNativeMethods(env, kBaseRegisteredMethods,
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                               arraysize(kBaseRegisteredMethods));
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace android
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace base
65