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

#include "base/android/jni_string.h"
#include "base/metrics/histogram_macros.h"
#include "jni/AnimationFrameTimeHistogram_jni.h"

using base::android::JavaParamRef;

// static
void JNI_AnimationFrameTimeHistogram_SaveHistogram(
    JNIEnv* env,
    const JavaParamRef<jobject>& jcaller,
    const JavaParamRef<jstring>& j_histogram_name,
    const JavaParamRef<jlongArray>& j_frame_times_ms,
    jint j_count) {
  jlong *frame_times_ms = env->GetLongArrayElements(j_frame_times_ms, NULL);
  std::string histogram_name = base::android::ConvertJavaStringToUTF8(
      env, j_histogram_name);

  for (int i = 0; i < j_count; ++i) {
    UMA_HISTOGRAM_TIMES(histogram_name.c_str(),
                        base::TimeDelta::FromMilliseconds(frame_times_ms[i]));
  }
}
