blob: b247680058840d64886fcede7467e8a2fefdf793 [file] [log] [blame]
// Copyright 2016 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 "chrome/browser/android/ntp/ntp_snippets_launcher.h"
#include "content/public/browser/browser_thread.h"
#include "jni/SnippetsLauncher_jni.h"
using content::BrowserThread;
namespace {
base::LazyInstance<NTPSnippetsLauncher>::DestructorAtExit g_snippets_launcher =
LAZY_INSTANCE_INITIALIZER;
} // namespace
// static
NTPSnippetsLauncher* NTPSnippetsLauncher::Get() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
return g_snippets_launcher.Pointer();
}
bool NTPSnippetsLauncher::Schedule(base::TimeDelta period_wifi,
base::TimeDelta period_fallback) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
JNIEnv* env = base::android::AttachCurrentThread();
return Java_SnippetsLauncher_schedule(env, java_launcher_,
period_wifi.InSeconds(),
period_fallback.InSeconds());
}
bool NTPSnippetsLauncher::Unschedule() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
JNIEnv* env = base::android::AttachCurrentThread();
return Java_SnippetsLauncher_unschedule(env, java_launcher_);
}
bool NTPSnippetsLauncher::IsOnUnmeteredConnection() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
JNIEnv* env = base::android::AttachCurrentThread();
return Java_SnippetsLauncher_isOnUnmeteredConnection(env, java_launcher_);
}
NTPSnippetsLauncher::NTPSnippetsLauncher() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
JNIEnv* env = base::android::AttachCurrentThread();
java_launcher_.Reset(Java_SnippetsLauncher_create(env));
}
NTPSnippetsLauncher::~NTPSnippetsLauncher() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
JNIEnv* env = base::android::AttachCurrentThread();
Java_SnippetsLauncher_destroy(env, java_launcher_);
java_launcher_.Reset();
}