// Copyright 2014 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 "content/browser/time_zone_monitor_android.h"

#include "base/android/jni_android.h"
#include "jni/TimeZoneMonitor_jni.h"

namespace content {

TimeZoneMonitorAndroid::TimeZoneMonitorAndroid() : TimeZoneMonitor() {
  impl_.Reset(Java_TimeZoneMonitor_getInstance(
      base::android::AttachCurrentThread(),
      base::android::GetApplicationContext(),
      reinterpret_cast<intptr_t>(this)));
}

TimeZoneMonitorAndroid::~TimeZoneMonitorAndroid() {
  Java_TimeZoneMonitor_stop(base::android::AttachCurrentThread(), impl_.obj());
}

// static
bool TimeZoneMonitorAndroid::Register(JNIEnv* env) {
  return RegisterNativesImpl(env);
}

void TimeZoneMonitorAndroid::TimeZoneChangedFromJava(JNIEnv* env,
                                                     jobject caller) {
  NotifyRenderers();
}

// static
scoped_ptr<TimeZoneMonitor> TimeZoneMonitor::Create() {
  return scoped_ptr<TimeZoneMonitor>(new TimeZoneMonitorAndroid());
}

}  // namespace content
