Merge commit 'upstream/0.2.8'
[debian/pino.git] / src / status_view_list.vala
1 /* status_view_list.vala
2  *
3  * Copyright (C) 2009-2010  troorl
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU Lesser General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public License
16  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
17  *
18  * Author:
19  *      troorl <troorl@gmail.com>
20  */
21
22 using Gtk;
23 using Auth;
24 using RestAPI;
25 using Gee;
26 using Xml;
27
28 public class StatusViewList : TimelineList {
29         
30         public StatusViewList(Window _parent, Accounts _accounts, Status status,
31                 Template _template) {
32                 
33                 base(_parent, _accounts, TimelineType.HOME, _template, 0, null);
34                 lst.add(status);
35                 
36                 need_more_button = false; //no "more" button
37         }
38         
39         private override void get_older(){}
40         
41         public override ArrayList<Status>? update() {
42                 refresh();
43                 
44                 int deep = 8;
45                 for(int i = 0; i < deep; i++) {
46                         if(lst.get(0).to_status_id == "")
47                                 break;
48                         
49                         try {
50                                 Status status = api.get_status(lst.get(0).to_status_id);
51                                 lst.insert(0, status);
52                         } catch(RestError e) {
53                                 updating_error(e.message);
54                                 return lst;
55                         } catch(ParseError e) {
56                                 updating_error(e.message);
57                                 return lst;
58                         }
59                         
60                         refresh();
61                 }
62                 
63                 return lst;
64         }
65         
66 }