blob: 5ddb51afe08730a09ab72b759fbf5ecb3363093e [file] [log] [blame]
Devon Carew3798eaa2015-01-13 13:25:56 -08001// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2// for details. All rights reserved. Use of this source code is governed by a
3// BSD-style license that can be found in the LICENSE file.
4
Devon Carewc43617e2016-03-13 21:23:52 -07005/// A simple web app to hand-test the usage library.
Devon Carew3798eaa2015-01-13 13:25:56 -08006library usage_example;
7
Devon Carewc43617e2016-03-13 21:23:52 -07008import 'dart:async';
Devon Carew3798eaa2015-01-13 13:25:56 -08009import 'dart:html';
10
Devon Carewc43617e2016-03-13 21:23:52 -070011import 'package:usage/usage.dart';
Devon Carew3798eaa2015-01-13 13:25:56 -080012
13Analytics _analytics;
14String _lastUa;
15int _count = 0;
16
17void main() {
Devon Carewc43617e2016-03-13 21:23:52 -070018 querySelector('#foo').onClick.listen((_) => _handleFoo());
19 querySelector('#bar').onClick.listen((_) => _handleBar());
20 querySelector('#page').onClick.listen((_) => _changePage());
Devon Carew3798eaa2015-01-13 13:25:56 -080021}
22
23String _ua() => (querySelector('#ua') as InputElement).value.trim();
24
Devon Carewc43617e2016-03-13 21:23:52 -070025Future<Analytics> getAnalytics() async {
Devon Carew3798eaa2015-01-13 13:25:56 -080026 if (_analytics == null || _lastUa != _ua()) {
27 _lastUa = _ua();
Devon Carewc43617e2016-03-13 21:23:52 -070028 _analytics = await Analytics.create(_lastUa, 'Test app', '1.0');
Kasper Peulene614acc2015-12-31 05:19:17 +010029 _analytics.optIn = true;
Devon Carew3798eaa2015-01-13 13:25:56 -080030 _analytics.sendScreenView(window.location.pathname);
31 }
32
33 return _analytics;
34}
35
Devon Carewc43617e2016-03-13 21:23:52 -070036Future _handleFoo() async {
37 Analytics analytics = await getAnalytics();
Devon Carew3798eaa2015-01-13 13:25:56 -080038 analytics.sendEvent('main', 'foo');
39}
40
Devon Carewc43617e2016-03-13 21:23:52 -070041Future _handleBar() async {
42 Analytics analytics = await getAnalytics();
Devon Carew3798eaa2015-01-13 13:25:56 -080043 analytics.sendEvent('main', 'bar');
44}
45
Devon Carewc43617e2016-03-13 21:23:52 -070046Future _changePage() async {
47 Analytics analytics = await getAnalytics();
Devon Carew3798eaa2015-01-13 13:25:56 -080048 window.history.pushState(null, 'new page', '${++_count}.html');
49 analytics.sendScreenView(window.location.pathname);
50}