blob: b247680058840d64886fcede7467e8a2fefdf793 [file] [log] [blame]
treibe6aa5c32016-02-25 15:44:401// Copyright 2016 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
markusheintzbaff8be2016-03-18 14:55:145#include "chrome/browser/android/ntp/ntp_snippets_launcher.h"
treibe6aa5c32016-02-25 15:44:406
treibe6aa5c32016-02-25 15:44:407#include "content/public/browser/browser_thread.h"
8#include "jni/SnippetsLauncher_jni.h"
9
10using content::BrowserThread;
11
12namespace {
13
scottmg5e65e3a2017-03-08 08:48:4614base::LazyInstance<NTPSnippetsLauncher>::DestructorAtExit g_snippets_launcher =
treibe6aa5c32016-02-25 15:44:4015 LAZY_INSTANCE_INITIALIZER;
16
17} // namespace
18
19// static
20NTPSnippetsLauncher* NTPSnippetsLauncher::Get() {
21 DCHECK_CURRENTLY_ON(BrowserThread::UI);
22 return g_snippets_launcher.Pointer();
23}
24
treibd403b8f2016-09-22 09:17:1925bool NTPSnippetsLauncher::Schedule(base::TimeDelta period_wifi,
treibf8d45bd2016-09-27 09:17:0126 base::TimeDelta period_fallback) {
treibe6aa5c32016-02-25 15:44:4027 DCHECK_CURRENTLY_ON(BrowserThread::UI);
28
29 JNIEnv* env = base::android::AttachCurrentThread();
treibf8d45bd2016-09-27 09:17:0130 return Java_SnippetsLauncher_schedule(env, java_launcher_,
31 period_wifi.InSeconds(),
32 period_fallback.InSeconds());
treibe6aa5c32016-02-25 15:44:4033}
34
35bool NTPSnippetsLauncher::Unschedule() {
36 DCHECK_CURRENTLY_ON(BrowserThread::UI);
37
38 JNIEnv* env = base::android::AttachCurrentThread();
torne948f3662016-08-16 15:10:4439 return Java_SnippetsLauncher_unschedule(env, java_launcher_);
treibe6aa5c32016-02-25 15:44:4040}
41
jkrcal2f0617982017-04-07 18:37:0942bool NTPSnippetsLauncher::IsOnUnmeteredConnection() {
43 DCHECK_CURRENTLY_ON(BrowserThread::UI);
44
45 JNIEnv* env = base::android::AttachCurrentThread();
46 return Java_SnippetsLauncher_isOnUnmeteredConnection(env, java_launcher_);
47}
48
treibe6aa5c32016-02-25 15:44:4049NTPSnippetsLauncher::NTPSnippetsLauncher() {
50 DCHECK_CURRENTLY_ON(BrowserThread::UI);
51
52 JNIEnv* env = base::android::AttachCurrentThread();
wnwen95d6e7202017-04-06 14:09:4053 java_launcher_.Reset(Java_SnippetsLauncher_create(env));
treibe6aa5c32016-02-25 15:44:4054}
55
56NTPSnippetsLauncher::~NTPSnippetsLauncher() {
57 DCHECK_CURRENTLY_ON(BrowserThread::UI);
58
59 JNIEnv* env = base::android::AttachCurrentThread();
torne948f3662016-08-16 15:10:4460 Java_SnippetsLauncher_destroy(env, java_launcher_);
treibe6aa5c32016-02-25 15:44:4061 java_launcher_.Reset();
62}