blob: ac8c89fb44cd8a01c6fc9da3fe8dd27a866fab3e [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.
#ifndef COMPONENTS_DATA_SHARING_PUBLIC_ANDROID_CONVERSION_UTILS_H_
#define COMPONENTS_DATA_SHARING_PUBLIC_ANDROID_CONVERSION_UTILS_H_
#include <set>
#include "base/android/jni_android.h"
#include "base/android/scoped_java_ref.h"
#include "components/data_sharing/public/data_sharing_network_loader.h"
#include "components/data_sharing/public/group_data.h"
using base::android::ScopedJavaLocalRef;
namespace data_sharing::conversion {
// Creates an object of org.chromium.components.data_sharing.GroupMember.
ScopedJavaLocalRef<jobject> CreateJavaGroupMember(JNIEnv* env,
const GroupMember& member);
// Creates an object of org.chromium.components.data_sharing.GroupToken.
ScopedJavaLocalRef<jobject> CreateJavaGroupToken(JNIEnv* env,
const GroupToken& token);
// Creates an object of org.chromium.components.data_sharing.GroupData.
ScopedJavaLocalRef<jobject> CreateJavaGroupData(JNIEnv* env,
const GroupData& group_data);
ScopedJavaLocalRef<jobjectArray> CreateGroupedDataArray(
JNIEnv* env,
const std::set<GroupData>& data);
// Creates an object of
// org.chromium.components.data_sharing.SharedTabGroupPreview.
ScopedJavaLocalRef<jobject> CreateJavaSharedTabGroupPreview(
JNIEnv* env,
const SharedTabGroupPreview& preview);
ScopedJavaLocalRef<jobject> CreateDataSharingNetworkResult(
JNIEnv* env,
DataSharingNetworkLoader::LoadResult* response);
} // namespace data_sharing::conversion
#endif // COMPONENTS_DATA_SHARING_PUBLIC_ANDROID_CONVERSION_UTILS_H_