ruboto-core 0.0.2 → 0.0.3

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.
@@ -1,109 +0,0 @@
1
- #
2
- # Run on a device and then copy interfaces.txt back to the callback_gen directory.
3
- #
4
- # The result is a hash.
5
- # The keys are names the names of the classes, sometimes followed by a
6
- # $ and then the name of the interface.
7
- # The keys are hashes themselves. These hashes have keys of the method
8
- # names and values of yet another hash, which gives the argument types
9
- # (and thus implicitly the number of args), the return type, etc.
10
-
11
- require 'java'
12
-
13
- class ReflectionBuilder
14
- attr_reader :methods
15
-
16
- def initialize(class_name, callbacks_only=false)
17
- @methods = {}
18
- @@count = 0 unless defined?(@@count)
19
- reflect class_name, callbacks_only
20
- end
21
-
22
- def reflect(klass, callbacks_only=false)
23
- # klass can be the java class object or a string
24
- klass = java_class klass if klass.class == String
25
-
26
- hash = @methods[klass.getName] = {}
27
-
28
- # iterate over the public methods of the class
29
- klass.getDeclaredMethods.reject {|method| java.lang.reflect.Modifier.isPrivate(method.getModifiers) || java.lang.reflect.Modifier.isFinal(method.getModifiers) }.each do |method|
30
- if !callbacks_only or method.getName[0..1] == "on"
31
- hash[method.getName] = {}
32
- hash[method.getName]["return_type"] = method.getReturnType.getName unless method.getReturnType.getName == "void"
33
- # the gsub below converts [Ljava nonsense to ClassName[]
34
- hash[method.getName]["args"] = method.getParameterTypes.map {|i| i.getName.gsub(/\[Ljava\.[\w\.]+;/) {|m| "#{m[2..-2]}[]"}} unless method.getParameterTypes.empty?
35
- hash[method.getName]["abstract"] = java.lang.reflect.Modifier.isAbstract(method.getModifiers)
36
- @@count += 1
37
- end
38
- end
39
- end
40
-
41
- def interfaces(*args)
42
- args.each {|arg| reflect arg}
43
- end
44
-
45
- def interfaces_under(*args)
46
- args.each do |name|
47
- interfaces *java.lang.Class.forName(name).getClasses.select {|klass| klass.isInterface}
48
- end
49
- end
50
-
51
- def self.count
52
- @@count
53
- end
54
-
55
- def self.reset_count
56
- @@count = 0
57
- end
58
-
59
- protected
60
- def java_class(class_name)
61
- java.lang.Class.forName(class_name)
62
- end
63
- end
64
-
65
- def java_reflect(class_name, callbacks_only=false, &block)
66
- r = ReflectionBuilder.new(class_name, callbacks_only)
67
- yield r if block
68
- $result[class_name] = r.methods
69
- end
70
-
71
- def reflect_multiple(*classes)
72
- classes.each {|c| java_reflect c }
73
- end
74
-
75
- $result = {}
76
- ReflectionBuilder.reset_count
77
-
78
- java_reflect 'android.app.Activity', true do |r|
79
- r.interfaces *%w(
80
- android.hardware.SensorEventListener
81
- java.lang.Runnable
82
- )
83
-
84
- r.interfaces_under *%w(
85
- android.view.View
86
- android.widget.AdapterView
87
- android.widget.TabHost
88
- android.widget.TextView
89
- android.widget.DatePicker
90
- android.widget.TimePicker
91
- android.app.DatePickerDialog
92
- android.app.TimePickerDialog
93
- android.content.DialogInterface
94
- )
95
- end
96
-
97
- reflect_multiple *%w(
98
- android.app.Service
99
- android.content.BroadcastReceiver
100
- )
101
-
102
-
103
-
104
- File.open("/sdcard/jruby/interfaces.txt", "w") do |file|
105
- file.write $result.inspect
106
- end
107
-
108
- puts ReflectionBuilder.count
109
-
@@ -1 +0,0 @@
1
- {"android.app.Activity"=>{"android.app.Activity"=>{"onActivityResult"=>{"args"=>["int", "int", "android.content.Intent"], "abstract"=>false}, "onApplyThemeResource"=>{"args"=>["android.content.res.Resources$Theme", "int", "boolean"], "abstract"=>false}, "onAttachedToWindow"=>{"abstract"=>false}, "onBackPressed"=>{"abstract"=>false}, "onChildTitleChanged"=>{"args"=>["android.app.Activity", "java.lang.CharSequence"], "abstract"=>false}, "onConfigurationChanged"=>{"args"=>["android.content.res.Configuration"], "abstract"=>false}, "onContentChanged"=>{"abstract"=>false}, "onContextItemSelected"=>{"return_type"=>"boolean", "args"=>["android.view.MenuItem"], "abstract"=>false}, "onContextMenuClosed"=>{"args"=>["android.view.Menu"], "abstract"=>false}, "onCreate"=>{"args"=>["android.os.Bundle"], "abstract"=>false}, "onCreateContextMenu"=>{"args"=>["android.view.ContextMenu", "android.view.View", "android.view.ContextMenu$ContextMenuInfo"], "abstract"=>false}, "onCreateDescription"=>{"return_type"=>"java.lang.CharSequence", "abstract"=>false}, "onCreateDialog"=>{"return_type"=>"android.app.Dialog", "args"=>["int", "android.os.Bundle"], "abstract"=>false}, "onCreateOptionsMenu"=>{"return_type"=>"boolean", "args"=>["android.view.Menu"], "abstract"=>false}, "onCreatePanelMenu"=>{"return_type"=>"boolean", "args"=>["int", "android.view.Menu"], "abstract"=>false}, "onCreatePanelView"=>{"return_type"=>"android.view.View", "args"=>["int"], "abstract"=>false}, "onCreateThumbnail"=>{"return_type"=>"boolean", "args"=>["android.graphics.Bitmap", "android.graphics.Canvas"], "abstract"=>false}, "onCreateView"=>{"return_type"=>"android.view.View", "args"=>["java.lang.String", "android.content.Context", "android.util.AttributeSet"], "abstract"=>false}, "onDestroy"=>{"abstract"=>false}, "onDetachedFromWindow"=>{"abstract"=>false}, "onKeyDown"=>{"return_type"=>"boolean", "args"=>["int", "android.view.KeyEvent"], "abstract"=>false}, "onKeyLongPress"=>{"return_type"=>"boolean", "args"=>["int", "android.view.KeyEvent"], "abstract"=>false}, "onKeyMultiple"=>{"return_type"=>"boolean", "args"=>["int", "int", "android.view.KeyEvent"], "abstract"=>false}, "onKeyUp"=>{"return_type"=>"boolean", "args"=>["int", "android.view.KeyEvent"], "abstract"=>false}, "onLowMemory"=>{"abstract"=>false}, "onMenuItemSelected"=>{"return_type"=>"boolean", "args"=>["int", "android.view.MenuItem"], "abstract"=>false}, "onMenuOpened"=>{"return_type"=>"boolean", "args"=>["int", "android.view.Menu"], "abstract"=>false}, "onNewIntent"=>{"args"=>["android.content.Intent"], "abstract"=>false}, "onOptionsItemSelected"=>{"return_type"=>"boolean", "args"=>["android.view.MenuItem"], "abstract"=>false}, "onOptionsMenuClosed"=>{"args"=>["android.view.Menu"], "abstract"=>false}, "onPanelClosed"=>{"args"=>["int", "android.view.Menu"], "abstract"=>false}, "onPause"=>{"abstract"=>false}, "onPostCreate"=>{"args"=>["android.os.Bundle"], "abstract"=>false}, "onPostResume"=>{"abstract"=>false}, "onPrepareDialog"=>{"args"=>["int", "android.app.Dialog", "android.os.Bundle"], "abstract"=>false}, "onPrepareOptionsMenu"=>{"return_type"=>"boolean", "args"=>["android.view.Menu"], "abstract"=>false}, "onPreparePanel"=>{"return_type"=>"boolean", "args"=>["int", "android.view.View", "android.view.Menu"], "abstract"=>false}, "onRestart"=>{"abstract"=>false}, "onRestoreInstanceState"=>{"args"=>["android.os.Bundle"], "abstract"=>false}, "onResume"=>{"abstract"=>false}, "onRetainNonConfigurationChildInstances"=>{"return_type"=>"java.util.HashMap", "abstract"=>false}, "onRetainNonConfigurationInstance"=>{"return_type"=>"java.lang.Object", "abstract"=>false}, "onSaveInstanceState"=>{"args"=>["android.os.Bundle"], "abstract"=>false}, "onSearchRequested"=>{"return_type"=>"boolean", "abstract"=>false}, "onStart"=>{"abstract"=>false}, "onStop"=>{"abstract"=>false}, "onTitleChanged"=>{"args"=>["java.lang.CharSequence", "int"], "abstract"=>false}, "onTouchEvent"=>{"return_type"=>"boolean", "args"=>["android.view.MotionEvent"], "abstract"=>false}, "onTrackballEvent"=>{"return_type"=>"boolean", "args"=>["android.view.MotionEvent"], "abstract"=>false}, "onUserInteraction"=>{"abstract"=>false}, "onUserLeaveHint"=>{"abstract"=>false}, "onWindowAttributesChanged"=>{"args"=>["android.view.WindowManager$LayoutParams"], "abstract"=>false}, "onWindowFocusChanged"=>{"args"=>["boolean"], "abstract"=>false}}, "android.hardware.SensorEventListener"=>{"onAccuracyChanged"=>{"args"=>["android.hardware.Sensor", "int"], "abstract"=>true}, "onSensorChanged"=>{"args"=>["android.hardware.SensorEvent"], "abstract"=>true}}, "java.lang.Runnable"=>{"run"=>{"abstract"=>true}}, "android.view.View$OnCreateContextMenuListener"=>{"onCreateContextMenu"=>{"args"=>["android.view.ContextMenu", "android.view.View", "android.view.ContextMenu$ContextMenuInfo"], "abstract"=>true}}, "android.view.View$OnClickListener"=>{"onClick"=>{"args"=>["android.view.View"], "abstract"=>true}}, "android.view.View$OnFocusChangeListener"=>{"onFocusChange"=>{"args"=>["android.view.View", "boolean"], "abstract"=>true}}, "android.view.View$OnLongClickListener"=>{"onLongClick"=>{"return_type"=>"boolean", "args"=>["android.view.View"], "abstract"=>true}}, "android.view.View$OnTouchListener"=>{"onTouch"=>{"return_type"=>"boolean", "args"=>["android.view.View", "android.view.MotionEvent"], "abstract"=>true}}, "android.view.View$OnKeyListener"=>{"onKey"=>{"return_type"=>"boolean", "args"=>["android.view.View", "int", "android.view.KeyEvent"], "abstract"=>true}}, "android.widget.AdapterView$OnItemSelectedListener"=>{"onItemSelected"=>{"args"=>["android.widget.AdapterView", "android.view.View", "int", "long"], "abstract"=>true}, "onNothingSelected"=>{"args"=>["android.widget.AdapterView"], "abstract"=>true}}, "android.widget.AdapterView$OnItemLongClickListener"=>{"onItemLongClick"=>{"return_type"=>"boolean", "args"=>["android.widget.AdapterView", "android.view.View", "int", "long"], "abstract"=>true}}, "android.widget.AdapterView$OnItemClickListener"=>{"onItemClick"=>{"args"=>["android.widget.AdapterView", "android.view.View", "int", "long"], "abstract"=>true}}, "android.view.ViewGroup$OnHierarchyChangeListener"=>{"onChildViewAdded"=>{"args"=>["android.view.View", "android.view.View"], "abstract"=>true}, "onChildViewRemoved"=>{"args"=>["android.view.View", "android.view.View"], "abstract"=>true}}, "android.widget.TabHost$TabContentFactory"=>{"createTabContent"=>{"return_type"=>"android.view.View", "args"=>["java.lang.String"], "abstract"=>true}}, "android.widget.TabHost$OnTabChangeListener"=>{"onTabChanged"=>{"args"=>["java.lang.String"], "abstract"=>true}}, "android.widget.TextView$OnEditorActionListener"=>{"onEditorAction"=>{"return_type"=>"boolean", "args"=>["android.widget.TextView", "int", "android.view.KeyEvent"], "abstract"=>true}}, "android.widget.DatePicker$OnDateChangedListener"=>{"onDateChanged"=>{"args"=>["android.widget.DatePicker", "int", "int", "int"], "abstract"=>true}}, "android.widget.TimePicker$OnTimeChangedListener"=>{"onTimeChanged"=>{"args"=>["android.widget.TimePicker", "int", "int"], "abstract"=>true}}, "android.app.DatePickerDialog$OnDateSetListener"=>{"onDateSet"=>{"args"=>["android.widget.DatePicker", "int", "int", "int"], "abstract"=>true}}, "android.app.TimePickerDialog$OnTimeSetListener"=>{"onTimeSet"=>{"args"=>["android.widget.TimePicker", "int", "int"], "abstract"=>true}}, "android.content.DialogInterface$OnKeyListener"=>{"onKey"=>{"return_type"=>"boolean", "args"=>["android.content.DialogInterface", "int", "android.view.KeyEvent"], "abstract"=>true}}, "android.content.DialogInterface$OnMultiChoiceClickListener"=>{"onClick"=>{"args"=>["android.content.DialogInterface", "int", "boolean"], "abstract"=>true}}, "android.content.DialogInterface$OnClickListener"=>{"onClick"=>{"args"=>["android.content.DialogInterface", "int"], "abstract"=>true}}, "android.content.DialogInterface$OnShowListener"=>{"onShow"=>{"args"=>["android.content.DialogInterface"], "abstract"=>true}}, "android.content.DialogInterface$OnDismissListener"=>{"onDismiss"=>{"args"=>["android.content.DialogInterface"], "abstract"=>true}}, "android.content.DialogInterface$OnCancelListener"=>{"onCancel"=>{"args"=>["android.content.DialogInterface"], "abstract"=>true}}}, "android.app.Service"=>{"android.app.Service"=>{"dump"=>{"args"=>["java.io.FileDescriptor", "java.io.PrintWriter", "java.lang.String[]"], "abstract"=>false}, "finalize"=>{"abstract"=>false}, "onBind"=>{"return_type"=>"android.os.IBinder", "args"=>["android.content.Intent"], "abstract"=>true}, "onConfigurationChanged"=>{"args"=>["android.content.res.Configuration"], "abstract"=>false}, "onCreate"=>{"abstract"=>false}, "onDestroy"=>{"abstract"=>false}, "onLowMemory"=>{"abstract"=>false}, "onRebind"=>{"args"=>["android.content.Intent"], "abstract"=>false}, "onStart"=>{"args"=>["android.content.Intent", "int"], "abstract"=>false}, "onStartCommand"=>{"return_type"=>"int", "args"=>["android.content.Intent", "int", "int"], "abstract"=>false}, "onUnbind"=>{"return_type"=>"boolean", "args"=>["android.content.Intent"], "abstract"=>false}}}, "android.content.BroadcastReceiver"=>{"android.content.BroadcastReceiver"=>{"checkSynchronousHint"=>{"abstract"=>false}, "onReceive"=>{"args"=>["android.content.Context", "android.content.Intent"], "abstract"=>true}, "peekService"=>{"return_type"=>"android.os.IBinder", "args"=>["android.content.Context", "android.content.Intent"], "abstract"=>false}}}}