// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.


// This file is autogenerated by
//     third_party/jni_zero/jni_generator.py
// For
//     android/net/connectivity/org/chromium/base/ApplicationStatus

#ifndef android_net_connectivity_org_chromium_base_ApplicationStatus_JNI
#define android_net_connectivity_org_chromium_base_ApplicationStatus_JNI

#include <jni.h>

#include "third_party/jni_zero/jni_export.h"
#include "third_party/jni_zero/jni_zero_helper.h"


// Step 1: Forward declarations.

JNI_ZERO_COMPONENT_BUILD_EXPORT extern const char
    kClassPath_android_net_connectivity_org_chromium_base_ApplicationStatus[];
const char kClassPath_android_net_connectivity_org_chromium_base_ApplicationStatus[] =
    "android/net/connectivity/org/chromium/base/ApplicationStatus";
// Leaking this jclass as we cannot use LazyInstance from some threads.
JNI_ZERO_COMPONENT_BUILD_EXPORT std::atomic<jclass>
    g_android_net_connectivity_org_chromium_base_ApplicationStatus_clazz(nullptr);
#ifndef android_net_connectivity_org_chromium_base_ApplicationStatus_clazz_defined
#define android_net_connectivity_org_chromium_base_ApplicationStatus_clazz_defined
inline jclass android_net_connectivity_org_chromium_base_ApplicationStatus_clazz(JNIEnv* env) {
  return base::android::LazyGetClass(env,
      kClassPath_android_net_connectivity_org_chromium_base_ApplicationStatus,
      &g_android_net_connectivity_org_chromium_base_ApplicationStatus_clazz);
}
#endif


// Step 2: Constants (optional).


// Step 3: Method stubs.
namespace base {
namespace android {

static void JNI_ApplicationStatus_OnApplicationStateChange(JNIEnv* env, jint newState);

JNI_BOUNDARY_EXPORT void Java_android_net_connectivity_J_N_Mfrpejoi(
    JNIEnv* env,
    jclass jcaller,
    jint newState) {
  return JNI_ApplicationStatus_OnApplicationStateChange(env, newState);
}


static std::atomic<jmethodID>
    g_android_net_connectivity_org_chromium_base_ApplicationStatus_getStateForApplication0(nullptr);
static jint Java_ApplicationStatus_getStateForApplication(JNIEnv* env) {
  jclass clazz = android_net_connectivity_org_chromium_base_ApplicationStatus_clazz(env);
  CHECK_CLAZZ(env, clazz,
      android_net_connectivity_org_chromium_base_ApplicationStatus_clazz(env), 0);

  jni_generator::JniJavaCallContextChecked call_context;
  call_context.Init<
      base::android::MethodID::TYPE_STATIC>(
          env,
          clazz,
          "getStateForApplication",
          "()I",
          &g_android_net_connectivity_org_chromium_base_ApplicationStatus_getStateForApplication0);

  jint ret =
      env->CallStaticIntMethod(clazz,
          call_context.base.method_id);
  return ret;
}

static std::atomic<jmethodID>
    g_android_net_connectivity_org_chromium_base_ApplicationStatus_hasVisibleActivities0(nullptr);
static jboolean Java_ApplicationStatus_hasVisibleActivities(JNIEnv* env) {
  jclass clazz = android_net_connectivity_org_chromium_base_ApplicationStatus_clazz(env);
  CHECK_CLAZZ(env, clazz,
      android_net_connectivity_org_chromium_base_ApplicationStatus_clazz(env), false);

  jni_generator::JniJavaCallContextChecked call_context;
  call_context.Init<
      base::android::MethodID::TYPE_STATIC>(
          env,
          clazz,
          "hasVisibleActivities",
          "()Z",
          &g_android_net_connectivity_org_chromium_base_ApplicationStatus_hasVisibleActivities0);

  jboolean ret =
      env->CallStaticBooleanMethod(clazz,
          call_context.base.method_id);
  return ret;
}

static std::atomic<jmethodID>
    g_android_net_connectivity_org_chromium_base_ApplicationStatus_registerThreadSafeNativeApplicationStateListener0(nullptr);
static void Java_ApplicationStatus_registerThreadSafeNativeApplicationStateListener(JNIEnv* env) {
  jclass clazz = android_net_connectivity_org_chromium_base_ApplicationStatus_clazz(env);
  CHECK_CLAZZ(env, clazz,
      android_net_connectivity_org_chromium_base_ApplicationStatus_clazz(env));

  jni_generator::JniJavaCallContextChecked call_context;
  call_context.Init<
      base::android::MethodID::TYPE_STATIC>(
          env,
          clazz,
          "registerThreadSafeNativeApplicationStateListener",
          "()V",
&g_android_net_connectivity_org_chromium_base_ApplicationStatus_registerThreadSafeNativeApplicationStateListener0);

     env->CallStaticVoidMethod(clazz,
          call_context.base.method_id);
}

}  // namespace android
}  // namespace base

#endif  // android_net_connectivity_org_chromium_base_ApplicationStatus_JNI
