#ifndef CHROME_BROWSER_ANDROID_RLZ_RLZ_PING_HANDLER_H_
#define CHROME_BROWSER_ANDROID_RLZ_RLZ_PING_HANDLER_H_
#include <jni.h>
#include <memory>
#include <optional>
#include <string>
#include "base/android/scoped_java_ref.h"
#include "base/memory/scoped_refptr.h"
class Profile;
namespace network {
class SimpleURLLoader;
class SharedURLLoaderFactory;
}
namespace chrome {
namespace android {
class RlzPingHandler {
public:
explicit RlzPingHandler(Profile* profile);
RlzPingHandler(const RlzPingHandler&) = delete;
RlzPingHandler& operator=(const RlzPingHandler&) = delete;
~RlzPingHandler();
void Ping(const base::android::JavaParamRef<jstring>& j_brand,
const base::android::JavaParamRef<jstring>& j_language,
const base::android::JavaParamRef<jstring>& j_events,
const base::android::JavaParamRef<jstring>& j_id,
const base::android::JavaParamRef<jobject>& j_callback);
private:
void OnSimpleLoaderComplete(std::optional<std::string> response_body);
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_;
std::unique_ptr<network::SimpleURLLoader> simple_url_loader_;
base::android::ScopedJavaGlobalRef<jobject> j_callback_;
};
}
}
#endif