ruboto 1.0.0 → 1.0.1
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 +4 -4
- data/Gemfile.lock +4 -4
- data/RELEASE_CANDICATE_DOC.md +4 -17
- data/RELEASE_DOC.md +42 -43
- data/Rakefile +33 -11
- data/assets/rakelib/ruboto.rake +4 -2
- data/assets/samples/sample_broadcast_receiver.rb +1 -1
- data/assets/src/InheritingBroadcastReceiver.java +0 -3
- data/assets/src/InheritingClass.java +4 -9
- data/assets/src/InheritingService.java +0 -5
- data/assets/src/RubotoActivity.java +12 -52
- data/assets/src/RubotoBroadcastReceiver.java +3 -10
- data/assets/src/RubotoService.java +5 -102
- data/assets/src/org/ruboto/JRubyAdapter.java +7 -6
- data/assets/src/org/ruboto/ScriptLoader.java +2 -29
- data/lib/ruboto/util/build.rb +26 -14
- data/lib/ruboto/util/emulator.rb +27 -11
- data/lib/ruboto/util/update.rb +15 -10
- data/lib/ruboto/util/verify.rb +1 -2
- data/lib/ruboto/util/xml_element.rb +53 -23
- data/lib/ruboto/version.rb +1 -1
- data/test/activity/stack_activity_test.rb +3 -2
- data/test/activity/subclass_activity.rb +0 -1
- data/test/arjdbc_test.rb +119 -0
- data/test/rake_test.rb +10 -0
- data/test/ruboto_gen_test.rb +4 -3
- data/test/sample_broadcast_receiver_test.rb +31 -0
- data/test/test_helper.rb +2 -2
- metadata +26 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 541c9b2e7673b6da8fc43a3534f5f2fcc2d8c718
|
4
|
+
data.tar.gz: 86da6d0da33706109710b734f42ed4da1abd019e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 14ce1aac618874c8d9a99588065a767027419546a9a399b870ccfe8e80007aeff10b412c59e35950da1337d0abe83f78c4771115f948858b2c7ab1e79510d73d
|
7
|
+
data.tar.gz: cd2279a27b6cbf5206dafc6f3f0314e32917f79a236db532159cf1c54e73293e29456828660665124a75aefc772f7381f09758f76921454eb0a8bf6554a94b74
|
data/Gemfile.lock
CHANGED
data/RELEASE_CANDICATE_DOC.md
CHANGED
@@ -1,23 +1,10 @@
|
|
1
|
-
Subject: [ANN] Ruboto 1.0.
|
1
|
+
Subject: [ANN] Ruboto 1.0.1 release candidate
|
2
2
|
|
3
3
|
Hi all!
|
4
4
|
|
5
|
-
The Ruboto 1.0.
|
6
|
-
|
7
|
-
|
8
|
-
ready for general consumption!
|
9
|
-
|
10
|
-
* All important parts of the Android API are available.
|
11
|
-
* The API has stabilised.
|
12
|
-
* Performance is reasonable. (Best case startup 4 seconds or less).
|
13
|
-
* Home page/Wiki/Tutorials and other docs are of high enough quality that
|
14
|
-
new developers have a low threshold to get going, and more advanced
|
15
|
-
developers can find how to do more advanced apps.
|
16
|
-
|
17
|
-
Notable features this release is RubyGems support for the "dalvik"
|
18
|
-
platform and support for using Android utility projects. This means you
|
19
|
-
can release gems for dalvik only and consume in-house or third-party
|
20
|
-
utility projects.
|
5
|
+
The Ruboto 1.0.1 release candidate is now available.
|
6
|
+
|
7
|
+
This release focuses on bug fixes and documentation.
|
21
8
|
|
22
9
|
As always we need your help and feedback to ensure the quality of the release. Please install the release candidate using
|
23
10
|
|
data/RELEASE_DOC.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
Subject: [ANN] Ruboto 1.0.
|
1
|
+
Subject: [ANN] Ruboto 1.0.1 released!
|
2
2
|
|
3
|
-
The Ruboto team is pleased to announce the release of Ruboto 1.0.
|
3
|
+
The Ruboto team is pleased to announce the release of Ruboto 1.0.1.
|
4
4
|
|
5
5
|
Ruboto (JRuby on Android) is a platform for developing full stand-alone
|
6
6
|
apps for Android using the Ruby language and libraries. It includes
|
@@ -8,64 +8,63 @@ support libraries and generators for creating projects, classes, tests,
|
|
8
8
|
and more. The complete APIs of Android, Java, and Ruby are available to
|
9
9
|
you using the Ruby language.
|
10
10
|
|
11
|
-
New in version 1.0.
|
12
|
-
|
13
|
-
|
14
|
-
ready for general consumption!
|
15
|
-
|
16
|
-
* All important parts of the Android API are available.
|
17
|
-
* The API has stabilised.
|
18
|
-
* Performance is reasonable. (Best case startup 4 seconds or less).
|
19
|
-
* Home page/Wiki/Tutorials and other docs are of high enough quality that
|
20
|
-
new developers have a low threshold to get going, and more advanced
|
21
|
-
developers can find how to do more advanced apps.
|
22
|
-
|
23
|
-
Notable features this release is RubyGems support for the "dalvik"
|
24
|
-
platform and support for using Android utility projects. This means you
|
25
|
-
can release gems for dalvik only and consume in-house or third-party
|
26
|
-
utility projects.
|
11
|
+
New in version 1.0.1:
|
12
|
+
|
13
|
+
This release focuses on bug fixes and documentation.
|
27
14
|
|
28
15
|
Features:
|
29
16
|
|
30
|
-
* Issue #
|
31
|
-
* Issue #
|
32
|
-
Android
|
33
|
-
* Issue #524 Use "ruboto emulator" to setup HAXM
|
34
|
-
* Issue #530 Shift all layout parameters into :layout = {} and remove the
|
35
|
-
need for "=" in setting instance variables
|
36
|
-
* Issue #544 Add support for using utility projects
|
17
|
+
* Issue #546 Better stack traces using "jruby.rewrite.java.trace" = "true"
|
18
|
+
* Issue #548 Allow using snapshot versions of jruby-jars
|
37
19
|
|
38
20
|
Bugfixes:
|
39
21
|
|
40
|
-
* Issue #
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
22
|
+
* Issue #505 Trigger rebuild of the package if non-ruby source has changed
|
23
|
+
in the "src" directory
|
24
|
+
* Issue #507 Undefined method `__ruby_object' when implementing a Java
|
25
|
+
interface
|
26
|
+
* Issue #537 Generated BroadcastReceiver has incorrect number of argument
|
27
|
+
for Log.e
|
28
|
+
* Issue #541 Gem errors with activerecord-jdbc-sqlite3
|
29
|
+
* Issue #545 JRuby use of javax.annotation.processing breaks use of ARJDBC
|
30
|
+
* Issue #554 Better error message when trying to run an emulator for a
|
31
|
+
target that is not installed
|
32
|
+
* Issue #556 "ruboto emulator" ignores HAXM installation on Windows
|
33
|
+
|
34
|
+
Documentation:
|
35
|
+
|
36
|
+
* Issue #532 Environment setup for windows
|
37
|
+
* Issue #538 Complete the "What is Ruboto?" WIKI article
|
38
|
+
* Issue #553 The number of stars for the Ruboto project has disappeared
|
39
|
+
from the ruboto.org front page
|
40
|
+
* Issue #560 Add a tutorial for detecting incoming phone calls
|
46
41
|
|
47
42
|
Support:
|
48
43
|
|
49
|
-
* Issue #
|
50
|
-
* Issue #
|
51
|
-
|
44
|
+
* Issue #480 Could not locate Gemfile
|
45
|
+
* Issue #549 How can I view output?
|
46
|
+
* Issue #551 rake install start problem on windows
|
47
|
+
* Issue #552 Problem with rake install start on windows
|
48
|
+
* Issue #555 Ruboto command not found after installation
|
52
49
|
|
53
|
-
|
50
|
+
Community:
|
54
51
|
|
55
|
-
* Issue #
|
56
|
-
* Issue #528 Fix formatting errors in the RELEASE_DOC
|
57
|
-
* Issue #535 Mac kernel freezes when ruboto emulator start under MacOS
|
58
|
-
10.9 with Virtualbox 4.3.x installed.
|
52
|
+
* Issue #531 How can I help?
|
59
53
|
|
60
54
|
Pull requests:
|
61
55
|
|
62
|
-
* Issue #
|
63
|
-
|
64
|
-
|
56
|
+
* Issue #550 Fix Log import
|
57
|
+
|
58
|
+
Internal:
|
59
|
+
|
60
|
+
* Issue #513 Refactor to generate special
|
61
|
+
onCreate/onDestroy/onBind/onStartCommand instead of hard coding
|
62
|
+
* Issue #559 Remove redundant script file reference in
|
63
|
+
InheritingBroadcastReceiver
|
65
64
|
|
66
65
|
You can find a complete list of issues here:
|
67
66
|
|
68
|
-
* https://github.com/ruboto/ruboto/issues?state=closed&milestone=
|
67
|
+
* https://github.com/ruboto/ruboto/issues?state=closed&milestone=31
|
69
68
|
|
70
69
|
|
71
70
|
Installation:
|
data/Rakefile
CHANGED
@@ -137,8 +137,8 @@ def get_github_issues
|
|
137
137
|
req.basic_auth(user, pass)
|
138
138
|
res = https.start { |http| http.request(req) }
|
139
139
|
milestones = YAML.load(res.body).sort_by { |i| Date.parse(i['due_on']) }
|
140
|
-
milestone_entry = milestones.find { |m| m['title'] == Ruboto::VERSION }
|
141
|
-
raise "Milestone for version #{} not found." unless milestone_entry
|
140
|
+
milestone_entry = milestones.find { |m| m['title'] == Ruboto::VERSION.chomp('.dev') }
|
141
|
+
raise "Milestone for version #{Ruboto::VERSION} not found." unless milestone_entry
|
142
142
|
milestone = milestone_entry['number']
|
143
143
|
|
144
144
|
uri = URI("#{base_uri}/issues?milestone=#{milestone}&state=closed&per_page=1000")
|
@@ -150,9 +150,11 @@ def get_github_issues
|
|
150
150
|
milestone_description = issues[0] ? issues[0]['milestone']['description'] : "No issues for milestone #{milestone}"
|
151
151
|
milestone_description = milestone_description.split("\r\n").map(&:wrap).join("\r\n")
|
152
152
|
categories = {
|
153
|
-
'Features' => 'feature', 'Bugfixes' => 'bug',
|
154
|
-
'Documentation' => 'documentation', '
|
155
|
-
'
|
153
|
+
'Features' => 'feature', 'Bugfixes' => 'bug',
|
154
|
+
'Documentation' => 'documentation', 'Support' => 'support',
|
155
|
+
'Community' => 'community',
|
156
|
+
'Pull requests' => nil, 'Internal' => 'internal',
|
157
|
+
'Rejected' => 'rejected', 'Other' => nil
|
156
158
|
}
|
157
159
|
grouped_issues = issues.group_by do |i|
|
158
160
|
labels = i['labels'].map { |l| l['name'] }
|
@@ -229,7 +231,7 @@ New in version #{milestone_name}:
|
|
229
231
|
#{milestone_description}
|
230
232
|
|
231
233
|
#{(categories.keys & grouped_issues.keys).map do |cat|
|
232
|
-
"#{cat}:\n
|
234
|
+
"#{cat}:\n
|
233
235
|
#{grouped_issues[cat].map { |i| %Q{* Issue ##{i['number']} #{i['title']}}.wrap(2) }.join("\n")}
|
234
236
|
"
|
235
237
|
end.join("\n")}
|
@@ -278,15 +280,16 @@ EOF
|
|
278
280
|
puts release_doc
|
279
281
|
puts
|
280
282
|
puts '=' * 80
|
283
|
+
File.write(RELEASE_DOC, release_doc)
|
281
284
|
|
282
285
|
unless Gem::Version.new(Ruboto::VERSION).prerelease?
|
283
286
|
header = <<EOF
|
284
287
|
---
|
285
288
|
title : Ruboto #{Ruboto::VERSION}
|
286
289
|
layout: post
|
290
|
+
category: news
|
287
291
|
---
|
288
292
|
EOF
|
289
|
-
File.write(RELEASE_DOC, release_doc)
|
290
293
|
Dir.chdir BLOG_DIR do
|
291
294
|
output = `git status --porcelain`
|
292
295
|
old_blog_posts = Dir[RELEASE_BLOG_GLOB] - [RELEASE_BLOG]
|
@@ -453,11 +456,30 @@ namespace :platform do
|
|
453
456
|
file PLATFORM_CURRENT_RELEASE_APK do
|
454
457
|
FileUtils.mkdir_p File.dirname(PLATFORM_CURRENT_RELEASE_APK)
|
455
458
|
puts 'Downloading the current RubotoCore platform release apk'
|
456
|
-
uri = URI('
|
459
|
+
uri = URI('https://raw.github.com/ruboto/ruboto.github.com/master/downloads/RubotoCore-release.apk')
|
457
460
|
begin
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
+
Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https',
|
462
|
+
:verify_mode => OpenSSL::SSL::VERIFY_NONE) do |http|
|
463
|
+
headers = {'User-Agent' => 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; de-at) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10'}
|
464
|
+
loop do
|
465
|
+
response = http.get(uri.request_uri, headers)
|
466
|
+
if response.code == '200'
|
467
|
+
File.open(PLATFORM_CURRENT_RELEASE_APK, 'wb') { |f| f << response.body }
|
468
|
+
break
|
469
|
+
elsif response.code == '302'
|
470
|
+
headers.update('Referer' => uri.to_s)
|
471
|
+
if (cookie = response.response['set-cookie'])
|
472
|
+
headers.update('Cookie' => cookie)
|
473
|
+
end
|
474
|
+
uri = URI(response['location'].gsub(/^\//, 'http://ruboto.org/'))
|
475
|
+
puts "Following redirect to #{uri}."
|
476
|
+
else
|
477
|
+
puts "Got an unexpected response (#{response.code}). Retrying download."
|
478
|
+
puts response.inspect
|
479
|
+
sleep 1
|
480
|
+
end
|
481
|
+
end
|
482
|
+
end
|
461
483
|
rescue Exception, SystemExit
|
462
484
|
puts "Download failed: #{$!}"
|
463
485
|
FileUtils.rm(PLATFORM_CURRENT_RELEASE_APK) if File.exists?(PLATFORM_CURRENT_RELEASE_APK)
|
data/assets/rakelib/ruboto.rake
CHANGED
@@ -91,8 +91,9 @@ JARS = Dir[File.expand_path 'libs/*.jar'] - JRUBY_JARS
|
|
91
91
|
RESOURCE_FILES = Dir[File.expand_path 'res/**/*']
|
92
92
|
JAVA_SOURCE_FILES = Dir[File.expand_path 'src/**/*.java']
|
93
93
|
RUBY_SOURCE_FILES = Dir[File.expand_path 'src/**/*.rb']
|
94
|
+
OTHER_SOURCE_FILES = Dir[File.expand_path 'src/**/*'] - JAVA_SOURCE_FILES - RUBY_SOURCE_FILES
|
94
95
|
CLASSES_CACHE = "#{PROJECT_DIR}/bin/#{build_project_name}-debug-unaligned.apk.d"
|
95
|
-
APK_DEPENDENCIES = [:patch_dex, MANIFEST_FILE, RUBOTO_CONFIG_FILE, BUNDLE_JAR, CLASSES_CACHE] + JRUBY_JARS + JARS + JAVA_SOURCE_FILES + RESOURCE_FILES + RUBY_SOURCE_FILES
|
96
|
+
APK_DEPENDENCIES = [:patch_dex, MANIFEST_FILE, RUBOTO_CONFIG_FILE, BUNDLE_JAR, CLASSES_CACHE] + JRUBY_JARS + JARS + JAVA_SOURCE_FILES + RESOURCE_FILES + RUBY_SOURCE_FILES + OTHER_SOURCE_FILES
|
96
97
|
KEYSTORE_FILE = (key_store = File.readlines('ant.properties').grep(/^key.store=/).first) ? File.expand_path(key_store.chomp.sub(/^key.store=/, '').sub('${user.home}', '~')) : "#{build_project_name}.keystore"
|
97
98
|
KEYSTORE_ALIAS = (key_alias = File.readlines('ant.properties').grep(/^key.alias=/).first) ? key_alias.chomp.sub(/^key.alias=/, '') : build_project_name
|
98
99
|
APK_FILE_REGEXP = /^-rw-r--r--\s+(?:system|\d+\s+\d+)\s+(?:system|\d+)\s+(\d+)\s+(\d{4}-\d{2}-\d{2} \d{2}:\d{2}|\w{3} \d{2}\s+(?:\d{4}|\d{2}:\d{2}))\s+(.*)$/
|
@@ -363,7 +364,8 @@ file BUNDLE_JAR => [GEM_FILE, GEM_LOCK_FILE] do
|
|
363
364
|
next unless File.exists? GEM_FILE
|
364
365
|
puts "Generating #{BUNDLE_JAR}"
|
365
366
|
require 'bundler'
|
366
|
-
|
367
|
+
# Issue #547 https://github.com/ruboto/ruboto/issues/547
|
368
|
+
if true || Gem::Version.new(Bundler::VERSION) <= Gem::Version.new('1.5.0')
|
367
369
|
require 'bundler/vendored_thor'
|
368
370
|
|
369
371
|
# Store original RubyGems/Bundler environment
|
@@ -6,6 +6,6 @@ class SampleBroadcastReceiver
|
|
6
6
|
Log.v 'SampleBroadcastReceiver', 'Broadcast received!'
|
7
7
|
Log.v 'SampleBroadcastReceiver', intent.getExtras.to_s
|
8
8
|
rescue Exception
|
9
|
-
Log.e "Exception processing broadcast: #{$!.message}\n#{$!.backtrace.join("\n")}"
|
9
|
+
Log.e 'SampleBroadcastReceiver', "Exception processing broadcast: #{$!.message}\n#{$!.backtrace.join("\n")}"
|
10
10
|
end
|
11
11
|
end
|
@@ -9,18 +9,13 @@ import org.ruboto.ScriptInfo;
|
|
9
9
|
import org.ruboto.ScriptLoader;
|
10
10
|
|
11
11
|
public class THE_RUBOTO_CLASS THE_ACTION THE_ANDROID_CLASS {
|
12
|
-
|
12
|
+
THE_CONSTRUCTORS
|
13
|
+
|
14
|
+
THE_METHODS
|
15
|
+
|
13
16
|
{
|
14
17
|
scriptInfo.setRubyClassName(getClass().getSimpleName());
|
15
18
|
ScriptLoader.loadScript(this);
|
16
19
|
}
|
17
20
|
|
18
|
-
THE_CONSTRUCTORS
|
19
|
-
|
20
|
-
public ScriptInfo getScriptInfo() {
|
21
|
-
return scriptInfo;
|
22
|
-
}
|
23
|
-
|
24
|
-
THE_METHODS
|
25
|
-
|
26
21
|
}
|
@@ -9,35 +9,24 @@ import android.os.Bundle;
|
|
9
9
|
|
10
10
|
public class THE_RUBOTO_CLASS THE_ACTION THE_ANDROID_CLASS {
|
11
11
|
public static final String THEME_KEY = "RUBOTO_THEME";
|
12
|
-
private final ScriptInfo scriptInfo = new ScriptInfo();
|
13
|
-
Bundle[] args;
|
14
12
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
/****************************************************************************************
|
20
|
-
*
|
21
|
-
* Activity Lifecycle: onCreate
|
13
|
+
/**
|
14
|
+
* Called at the start of onCreate() to prepare the Activity.
|
15
|
+
* @return true if onCreate() should just call super and terminate.
|
22
16
|
*/
|
23
|
-
|
24
|
-
|
25
|
-
|
17
|
+
private boolean preOnCreate(Bundle bundle) {
|
18
|
+
System.out.println("RubotoActivity onCreate(): " + getClass().getName() + ", finishing: " + isFinishing());
|
19
|
+
|
20
|
+
if (isFinishing()) return true;
|
26
21
|
|
27
22
|
// Shut this RubotoActivity down if it's not able to restart
|
28
|
-
if (this.getClass().getName().equals("org.ruboto.
|
23
|
+
if (this.getClass().getName().equals("org.ruboto.RubotoActivity") && !JRubyAdapter.isInitialized()) {
|
29
24
|
super.onCreate(bundle);
|
30
|
-
System.out.println("Shutting down stale
|
25
|
+
System.out.println("Shutting down stale RubotoActivity: " + getClass().getName());
|
31
26
|
finish();
|
32
|
-
return;
|
27
|
+
return true;
|
33
28
|
}
|
34
29
|
|
35
|
-
if (isFinishing() || ScriptLoader.isCalledFromJRuby()) {
|
36
|
-
super.onCreate(bundle);
|
37
|
-
return;
|
38
|
-
}
|
39
|
-
args = new Bundle[]{bundle};
|
40
|
-
|
41
30
|
// FIXME(uwe): Deprecated as of Ruboto 0.13.0. Remove in june 2014 (twelve months).
|
42
31
|
Bundle configBundle = getIntent().getBundleExtra("Ruboto Config");
|
43
32
|
if (configBundle != null) {
|
@@ -50,40 +39,11 @@ public class THE_RUBOTO_CLASS THE_ACTION THE_ANDROID_CLASS {
|
|
50
39
|
if (getIntent().hasExtra(THEME_KEY)) {
|
51
40
|
setTheme(getIntent().getIntExtra(THEME_KEY, 0));
|
52
41
|
}
|
53
|
-
scriptInfo.setFromIntent(getIntent());
|
54
42
|
|
55
|
-
|
56
|
-
|
57
|
-
ScriptLoader.callOnCreate(this, (Object[]) args);
|
58
|
-
} else {
|
59
|
-
super.onCreate(bundle);
|
60
|
-
}
|
61
|
-
}
|
62
|
-
|
63
|
-
public void onDestroy() {
|
64
|
-
if (ScriptLoader.isCalledFromJRuby()) {
|
65
|
-
super.onDestroy();
|
66
|
-
return;
|
67
|
-
}
|
68
|
-
if (!JRubyAdapter.isInitialized()) {
|
69
|
-
Log.i("Method called before JRuby runtime was initialized: RubotoActivity#onDestroy");
|
70
|
-
super.onDestroy();
|
71
|
-
return;
|
72
|
-
}
|
73
|
-
String rubyClassName = scriptInfo.getRubyClassName();
|
74
|
-
if (rubyClassName == null) {
|
75
|
-
super.onDestroy();
|
76
|
-
return;
|
77
|
-
}
|
78
|
-
ScriptLoader.callOnDestroy(this);
|
43
|
+
scriptInfo.setFromIntent(getIntent());
|
44
|
+
return false;
|
79
45
|
}
|
80
46
|
|
81
|
-
|
82
|
-
/****************************************************************************************
|
83
|
-
*
|
84
|
-
* Generated Methods
|
85
|
-
*/
|
86
|
-
|
87
47
|
THE_METHODS
|
88
48
|
|
89
49
|
}
|
@@ -12,17 +12,10 @@ public class THE_RUBOTO_CLASS THE_ACTION THE_ANDROID_CLASS {
|
|
12
12
|
}
|
13
13
|
|
14
14
|
public THE_RUBOTO_CLASS() {
|
15
|
-
this(null);
|
16
|
-
}
|
17
|
-
|
18
|
-
public THE_RUBOTO_CLASS(String name) {
|
19
15
|
super();
|
20
|
-
|
21
|
-
if (
|
22
|
-
|
23
|
-
if (JRubyAdapter.isInitialized()) {
|
24
|
-
ScriptLoader.loadScript(this);
|
25
|
-
}
|
16
|
+
scriptInfo.setRubyClassName(getClass().getSimpleName());
|
17
|
+
if (JRubyAdapter.isInitialized()) {
|
18
|
+
ScriptLoader.loadScript(this);
|
26
19
|
}
|
27
20
|
}
|
28
21
|
|
@@ -5,110 +5,13 @@ import org.ruboto.ScriptLoader;
|
|
5
5
|
import java.io.IOException;
|
6
6
|
|
7
7
|
public class THE_RUBOTO_CLASS THE_ACTION THE_ANDROID_CLASS {
|
8
|
-
|
9
|
-
|
10
|
-
public ScriptInfo getScriptInfo() {
|
11
|
-
return scriptInfo;
|
12
|
-
}
|
13
|
-
|
14
|
-
/****************************************************************************************
|
15
|
-
*
|
16
|
-
* Service Lifecycle: onCreate
|
8
|
+
/**
|
9
|
+
* Called at the start of onCreate() to prepare the Activity.
|
17
10
|
*/
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
if (ScriptLoader.isCalledFromJRuby()) {
|
23
|
-
super.onCreate();
|
24
|
-
return;
|
25
|
-
}
|
26
|
-
|
27
|
-
if (JRubyAdapter.isInitialized() && scriptInfo.isReadyToLoad()) {
|
28
|
-
ScriptLoader.loadScript(this);
|
29
|
-
} else {
|
30
|
-
super.onCreate();
|
31
|
-
}
|
32
|
-
}
|
33
|
-
|
34
|
-
// FIXME(uwe): Revert to generate these methods.
|
35
|
-
@Override
|
36
|
-
public int onStartCommand(android.content.Intent intent, int flags, int startId) {
|
37
|
-
if (ScriptLoader.isCalledFromJRuby()) return super.onStartCommand(intent, flags, startId);
|
38
|
-
|
39
|
-
if (!JRubyAdapter.isInitialized()) {
|
40
|
-
Log.i("Method called before JRuby runtime was initialized: RubotoService#onStartCommand");
|
41
|
-
return super.onStartCommand(intent, flags, startId);
|
42
|
-
}
|
43
|
-
|
44
|
-
if (JRubyAdapter.isInitialized() && !scriptInfo.isLoaded()) {
|
45
|
-
scriptInfo.setFromIntent(intent);
|
46
|
-
ScriptLoader.loadScript(this);
|
47
|
-
}
|
48
|
-
|
49
|
-
String rubyClassName = scriptInfo.getRubyClassName();
|
50
|
-
if (rubyClassName == null) return super.onStartCommand(intent, flags, startId);
|
51
|
-
if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :on_start_command}")) {
|
52
|
-
return (Integer) JRubyAdapter.runRubyMethod(Integer.class, scriptInfo.getRubyInstance(), "on_start_command", new Object[]{intent, flags, startId});
|
53
|
-
} else {
|
54
|
-
if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :onStartCommand}")) {
|
55
|
-
return (Integer) JRubyAdapter.runRubyMethod(Integer.class, scriptInfo.getRubyInstance(), "onStartCommand", new Object[]{intent, flags, startId});
|
56
|
-
} else {
|
57
|
-
return super.onStartCommand(intent, flags, startId);
|
58
|
-
}
|
11
|
+
private void preOnCreate() {
|
12
|
+
System.out.println("RubotoService onCreate(): " + getClass().getName());
|
13
|
+
getScriptInfo().setRubyClassName(getClass().getSimpleName());
|
59
14
|
}
|
60
|
-
}
|
61
|
-
|
62
|
-
// FIXME(uwe): Revert to generate these methods.
|
63
|
-
@Override
|
64
|
-
public android.os.IBinder onBind(android.content.Intent intent) {
|
65
|
-
if (ScriptLoader.isCalledFromJRuby()) return null;
|
66
|
-
if (!JRubyAdapter.isInitialized()) {
|
67
|
-
Log.i("Method called before JRuby runtime was initialized: RubotoService#onBind");
|
68
|
-
return null;
|
69
|
-
}
|
70
|
-
|
71
|
-
if (JRubyAdapter.isInitialized() && !scriptInfo.isLoaded()) {
|
72
|
-
scriptInfo.setFromIntent(intent);
|
73
|
-
ScriptLoader.loadScript(this);
|
74
|
-
}
|
75
|
-
|
76
|
-
String rubyClassName = scriptInfo.getRubyClassName();
|
77
|
-
if (rubyClassName == null) return null;
|
78
|
-
if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :on_bind}")) {
|
79
|
-
return (android.os.IBinder) JRubyAdapter.runRubyMethod(android.os.IBinder.class, scriptInfo.getRubyInstance(), "on_bind", intent);
|
80
|
-
} else {
|
81
|
-
if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :onBind}")) {
|
82
|
-
return (android.os.IBinder) JRubyAdapter.runRubyMethod(android.os.IBinder.class, scriptInfo.getRubyInstance(), "onBind", intent);
|
83
|
-
} else {
|
84
|
-
return null;
|
85
|
-
}
|
86
|
-
}
|
87
|
-
}
|
88
|
-
|
89
|
-
public void onDestroy() {
|
90
|
-
if (ScriptLoader.isCalledFromJRuby()) {
|
91
|
-
super.onDestroy();
|
92
|
-
return;
|
93
|
-
}
|
94
|
-
if (!JRubyAdapter.isInitialized()) {
|
95
|
-
Log.i("Method called before JRuby runtime was initialized: RubotoActivity#onDestroy");
|
96
|
-
super.onDestroy();
|
97
|
-
return;
|
98
|
-
}
|
99
|
-
String rubyClassName = scriptInfo.getRubyClassName();
|
100
|
-
if (rubyClassName == null) {
|
101
|
-
super.onDestroy();
|
102
|
-
return;
|
103
|
-
}
|
104
|
-
ScriptLoader.callOnDestroy(this);
|
105
|
-
}
|
106
|
-
|
107
|
-
|
108
|
-
/****************************************************************************************
|
109
|
-
*
|
110
|
-
* Generated Methods
|
111
|
-
*/
|
112
15
|
|
113
16
|
THE_METHODS
|
114
17
|
|