ruboto 1.1.2 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +5 -6
  3. data/RELEASE_CANDICATE_DOC.md +5 -3
  4. data/RELEASE_DOC.md +32 -11
  5. data/Rakefile +86 -36
  6. data/assets/rakelib/ruboto.rake +33 -14
  7. data/assets/rakelib/ruboto.stdlib.rake +1 -1
  8. data/assets/res/layout/get_ruboto_core.xml +1 -2
  9. data/assets/src/RubotoService.java +19 -2
  10. data/assets/src/org/ruboto/JRubyAdapter.java +4 -0
  11. data/assets/src/org/ruboto/SplashActivity.java +17 -17
  12. data/assets/src/ruboto/base.rb +13 -4
  13. data/assets/src/ruboto/package.rb +12 -3
  14. data/assets/src/ruboto/service.rb +45 -8
  15. data/assets/src/ruboto/widget.rb +82 -39
  16. data/assets/test/src/test_helper.rb +4 -0
  17. data/lib/ruboto/commands/base.rb +29 -17
  18. data/lib/ruboto/sdk_versions.rb +1 -1
  19. data/lib/ruboto/util/emulator.rb +49 -33
  20. data/lib/ruboto/util/setup.rb +5 -1
  21. data/lib/ruboto/util/update.rb +68 -22
  22. data/lib/ruboto/util/xml_element.rb +5 -3
  23. data/lib/ruboto/version.rb +1 -1
  24. data/test/activity/call_super_activity.rb +2 -2
  25. data/test/activity/constants_activity.rb +51 -0
  26. data/test/activity/constants_activity_test.rb +18 -0
  27. data/test/activity/margins_activity.rb +12 -7
  28. data/test/activity/margins_activity_test.rb +10 -6
  29. data/test/activity/padding_activity.rb +15 -0
  30. data/test/activity/padding_activity_test.rb +41 -0
  31. data/test/activity/rss_activity.rb +42 -0
  32. data/test/activity/rss_activity_test.rb +35 -0
  33. data/test/activity/spinner_activity.rb +5 -5
  34. data/test/activity/spinner_activity_test.rb +6 -6
  35. data/test/activity/stack_activity.rb +7 -8
  36. data/test/activity/stack_activity_test.rb +7 -5
  37. data/test/activity/subclass_activity.rb +5 -5
  38. data/test/activity/subclass_activity_test.rb +8 -6
  39. data/test/app_test_methods.rb +8 -0
  40. data/test/arjdbc_test.rb +1 -1
  41. data/test/minimal_app_test.rb +12 -10
  42. data/test/rake_test.rb +2 -4
  43. data/test/ruboto_gen_test.rb +11 -9
  44. data/test/service_block_test.rb +112 -0
  45. data/test/{service_test.rb → service_gen_class_test.rb} +9 -4
  46. data/test/service_infile_class_test.rb +114 -0
  47. data/test/sqldroid_test.rb +1 -1
  48. data/test/test_helper.rb +39 -21
  49. metadata +11 -7
@@ -232,9 +232,11 @@ module Ruboto
232
232
  def service_super_guard(class_name, method_name)
233
233
  if class_name == 'RubotoService'
234
234
  if method_name == 'onCreate'
235
- 'preOnCreate();'
236
- elsif method_name == 'onStartCommand' || method_name == 'onBind'
237
- '' # Trigger adding of load_script
235
+ "preOnCreate();\n"
236
+ elsif method_name == 'onStartCommand'
237
+ "preOnStartCommand(intent);\n"
238
+ elsif method_name == 'onBind'
239
+ "preOnBind(intent);\n"
238
240
  end
239
241
  end
240
242
  end
@@ -1,4 +1,4 @@
1
1
  module Ruboto
2
- VERSION = '1.1.2'
2
+ VERSION = '1.2.0'
3
3
  UPDATE_VERSION_LIMIT = '0.7.0'
4
4
  end
@@ -10,8 +10,8 @@ class CallSuperActivity
10
10
  setTitle 'Without Super', false
11
11
 
12
12
  self.content_view =
13
- linear_layout :orientation => :vertical, :gravity => android.view.Gravity::CENTER do
14
- text_view :id => 42, :text => title, :text_size => 48.0, :gravity => android.view.Gravity::CENTER
13
+ linear_layout orientation: :vertical, gravity: :center do
14
+ text_view id: 42, text: title, text_size: 48.0, gravity: :center
15
15
  end
16
16
  end
17
17
 
@@ -0,0 +1,51 @@
1
+ require 'ruboto/widget'
2
+
3
+ ruboto_import_widgets :Button, :LinearLayout, :TextView
4
+ import android.util.TypedValue
5
+
6
+ class ConstantsActivity
7
+ def onCreate(bundle)
8
+ super
9
+ setTitle File.basename(__FILE__).chomp('_activity.rb').split('_').
10
+ map { |s| "#{s[0..0].upcase}#{s[1..-1]}" }.join(' ')
11
+
12
+ # FIXME(uwe): Remove condition when we stop testing Android 2.3
13
+ if android.os.Build::VERSION::SDK_INT > 10
14
+ attr = android.R.attr.actionBarSize
15
+ tv = TypedValue.new
16
+ if theme.resolveAttribute(attr, tv, true)
17
+ action_bar_height = TypedValue.
18
+ complexToDimensionPixelSize(tv.data, resources.display_metrics).
19
+ inspect
20
+ else
21
+ action_bar_height = 'N/A'
22
+ end
23
+ else
24
+ action_bar_height = 'N/A'
25
+ end
26
+ # EMXIF
27
+
28
+ self.content_view = linear_layout orientation: :vertical, gravity: :center do
29
+ i = 41
30
+
31
+ text_view id: i += 1, hint: 'actionBarHeight', tag: action_bar_height, text: action_bar_height
32
+ text_view id: i += 1, hint: 'anim.fade_in', tag: '17432576', text: android.R.anim.fade_in.to_s
33
+
34
+ # FIXME(uwe): Remove condition when we stop testing Android 2.3
35
+ if android.os.Build::VERSION::SDK_INT > 10
36
+ text_view id: i += 1, hint: 'attr.actionBarSize', tag: '16843499', text: android.R.attr.actionBarSize.to_s
37
+ text_view id: i += 1, hint: 'color.holo_green', tag: '17170452', text: android.R.color.holo_green_light.to_s
38
+ end
39
+ # EMXIF
40
+
41
+ text_view id: i += 1, hint: 'id.text1', tag: '16908308', text: android.R.id.text1.to_s
42
+ text_view id: i += 1, hint: 'layout.simple_list_item1', tag: '17367043', text: android.R.layout.simple_list_item_1.to_s
43
+ text_view id: i += 1, hint: 'style::Theme_Dialog', tag: '16973835', text: android.R.style::Theme_Dialog.to_s
44
+
45
+ text_view id: i += 1, hint: 'R.attr', tag: 'Java::OrgRubotoTest_app::R::attr', text: R.attr.to_s
46
+ text_view id: i += 1, hint: 'R.layout.dummy_layout', tag: 0x7f030000.to_s, text: R.layout.dummy_layout.to_s
47
+ text_view id: i += 1, hint: 'R.layout.get_ruboto_core', tag: 0x7f030001.to_s, text: R.layout.get_ruboto_core.to_s
48
+ text_view id: i += 1, hint: 'R.id.my_text', tag: 0x7f050000.to_s, text: R.id.my_text.to_s
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,18 @@
1
+ activity org.ruboto.test_app.ConstantsActivity
2
+
3
+ setup do |activity|
4
+ start = Time.now
5
+ loop do
6
+ break if activity.findViewById(42)
7
+ fail 'Text view not found.' if (Time.now - start > 60)
8
+ sleep 0.5
9
+ end
10
+ end
11
+
12
+ test('R inner class constants') do |activity|
13
+ layout = activity.findViewById(android.R.id.content).get_child_at(0)
14
+ layout.child_count.times do |n|
15
+ child = layout.get_child_at(n)
16
+ assert_equal child.tag, child.text, child.hint
17
+ end
18
+ end
@@ -5,13 +5,18 @@ ruboto_import_widgets :LinearLayout, :TextView
5
5
  class MarginsActivity
6
6
  def onCreate(bundle)
7
7
  super
8
- setTitle File.basename(__FILE__).chomp('_activity.rb').split('_').map { |s| "#{s[0..0].upcase}#{s[1..-1]}" }.join(' ')
8
+ setTitle File.basename(__FILE__).chomp('_activity.rb').split('_').
9
+ map { |s| "#{s[0..0].upcase}#{s[1..-1]}" }.join(' ')
9
10
 
10
- self.content_view =
11
- linear_layout :orientation => LinearLayout::VERTICAL do
12
- @text_view_margins = text_view :text => 'What hath Matz wrought?', :id => 42, :margins => [100,0,0,0]
13
- @text_view_layout = text_view :text => 'What hath Matz wrought?', :id => 43, :layout => {:set_margins => [100,0,0,0]}
14
- @text_view_fieldset = text_view :text => 'What hath Matz wrought?', :id => 44, :layout => {:left_margin => 100}
15
- end
11
+ self.content_view = linear_layout orientation: :vertical do
12
+ @text_view_margins = text_view text: 'What hath Matz wrought?', id: 42,
13
+ margins: [100, 0, 0, 0]
14
+ @text_view_layout = text_view text: 'What hath Matz wrought?', id: 43,
15
+ layout: {set_margins: [100, 0, 0, 0]}
16
+ @text_view_layout = text_view text: 'What hath Matz wrought?', id: 44,
17
+ layout: {margins: [100, 0, 0, 0]}
18
+ @text_view_fieldset = text_view text: 'What hath Matz wrought?', id: 45,
19
+ layout: {left_margin: 100}
20
+ end
16
21
  end
17
22
  end
@@ -4,13 +4,17 @@ setup do |activity|
4
4
  start = Time.now
5
5
  loop do
6
6
  @text_view_margins = activity.findViewById(42)
7
- @text_view_layout = activity.findViewById(43)
8
- @text_view_fieldset = activity.findViewById(44)
9
- break if (@text_view_margins && @text_view_layout && @text_view_fieldset) || (Time.now - start > 60)
7
+ @text_view_layout_setter = activity.findViewById(43)
8
+ @text_view_layout_attribute_setter = activity.findViewById(44)
9
+ @text_view_fieldset = activity.findViewById(45)
10
+ break if (@text_view_margins && @text_view_layout_setter &&
11
+ @text_view_layout_attribute_setter && @text_view_fieldset) ||
12
+ (Time.now - start > 60)
10
13
  sleep 1
11
14
  end
12
15
  assert @text_view_margins
13
- assert @text_view_layout
16
+ assert @text_view_layout_setter
17
+ assert @text_view_layout_attribute_setter
14
18
  assert @text_view_fieldset
15
19
  end
16
20
 
@@ -18,8 +22,8 @@ def left_margin(view)
18
22
  view.get_layout_params.leftMargin
19
23
  end
20
24
 
21
- %w(margins layout fieldset).each do |view_type|
22
- test("margins are set through #{view_type}") do |activity|
25
+ %w(margins layout_setter layout_attribute_setter fieldset).each do |view_type|
26
+ test("margins are set through #{view_type}") do |activity|
23
27
  assert_equal 100, left_margin(instance_variable_get("@text_view_#{view_type}"))
24
28
  end
25
29
  end
@@ -0,0 +1,15 @@
1
+ require 'ruboto/widget'
2
+
3
+ ruboto_import_widgets :LinearLayout, :TextView
4
+
5
+ class PaddingActivity
6
+ def onCreate(bundle)
7
+ super
8
+ setTitle File.basename(__FILE__).chomp('_activity.rb').split('_').
9
+ map { |s| "#{s[0..0].upcase}#{s[1..-1]}" }.join(' ')
10
+
11
+ self.content_view = linear_layout id: 41, padding: [10, 20, 30, 40] do
12
+ text_view text: 'Text with padding', id: 42, padding: [1, 2, 4, 8]
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,41 @@
1
+ activity Java::org.ruboto.test_app.PaddingActivity
2
+
3
+ setup do |activity|
4
+ start = Time.now
5
+ loop do
6
+ @layout = activity.findViewById(41)
7
+ @text_view = activity.findViewById(42)
8
+ break if (@layout && @text_view) || Time.now - start > 60
9
+ sleep 0.5
10
+ end
11
+ assert @layout
12
+ assert @text_view
13
+ end
14
+
15
+ test('padding is set') do |activity|
16
+ assert_equal 40, @layout.padding_bottom
17
+
18
+ # FIXME(uwe): Remove condition when we stop testing api level < 17
19
+ assert_equal(30, @layout.padding_end) if android.os.Build::VERSION::SDK_INT >= 17
20
+
21
+ assert_equal 10, @layout.padding_left
22
+ assert_equal 30, @layout.padding_right
23
+
24
+ # FIXME(uwe): Remove condition when we stop testing api level < 17
25
+ assert_equal(10, @layout.padding_start) if android.os.Build::VERSION::SDK_INT >= 17
26
+
27
+ assert_equal 20, @layout.padding_top
28
+
29
+ assert_equal 8, @text_view.padding_bottom
30
+
31
+ # FIXME(uwe): Remove condition when we stop testing api level < 17
32
+ assert_equal(4, @text_view.padding_end) if android.os.Build::VERSION::SDK_INT >= 17
33
+
34
+ assert_equal 1, @text_view.padding_left
35
+ assert_equal 4, @text_view.padding_right
36
+
37
+ # FIXME(uwe): Remove condition when we stop testing api level < 17
38
+ assert_equal(1, @text_view.padding_start) if android.os.Build::VERSION::SDK_INT >= 17
39
+
40
+ assert_equal 2, @text_view.padding_top
41
+ end
@@ -0,0 +1,42 @@
1
+ require 'ruboto/util/stack'
2
+ require 'rss'
3
+ require 'ruboto/widget'
4
+
5
+ ruboto_import_widgets :LinearLayout, :ListView, :TextView
6
+
7
+ class RssActivity
8
+ attr_reader :list
9
+
10
+ def onCreate(bundle)
11
+ super
12
+ set_title File.basename(__FILE__).chomp('_activity.rb').split('_').
13
+ map { |s| "#{s[0..0].upcase}#{s[1..-1]}" }.join(' ')
14
+ @list = []
15
+ self.content_view = linear_layout orientation: :vertical, gravity: :center do
16
+ @status = text_view id: 42, text: 'Activity created...'
17
+ @list_view = list_view id: 43, list: @list
18
+ end
19
+ end
20
+
21
+ def onResume
22
+ super
23
+ @status.text = 'Resuming activity...'
24
+ Thread.with_large_stack do
25
+ begin
26
+ run_on_ui_thread { @status.text = 'Started update thread...' }
27
+ subjects = []
28
+ rss = RSS::Parser.parse('http://www.feedforall.com/sample.xml')
29
+ rss.items.each do |item|
30
+ subject = item.title.to_s
31
+ subjects << subject
32
+ end
33
+ run_on_ui_thread { @list_view.adapter.add_all subjects }
34
+ run_on_ui_thread { @status.text = 'List updated' }
35
+ rescue Exception
36
+ msg = "#{$!.message}\n#{$!.backtrace.join("\n")}"
37
+ run_on_ui_thread { @status.text = "Thread: Exception: #{msg}" }
38
+ end
39
+ end
40
+ @status.text = 'Resume...OK'
41
+ end
42
+ end
@@ -0,0 +1,35 @@
1
+ activity org.ruboto.test_app.RssActivity
2
+
3
+ setup do |activity|
4
+ start = Time.now
5
+ loop do
6
+ @text_view = activity.findViewById(42)
7
+ @list_view = activity.findViewById(43)
8
+ break if (@text_view && @list_view) || (Time.now - start > 60)
9
+ sleep 1
10
+ end
11
+ assert @text_view && @list_view
12
+ end
13
+
14
+ test('fetch rss feed', ui: false) do |activity|
15
+ start = Time.now
16
+ loop do
17
+ break if activity.findViewById(42).text.to_s == 'List updated'
18
+ break if Time.now - start > 90
19
+ sleep 0.5
20
+ end
21
+ assert_equal 'List updated', activity.findViewById(42).text.to_s
22
+ # assert_equal [],activity.findViewById(43).adapter.list.to_a
23
+ assert_equal [
24
+ "RSS Solutions for Restaurants",
25
+ "RSS Solutions for Schools and Colleges",
26
+ "RSS Solutions for Computer Service Companies",
27
+ "RSS Solutions for Governments",
28
+ "RSS Solutions for Politicians",
29
+ "RSS Solutions for Meteorologists",
30
+ "RSS Solutions for Realtors & Real Estate Firms",
31
+ "RSS Solutions for Banks / Mortgage Companies",
32
+ "RSS Solutions for Law Enforcement"
33
+ ],
34
+ activity.list
35
+ end
@@ -17,7 +17,7 @@ class SpinnerActivity
17
17
  spinner :layout => {:width => :match_parent}, :id => 42
18
18
  plain_spinner = spinner :layout => {:width => :match_parent}, :id => 43,
19
19
  :on_item_selected_listener => click_handler
20
- plain_spinner.adapter = android.widget.ArrayAdapter.new(self, R::layout::simple_spinner_item)
20
+ plain_spinner.adapter = android.widget.ArrayAdapter.new(self, android.R::layout::simple_spinner_item)
21
21
 
22
22
  # FIXME(uwe): Simplify when we stop supporting Android < 4.0.3
23
23
  if android.os.Build::VERSION::SDK_INT < 11
@@ -31,19 +31,19 @@ class SpinnerActivity
31
31
 
32
32
  spinner :layout => {:width => :match_parent}, :id => 44,
33
33
  :on_item_selected_listener => click_handler,
34
- :adapter => android.widget.ArrayAdapter.new(self, R::layout::simple_spinner_item, ['Adapter Spinner', 'Adapter Item'])
34
+ :adapter => android.widget.ArrayAdapter.new(self, android.R::layout::simple_spinner_item, ['Adapter Spinner', 'Adapter Item'])
35
35
  spinner :layout => {:width => :match_parent}, :id => 45 ,
36
36
  :on_item_selected_listener => click_handler,
37
37
  :list => ['List Spinner', 'List Item']
38
38
  spinner :layout => {:width => :match_parent}, :id => 46 ,
39
39
  :on_item_selected_listener => click_handler,
40
40
  :list => ['List Spinner', 'List Item'],
41
- :item_layout => R::layout::simple_spinner_dropdown_item
41
+ :item_layout => android.R::layout::simple_spinner_dropdown_item
42
42
  spinner :layout => {:width => :match_parent}, :id => 47 ,
43
43
  :on_item_selected_listener => click_handler,
44
44
  :list => ['List Spinner', 'List Item'],
45
- :item_layout => R::layout::simple_spinner_dropdown_item,
46
- :dropdown_layout => R::layout::simple_spinner_item
45
+ :item_layout => android.R::layout::simple_spinner_dropdown_item,
46
+ :dropdown_layout => android.R::layout::simple_spinner_item
47
47
  @text_view = text_view :text => 'Spinning?', :id => 69,
48
48
  :layout => {:width => :match_parent},
49
49
  :gravity => :center, :text_size => 48.0
@@ -33,18 +33,18 @@ end
33
33
  test('list spinner view resources') do |activity|
34
34
  activity.run_on_ui_thread do
35
35
  spinner = activity.findViewById(45)
36
- assert_equal R::layout::simple_spinner_item, spinner.adapter.mResource
37
- assert_equal R::layout::simple_spinner_item, spinner.adapter.mDropDownResource
36
+ assert_equal android.R::layout::simple_spinner_item, spinner.adapter.mResource
37
+ assert_equal android.R::layout::simple_spinner_item, spinner.adapter.mDropDownResource
38
38
  assert_equal 0, spinner.adapter.mFieldId
39
39
 
40
40
  spinner = activity.findViewById(46)
41
- assert_equal R::layout::simple_spinner_dropdown_item, spinner.adapter.mResource
42
- assert_equal R::layout::simple_spinner_dropdown_item, spinner.adapter.mDropDownResource
41
+ assert_equal android.R::layout::simple_spinner_dropdown_item, spinner.adapter.mResource
42
+ assert_equal android.R::layout::simple_spinner_dropdown_item, spinner.adapter.mDropDownResource
43
43
  assert_equal 0, spinner.adapter.mFieldId
44
44
 
45
45
  spinner = activity.findViewById(47)
46
- assert_equal R::layout::simple_spinner_dropdown_item, spinner.adapter.mResource
47
- assert_equal R::layout::simple_spinner_item, spinner.adapter.mDropDownResource
46
+ assert_equal android.R::layout::simple_spinner_dropdown_item, spinner.adapter.mResource
47
+ assert_equal android.R::layout::simple_spinner_item, spinner.adapter.mDropDownResource
48
48
  assert_equal 0, spinner.adapter.mFieldId
49
49
  end
50
50
  end
@@ -1,7 +1,5 @@
1
1
  STACK_DEPTH_SCRIPT = java.lang.Thread.current_thread.stack_trace.length.to_s
2
2
 
3
- raise "Stack level: #{STACK_DEPTH_SCRIPT}" rescue puts $!.backtrace.join("\n")
4
-
5
3
  require 'ruboto/widget'
6
4
 
7
5
  ruboto_import_widgets :Button, :LinearLayout, :TextView
@@ -11,15 +9,16 @@ class StackActivity
11
9
  def onCreate(bundle)
12
10
  stack_depth_on_create = java.lang.Thread.current_thread.stack_trace.length.to_s
13
11
  super
14
- setTitle File.basename(__FILE__).chomp('_activity.rb').split('_').map { |s| "#{s[0..0].upcase}#{s[1..-1]}" }.join(' ')
12
+ setTitle File.basename(__FILE__).chomp('_activity.rb').split('_').
13
+ map { |s| "#{s[0..0].upcase}#{s[1..-1]}" }.join(' ')
15
14
 
16
15
  self.content_view =
17
- linear_layout :orientation => :vertical, :gravity => android.view.Gravity::CENTER do
16
+ linear_layout orientation: :vertical, gravity: :center do
18
17
  stack_depth_linear_layout = java.lang.Thread.current_thread.stack_trace.length.to_s
19
- text_view :id => 42, :text => STACK_DEPTH_SCRIPT, :text_size => 48.0, :gravity => android.view.Gravity::CENTER
20
- text_view :id => 43, :text => STACK_DEPTH_CLASS, :text_size => 48.0, :gravity => android.view.Gravity::CENTER
21
- text_view :id => 44, :text => stack_depth_on_create, :text_size => 48.0, :gravity => android.view.Gravity::CENTER
22
- text_view :id => 45, :text => stack_depth_linear_layout, :text_size => 48.0, :gravity => android.view.Gravity::CENTER
18
+ text_view id: 42, text: STACK_DEPTH_SCRIPT, text_size: 48.0, gravity: :center
19
+ text_view id: 43, text: STACK_DEPTH_CLASS, text_size: 48.0, gravity: :center
20
+ text_view id: 44, text: stack_depth_on_create, text_size: 48.0, gravity: :center
21
+ text_view id: 45, text: stack_depth_linear_layout, text_size: 48.0, gravity: :center
23
22
  end
24
23
  end
25
24
  end
@@ -10,15 +10,17 @@ setup do |activity|
10
10
  assert @text_view
11
11
  end
12
12
 
13
- # ANDROID: 10, PLATFORM: 0.5.3, JRuby: 1.7.3 '[28, 33, 46, 63]' expected, but got '[43, 48, 45, 62]'
14
- # ANDROID: 10, PLATFORM: 0.5.4, JRuby: 1.7.3 '[28, 33, 45, 62]' expected, but got '[28, 33, 44, 61]'
15
- # ANDROID: 16, PLATFORM: 0.5.6, JRuby: 1.7.3 '[28, 33, 45, 62]' expected, but got '[28, 33, 44, 61]'
16
- # ANDROID: 16, PLATFORM: 0.6.0, JRuby: 9000.dev '[28, 33, 45, 62]' expected, but got '[28, 33, 45, 63]'
17
- # ANDROID: 15, PLATFORM: STANDALONE, JRuby: 1.7.0 '[28, 33, 51, 68]' expected, but got '[28, 33, 47, 64]'
13
+ # ANDROID: 10, PLATFORM: 0.5.3, JRuby: 1.7.3 '[28, 33, 46, 63]' expected, but got '[43, 48, 45, 62]'
14
+ # ANDROID: 10, PLATFORM: 0.5.4, JRuby: 1.7.3 '[28, 33, 45, 62]' expected, but got '[28, 33, 44, 61]'
15
+ # ANDROID: 15, PLATFORM: STANDALONE, JRuby: 1.7.0 '[28, 33, 51, 68]' expected, but got '[28, 33, 47, 64]'
16
+ # ANDROID: 16, PLATFORM: 0.5.6, JRuby: 1.7.3 '[28, 33, 45, 62]' expected, but got '[28, 33, 44, 61]'
17
+ # ANDROID: 16, PLATFORM: 0.6.0, JRuby: 9000.dev '[28, 33, 45, 62]' expected, but got '[28, 33, 45, 63]'
18
+ # ANDROID: 20, PLATFORM: 1.0.2, JRuby: 1.7.12 '[28, 33, 44, 61]' expected, but got '[28, 33, 43, 60]'
18
19
  test('stack depth') do |activity|
19
20
  os_offset = {
20
21
  10 => [0, 0, -1, -1],
21
22
  13 => [1, 1, 0, 0],
23
+ 20 => [0, 0, -1, -1],
22
24
  }[android.os.Build::VERSION::SDK_INT] || [0, 0, 0, 0]
23
25
  jruby_offset = {
24
26
  /^1\.7/ => [0, 0, 0, -1],
@@ -16,7 +16,7 @@ class SubclassOfArrayAdapter < Java::AndroidWidget::ArrayAdapter
16
16
  end
17
17
 
18
18
  class Java::AndroidWidget::ArrayAdapter
19
- field_reader :mResource, :mFieldId
19
+ field_reader :mResource, :mFieldId
20
20
  end
21
21
 
22
22
  class SubclassActivity
@@ -24,13 +24,13 @@ class SubclassActivity
24
24
  super
25
25
  setTitle File.basename(__FILE__).chomp('_activity.rb').split('_').map { |s| "#{s[0..0].upcase}#{s[1..-1]}" }.join(' ')
26
26
 
27
- adapter = SubclassOfArrayAdapter.new(self, android.R.layout.simple_list_item_1, AndroidIds::text1, ['Record one', 'Record two'])
27
+ adapter = SubclassOfArrayAdapter.new(self, android.R.layout.simple_list_item_1, android.R.id.text1, ['Record one', 'Record two'])
28
28
 
29
29
  self.content_view =
30
30
  linear_layout :orientation => LinearLayout::VERTICAL do
31
- @text_view = text_view :text => 'What hath Matz wrought?', :id => 42
32
- @list_view = list_view :adapter => adapter, :id => 43,
33
- :on_item_click_listener => proc{|_,view,_,_| @text_view.text = view.findViewById(AndroidIds::text1).text}
31
+ @text_view = text_view text: 'What hath Matz wrought?', id: 42
32
+ @list_view = list_view adapter: adapter, id: 43,
33
+ on_item_click_listener: ->(_, view, _, _) { @text_view.text = view.findViewById(android.R.id.text1).text }
34
34
  end
35
35
  end
36
36
  end