droiuby 0.1.6 → 0.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.
- checksums.yaml +7 -0
- data/lib/droiuby.rb +1 -1
- data/lib/droiuby/android.rb +59 -0
- data/lib/droiuby/application.rb +30 -0
- data/lib/droiuby/bootstrap.rb +263 -0
- data/lib/droiuby/droiuby.rb +47 -0
- data/lib/droiuby/loader.rb +36 -0
- data/lib/droiuby/plugins/plugins.rb +25 -0
- data/lib/droiuby/preload.rb +29 -0
- data/lib/droiuby/{project.rb → scripts/project.rb} +15 -6
- data/lib/droiuby/scripts/templates/ruby/Gemfile.erb +3 -0
- data/lib/droiuby/{templates → scripts/templates}/ruby/application.css.erb +0 -0
- data/lib/droiuby/{templates → scripts/templates}/ruby/config.droiuby.erb +0 -0
- data/lib/droiuby/{templates → scripts/templates}/ruby/gitignore.erb +0 -0
- data/lib/droiuby/{templates → scripts/templates}/ruby/index.rb.erb +0 -0
- data/lib/droiuby/{templates → scripts/templates}/ruby/index.xml.erb +0 -0
- data/lib/droiuby/support/asset.rb +47 -0
- data/lib/droiuby/support/autoload.rb +22 -0
- data/lib/droiuby/support/fixnum.rb +11 -0
- data/lib/droiuby/support/object.rb +11 -0
- data/lib/droiuby/support/string.rb +38 -0
- data/lib/droiuby/support/system.rb +14 -0
- data/lib/droiuby/support/thread.rb +17 -0
- data/lib/droiuby/support/to_query.rb +28 -0
- data/lib/droiuby/support/utils.rb +10 -0
- data/lib/droiuby/wrappers/accelerometer.rb +17 -0
- data/lib/droiuby/wrappers/activity.rb +64 -0
- data/lib/droiuby/wrappers/animation.rb +141 -0
- data/lib/droiuby/wrappers/async.rb +33 -0
- data/lib/droiuby/wrappers/button.rb +2 -0
- data/lib/droiuby/wrappers/canvas.rb +147 -0
- data/lib/droiuby/wrappers/collection/view_array.rb +21 -0
- data/lib/droiuby/wrappers/compound_button_wrapper.rb +25 -0
- data/lib/droiuby/wrappers/edit_text.rb +22 -0
- data/lib/droiuby/wrappers/image_button.rb +8 -0
- data/lib/droiuby/wrappers/intent.rb +24 -0
- data/lib/droiuby/wrappers/java_helpers/java_method_helper.rb +42 -0
- data/lib/droiuby/wrappers/java_helpers/view_helper.rb +84 -0
- data/lib/droiuby/wrappers/linear_layout.rb +15 -0
- data/lib/droiuby/wrappers/list_adapter_wrapper.rb +61 -0
- data/lib/droiuby/wrappers/list_view.rb +10 -0
- data/lib/droiuby/wrappers/listeners/auto_wrap.rb +72 -0
- data/lib/droiuby/wrappers/listeners/on_click_listener.rb +21 -0
- data/lib/droiuby/wrappers/listeners/on_web_console_ready_listener.rb +23 -0
- data/lib/droiuby/wrappers/motion_events.rb +34 -0
- data/lib/droiuby/wrappers/preferences.rb +59 -0
- data/lib/droiuby/wrappers/proxy_builder/interface_builder.rb +25 -0
- data/lib/droiuby/wrappers/runnable_wrapper.rb +16 -0
- data/lib/droiuby/wrappers/surface_view_wrapper.rb +59 -0
- data/lib/droiuby/wrappers/text_view.rb +28 -0
- data/lib/droiuby/wrappers/thread_pool.rb +18 -0
- data/lib/droiuby/wrappers/view_group_wrapper.rb +87 -0
- data/lib/droiuby/wrappers/view_wrapper.rb +221 -0
- data/lib/droiuby/wrappers/web_view.rb +16 -0
- data/lib/droiuby/wrappers/wrappers.rb +5 -0
- metadata +77 -51
@@ -0,0 +1,33 @@
|
|
1
|
+
class AsyncWrapper
|
2
|
+
def initialize
|
3
|
+
@native = Java::com.droiuby.client.core.async.AsyncWrapper.new(_execution_bundle)
|
4
|
+
end
|
5
|
+
|
6
|
+
def native
|
7
|
+
@native
|
8
|
+
end
|
9
|
+
|
10
|
+
def before(&block)
|
11
|
+
@native.setPre_execute(block)
|
12
|
+
self
|
13
|
+
end
|
14
|
+
|
15
|
+
def perform(&block)
|
16
|
+
@native.setBackground_task(block)
|
17
|
+
self
|
18
|
+
end
|
19
|
+
|
20
|
+
def done(&block)
|
21
|
+
@native.setPost_execute(block)
|
22
|
+
self
|
23
|
+
end
|
24
|
+
|
25
|
+
def execute
|
26
|
+
@native.execute(nil, nil, nil)
|
27
|
+
self
|
28
|
+
end
|
29
|
+
|
30
|
+
def start
|
31
|
+
execute
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,147 @@
|
|
1
|
+
|
2
|
+
class Rect
|
3
|
+
def initialize(rect = nil, left = 0, top = 0, right = 0, bottom = 0)
|
4
|
+
if (rect.nil?)
|
5
|
+
@native = Java::android.graphics.Rect.new(left, top, right, bottom)
|
6
|
+
else
|
7
|
+
@native = rect
|
8
|
+
end
|
9
|
+
|
10
|
+
end
|
11
|
+
|
12
|
+
def native
|
13
|
+
@native
|
14
|
+
end
|
15
|
+
|
16
|
+
def height
|
17
|
+
@native.height
|
18
|
+
end
|
19
|
+
|
20
|
+
def width
|
21
|
+
@native.width
|
22
|
+
end
|
23
|
+
|
24
|
+
def set(left, top, right, bottom)
|
25
|
+
@native.set(left, top, right, bottom)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def _rect(left = 0, top = 0, right = 0, bottom = 0)
|
30
|
+
Rect.new(nil, left, top, right, bottom)
|
31
|
+
end
|
32
|
+
|
33
|
+
class Paint
|
34
|
+
def initialize
|
35
|
+
@native = Java::android.graphics.Paint.new
|
36
|
+
end
|
37
|
+
|
38
|
+
def native
|
39
|
+
@native
|
40
|
+
end
|
41
|
+
|
42
|
+
def alpha=(value)
|
43
|
+
@native.setAlpha(Java::android.graphics.Color.parseColor(value))
|
44
|
+
end
|
45
|
+
|
46
|
+
def alpha
|
47
|
+
@native.getAlpha
|
48
|
+
end
|
49
|
+
|
50
|
+
def color=(value)
|
51
|
+
if (value.kind_of String)
|
52
|
+
value = value.to_color
|
53
|
+
end
|
54
|
+
@native.setColor(value)
|
55
|
+
end
|
56
|
+
|
57
|
+
def color
|
58
|
+
@native.getColor
|
59
|
+
end
|
60
|
+
|
61
|
+
def stroke_width=(width)
|
62
|
+
@native.setStrokeWidth(width)
|
63
|
+
end
|
64
|
+
|
65
|
+
def stroke_width
|
66
|
+
@native.getStrokeWidth
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
class Canvas
|
71
|
+
|
72
|
+
include JavaMethodHelper
|
73
|
+
include Droiuby::ViewHelper
|
74
|
+
|
75
|
+
java_fast_reader Java::android.graphics.Canvas, :width
|
76
|
+
java_fast_reader Java::android.graphics.Canvas, :height
|
77
|
+
|
78
|
+
java_native_method Java::android.graphics.Canvas, :drawColor, [Java::int]
|
79
|
+
java_native_method Java::android.graphics.Canvas, :drawText, [Java::java.lang.String, Java::float, Java::float, Java::android.graphics.Paint]
|
80
|
+
java_native_method Java::android.graphics.Canvas, :drawBitmap, [Java::android.graphics.Bitmap, Java::float, Java::float, Java::android.graphics.Paint]
|
81
|
+
java_native_method Java::android.graphics.Canvas, :drawCircle, [Java::float, Java::float, Java::float, Java::android.graphics.Paint]
|
82
|
+
java_native_method Java::android.graphics.Canvas, :drawLine, [Java::float, Java::float, Java::float, Java::float, Java::android.graphics.Paint]
|
83
|
+
java_native_method Java::android.graphics.Canvas, :drawRoundRect, [Java::android.graphics.RectF, Java::float, Java::float, Java::android.graphics.Paint]
|
84
|
+
|
85
|
+
def initialize(native)
|
86
|
+
@native = native
|
87
|
+
@paint = make_paint
|
88
|
+
end
|
89
|
+
|
90
|
+
def native
|
91
|
+
@native
|
92
|
+
end
|
93
|
+
|
94
|
+
def make_paint
|
95
|
+
Paint.new
|
96
|
+
end
|
97
|
+
|
98
|
+
def make_rect(left, top, right, bottom)
|
99
|
+
Java::android.graphics.RectF.new(left, top, right, bottom)
|
100
|
+
end
|
101
|
+
|
102
|
+
def paint
|
103
|
+
@paint
|
104
|
+
end
|
105
|
+
|
106
|
+
def paint=(p)
|
107
|
+
@paint = p
|
108
|
+
end
|
109
|
+
|
110
|
+
def draw_color(value)
|
111
|
+
if (value.kind_of? String)
|
112
|
+
value = value.to_color
|
113
|
+
end
|
114
|
+
|
115
|
+
java_drawColor(value)
|
116
|
+
end
|
117
|
+
|
118
|
+
def text(msg, x, y, paint = nil)
|
119
|
+
paint = @paint if paint.nil?
|
120
|
+
|
121
|
+
java_drawText(msg, x, y, paint.native);
|
122
|
+
end
|
123
|
+
|
124
|
+
def circle(x, y, size, paint = nil)
|
125
|
+
paint = @paint if paint.nil?
|
126
|
+
java_drawCircle(x, y, size, paint.native);
|
127
|
+
end
|
128
|
+
|
129
|
+
def line(x, y, x1, y1, paint = nil)
|
130
|
+
paint = @paint if paint.nil?
|
131
|
+
java_drawLine(x, y, x1, y1, paint.native);
|
132
|
+
end
|
133
|
+
|
134
|
+
def bitmap(bitmap, x, y, paint = nil, options = {})
|
135
|
+
paint = @paint if paint.nil?
|
136
|
+
if bitmap.class == BitmapDrawableWrapper
|
137
|
+
bitmap = bitmap.to_bitmap
|
138
|
+
end
|
139
|
+
# native.drawBitmap(bitmap, x.to_f, y.to_f, paint.native)
|
140
|
+
java_drawBitmap(bitmap, x.to_f, y.to_f, paint.native)
|
141
|
+
end
|
142
|
+
|
143
|
+
def round_rect(rect, x, y, paint = nil)
|
144
|
+
paint = @paint if paint.nil?
|
145
|
+
java_drawRoundRect(rect, x, y, paint.native)
|
146
|
+
end
|
147
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class ViewArray
|
2
|
+
|
3
|
+
def initialize(elements = [])
|
4
|
+
@elements = elements
|
5
|
+
end
|
6
|
+
|
7
|
+
def method_missing(meth, *args, &block)
|
8
|
+
@elements.send(meth, *args, &block)
|
9
|
+
end
|
10
|
+
|
11
|
+
def on(symbol, &block)
|
12
|
+
@elements.each { |elem|
|
13
|
+
elem.on(symbol, &block)
|
14
|
+
}
|
15
|
+
end
|
16
|
+
|
17
|
+
def to_a
|
18
|
+
@elements
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'droiuby/wrappers/view_wrapper'
|
2
|
+
|
3
|
+
class CompoundButtonWrapper < ViewWrapper
|
4
|
+
|
5
|
+
|
6
|
+
def on(event,&block)
|
7
|
+
listener_ref = event.to_s.camelize
|
8
|
+
case event.to_sym
|
9
|
+
when :checked_change
|
10
|
+
self.native.send(:"setOn#{listener_ref}Listener",_listener("On#{listener_ref}Listener", 'android.widget.CompoundButton', &block))
|
11
|
+
else
|
12
|
+
super(event, &block)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def checked?
|
17
|
+
self.native.isChecked
|
18
|
+
end
|
19
|
+
|
20
|
+
def checked=(value)
|
21
|
+
self.native.setChecked(value)
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'droiuby/wrappers/view_wrapper'
|
2
|
+
|
3
|
+
class EditTextWrapper < TextViewWrapper
|
4
|
+
|
5
|
+
java_attr_accessor :hint
|
6
|
+
|
7
|
+
def text=(text)
|
8
|
+
@view.setText(text)
|
9
|
+
end
|
10
|
+
|
11
|
+
def text
|
12
|
+
@view.getText.toString
|
13
|
+
end
|
14
|
+
|
15
|
+
def color=(value)
|
16
|
+
@view.setTextColor(value)
|
17
|
+
end
|
18
|
+
|
19
|
+
def color
|
20
|
+
@view.getTextColors.getDefaultColor
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'droiuby/wrappers/java_helpers/view_helper'
|
2
|
+
|
3
|
+
class IntentWrapper
|
4
|
+
|
5
|
+
include Droiuby::ViewHelper
|
6
|
+
|
7
|
+
java_attr_reader :action
|
8
|
+
|
9
|
+
def initialize(intent)
|
10
|
+
if (intent.nil?)
|
11
|
+
@native = Java::android.content.Intent.new
|
12
|
+
else
|
13
|
+
@native = intent
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def get_string_extra(name)
|
18
|
+
@native.getStringExtra(name)
|
19
|
+
end
|
20
|
+
|
21
|
+
def native
|
22
|
+
@native
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
#speed up java native calls by binding the methods
|
2
|
+
module JavaMethodHelper
|
3
|
+
|
4
|
+
def self.included(klass)
|
5
|
+
klass.extend(ClassMethods)
|
6
|
+
end
|
7
|
+
|
8
|
+
module ClassMethods
|
9
|
+
|
10
|
+
def java_native_singleton_on(object, java_klass, method_sym, params = [])
|
11
|
+
unbound_method = java_klass.java_method(method_sym, params)
|
12
|
+
define_singleton_method "java_#{method_sym.to_s}".to_sym do |*args|
|
13
|
+
unbound_method.bind(object).call(*args)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def java_native_method_on(object, java_klass, method_sym, params = [], method_name = nil)
|
18
|
+
unbound_method = java_klass.java_method(method_sym, params)
|
19
|
+
method_name = "java_#{method_sym.to_s}" if method_name.nil?
|
20
|
+
define_method method_name.to_sym do |*args|
|
21
|
+
unbound_method.bind(object).call(*args)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
def java_native_method(java_klass, method_sym, params = [], method_name = nil)
|
27
|
+
unbound_method = java_klass.java_method(method_sym, params)
|
28
|
+
method_name = "java_#{method_sym.to_s}" if method_name.nil?
|
29
|
+
define_method method_name.to_sym do |*args|
|
30
|
+
unbound_method.bind(self.native).call(*args)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def java_native_singleton(java_klass, method_sym, params = [])
|
35
|
+
unbound_method = java_klass.java_method(method_sym, params)
|
36
|
+
define_singleton_method "java_#{method_sym.to_s}".to_sym do |*args|
|
37
|
+
unbound_method.call(*args)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
#convenience methods to help droiuby deal with ruby-to-java calls
|
2
|
+
module Droiuby
|
3
|
+
module ViewHelper
|
4
|
+
|
5
|
+
def self.included(klass)
|
6
|
+
klass.extend(ClassMethods)
|
7
|
+
end
|
8
|
+
|
9
|
+
module ClassMethods
|
10
|
+
|
11
|
+
def java_fast_reader(java_klass, *symbols)
|
12
|
+
symbols.each do |s|
|
13
|
+
java_getter_method = "get#{s.to_s.camelize}".to_sym
|
14
|
+
|
15
|
+
unbound_getter_method = java_klass.java_method(java_getter_method, [])
|
16
|
+
|
17
|
+
define_method(s) do
|
18
|
+
unbound_getter_method.bind(self.native).call
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def java_fast_accessor(java_klass, params = [], *symbols)
|
24
|
+
symbols.each do |s|
|
25
|
+
java_getter_method = "get#{s.to_s.camelize}".to_sym
|
26
|
+
java_setter_method = "set#{s.to_s.camelize}".to_sym
|
27
|
+
|
28
|
+
unbound_getter_method = java_klass.java_method(java_getter_method, [])
|
29
|
+
unbound_setter_method = java_klass.java_method(java_setter_method, params)
|
30
|
+
|
31
|
+
define_method(s) do
|
32
|
+
unbound_getter_method.bind(self.native).call
|
33
|
+
end
|
34
|
+
|
35
|
+
define_method("#{s}=".to_sym) do |arg|
|
36
|
+
unbound_setter_method.bind(self.native).call(arg)
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def java_attr_reader(*symbols)
|
43
|
+
symbols.each do |s|
|
44
|
+
java_getter_method = "get#{s.to_s.camelize}".to_sym
|
45
|
+
define_method(s) do
|
46
|
+
native.send(java_getter_method)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def java_attr_writer(*symbols)
|
52
|
+
symbols.each do |s|
|
53
|
+
java_setter_method = "set#{s.to_s.camelize}".to_sym
|
54
|
+
define_method("#{s}=".to_sym) do |value|
|
55
|
+
native.send(java_setter_method, value)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def java_attr_boolean_reader(*symbols)
|
61
|
+
symbols.each do |s|
|
62
|
+
java_getter_method = "is#{s.to_s.camelize}".to_sym
|
63
|
+
define_method(s) do
|
64
|
+
native.send(java_getter_method)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def java_attr_accessor(*symbols)
|
70
|
+
symbols.each do |s|
|
71
|
+
java_setter_method = "set#{s.to_s.camelize}".to_sym
|
72
|
+
java_getter_method = "get#{s.to_s.camelize}".to_sym
|
73
|
+
define_method(s) do
|
74
|
+
native.send(java_getter_method)
|
75
|
+
end
|
76
|
+
define_method("#{s}=".to_sym) do |value|
|
77
|
+
native.send(java_setter_method,value)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'droiuby/wrappers/view_wrapper'
|
2
|
+
|
3
|
+
class LinearLayoutWrapper < ViewGroupWrapper
|
4
|
+
|
5
|
+
java_attr_accessor :baseline_algined, :orientation
|
6
|
+
|
7
|
+
def initialize(view = nil)
|
8
|
+
if view.nil?
|
9
|
+
@view = Java::android.widget.LinearLayout.new(_current_activity)
|
10
|
+
else
|
11
|
+
super(view)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
class ListAdapterWrapper
|
2
|
+
|
3
|
+
def initialize
|
4
|
+
@native = Java::com.droiuby.wrappers.ListAdapterRubyWrapper.new(_execution_bundle, self)
|
5
|
+
end
|
6
|
+
|
7
|
+
def native
|
8
|
+
@native
|
9
|
+
end
|
10
|
+
|
11
|
+
def get_count(&block)
|
12
|
+
@native.setGetCountBody(block)
|
13
|
+
self
|
14
|
+
end
|
15
|
+
|
16
|
+
def get_item(&block)
|
17
|
+
@native.setGetItemBody(block)
|
18
|
+
self
|
19
|
+
end
|
20
|
+
|
21
|
+
def get_item_id(&block)
|
22
|
+
@native.setGetItemIdBody(block)
|
23
|
+
self
|
24
|
+
end
|
25
|
+
|
26
|
+
def get_item_view_type(&block)
|
27
|
+
@native.setGetItemViewTypeBody(block)
|
28
|
+
self
|
29
|
+
end
|
30
|
+
|
31
|
+
def get_view(&block)
|
32
|
+
@native.setGetViewBody(block)
|
33
|
+
self
|
34
|
+
end
|
35
|
+
|
36
|
+
def get_view_type_count(&block)
|
37
|
+
@native.setGetViewTypeCountBody(block)
|
38
|
+
self
|
39
|
+
end
|
40
|
+
|
41
|
+
def has_stable_id?(&block)
|
42
|
+
@native.setHasStableIdBody(block)
|
43
|
+
self
|
44
|
+
end
|
45
|
+
|
46
|
+
def is_empty?(&block)
|
47
|
+
@native.setIsEmptyBody(block)
|
48
|
+
self
|
49
|
+
end
|
50
|
+
|
51
|
+
def register_data_set_observer(&block)
|
52
|
+
@native.setRegisterDataSetObserverBody(block)
|
53
|
+
self
|
54
|
+
end
|
55
|
+
|
56
|
+
def unregister_data_set_observer(&block)
|
57
|
+
@native.unregisterDataSetObserver(block)
|
58
|
+
self
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|