rhodes 5.5.0.7 → 5.5.0.22

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +1 -1
  3. data/CREDITS +3 -3
  4. data/Rakefile +24 -0
  5. data/extensions/instrumentation/ext/platform/android/src/com/rho/instrumentation/Instrumentation.java +5 -0
  6. data/extensions/rhoconnect-push/ext/rhoconnect-push/platform/android/Rakefile +1 -1
  7. data/lib/build/jake.rb +5 -0
  8. data/lib/commonAPI/clipboard/ext.yml +17 -0
  9. data/lib/commonAPI/clipboard/ext/Clipboard.xml +49 -0
  10. data/lib/commonAPI/clipboard/ext/build +19 -0
  11. data/lib/commonAPI/clipboard/ext/build.bat +29 -0
  12. data/lib/commonAPI/clipboard/ext/platform/android/Rakefile +141 -0
  13. data/lib/commonAPI/clipboard/ext/platform/android/ext_java.files +9 -0
  14. data/lib/commonAPI/clipboard/ext/platform/android/ext_native.files +7 -0
  15. data/lib/commonAPI/clipboard/ext/platform/android/jni/Clipboard_impl.cpp +61 -0
  16. data/lib/commonAPI/clipboard/ext/platform/android/src/com/rho/clipboard/Clipboard.java +15 -0
  17. data/lib/commonAPI/clipboard/ext/platform/android/src/com/rho/clipboard/ClipboardFactory.java +18 -0
  18. data/lib/commonAPI/clipboard/ext/platform/android/src/com/rho/clipboard/ClipboardSingleton.java +146 -0
  19. data/lib/commonAPI/clipboard/ext/platform/iphone/Clipboard.xcodeproj/project.pbxproj +368 -0
  20. data/lib/commonAPI/clipboard/ext/platform/iphone/Clipboard_Prefix.pch +7 -0
  21. data/lib/commonAPI/clipboard/ext/platform/iphone/Rakefile +73 -0
  22. data/lib/commonAPI/clipboard/ext/platform/iphone/impl/Clipboard.h +11 -0
  23. data/lib/commonAPI/clipboard/ext/platform/iphone/impl/Clipboard.m +12 -0
  24. data/lib/commonAPI/clipboard/ext/platform/iphone/impl/ClipboardFactorySingleton.m +16 -0
  25. data/lib/commonAPI/clipboard/ext/platform/iphone/impl/ClipboardSetup.m +9 -0
  26. data/lib/commonAPI/clipboard/ext/platform/iphone/impl/ClipboardSingleton.h +18 -0
  27. data/lib/commonAPI/clipboard/ext/platform/iphone/impl/ClipboardSingleton.m +43 -0
  28. data/lib/commonAPI/clipboard/ext/platform/iphone/impl/readme.txt +7 -0
  29. data/lib/commonAPI/coreapi/ext/NativeTabbar.xml +3 -3
  30. data/lib/commonAPI/coreapi/ext/shared/TimerImpl.cpp +36 -27
  31. data/lib/commonAPI/coreapi/public/api/rhoapi-force.ajax.js +3 -1
  32. data/lib/commonAPI/coreapi/public/api/rhoapi.js +2 -1
  33. data/lib/commonAPI/devicesecurity/ext.yml +11 -0
  34. data/lib/commonAPI/devicesecurity/ext/DeviceSecurity.xml +91 -0
  35. data/lib/commonAPI/devicesecurity/ext/build +19 -0
  36. data/lib/commonAPI/devicesecurity/ext/build.bat +29 -0
  37. data/lib/commonAPI/devicesecurity/ext/platform/android/InbuiltValues.erb +16 -0
  38. data/lib/commonAPI/devicesecurity/ext/platform/android/Rakefile +166 -0
  39. data/lib/commonAPI/devicesecurity/ext/platform/android/ext_java.files +10 -0
  40. data/lib/commonAPI/devicesecurity/ext/platform/android/ext_native.files +7 -0
  41. data/lib/commonAPI/devicesecurity/ext/platform/android/jni/DeviceSecurity_impl.cpp +61 -0
  42. data/lib/commonAPI/devicesecurity/ext/platform/android/src/com/rho/devicesecurity/DeviceSecurity.java +14 -0
  43. data/lib/commonAPI/devicesecurity/ext/platform/android/src/com/rho/devicesecurity/DeviceSecurityFactory.java +18 -0
  44. data/lib/commonAPI/devicesecurity/ext/platform/android/src/com/rho/devicesecurity/DeviceSecuritySingleton.java +412 -0
  45. data/lib/commonAPI/devicesecurity/ext/platform/iphone/DeviceSecurity.xcodeproj/project.pbxproj +368 -0
  46. data/lib/commonAPI/devicesecurity/ext/platform/iphone/DeviceSecurity_Prefix.pch +7 -0
  47. data/lib/commonAPI/devicesecurity/ext/platform/iphone/Rakefile +73 -0
  48. data/lib/commonAPI/devicesecurity/ext/platform/iphone/impl/DeviceSecurity.h +11 -0
  49. data/lib/commonAPI/devicesecurity/ext/platform/iphone/impl/DeviceSecurity.m +12 -0
  50. data/lib/commonAPI/devicesecurity/ext/platform/iphone/impl/DeviceSecurityFactorySingleton.m +16 -0
  51. data/lib/commonAPI/devicesecurity/ext/platform/iphone/impl/DeviceSecuritySetup.m +9 -0
  52. data/lib/commonAPI/devicesecurity/ext/platform/iphone/impl/DeviceSecuritySingleton.h +19 -0
  53. data/lib/commonAPI/devicesecurity/ext/platform/iphone/impl/DeviceSecuritySingleton.m +106 -0
  54. data/lib/commonAPI/devicesecurity/ext/platform/iphone/impl/readme.txt +7 -0
  55. data/platform/android/Rhodes/src/com/rhomobile/rhodes/LocalFileProvider.java +5 -1
  56. data/platform/android/Rhodes/src/com/rhomobile/rhodes/util/Utils.java +9 -0
  57. data/platform/android/build/android.rake +42 -1
  58. data/platform/android/build/androidcommon.rb +4 -2
  59. data/platform/iphone/Classes/RhoWKWebView.m +4 -0
  60. data/platform/iphone/Classes/URLProtocol/CRhoURLProtocol.h +2 -0
  61. data/platform/iphone/Classes/URLProtocol/CRhoURLProtocol.m +195 -30
  62. data/platform/iphone/Classes/rho/net/IPhoneNetRequest.mm +91 -4
  63. data/platform/iphone/rbuild/iphone.rake +297 -231
  64. data/platform/iphone/rbuild/putsOverride.rake +8 -0
  65. data/platform/shared/common/RhoTime.cpp +81 -40
  66. data/platform/shared/common/RhodesApp.cpp +16 -18
  67. data/platform/shared/db/DBAdapter.cpp +33 -0
  68. data/platform/shared/db/DBAdapter.h +5 -0
  69. data/platform/shared/net/HttpServer.cpp +27 -1
  70. data/platform/shared/net/INetRequest.cpp +33 -6
  71. data/platform/shared/qt/rhodes/qkineticscroller.cpp +2 -2
  72. data/platform/shared/qt/rhodes/qkineticscroller_p.h +1 -1
  73. data/platform/shared/qt/rhodes/qtscrollerfilter.cpp +3 -3
  74. data/platform/shared/qt/rhodes/qtscrollevent.cpp +2 -2
  75. data/platform/shared/qt/rhodes/qwebviewkineticscroller.cpp +1 -1
  76. data/platform/shared/qt/rhodes/qwebviewkineticscroller.h +1 -1
  77. data/platform/wm/build/wm.rake +7 -3
  78. data/platform/wm/rhodes/browser/BrowserFactory.cpp +4 -6
  79. data/platform/wm/rhodes/browser/stubs.cpp +5 -0
  80. data/platform/wm/rhodes/rhodes.vcproj +31 -2
  81. data/rakefile.rb +24 -0
  82. data/res/generators/templates/application/app/Settings/home.erb +1 -1
  83. data/res/generators/templates/application/build.yml +61 -4
  84. data/res/generators/templates/application/icon/icon.png +0 -0
  85. data/res/generators/templates/application/icon/icon114.png +0 -0
  86. data/res/generators/templates/application/icon/icon120.png +0 -0
  87. data/res/generators/templates/application/icon/icon144.png +0 -0
  88. data/res/generators/templates/application/icon/icon152.png +0 -0
  89. data/res/generators/templates/application/icon/icon180.png +0 -0
  90. data/res/generators/templates/application/icon/icon57.png +0 -0
  91. data/res/generators/templates/application/icon/icon60.png +0 -0
  92. data/res/generators/templates/application/icon/icon72.png +0 -0
  93. data/res/generators/templates/application/icon/icon76.png +0 -0
  94. data/res/generators/templates/application/production/iTunesArtwork.png +0 -0
  95. data/res/generators/templates/application/production/iTunesArtwork@2x.png +0 -0
  96. data/res/generators/templates/iphone_project/Bremen7.xcodeproj/project.pbxproj +1 -0
  97. data/res/generators/templates/iphone_project/buildRhoBundle +23 -7
  98. data/res/generators/templates/iphone_project/root/Info.plist +0 -2
  99. data/res/generators/templates/iphone_project/root/iTunesArtwork +0 -0
  100. data/res/generators/templates/iphone_project/root/iTunesArtwork@2x +0 -0
  101. data/res/generators/templates/iphone_project/root/icon114.png +0 -0
  102. data/res/generators/templates/iphone_project/root/icon120.png +0 -0
  103. data/res/generators/templates/iphone_project/root/icon144.png +0 -0
  104. data/res/generators/templates/iphone_project/root/icon152.png +0 -0
  105. data/res/generators/templates/iphone_project/root/icon180.png +0 -0
  106. data/res/generators/templates/iphone_project/root/icon57.png +0 -0
  107. data/res/generators/templates/iphone_project/root/icon60.png +0 -0
  108. data/res/generators/templates/iphone_project/root/icon72.png +0 -0
  109. data/res/generators/templates/iphone_project/root/icon76.png +0 -0
  110. data/res/generators/templates/iphone_project/root/rhorunner_development.entitlements +6 -0
  111. data/rhodes.gemspec +19 -17
  112. data/version +1 -1
  113. metadata +118 -44
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4b6a8fe4921a90ac277e6260888c303d0be2894d
4
- data.tar.gz: f40242f22db04f9cad0845e3c6c3bd937ca8be79
3
+ metadata.gz: b59d660eec4516c51b9d05121cf3ec2a002447c8
4
+ data.tar.gz: 3dff6eb9aaf1b99bdbc1e73a7391b7505952e4e6
5
5
  SHA512:
6
- metadata.gz: 16e08d6a447f5df244cf071ff824b7b5178cc8ee33002236e4e83b7840e54bc74520ecb958c548c9cbd88a82e39a09e5fada56fa6a21c439ab56b1cd92132429
7
- data.tar.gz: 5eaa670bce2d1496314a456f4c651973694002bf4c291e6fb7e4ebd73d3a397fcb5e6249c68c65a8fb6d0189d57a3af197495c20304ce7d4656263543baf5308
6
+ metadata.gz: 6e9dfe2d490773cb366588e3b30c65d4a3781918b50b70fc34b36e9e8d60a1adedb4d38f5303ef68430ae0f21b86641f793787ede5df479441622b3afc436e6b
7
+ data.tar.gz: 3b2b2095210b17c711bb34a6d0de3136b42669fea381dc11d24cf8e34d33441ae098d51bca8c829dee53ee9b87352c92dbe7dc52bb768819747c54c687e84b3e
data/CONTRIBUTING.md CHANGED
@@ -4,7 +4,7 @@ Found an issue with Rhodes, give feedback or provide a patch? Here's how!
4
4
 
5
5
  ## Reporting issues
6
6
 
7
- We only accept issues that are bug reports or feature requests. Bugs must be isolated and reproducible problems that we can fix within Rhodes. For application-specific or API-related questions, please visit our [Launchpad Disscussion Area](https://developer.zebra.com/community/rhomobile-suite/discussions/rhomobile-discussions). Please read the following guidelines before opening any issue.
7
+ We only accept issues that are bug reports or feature requests. Bugs must be isolated and reproducible problems that we can fix within Rhodes. For application-specific or API-related questions, please visit our [Forums](http://forums.tau-technologies.com). Please read the following guidelines before opening any issue.
8
8
 
9
9
  1. **Search for existing issues.** We sometimes get duplicate issues, and you'd help us out a lot by first checking if someone else has reported the same issue. Moreover, the issue may have already been resolved with a fix available.
10
10
  2. **Create an isolated and reproducible test case.** Be sure the problem exists in Rhodes' code.
data/CREDITS CHANGED
@@ -1,4 +1,4 @@
1
- This media, software or hardware ("Product") obtained from Tau, Inc. ("Tau") may include Tau?
1
+ This media, software or hardware ("Product") obtained from Tau Technologies, Inc. ("Tau") may include Tau?
2
2
  Software, Third Party Software (defined below), and/or Open Source Software
3
3
  (defined below).
4
4
 
@@ -9,9 +9,9 @@ more agreements in force between the purchaser of the Tau
9
9
  Product or licensee of the Tau Software and Tau. SOFTWARE IS PROTECTED BY U.S. COPYRIGHT LAWS AND INTERNATIONAL
10
10
  LAWS AND TREATIES. UNAUTHORIZED COPYING, DISTRIBUTION OR OTHER USE OF
11
11
  THIS PRODUCT IS STRICTLY PROHIBITED. ANY DISTRIBUTION OR USE NOT
12
- SPECIFICALLY APPROVED BY ZEBRA IS STRICTLY PROHIBITED.
12
+ SPECIFICALLY APPROVED BY TAU IS STRICTLY PROHIBITED.
13
13
 
14
- Tau? Software is subject to the commercial terms and
14
+ Tau Software is subject to the commercial terms and
15
15
  conditions entered into with Tau, any other use is strictly
16
16
  prohibited. Commercial Software licensed for redistribution by Tau ("Third Party Software") is subject to the terms and conditions
17
17
  in force between Tau and the licensor of the Third party
data/Rakefile CHANGED
@@ -74,6 +74,7 @@ end
74
74
  #------------------------------------------------------------------------
75
75
 
76
76
  $app_basedir = pwd
77
+ $is_webkit_engine = false
77
78
  $startdir = File.dirname(__FILE__)
78
79
  $startdir.gsub!('\\', '/')
79
80
 
@@ -2125,6 +2126,8 @@ namespace "config" do
2125
2126
  # $app_config["extensions"].delete("audiocapture")
2126
2127
  #end
2127
2128
 
2129
+ $app_config['extensions'].delete('barcode') if ( $app_config['extensions'].index('enterprise-barcode') || $app_config['extensions'].index('allbarcode') )
2130
+
2128
2131
  $hidden_app = $app_config["hidden_app"].nil?() ? "0" : $app_config["hidden_app"]
2129
2132
 
2130
2133
  #application build configs
@@ -2484,6 +2487,10 @@ def init_extensions(dest, mode = "")
2484
2487
 
2485
2488
  $app_config["extensions"].each do |extname|
2486
2489
  puts 'ext - ' + extname
2490
+
2491
+ if extname == "webkit"
2492
+ $is_webkit_engine = true
2493
+ end
2487
2494
 
2488
2495
  extpath = nil
2489
2496
  extpaths.each do |p|
@@ -2668,6 +2675,23 @@ def init_extensions(dest, mode = "")
2668
2675
 
2669
2676
  end
2670
2677
 
2678
+ stubs = File.join($startdir, "platform", "wm", "rhodes", "browser", "stubs.cpp")
2679
+ if $is_webkit_engine == false
2680
+ File.open(stubs, "w+") do |f|
2681
+ f.puts "// WARNING! THIS FILE IS GENERATED AUTOMATICALLY! DO NOT EDIT IT MANUALLY!"
2682
+ f.puts "#include \"StdAfx.h\""
2683
+ f.puts "#include \"common/RhoStd.h\""
2684
+ f.puts "#include \"IBrowserEngine.h\""
2685
+ f.puts "rho::IBrowserEngine* rho_wmimpl_get_webkitBrowserEngine(HWND hwndParent, HINSTANCE rhoAppInstance) {return 0;}"
2686
+ Jake.modify_file_if_content_changed( stubs, f )
2687
+ end
2688
+ else
2689
+ File.open(stubs, "w+") do |f|
2690
+ f.puts "// WARNING! THIS FILE IS GENERATED AUTOMATICALLY! DO NOT EDIT IT MANUALLY!"
2691
+ f.puts "#include \"StdAfx.h\""
2692
+ Jake.modify_file_if_content_changed( stubs, f )
2693
+ end
2694
+ end
2671
2695
 
2672
2696
  if ($ruby_only_extensions_list)
2673
2697
  BuildOutput.warning([
@@ -402,4 +402,9 @@ public class Instrumentation extends InstrumentationBase implements IInstrumenta
402
402
  // TODO Auto-generated method stub
403
403
  return false;
404
404
  }
405
+
406
+ @Override
407
+ public boolean onLoadResource(IRhoExtManager extManager, String url, IRhoWebView ext, boolean res) {
408
+ return false;
409
+ }
405
410
  }
@@ -21,7 +21,7 @@ ARGS = [
21
21
  "-I\"#{$rootdir}/platform/android/Rhodes/jni/include\"",
22
22
  "-I\"#{$rootdir}/platform/android/Rhodes/jni/include/rhodes/details\"",
23
23
  "-I\"#{$rootdir}/platform/shared/ruby/include\"",
24
- "-I\"#{$rootdir}/lib/commonApi/coreapi/ext/shared\"",
24
+ "-I\"#{$rootdir}/lib/commonAPI/coreapi/ext/shared\"",
25
25
  "-I\"#{$rootdir}/platform/shared\"",
26
26
  "-I\"#{$rootdir}/platform/shared/common\"",
27
27
  "-I\"#{$rootdir}/platform/shared/api_generator\"",
data/lib/build/jake.rb CHANGED
@@ -876,6 +876,11 @@ class Jake
876
876
  app_version += "\r\napp_name='#{$app_config["name"]}'"
877
877
  app_version += "\r\ntitle_text='#{$app_config["name"]}'" if $current_platform == "win32"
878
878
  app_version += "\r\norg_name='#{$app_config["vendor"]}'" if $current_platform == "win32"
879
+ app_version += "\r\nrho_app_id='#{$app_config["rho_app_id"]}'" if $app_config['rho_app_id']
880
+
881
+ if $is_webkit_engine == true
882
+ File.open(File.join($srcdir,'apps/rhoconfig.txt'), "a"){ |f| f.write("\r\nwebengine=webkit") }
883
+ end
879
884
 
880
885
  File.open(File.join($srcdir,'apps/rhoconfig.txt'), "a"){ |f| f.write(app_version) }
881
886
  File.open(File.join($srcdir,'apps/rhoconfig.txt.timestamp'), "w"){ |f| f.write(Time.now.to_f().to_s()) }
@@ -0,0 +1,17 @@
1
+ entry: Init_Clipboard_extension
2
+ javaentry: com.clipboard.Clipboard
3
+ libraries: ["Clipboard"]
4
+ android:
5
+ source_list: ext/platform/android/ext_java.files
6
+ exttype: rakefile
7
+ wp8:
8
+ csharp_impl: yes
9
+ root_namespace: rho
10
+
11
+ project_paths:
12
+ wp8: ext/platform/wp8/ClipboardLib.vcxproj
13
+ wm: ext/platform/wm/Clipboard.vcproj
14
+
15
+ xml_api_paths: ext/Clipboard.xml
16
+
17
+ platforms: ["iphone", "android"]
@@ -0,0 +1,49 @@
1
+ <?xml version = "1.0"?>
2
+ <?xml-stylesheet type="text/xsl" href="pb_help.xsl"?>
3
+ <API>
4
+ <MODULE name="Clipboard" parent="Rho">
5
+ <HELP_OVERVIEW>Clipboard API</HELP_OVERVIEW>
6
+ <MORE_HELP>API for working with device's Clipboard</MORE_HELP>
7
+
8
+
9
+ <PROPERTIES>
10
+ </PROPERTIES>
11
+
12
+ <METHODS>
13
+
14
+ <METHOD name="getText" access="STATIC">
15
+ <DESC>return text contain in Clipboard</DESC>
16
+ <PLATFORM>iOS,Android</PLATFORM>
17
+ <RETURN type="STRING">
18
+ </RETURN>
19
+ </METHOD>
20
+
21
+ <METHOD name="hasText" access="STATIC">
22
+ <DESC>return true if Clipboard contain some text</DESC>
23
+ <PLATFORM>iOS,Android</PLATFORM>
24
+ <RETURN type="BOOLEAN"/>
25
+ </METHOD>
26
+
27
+ <METHOD name="setText" access="STATIC">
28
+ <DESC>put text to Clipboard</DESC>
29
+ <PLATFORM>iOS,Android</PLATFORM>
30
+ <PARAMS>
31
+ <PARAM name="text" type="STRING">
32
+ </PARAM>
33
+ </PARAMS>
34
+ </METHOD>
35
+
36
+ <METHOD name="clear" access="STATIC">
37
+ <PLATFORM>iOS,Android</PLATFORM>
38
+ <DESC>clear Clipboard</DESC>
39
+ </METHOD>
40
+
41
+ </METHODS>
42
+
43
+ <USER_OVERVIEW>
44
+ </USER_OVERVIEW>
45
+
46
+ <VER_INTRODUCED>1.0.0</VER_INTRODUCED>
47
+ <PLATFORM>iOS,Android</PLATFORM>
48
+ </MODULE>
49
+ </API>
@@ -0,0 +1,19 @@
1
+ #!/bin/sh
2
+
3
+
4
+ if [ "$RHO_PLATFORM" = "android" ]; then
5
+
6
+ cd platform/android
7
+ rake --trace
8
+
9
+ elif [ "$RHO_PLATFORM" = "iphone" ]; then
10
+
11
+ cd platform/iphone
12
+ rake --trace
13
+
14
+ elif [ "$RHO_PLATFORM" = "osx" ]; then
15
+
16
+ cd platform/qt
17
+ rake --trace
18
+
19
+ fi
@@ -0,0 +1,29 @@
1
+
2
+ if "%RHO_PLATFORM%" == "android" (
3
+
4
+ cd platform\android
5
+ rake --trace
6
+
7
+ )
8
+
9
+ if "%RHO_PLATFORM%" == "iphone" (
10
+
11
+ cd platform\phone
12
+ rake --trace
13
+
14
+ )
15
+
16
+ if "%RHO_PLATFORM%" == "win32" (
17
+
18
+ call "%RHO_VSCMNTOOLS%..\..\VC\vcvarsall.bat" x86
19
+ cd platform\qt
20
+ rake --trace
21
+
22
+ )
23
+
24
+ if "%RHO_PLATFORM%" == "bb" (
25
+
26
+ cd platform\bb
27
+ rake --trace
28
+
29
+ )
@@ -0,0 +1,141 @@
1
+ require 'fileutils'
2
+
3
+ SOURCEPATH = ENV['SOURCEPATH']
4
+ raise 'SOURCEPATH is not set' if SOURCEPATH.nil?
5
+
6
+ SOURCELIST = ENV['SOURCELIST']
7
+ raise 'SOURCELIS is not setT' if SOURCELIST.nil?
8
+
9
+ BUILDARGS = ENV['BUILDARGS'].split if ENV['BUILDARGS']
10
+
11
+ TARGETDIR = ENV['TARGETPATH']
12
+ raise "TARGETPATH is not set" if TARGETDIR.nil?
13
+
14
+ TARGETLIB = ENV['TARGETLIB']
15
+ raise "TARGETLIB is not set" if TARGETLIB.nil?
16
+
17
+ OBJDIR = ENV['TEMP_FILES_DIR']
18
+ raise "TEMP_FILES_DIR is not set" if OBJDIR.nil?
19
+
20
+ $rootdir = ENV['RHO_ROOT']
21
+ raise "RHO_ROOT is not set" if $rootdir.nil?
22
+
23
+ $appincdir = ENV["RHO_INC"]
24
+ raise "RHO_INC is not set" if $appincdir.nil?
25
+
26
+ ANDROID_NDK = ENV['ANDROID_NDK']
27
+ raise 'ANDROID_NDK is not set' if ANDROID_NDK.nil?
28
+
29
+ ANDROID_API_LEVEL = ENV['ANDROID_API_LEVEL']
30
+ raise 'ANDROID_API_LEVEL is not set' if ANDROID_API_LEVEL.nil?
31
+
32
+ $debug = ENV['RHO_DEBUG'] == 'true'
33
+
34
+ cd SOURCEPATH
35
+
36
+ require File.join($rootdir, 'platform/android/build/androidcommon.rb')
37
+
38
+ ARGS = ['-Iext/platform/android/generated/jni',
39
+ '-Iext/platform/android/jni',
40
+ '-Iext/shared',
41
+ "-I\"#{$rootdir}/platform/android/Rhodes/jni/include\"",
42
+ "-I\"#{$rootdir}/platform/android/Rhodes/jni/include/rhodes/details\"",
43
+ "-I\"#{$rootdir}/platform/shared/ruby/include\"",
44
+ "-I\"#{$rootdir}/platform/shared\"",
45
+ "-I\"#{$rootdir}/platform/shared/common\"",
46
+ "-I\"#{$rootdir}/platform/shared/api_generator\"",
47
+ "-I\"#{$appincdir}\"",
48
+ "-I\"#{$rootdir}/platform/shared/ruby\"",
49
+ "-I\"#{$rootdir}/platform/shared/ruby/android\"",
50
+ "-I\"#{$rootdir}/platform/shared/ruby/generated\""]
51
+
52
+ OBJDIR_ARM = File.join(OBJDIR,'arm')
53
+ OBJDIR_x86 = File.join(OBJDIR,'x86')
54
+ OBJDIR_MIPS = File.join(OBJDIR,'mips')
55
+
56
+
57
+ SRC = get_sources File.join(SOURCELIST)
58
+
59
+ OBJ_ARM = FileList.new(get_objects(SRC, OBJDIR_ARM))
60
+ OBJ_x86 = FileList.new(get_objects(SRC, OBJDIR_x86))
61
+ OBJ_MIPS = FileList.new(get_objects(SRC, OBJDIR_MIPS))
62
+
63
+ TARGETDIR_ARM = File.join(TARGETDIR,'armeabi')
64
+ TARGETDIR_x86 = File.join(TARGETDIR,'x86')
65
+ TARGETDIR_MIPS = File.join(TARGETDIR,'mips')
66
+
67
+ TARGETLIB_ARM = File.join(TARGETDIR_ARM,TARGETLIB)
68
+ TARGETLIB_x86 = File.join(TARGETDIR_x86,TARGETLIB)
69
+ TARGETLIB_MIPS = File.join(TARGETDIR_MIPS,TARGETLIB)
70
+
71
+ cd '../../..'
72
+
73
+ namespace 'config' do
74
+ task :arm do
75
+ setup_ndk(ANDROID_NDK, ANDROID_API_LEVEL,'arm')
76
+ end
77
+
78
+ task :x86 do
79
+ setup_ndk(ANDROID_NDK, ANDROID_API_LEVEL,'x86')
80
+ end
81
+
82
+ task :mips do
83
+ setup_ndk(ANDROID_NDK, ANDROID_API_LEVEL,'mips')
84
+ end
85
+ end
86
+
87
+ directory TARGETDIR_ARM
88
+ directory TARGETDIR_x86
89
+ directory TARGETDIR_MIPS
90
+ directory OBJDIR_ARM
91
+ directory OBJDIR_x86
92
+ directory OBJDIR_MIPS
93
+
94
+ rule '.o' => lambda {|obj| find_source(obj) } do |t|
95
+ abi = File.basename(File.dirname(t.name))
96
+ Rake::Task["config:#{abi}"].invoke
97
+ cc_compile(find_source(t.name), File.dirname(t.name), BUILDARGS.nil? ? ARGS : BUILDARGS) or raise "\e[31mCompilation failed: #{find_source(t.name)}\e[0m"
98
+ end
99
+
100
+ task OBJ_ARM => OBJDIR_ARM
101
+ task OBJ_x86 => OBJDIR_x86
102
+ task OBJ_MIPS => OBJDIR_MIPS
103
+
104
+ def find_source(objfile)
105
+ base = File.basename(objfile, '.o')
106
+ src = SRC.find { |s| File.basename(s) == base }
107
+ src
108
+ end
109
+
110
+ file TARGETLIB_ARM => TARGETDIR_ARM do |t|
111
+ Rake::Task["config:arm"].invoke
112
+ cc_ar t.name, OBJ_ARM or raise "\e[31mCreating library failed: #{t.name}\e[0m"
113
+ end
114
+ multitask TARGETLIB_ARM => OBJ_ARM
115
+
116
+ file TARGETLIB_x86 => TARGETDIR_x86 do |t|
117
+ Rake::Task["config:x86"].invoke
118
+ cc_ar t.name, OBJ_x86 or raise "\e[31mCreating library failed: #{t.name}\e[0m"
119
+ end
120
+ multitask TARGETLIB_x86 => OBJ_x86
121
+
122
+ file TARGETLIB_MIPS => TARGETDIR_MIPS do |t|
123
+ Rake::Task["config:mips"].invoke
124
+ cc_ar t.name, OBJ_MIPS or raise "\e[31mCreating library failed: #{t.name}\e[0m"
125
+ end
126
+ multitask TARGETLIB_MIPS => OBJ_MIPS
127
+
128
+
129
+ namespace 'build' do
130
+ task :arm => OBJ_ARM
131
+ task :x86 => OBJ_x86
132
+ task :mips => OBJ_MIPS
133
+ end
134
+
135
+ namespace 'arch' do
136
+ task :arm => TARGETLIB_ARM
137
+ task :x86 => TARGETLIB_x86
138
+ task :mips => TARGETLIB_MIPS
139
+ end
140
+
141
+ task :default => ["arch:arm"]
@@ -0,0 +1,9 @@
1
+ ext/platform/android/generated/src/com/rho/clipboard/ClipboardBase.java
2
+ ext/platform/android/generated/src/com/rho/clipboard/ClipboardFactorySingleton.java
3
+ ext/platform/android/generated/src/com/rho/clipboard/ClipboardSingletonBase.java
4
+ ext/platform/android/generated/src/com/rho/clipboard/IClipboard.java
5
+ ext/platform/android/generated/src/com/rho/clipboard/IClipboardFactory.java
6
+ ext/platform/android/generated/src/com/rho/clipboard/IClipboardSingleton.java
7
+ ext/platform/android/src/com/rho/clipboard/Clipboard.java
8
+ ext/platform/android/src/com/rho/clipboard/ClipboardFactory.java
9
+ ext/platform/android/src/com/rho/clipboard/ClipboardSingleton.java
@@ -0,0 +1,7 @@
1
+ ext/platform/android/generated/jni/Clipboard.cpp
2
+ ext/platform/android/generated/jni/clipboard_ruby_wrap.cpp
3
+ ext/platform/android/generated/jni/clipboard_js_wrap.cpp
4
+ ext/platform/android/jni/Clipboard_impl.cpp
5
+ ext/shared/generated/clipboard_api_init.cpp
6
+ ext/shared/generated/clipboard_js_api.cpp
7
+ ext/shared/generated/clipboard_ruby_api.c
@@ -0,0 +1,61 @@
1
+ #include "rhodes.h"
2
+ #include "Clipboard.h"
3
+
4
+ #include "logging/RhoLog.h"
5
+ #undef DEFAULT_LOGCATEGORY
6
+ #define DEFAULT_LOGCATEGORY "Clipboard_impl"
7
+
8
+ #define CLIPBOARD_FACTORY_CLASS "com.rho.clipboard.ClipboardFactory"
9
+
10
+ extern "C" void Init_Clipboard_API(void);
11
+
12
+ extern "C" void Init_Clipboard(void)
13
+ {
14
+ RAWTRACE(__FUNCTION__);
15
+
16
+ JNIEnv *env = jnienv();
17
+ if(env)
18
+ {
19
+ jclass cls = rho_find_class(env, CLIPBOARD_FACTORY_CLASS);
20
+ if(!cls)
21
+ {
22
+ RAWLOG_ERROR1("Failed to find java class: %s", CLIPBOARD_FACTORY_CLASS);
23
+ return;
24
+ }
25
+ jmethodID midFactory = env->GetMethodID(cls, "<init>", "()V");
26
+ if(!midFactory)
27
+ {
28
+ RAWLOG_ERROR1("Failed to get constructor for java class %s", CLIPBOARD_FACTORY_CLASS);
29
+ return;
30
+ }
31
+ jobject jFactory = env->NewObject(cls, midFactory);
32
+ if(env->IsSameObject(jFactory, NULL))
33
+ {
34
+ RAWLOG_ERROR1("Failed to create %s instance", CLIPBOARD_FACTORY_CLASS);
35
+ return;
36
+ }
37
+
38
+ RAWTRACE("Initializing Java factory");
39
+
40
+ rho::CClipboardBase::setJavaFactory(env, jFactory);
41
+
42
+ RAWTRACE("Deleting JNI reference");
43
+
44
+ env->DeleteLocalRef(jFactory);
45
+
46
+ RAWTRACE("Initializing API");
47
+
48
+ Init_Clipboard_API();
49
+
50
+ RAWTRACE("Init_Clipboard succeeded");
51
+ }
52
+ else
53
+ {
54
+ RAWLOG_ERROR("Failed to initialize Clipboard API: jnienv() is failed");
55
+ }
56
+
57
+ }
58
+
59
+ extern "C" void Init_Clipboard_extension() {
60
+ Init_Clipboard();
61
+ }