parser: regenerate with comments in line annotations
[nit.git] / contrib / tnitter / src / tnitter_app.nit
index dcbfffe..760af3d 100644 (file)
@@ -31,25 +31,14 @@ import app::ui
 import app::http_request
 import app::data_store
 import android::aware
-import json::serialization
+import json
 
 import model
 
 # Delay in seconds before the next request after an error
-fun request_delay_on_error: Int do return 60
+fun request_delay_on_error: Float do return 60.0
 
-redef class App
-       redef fun on_create
-       do
-               # Create the main window
-               window = new TnitterWindow
-               super
-       end
-end
-
-# Main window
-class TnitterWindow
-       super Window
+redef class Window
 
        private var layout = new VerticalLayout(parent=self)
        private var list_posts = new ListLayout(parent=layout)
@@ -73,8 +62,7 @@ class TnitterWindow
        # Update the screen to show the new `posts`
        fun apply_update(posts: Array[Post])
        do
-               layout.remove list_posts
-               list_posts = new ListLayout(parent=layout)
+               list_posts.clear
                for post in posts do
                        var line = new VerticalLayout(parent=list_posts)
                        var author = new LabelAuthor(parent=line, text="@"+post.user)
@@ -99,20 +87,14 @@ fun tnitter_server_uri: String do return "http://localhost:8080"
 abstract class AsyncTnitterRequest
        super AsyncHttpRequest
 
-       private var window: TnitterWindow
+       private var window: Window
 
-       redef fun rest_server_uri do return tnitter_server_uri
+       redef fun uri_root do return tnitter_server_uri
 
-       redef var rest_action
+       redef var uri_tail
 
        # Should this request be delayed by `request_delay_on_error` seconds?
-       var delay: Bool
-
-       redef fun main
-       do
-               if delay then nanosleep(request_delay_on_error, 0)
-               return super
-       end
+       fun after_error(value: Bool) is autoinit do if value then delay = request_delay_on_error
 end
 
 # Async request to list latest posts, either immediately or by push notification
@@ -127,11 +109,11 @@ end
 class ListPostRequest
        super AsyncTnitterRequest
 
-       redef fun on_load(posts)
+       redef fun on_load(posts, status)
        do
                # Deal with server-side errors
                if posts isa Error then
-                       print_error "Server Error: '{posts.message}' from '{rest_server_uri / rest_action}'"
+                       print_error "Server Error: '{posts.message}' from '{uri}'"
                        return
                end
 
@@ -148,7 +130,7 @@ class ListPostRequest
 
        redef fun on_fail(error)
        do
-               print "Warning: Request {rest_server_uri/rest_action} failed with {error}"
+               print "Warning: Request {uri} failed with {error}"
                window.request_full_list_on_error
        end
 end