| // 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. | 
 |  | 
 | #ifndef CHROMECAST_BASE_CHROMECAST_CONFIG_ANDROID_H_ | 
 | #define CHROMECAST_BASE_CHROMECAST_CONFIG_ANDROID_H_ | 
 |  | 
 | #include <jni.h> | 
 |  | 
 | #include "base/callback.h" | 
 | #include "base/lazy_instance.h" | 
 | #include "base/macros.h" | 
 |  | 
 | namespace chromecast { | 
 | namespace android { | 
 |  | 
 | class ChromecastConfigAndroid { | 
 |  public: | 
 |   static ChromecastConfigAndroid* GetInstance(); | 
 |   static bool RegisterJni(JNIEnv* env); | 
 |  | 
 |   // Returns whether or not the user has allowed sending usage stats and | 
 |   // crash reports. | 
 |   bool CanSendUsageStats(); | 
 |  | 
 |   // Registers a handler to be notified when SendUsageStats is changed. | 
 |   void SetSendUsageStatsChangedCallback( | 
 |       const base::Callback<void(bool)>& callback); | 
 |  | 
 |   const base::Callback<void(bool)>& send_usage_stats_changed_callback() const { | 
 |     return send_usage_stats_changed_callback_; | 
 |   } | 
 |  | 
 |  private: | 
 |   friend struct base::DefaultLazyInstanceTraits<ChromecastConfigAndroid>; | 
 |  | 
 |   ChromecastConfigAndroid(); | 
 |   ~ChromecastConfigAndroid(); | 
 |  | 
 |   base::Callback<void(bool)> send_usage_stats_changed_callback_; | 
 |  | 
 |   DISALLOW_COPY_AND_ASSIGN(ChromecastConfigAndroid); | 
 | }; | 
 |  | 
 | }  // namespace android | 
 | }  // namespace chromecast | 
 |  | 
 | #endif  // CHROMECAST_BASE_CHROMECAST_CONFIG_ANDROID_H_ |