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
3// found in the LICENSE file.
4
5#include "base/android/base_jni_registrar.h"
6
7#include "base/android/activity_status.h"
8#include "base/android/build_info.h"
9#include "base/android/command_line_android.h"
10#include "base/android/content_uri_utils.h"
11#include "base/android/cpu_features.h"
12#include "base/android/important_file_writer_android.h"
13#include "base/android/java_handler_thread.h"
14#include "base/android/jni_android.h"
15#include "base/android/jni_registrar.h"
16#include "base/android/memory_pressure_listener_android.h"
17#include "base/android/path_service_android.h"
18#include "base/android/path_utils.h"
19#include "base/android/sys_utils.h"
20#include "base/android/thread_utils.h"
21#include "base/basictypes.h"
22#include "base/debug/trace_event.h"
23#include "base/message_loop/message_pump_android.h"
24#include "base/power_monitor/power_monitor_device_source_android.h"
25
26#if defined(GOOGLE_TV)
27#include "base/android/context_types.h"
28#endif
29
30namespace base {
31namespace android {
32
33static RegistrationMethod kBaseRegisteredMethods[] = {
34  { "ActivityStatus", base::android::ActivityStatus::RegisterBindings },
35  { "BuildInfo", base::android::BuildInfo::RegisterBindings },
36  { "CommandLine", base::android::RegisterCommandLine },
37#if defined(GOOGLE_TV)
38  { "ContextTypes", base::android::RegisterContextTypes },
39#endif
40  { "ContentUriUtils", base::RegisterContentUriUtils },
41  { "CpuFeatures", base::android::RegisterCpuFeatures },
42  { "ImportantFileWriterAndroid",
43    base::android::RegisterImportantFileWriterAndroid },
44  { "MemoryPressureListenerAndroid",
45      base::android::MemoryPressureListenerAndroid::Register },
46  { "JavaHandlerThread", base::android::JavaHandlerThread::RegisterBindings },
47  { "PathService", base::android::RegisterPathService },
48  { "PathUtils", base::android::RegisterPathUtils },
49  { "SystemMessageHandler", base::MessagePumpForUI::RegisterBindings },
50  { "SysUtils", base::android::SysUtils::Register },
51  { "PowerMonitor", base::RegisterPowerMonitor },
52  { "ThreadUtils", base::RegisterThreadUtils },
53};
54
55bool RegisterJni(JNIEnv* env) {
56  TRACE_EVENT0("startup", "base_android::RegisterJni");
57  return RegisterNativeMethods(env, kBaseRegisteredMethods,
58                               arraysize(kBaseRegisteredMethods));
59}
60
61}  // namespace android
62}  // namespace base
63