blob: 65c3d8870e6f36287e5286822c7c96ba262dd88c [file] [log] [blame]
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "base/android/jni_android.h"
#include "base/android/jni_string.h"
#include "base/android/scoped_java_ref.h"
#include "base/strings/strcat.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/flags/android/chrome_feature_list.h"
#include "components/metrics/metrics_service.h"
// Must come after all headers that specialize FromJniType() / ToJniType().
#include "chrome/browser/readaloud/android/features_jni_headers/ReadAloudFeatures_jni.h"
using base::android::ConvertJavaStringToUTF8;
using base::android::ConvertUTF8ToJavaString;
using base::android::JavaParamRef;
using base::android::ScopedJavaLocalRef;
namespace readaloud {
ScopedJavaLocalRef<jstring> JNI_ReadAloudFeatures_GetMetricsId(JNIEnv* env) {
if (g_browser_process && g_browser_process->metrics_service()) {
return ConvertUTF8ToJavaString(
env, g_browser_process->metrics_service()->GetClientId());
}
return ConvertUTF8ToJavaString(env, "");
}
ScopedJavaLocalRef<jstring> JNI_ReadAloudFeatures_GetServerExperimentFlag(
JNIEnv* env) {
base::FieldTrial* trial =
base::FeatureList::GetInstance()->GetAssociatedFieldTrialByFeatureName(
chrome::android::kReadAloudServerExperiments.name);
if (!trial) {
return ConvertUTF8ToJavaString(env, "");
}
return ConvertUTF8ToJavaString(
env, base::StrCat({trial->trial_name(), "_", trial->group_name()}));
}
} // namespace readaloud