examples: annotate examples
[nit.git] / lib / android / examples / src / ui_test.nit
1 # This file is part of NIT ( http://www.nitlanguage.org ).
2 #
3 # Copyright 2014 Alexis Laferrière <alexis.laf@xymus.net>
4 #
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 # http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16
17 # Test for app.nit's UI services
18 module ui_test is
19 example
20 app_name "app.nit UI test"
21 app_version(0, 1, git_revision)
22 app_namespace "org.nitlanguage.ui_test"
23 android_manifest_activity """android:theme="@android:style/Theme.Light""""
24 android_api_target 15
25 end
26
27 import android::ui
28 import android::toast
29 import android::notification
30
31 redef class App
32 redef fun on_create
33 do
34 self.window = new Window
35 super
36 end
37 end
38
39 redef class Window
40
41 private var layout = new VerticalLayout(parent=self)
42
43 private var but_notif = new Button(parent=layout, text="Show Notification")
44 private var but_toast = new Button(parent=layout, text="Show Toast")
45
46 private var notif: nullable Notification = null
47
48 init
49 do
50 but_notif.observers.add self
51 but_toast.observers.add self
52 end
53
54 # Action when pressing `but_notif`
55 fun act_notif
56 do
57 var notif = self.notif
58 if notif == null then
59 notif = new Notification("From app.nit", "Some content...")
60 notif.ticker = "Ticker text..."
61 notif.show
62 self.notif = notif
63 else
64 notif.cancel
65 self.notif = null
66 end
67 end
68
69 # Action when pressing `but_toast`
70 fun act_toast
71 do
72 app.toast("Sample toast from app.nit at {get_time}", false)
73 end
74
75 redef fun on_event(event)
76 do
77 print "on_event {event}"
78 if event isa ButtonPressEvent then
79 var sender = event.sender
80 if sender == but_notif then
81 act_notif
82 else if sender == but_toast then
83 act_toast
84 end
85 end
86 end
87 end