From dbe191d1f783e680b1f1159e823e1feadd4ea26d Mon Sep 17 00:00:00 2001 From: Kyle Fang Date: Tue, 14 Jul 2015 16:30:08 +0800 Subject: [PATCH] Add Contributor Screen --- app/screens/home_screen.rb | 56 ++++++++++++++++++++----------------- resources/avatar@2x | Bin 0 -> 7212 bytes 2 files changed, 30 insertions(+), 26 deletions(-) create mode 100644 resources/avatar@2x diff --git a/app/screens/home_screen.rb b/app/screens/home_screen.rb index b18fc20..33d7529 100644 --- a/app/screens/home_screen.rb +++ b/app/screens/home_screen.rb @@ -1,36 +1,40 @@ -class HomeScreen < PM::Screen - title "Your title here" +class HomeScreen < PM::TableScreen + + REQUEST_URL = 'https://api.github.com/repos/HipByte/RubyMotion/contributors' + + title "RubyMotion Contributors" + refreshable + searchable + stylesheet HomeScreenStylesheet def on_load - set_nav_bar_button :left, system_item: :camera, action: :nav_left_button - set_nav_bar_button :right, title: "Right", action: :nav_right_button - - @hello_world = append!(UILabel, :hello_world) + @contributors = [] + load_contributors end - def nav_left_button - mp 'Left button' + def table_data + [{ + cells: @contributors.map do |c| + { + title: c[:login], + subtitle: c[:url], + action: :mp, + arguments: { + url: c[:url] + } + } + end + }] end - def nav_right_button - mp 'Right button' + def load_contributors + AFMotion::JSON.get(REQUEST_URL) do |r| + @contributors = r.object + stop_refreshing + update_table_data + end end + alias_method :on_refresh, :load_contributors - # You don't have to reapply styles to all UIViews, if you want to optimize, another way to do it - # is tag the views you need to restyle in your stylesheet, then only reapply the tagged views, like so: - # def logo(st) - # st.frame = {t: 10, w: 200, h: 96} - # st.centered = :horizontal - # st.image = image.resource('logo') - # st.tag(:reapply_style) - # end - # - # Then in will_animate_rotate - # find(:reapply_style).reapply_styles# - - # Remove the following if you're only using portrait - def will_animate_rotate(orientation, duration) - find.all.reapply_styles - end end diff --git a/resources/avatar@2x b/resources/avatar@2x new file mode 100644 index 0000000000000000000000000000000000000000..a3d2456751ea7e1bef59c5122c5e227bce11681f GIT binary patch literal 7212 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