blob: 03f8495c8c45e54a2c09e1f1dd21fc3e4130515a [file] [log] [blame]
gunsch407189f2014-09-11 22:03:411// Copyright 2014 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
gunsch1863f662015-06-15 18:24:535#ifndef CHROMECAST_BASE_CHROMECAST_CONFIG_ANDROID_H_
6#define CHROMECAST_BASE_CHROMECAST_CONFIG_ANDROID_H_
gunsch407189f2014-09-11 22:03:417
8#include <jni.h>
9
10#include "base/callback.h"
11#include "base/lazy_instance.h"
12#include "base/macros.h"
13
14namespace chromecast {
15namespace android {
16
17class ChromecastConfigAndroid {
18 public:
19 static ChromecastConfigAndroid* GetInstance();
20
gunsch168c44ce2014-10-09 04:37:0621 // Returns whether or not the user has allowed sending usage stats and
22 // crash reports.
23 bool CanSendUsageStats();
24
gunsch407189f2014-09-11 22:03:4125 // Registers a handler to be notified when SendUsageStats is changed.
26 void SetSendUsageStatsChangedCallback(
jameswest90b8e5b22017-06-07 23:31:4227 base::RepeatingCallback<void(bool)> callback);
gunsch407189f2014-09-11 22:03:4128
jameswest90b8e5b22017-06-07 23:31:4229 void RunSendUsageStatsChangedCallback(bool enabled);
gunsch407189f2014-09-11 22:03:4130
31 private:
scottmg5e65e3a2017-03-08 08:48:4632 friend struct base::LazyInstanceTraitsBase<ChromecastConfigAndroid>;
gunsch407189f2014-09-11 22:03:4133
34 ChromecastConfigAndroid();
35 ~ChromecastConfigAndroid();
36
jameswest90b8e5b22017-06-07 23:31:4237 base::RepeatingCallback<void(bool)> send_usage_stats_changed_callback_;
gunsch407189f2014-09-11 22:03:4138
39 DISALLOW_COPY_AND_ASSIGN(ChromecastConfigAndroid);
40};
41
42} // namespace android
43} // namespace chromecast
44
gunsch1863f662015-06-15 18:24:5345#endif // CHROMECAST_BASE_CHROMECAST_CONFIG_ANDROID_H_