ruboto 0.9.0 → 0.10.0.rc.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. data/README.md +13 -13
  2. data/Rakefile +4 -4
  3. data/assets/rakelib/ruboto.rake +8 -4
  4. data/assets/samples/sample_broadcast_receiver.rb +0 -8
  5. data/assets/src/InheritingBroadcastReceiver.java +0 -19
  6. data/assets/src/InheritingClass.java +1 -8
  7. data/assets/src/RubotoActivity.java +1 -20
  8. data/assets/src/RubotoBroadcastReceiver.java +15 -25
  9. data/assets/src/RubotoService.java +1 -15
  10. data/assets/src/org/ruboto/EntryPointActivity.java +0 -1
  11. data/assets/src/org/ruboto/JRubyAdapter.java +9 -8
  12. data/assets/src/org/ruboto/RubotoComponent.java +0 -3
  13. data/assets/src/org/ruboto/Script.java +9 -9
  14. data/assets/src/org/ruboto/ScriptInfo.java +0 -15
  15. data/assets/src/org/ruboto/ScriptLoader.java +31 -43
  16. data/assets/src/ruboto/activity.rb +16 -41
  17. data/assets/src/ruboto/base.rb +0 -70
  18. data/assets/src/ruboto/broadcast_receiver.rb +2 -22
  19. data/assets/src/ruboto/package.rb +0 -1
  20. data/assets/src/ruboto/preference.rb +7 -3
  21. data/assets/src/ruboto/service.rb +14 -51
  22. data/assets/src/ruboto/widget.rb +2 -2
  23. data/lib/DexClient.java +10 -3
  24. data/lib/ruboto/util/build.rb +0 -5
  25. data/lib/ruboto/util/code_formatting.rb +1 -1
  26. data/lib/ruboto/util/update.rb +69 -50
  27. data/lib/ruboto/util/verify.rb +6 -5
  28. data/lib/ruboto/util/xml_element.rb +16 -29
  29. data/lib/ruboto/version.rb +2 -2
  30. data/test/activity/mytest_activity.rb +56 -0
  31. data/test/activity/mytest_activity_test.rb +52 -0
  32. data/test/activity/mytest_otherfile_activity.rb +12 -0
  33. data/test/activity/navigation_activity.rb +1 -1
  34. data/test/activity/subclass_activity.rb +10 -5
  35. data/test/activity/subclass_activity_test.rb +17 -2
  36. data/test/activity/view_constants_activity.rb +42 -0
  37. data/test/activity/view_constants_activity_test.rb +30 -0
  38. data/test/app_test_methods.rb +31 -26
  39. data/test/broadcast_receiver_test.rb +3 -1
  40. data/test/ruboto_gen_test.rb +4 -4
  41. data/test/test_helper.rb +5 -2
  42. metadata +18 -38
  43. data/assets/src/ruboto.rb +0 -25
  44. data/assets/src/ruboto/legacy.rb +0 -220
  45. data/assets/src/ruboto/menu.rb +0 -88
  46. data/lib/java_class_gen/InheritingClass.java.erb +0 -10
  47. data/test/block_def_activity/image_button_activity.rb +0 -23
  48. data/test/block_def_activity/image_button_activity_test.rb +0 -21
  49. data/test/block_def_activity/image_button_and_button_activity.rb +0 -20
  50. data/test/block_def_activity/image_button_and_button_activity_test.rb +0 -27
  51. data/test/block_def_activity/margins_activity.rb +0 -18
  52. data/test/block_def_activity/margins_activity_test.rb +0 -25
  53. data/test/block_def_activity/option_menu_activity.rb +0 -26
  54. data/test/block_def_activity/option_menu_activity_test.rb +0 -17
  55. data/test/block_def_activity/psych_activity.rb +0 -35
  56. data/test/block_def_activity/psych_activity_test.rb +0 -16
  57. data/test/block_def_activity/stack_activity.rb +0 -25
  58. data/test/block_def_activity/stack_activity_test.rb +0 -39
  59. data/test/handle_activity/image_button_activity.rb +0 -21
  60. data/test/handle_activity/image_button_activity_test.rb +0 -21
  61. data/test/handle_activity/image_button_and_button_activity.rb +0 -24
  62. data/test/handle_activity/image_button_and_button_activity_test.rb +0 -27
  63. data/test/handle_activity/margins_activity.rb +0 -15
  64. data/test/handle_activity/margins_activity_test.rb +0 -25
  65. data/test/handle_activity/option_menu_activity.rb +0 -25
  66. data/test/handle_activity/option_menu_activity_test.rb +0 -20
  67. data/test/handle_activity/psych_activity.rb +0 -31
  68. data/test/handle_activity/psych_activity_test.rb +0 -16
  69. data/test/handle_activity/stack_activity.rb +0 -24
  70. data/test/handle_activity/stack_activity_test.rb +0 -47
  71. data/test/view_constants_test.rb +0 -103
@@ -1,25 +0,0 @@
1
- activity Java::org.ruboto.test_app.MarginsActivity
2
-
3
- setup do |activity|
4
- start = Time.now
5
- loop do
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)
10
- sleep 1
11
- end
12
- assert @text_view_margins
13
- assert @text_view_layout
14
- assert @text_view_fieldset
15
- end
16
-
17
- def left_margin(view)
18
- view.get_layout_params.leftMargin
19
- end
20
-
21
- %w(margins layout fieldset).each do |view_type|
22
- test("margins are set through #{view_type}") do |activity|
23
- assert_equal 100, left_margin(instance_variable_get("@text_view_#{view_type}"))
24
- end
25
- end
@@ -1,26 +0,0 @@
1
- require 'ruboto/activity'
2
- require 'ruboto/widget'
3
- require 'ruboto/util/toast'
4
-
5
- ruboto_import_widgets :LinearLayout, :TextView
6
-
7
- $activity.start_ruboto_activity do
8
- setTitle File.basename(__FILE__).chomp('_activity.rb').split('_').map{|s| "#{s[0..0].upcase}#{s[1..-1]}" }.join(' ')
9
-
10
- def on_create(bundle)
11
- self.content_view =
12
- linear_layout :orientation => LinearLayout::VERTICAL do
13
- @text_view = text_view :text => 'What hath Matz wrought?', :id => 42
14
- end
15
- end
16
-
17
- def on_create_options_menu(menu)
18
- mi = menu.add('Test')
19
- mi.setIcon($package.R::drawable::get_ruboto_core)
20
- mi.set_on_menu_item_click_listener do |menu_item|
21
- @text_view.text = 'What hath Matz wrought!'
22
- toast 'Flipped a bit via butterfly'
23
- end
24
- true
25
- end
26
- end
@@ -1,17 +0,0 @@
1
- activity Java::org.ruboto.test_app.OptionMenuActivity
2
-
3
- setup do |activity|
4
- start = Time.now
5
- loop do
6
- @text_view = activity.findViewById(42)
7
- break if @text_view || (Time.now - start > 60)
8
- sleep 1
9
- end
10
- assert @text_view
11
- end
12
-
13
- test('option_menu changes text') do |activity|
14
- assert_equal "What hath Matz wrought?", @text_view.text
15
- activity.window.performPanelIdentifierAction(android.view.Window::FEATURE_OPTIONS_PANEL, 0, 0)
16
- assert_equal("What hath Matz wrought!", @text_view.text)
17
- end
@@ -1,35 +0,0 @@
1
- # TODO(uwe): Remove when we stop supporting psych with Ruby 1.8 mode
2
- if RUBY_VERSION < '1.9'
3
- require 'jruby'
4
- require 'rbconfig'
5
- org.jruby.ext.psych.PsychLibrary.new.load(JRuby.runtime, false)
6
- $LOADED_FEATURES << 'psych.so'
7
- $LOAD_PATH << File.join(Config::CONFIG['libdir'], 'ruby/1.9')
8
- end
9
- # ODOT
10
-
11
- require 'ruboto/activity'
12
- require 'ruboto/widget'
13
- require 'ruboto/util/stack'
14
- require 'ruboto/util/toast'
15
-
16
- with_large_stack { require 'psych.rb' }
17
-
18
- Psych::Parser
19
- Psych::Handler
20
-
21
- ruboto_import_widgets :Button, :LinearLayout, :TextView
22
-
23
- $activity.start_ruboto_activity do
24
- setTitle File.basename(__FILE__).chomp('_activity.rb').split('_').map { |s| "#{s[0..0].upcase}#{s[1..-1]}" }.join(' ')
25
-
26
- def on_create(bundle)
27
- self.content_view =
28
- linear_layout :orientation => LinearLayout::VERTICAL do
29
- @decoded_view = text_view :id => 42, :text => with_large_stack{Psych.load('--- foo')}
30
- # TODO(uwe): Simplify when we stop supporting Psych in Ruby 1.8 mode
31
- @encoded_view = text_view(:id => 43, :text => with_large_stack{Psych.dump('foo')}) unless RUBY_VERSION < '1.9'
32
- end
33
- end
34
-
35
- end
@@ -1,16 +0,0 @@
1
- activity org.ruboto.test_app.PsychActivity
2
-
3
- setup do |activity|
4
- start = Time.now
5
- loop do
6
- @text_view = activity.findViewById(42)
7
- break if @text_view || (Time.now - start > 60)
8
- sleep 1
9
- end
10
- assert @text_view
11
- end
12
-
13
- test('psych_encode_decode') do |activity|
14
- assert_equal 'foo', activity.find_view_by_id(42).text.to_s
15
- #assert_equal "--- foo\n...\n", activity.find_view_by_id(43).text.to_s
16
- end
@@ -1,25 +0,0 @@
1
- STACK_DEPTH_SCRIPT = java.lang.Thread.current_thread.stack_trace.length.to_s
2
- require 'ruboto/activity'
3
- require 'ruboto/widget'
4
- require 'ruboto/util/toast'
5
-
6
- ruboto_import_widgets :Button, :LinearLayout, :TextView
7
-
8
- $activity.start_ruboto_activity do
9
- STACK_DEPTH_START_RUBOTO_ACTIVITY = java.lang.Thread.current_thread.stack_trace.length.to_s
10
-
11
- def on_create(bundle)
12
- stack_depth_on_create = java.lang.Thread.current_thread.stack_trace.length.to_s
13
- setTitle File.basename(__FILE__).chomp('_activity.rb').split('_').map { |s| "#{s[0..0].upcase}#{s[1..-1]}" }.join(' ')
14
-
15
- self.content_view =
16
- linear_layout :orientation => LinearLayout::VERTICAL do
17
- stack_depth_linear_layout = java.lang.Thread.current_thread.stack_trace.length.to_s
18
- text_view :id => 42, :text => STACK_DEPTH_SCRIPT
19
- text_view :id => 43, :text => STACK_DEPTH_START_RUBOTO_ACTIVITY
20
- text_view :id => 44, :text => stack_depth_on_create
21
- text_view :id => 45, :text => stack_depth_linear_layout
22
- end
23
- end
24
-
25
- end
@@ -1,39 +0,0 @@
1
- activity org.ruboto.test_app.StackActivity
2
-
3
- setup do |activity|
4
- start = Time.now
5
- loop do
6
- @text_view = activity.findViewById(42)
7
- break if @text_view || (Time.now - start > 60)
8
- sleep 1
9
- end
10
- assert @text_view
11
- end
12
-
13
- # ANDROID: 15, PLATFORM: STANDALONE, JRuby: 1.7.0 '[44, 72, 62, 79]' expected, but got '[44, 71, 62, 79]'
14
- test('stack depth') do |activity|
15
- os_offset = {13 => 1, 15 => 1, 16 => 1}[android.os.Build::VERSION::SDK_INT].to_i
16
- if org.ruboto.JRubyAdapter.uses_platform_apk?
17
- jruby_offset = {
18
- '0.4.7' => [0, 0, 0, 0],
19
- '0.4.8.dev' => [0, -1, 0, 0],
20
- '0.4.8' => [0, -1, 0, 0],
21
- '0.4.9' => [0, -1, 0, 0],
22
- }[org.ruboto.JRubyAdapter.platform_version_name] || [0, 0, 0, 0]
23
- else # STANDALONE
24
- jruby_offset = {
25
- '1.7.0.preview1' => [0, -1, -1, -1],
26
- '1.7.0.preview2' => [0, -1, 0, 0],
27
- '1.7.0' => [0, -1, 0, 0],
28
- '1.7.1.dev' => [0, -1, 0, 0],
29
- }[org.jruby.runtime.Constants::VERSION] || [0, 0, 0, 0]
30
- end
31
- version_message ="ANDROID: #{android.os.Build::VERSION::SDK_INT}, PLATFORM: #{org.ruboto.JRubyAdapter.uses_platform_apk ? org.ruboto.JRubyAdapter.platform_version_name : 'STANDALONE'}, JRuby: #{org.jruby.runtime.Constants::VERSION}"
32
- assert_equal [43 + os_offset + jruby_offset[0],
33
- 71 + os_offset + jruby_offset[1],
34
- 61 + os_offset + jruby_offset[2],
35
- 78 + os_offset + jruby_offset[3]], [activity.find_view_by_id(42).text.to_i,
36
- activity.find_view_by_id(43).text.to_i,
37
- activity.find_view_by_id(44).text.to_i,
38
- activity.find_view_by_id(45).text.to_i], version_message
39
- end
@@ -1,21 +0,0 @@
1
- require 'ruboto'
2
-
3
- ruboto_import_widgets :ImageButton, :LinearLayout, :TextView
4
-
5
- $activity.handle_create do |bundle|
6
- setTitle File.basename(__FILE__).chomp('_activity.rb').split('_').map{|s| "#{s[0..0].upcase}#{s[1..-1]}" }.join(' ')
7
-
8
- setup_content do
9
- linear_layout :orientation => LinearLayout::VERTICAL do
10
- @text_view = text_view :text => 'What hath Matz wrought?', :id => 42
11
- image_button :image_resource => $package.R::drawable::get_ruboto_core, :width => :wrap_content, :id => 43
12
- end
13
- end
14
-
15
- handle_click do |view|
16
- if view.id == 43
17
- @text_view.setText 'What hath Matz wrought!'
18
- toast 'Flipped a bit via butterfly'
19
- end
20
- end
21
- end
@@ -1,21 +0,0 @@
1
- activity Java::org.ruboto.test_app.ImageButtonActivity
2
-
3
- setup do |activity|
4
- start = Time.now
5
- loop do
6
- @text_view = activity.findViewById(42)
7
- break if @text_view || (Time.now - start > 60)
8
- sleep 1
9
- end
10
- assert @text_view
11
- end
12
-
13
- test('initial setup') do |activity|
14
- assert_equal "What hath Matz wrought?", @text_view.text
15
- end
16
-
17
- test('button changes text') do |activity|
18
- button = activity.findViewById(43)
19
- button.performClick
20
- assert_equal "What hath Matz wrought!", @text_view.text
21
- end
@@ -1,24 +0,0 @@
1
- require 'ruboto'
2
-
3
- ruboto_import_widgets :Button, :ImageButton, :LinearLayout, :TextView
4
-
5
- $activity.handle_create do |bundle|
6
- setTitle File.basename(__FILE__).chomp('_activity.rb').split('_').map{|s| "#{s[0..0].upcase}#{s[1..-1]}" }.join(' ')
7
-
8
- setup_content do
9
- linear_layout :orientation => LinearLayout::VERTICAL do
10
- @text_view = text_view :text => 'What hath Matz wrought?', :id => 42
11
- button :text => 'Button', :width => :wrap_content, :id => 44
12
- image_button :image_resource => $package.R::drawable::get_ruboto_core, :width => :wrap_content, :id => 43
13
- end
14
- end
15
-
16
- handle_click do |view|
17
- if view.id == 43
18
- @text_view.text = 'Image button pressed'
19
- elsif view.id == 44
20
- @text_view.text = 'Button pressed'
21
- end
22
- end
23
-
24
- end
@@ -1,27 +0,0 @@
1
- activity Java::org.ruboto.test_app.ImageButtonAndButtonActivity
2
-
3
- setup do |activity|
4
- start = Time.now
5
- loop do
6
- @text_view = activity.find_view_by_id 42
7
- break if @text_view || (Time.now - start > 60)
8
- sleep 1
9
- end
10
- assert @text_view
11
- end
12
-
13
- test('initial setup') do |activity|
14
- assert_equal "What hath Matz wrought?", @text_view.text
15
- end
16
-
17
- test('button changes text') do |activity|
18
- button = activity.find_view_by_id 44
19
- button.perform_click
20
- assert_equal 'Button pressed', @text_view.text
21
- end
22
-
23
- test('image button changes text') do |activity|
24
- image_button = activity.find_view_by_id 43
25
- image_button.perform_click
26
- assert_equal 'Image button pressed', @text_view.text
27
- end
@@ -1,15 +0,0 @@
1
- require 'ruboto'
2
-
3
- ruboto_import_widgets :LinearLayout, :TextView
4
-
5
- $activity.handle_create do |bundle|
6
- setTitle File.basename(__FILE__).chomp('_activity.rb').split('_').map{|s| "#{s[0..0].upcase}#{s[1..-1]}" }.join(' ')
7
-
8
- setup_content do
9
- linear_layout :orientation => LinearLayout::VERTICAL do
10
- @text_view_margins = text_view :text => 'What hath Matz wrought?', :id => 42, :margins => [100,0,0,0]
11
- @text_view_layout = text_view :text => 'What hath Matz wrought?', :id => 43, :layout => {:set_margins => [100,0,0,0]}
12
- @text_view_fieldset = text_view :text => 'What hath Matz wrought?', :id => 44, :layout => {:left_margin= => 100}
13
- end
14
- end
15
- end
@@ -1,25 +0,0 @@
1
- activity Java::org.ruboto.test_app.MarginsActivity
2
-
3
- setup do |activity|
4
- start = Time.now
5
- loop do
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)
10
- sleep 1
11
- end
12
- assert @text_view_margins
13
- assert @text_view_layout
14
- assert @text_view_fieldset
15
- end
16
-
17
- def left_margin(view)
18
- view.get_layout_params.leftMargin
19
- end
20
-
21
- %w(margins layout fieldset).each do |view_type|
22
- test("margins are set through #{view_type}") do |activity|
23
- assert_equal 100, left_margin(instance_variable_get("@text_view_#{view_type}"))
24
- end
25
- end
@@ -1,25 +0,0 @@
1
- STACK_DEPTH_SCRIPT = java.lang.Thread.current_thread.stack_trace.length.to_s
2
-
3
- raise "Stack level: #{STACK_DEPTH_SCRIPT}" rescue puts $!.message + "\n" + $!.backtrace.join("\n")
4
-
5
- require 'ruboto'
6
-
7
- ruboto_import_widgets :ImageButton, :LinearLayout, :TextView
8
-
9
- $activity.handle_create do |bundle|
10
- setTitle File.basename(__FILE__).chomp('_activity.rb').split('_').map{|s| "#{s[0..0].upcase}#{s[1..-1]}" }.join(' ')
11
-
12
- setup_content do
13
- linear_layout :orientation => LinearLayout::VERTICAL do
14
- @text_view = text_view :text => 'What hath Matz wrought?', :id => 42
15
- end
16
- end
17
-
18
- handle_create_options_menu do |menu|
19
- add_menu('Test') do
20
- @text_view.setText 'What hath Matz wrought!'
21
- toast 'Flipped a bit via butterfly'
22
- end
23
- true
24
- end
25
- end
@@ -1,20 +0,0 @@
1
- activity Java::org.ruboto.test_app.OptionMenuActivity
2
-
3
- setup do |activity|
4
- start = Time.now
5
- loop do
6
- @text_view = activity.findViewById(42)
7
- break if @text_view || (Time.now - start > 60)
8
- sleep 1
9
- end
10
- assert @text_view
11
- end
12
-
13
- test('initial setup') do |activity|
14
- assert_equal "What hath Matz wrought?", @text_view.text
15
- end
16
-
17
- test('option_menu changes text') do |activity|
18
- activity.window.performPanelIdentifierAction(android.view.Window::FEATURE_OPTIONS_PANEL, 0, 0)
19
- assert_equal "What hath Matz wrought!", @text_view.text
20
- end
@@ -1,31 +0,0 @@
1
- # TODO(uwe): Remove when we stop supporting psych with Ruby 1.8 mode
2
- if RUBY_VERSION < '1.9'
3
- require 'jruby'
4
- require 'rbconfig'
5
- org.jruby.ext.psych.PsychLibrary.new.load(JRuby.runtime, false)
6
- $LOADED_FEATURES << 'psych.so'
7
- $LOAD_PATH << File.join(Config::CONFIG['libdir'], 'ruby/1.9')
8
- end
9
- # ODOT
10
-
11
- with_large_stack { require 'psych.rb' }
12
-
13
- Psych::Parser
14
- Psych::Handler
15
-
16
- require 'ruboto'
17
-
18
- ruboto_import_widgets :Button, :LinearLayout, :TextView
19
-
20
- $activity.handle_create do |bundle|
21
- setTitle File.basename(__FILE__).chomp('_activity.rb').split('_').map { |s| "#{s[0..0].upcase}#{s[1..-1]}" }.join(' ')
22
-
23
- setup_content do
24
- linear_layout :orientation => LinearLayout::VERTICAL do
25
- @decoded_view = text_view :id => 42, :text => with_large_stack { Psych.load('--- foo') }
26
- # TODO(uwe): Simplify when we stop supporting Psych in Ruby 1.8 mode
27
- @encoded_view = text_view(:id => 43, :text => with_large_stack { Psych.dump('foo') }) unless RUBY_VERSION < '1.9'
28
- end
29
- end
30
-
31
- end
@@ -1,16 +0,0 @@
1
- activity org.ruboto.test_app.PsychActivity
2
-
3
- setup do |activity|
4
- start = Time.now
5
- loop do
6
- @text_view = activity.findViewById(42)
7
- break if @text_view || (Time.now - start > 60)
8
- sleep 1
9
- end
10
- assert @text_view
11
- end
12
-
13
- test('psych_encode_decode') do |activity|
14
- assert_equal 'foo', activity.find_view_by_id(42).text.to_s
15
- #assert_equal "--- foo\n...\n", activity.find_view_by_id(43).text.to_s
16
- end
@@ -1,24 +0,0 @@
1
- STACK_DEPTH_SCRIPT = java.lang.Thread.current_thread.stack_trace.length.to_s
2
-
3
- raise "Stack level: #{STACK_DEPTH_SCRIPT}" rescue puts $!.message + "\n" + $!.backtrace.join("\n")
4
-
5
- require 'ruboto'
6
-
7
- ruboto_import_widgets :Button, :LinearLayout, :TextView
8
-
9
- $activity.handle_create do |bundle|
10
- STACK_DEPTH_HANDLE_CREATE = java.lang.Thread.current_thread.stack_trace.length.to_s
11
- setTitle File.basename(__FILE__).chomp('_activity.rb').split('_').map{|s| "#{s[0..0].upcase}#{s[1..-1]}" }.join(' ')
12
-
13
- setup_content do
14
- STACK_DEPTH_SETUP_CONTENT = java.lang.Thread.current_thread.stack_trace.length.to_s
15
- linear_layout :orientation => LinearLayout::VERTICAL do
16
- STACK_DEPTH_LINEAR_LAYOUT = java.lang.Thread.current_thread.stack_trace.length.to_s
17
- @script_view = text_view :id => 42, :text => STACK_DEPTH_SCRIPT
18
- @handle_create_view = text_view :id => 43, :text => STACK_DEPTH_HANDLE_CREATE
19
- @setup_content_view = text_view :id => 44, :text => STACK_DEPTH_SETUP_CONTENT
20
- @linear_layout_view = text_view :id => 45, :text => STACK_DEPTH_LINEAR_LAYOUT
21
- end
22
- end
23
-
24
- end