Skip to content

Commit cabfd2c

Browse files
committed
feat(Timeline): error handling in async
1 parent 184380e commit cabfd2c

1 file changed

Lines changed: 27 additions & 30 deletions

File tree

src/Views/Timeline.vala

Lines changed: 27 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -220,41 +220,38 @@ public class Tuba.Views.Timeline : AccountHolder, Streamable, Views.ContentBase
220220
if (page_next == null)
221221
req.add_parameter ("limit", settings.timeline_page_size.clamp (this.batch_size_min, 40).to_string ());
222222

223-
request_async.begin (req, (obj, res) => {
224-
try {
225-
request_async.end (res);
226-
} catch (GLib.Error e) {
227-
if (e is GLib.IOError.CANCELLED) {
228-
debug ("Message is cancelled.");
229-
return;
230-
}
231-
232-
on_error (e.code, e.message);
233-
}
234-
});
235-
223+
request_async.begin (req);
236224
return GLib.Source.REMOVE;
237225
}
238226

239-
private async void request_async (RequestV2 req) throws Error, Oopsie {
227+
private async void request_async (RequestV2 req) {
240228
GLib.InputStream in_stream;
241229
Soup.MessageHeaders response_headers;
242-
yield req.exec (out in_stream, out response_headers);
243-
244-
var parser = yield Network.get_parser_from_inputstream_async (in_stream);
245-
Object[] to_add = {};
246-
Network.parse_array (parser, node => {
247-
var e = Helper.Entity.from_json (node, accepts);
248-
if (!(should_hide (e))) to_add += e;
249-
});
250-
model.splice (model.get_n_items (), 0, to_add);
251-
252-
if (response_headers != null)
253-
get_pages (response_headers.get_one ("Link"));
254-
255-
if (to_add.length == 0)
256-
on_content_changed ();
257-
on_request_finish ();
230+
231+
try {
232+
yield req.exec (out in_stream, out response_headers);
233+
Json.Parser parser = yield Network.get_parser_from_inputstream_async (in_stream);
234+
235+
Object[] to_add = {};
236+
Network.parse_array (parser, node => {
237+
var e = Helper.Entity.from_json (node, accepts);
238+
if (!(should_hide (e))) to_add += e;
239+
});
240+
model.splice (model.get_n_items (), 0, to_add);
241+
242+
if (response_headers != null)
243+
get_pages (response_headers.get_one ("Link"));
244+
245+
if (to_add.length == 0)
246+
on_content_changed ();
247+
on_request_finish ();
248+
} catch (GLib.Error e) {
249+
if (e is GLib.IOError.CANCELLED) {
250+
debug ("Message is cancelled.");
251+
} else {
252+
on_error (e.code, e.message);
253+
}
254+
}
258255
}
259256

260257
public override void on_error (int32 code, string reason) {

0 commit comments

Comments
 (0)