ruboto 1.1.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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