blob: 1fb4d9e5d3c12fcab5201808387c8cc119bde9b6 [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
7#include "base/android/context_utils.h"
8#include "content/public/browser/browser_thread.h"
9#include "jni/SnippetsLauncher_jni.h"
10
11using content::BrowserThread;
12
13namespace {
14
15base::LazyInstance<NTPSnippetsLauncher> g_snippets_launcher =
16 LAZY_INSTANCE_INITIALIZER;
17
18} // namespace
19
20// static
21NTPSnippetsLauncher* NTPSnippetsLauncher::Get() {
22 DCHECK_CURRENTLY_ON(BrowserThread::UI);
23 return g_snippets_launcher.Pointer();
24}
25
treibd403b8f2016-09-22 09:17:1926bool NTPSnippetsLauncher::Schedule(base::TimeDelta period_wifi,
treibf8d45bd2016-09-27 09:17:0127 base::TimeDelta period_fallback) {
treibe6aa5c32016-02-25 15:44:4028 DCHECK_CURRENTLY_ON(BrowserThread::UI);
29
30 JNIEnv* env = base::android::AttachCurrentThread();
treibf8d45bd2016-09-27 09:17:0131 return Java_SnippetsLauncher_schedule(env, java_launcher_,
32 period_wifi.InSeconds(),
33 period_fallback.InSeconds());
treibe6aa5c32016-02-25 15:44:4034}
35
36bool NTPSnippetsLauncher::Unschedule() {
37 DCHECK_CURRENTLY_ON(BrowserThread::UI);
38
39 JNIEnv* env = base::android::AttachCurrentThread();
torne948f3662016-08-16 15:10:4440 return Java_SnippetsLauncher_unschedule(env, java_launcher_);
treibe6aa5c32016-02-25 15:44:4041}
42
43NTPSnippetsLauncher::NTPSnippetsLauncher() {
44 DCHECK_CURRENTLY_ON(BrowserThread::UI);
45
46 JNIEnv* env = base::android::AttachCurrentThread();
47 java_launcher_.Reset(Java_SnippetsLauncher_create(
48 env, base::android::GetApplicationContext()));
49}
50
51NTPSnippetsLauncher::~NTPSnippetsLauncher() {
52 DCHECK_CURRENTLY_ON(BrowserThread::UI);
53
54 JNIEnv* env = base::android::AttachCurrentThread();
torne948f3662016-08-16 15:10:4455 Java_SnippetsLauncher_destroy(env, java_launcher_);
treibe6aa5c32016-02-25 15:44:4056 java_launcher_.Reset();
57}