rhodes 3.1.0.beta.2 → 3.1.0.beta.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. data/CHANGELOG +1 -1
  2. data/Manifest.txt +26 -1
  3. data/Rakefile +12 -12
  4. data/doc/connect-to-web-services.txt +7 -1
  5. data/doc/css-framework.txt +3 -3
  6. data/doc/device-caps.txt +24 -23
  7. data/doc/generator.txt +4 -2
  8. data/doc/standard-css.txt +17 -42
  9. data/doc/tutorial.txt +23 -29
  10. data/doc/ui.txt +99 -79
  11. data/lib/extensions/barcode/Android.mk +17 -0
  12. data/lib/extensions/barcode/ext/barcode/platform/android/jni/src/barcode.cpp +27 -11
  13. data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/android/CaptureActivity.java +2 -1
  14. data/lib/extensions/barcode/ext/barcode/platform/android/src/com/rhomobile/barcode/Barcode.java +5 -6
  15. data/lib/extensions/nfc/Android.mk +18 -0
  16. data/lib/extensions/nfc/ext/nfc/platform/android/jni/src/nfc.cpp +9 -16
  17. data/platform/android/Rhodes/jni/Android.mk +25 -314
  18. data/platform/android/Rhodes/jni/rainbow_stab.cpp +31 -0
  19. data/platform/android/Rhodes/jni/src/bluetooth.cpp +5 -9
  20. data/platform/android/Rhodes/jni/src/camera.cpp +5 -12
  21. data/platform/android/Rhodes/jni/src/fileapi.cpp +8 -7
  22. data/platform/android/Rhodes/jni/src/mapview.cpp +29 -13
  23. data/platform/android/Rhodes/jni/src/nativebar.cpp +3 -2
  24. data/platform/android/Rhodes/jni/src/webview.cpp +2 -2
  25. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java +2 -0
  26. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/MapView.java +8 -2
  27. data/platform/android/build/android.rake +1 -1
  28. data/platform/android/build/androidcommon.rb +12 -1
  29. data/platform/iphone/Classes/Bluetooth/Bluetooth.m +6 -2
  30. data/platform/iphone/Classes/Camera/PickImageDelegate.m +3 -3
  31. data/platform/iphone/Classes/DateTimePickerDelegate.m +3 -1
  32. data/platform/iphone/Classes/MapView/MapAnnotation.m +2 -1
  33. data/platform/iphone/Classes/SplitView/RightViewController.m +3 -1
  34. data/platform/iphone/Classes/TabbedMainView.m +3 -1
  35. data/platform/iphone/rbuild/iphone.rake +5 -3
  36. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Info.plist +2 -4
  37. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/MacOS/RhoSimulator +0 -0
  38. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/accessible/libqtaccessiblewidgets.dylib +0 -0
  39. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/bearer/libqgenericbearer.dylib +0 -0
  40. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/codecs/libqcncodecs.dylib +0 -0
  41. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/codecs/libqjpcodecs.dylib +0 -0
  42. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/codecs/libqkrcodecs.dylib +0 -0
  43. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/codecs/libqtwcodecs.dylib +0 -0
  44. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/graphicssystems/libqtracegraphicssystem.dylib +0 -0
  45. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/phonon_backend/libphonon_qt7.dylib +0 -0
  46. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/qmltooling/libtcpserver.dylib +0 -0
  47. data/platform/shared/common/Android.mk +35 -0
  48. data/platform/shared/common/RhodesApp.cpp +17 -14
  49. data/platform/shared/common/map/ESRIMapEngine.cpp +4 -1
  50. data/platform/shared/curl/Android.mk +88 -0
  51. data/platform/shared/db/Android.mk +12 -0
  52. data/platform/shared/db/DBResult.h +1 -1
  53. data/platform/shared/json/Android.mk +18 -0
  54. data/platform/shared/logging/Android.mk +13 -0
  55. data/platform/shared/logging/RhoLogConf.cpp +1 -3
  56. data/platform/shared/net/Android.mk +19 -0
  57. data/platform/shared/qt/rhodes/QtMainWindow.cpp +7 -2
  58. data/platform/shared/qt/rhodes/QtMainWindow.h +1 -0
  59. data/platform/shared/qt/rhodes/QtMainWindow.ui +12 -0
  60. data/platform/shared/qt/rhodes/RhoSimulator.h +33 -0
  61. data/platform/shared/qt/rhodes/rhodes.pro +134 -133
  62. data/platform/shared/ruby/Android.mk +118 -0
  63. data/platform/shared/rubyext/Android.mk +15 -0
  64. data/platform/shared/sqlite/Android.mk +9 -0
  65. data/platform/shared/statistic/Android.mk +9 -0
  66. data/platform/shared/sync/Android.mk +14 -0
  67. data/platform/shared/unzip/Android.mk +9 -0
  68. data/platform/win32/RhoSimulator/RhoSimulator.exe +0 -0
  69. data/platform/wm/build/wm.rake +1 -1
  70. data/platform/wm/rhodes/bluetooth/Bluetooth.cpp +3 -1
  71. data/rakefile.rb +12 -12
  72. data/res/generators/templates/application/app/Settings/login.erb +2 -2
  73. data/res/generators/templates/application/app/index.bb.erb +12 -17
  74. data/res/generators/templates/application/app/layout.erb +1 -15
  75. data/res/generators/templates/application/public/css/blackberry.css +17 -17
  76. data/res/generators/templates/application/public/css/jqmobile-patch.css +22 -0
  77. data/res/generators/templates/application/public/js/jqmobile-patch.js +28 -14
  78. data/res/generators/templates/model/edit.erb +1 -1
  79. data/res/generators/templates/model/new.erb +1 -1
  80. data/rhodes.gemspec +2 -2
  81. metadata +34 -25
  82. data/platform/android/Rhodes/AndroidManifest.full.xml +0 -101
data/doc/ui.txt CHANGED
@@ -4,61 +4,76 @@
4
4
 
5
5
  Rhodes supports a layout mechanism based on ERB templates. The default layout template is called "layout.erb" and is located in the application root folder. Unless overridden, this layout is rendered on all non-Ajax requests.
6
6
 
7
- You may use layout.erb to load CSS and favorite [JavaScript frameworks](#javascript-frameworks) and libraries. Generated layout.erb loads rhomobile [CSS framework](#css-framework) and modified JQTouch library.
7
+ You may use layout.erb to load CSS and favorite [JavaScript frameworks](#javascript-frameworks) and libraries. Generated layout.erb loads rhomobile [CSS framework](#css-framework) and jQuery Mobile library modified on the fly.
8
8
 
9
9
  :::html
10
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
11
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
12
- <html xmlns="http://www.w3.org/1999/xhtml">
13
-
14
- <head>
15
-
16
- <title>Test</title>
17
- <meta name="viewport" content="width=device-width;
18
- height=device-height; initial-scale=1.0;
19
- maximum-scale=1.0; user-scalable=0;"/>
20
-
21
- <% is_bb6 = System::get_property('platform') == 'Blackberry' &&
22
- (System::get_property('os_version') =~ /^6\.0/) %>
23
-
24
- <% if System::get_property('platform') == 'APPLE' ||
25
- System::get_property('platform') == 'ANDROID' || is_bb6 %>
26
- <script src="/public/jqtouch/jquery.1.3.2.min.js"
27
- type="text/javascript"></script>
28
- <script src="/public/jqtouch/jqtouch.js"
29
- type="text/javascript"></script>
30
- <link href="/public/jqtouch/jqtouch.css"
31
- type="text/css" rel="stylesheet"/>
32
- <% if System::get_property('platform') == 'APPLE' %>
33
- <link href="/public/jqtouch/jqtouch-iphone.css"
34
- type="text/css" rel="stylesheet"/>
35
- <% end %>
36
- <script>$.jQTouch();</script>
37
- <% end %>
38
-
39
- <% if System::get_property('platform') == 'APPLE' %>
40
- <link href="/public/css/iphone.css"
41
- type="text/css" rel="stylesheet"/>
42
- <% elsif System::get_property('platform') == 'ANDROID' %>
43
- <link href="/public/css/android.css"
44
- type="text/css" rel="stylesheet"/>
45
- <% elsif is_bb6 %>
46
- <link href="/public/css/android.css"
47
- type="text/css" rel="stylesheet"/>
48
- <% elsif System::get_property('platform') == 'Blackberry' %>
49
- <link href="/public/css/blackberry.css"
50
- type="text/css" rel="stylesheet"/>
51
- <% else %>
52
- <link href="/public/css/windows_mobile.css"
53
- type="text/css" rel="stylesheet"/>
54
- <% end %>
55
- </head>
56
-
57
- <body>
58
- <%= @content %>
59
- </body>
60
-
61
- </html>
10
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
11
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
12
+ <html xmlns="http://www.w3.org/1999/xhtml">
13
+
14
+ <head>
15
+
16
+ <title>Test</title>
17
+
18
+ <% is_bb6 = System::get_property('platform') == 'Blackberry' && (System::get_property('os_version').split('.')[0].to_i >= 6) %>
19
+
20
+ <% if is_bb6 %>
21
+ <meta name="viewport" content="width=device-width; height=device-height; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/>
22
+ <% else %>
23
+ <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/>
24
+ <% end %>
25
+
26
+ <% if System::get_property('platform') == 'WP7' %>
27
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
28
+ <% end %>
29
+
30
+ <% if System::get_property('platform') == 'APPLE' || System::get_property('platform') == 'ANDROID' || is_bb6 || ( System::get_property('platform') == 'UNKNOWN' && System::get_property('webview_framework') =~ /^WEBKIT/) %>
31
+ <script src="/public/jquery/jquery-1.6.2.min.js" type="text/javascript"></script>
32
+
33
+ <link rel="stylesheet" href="/public/jqmobile/jquery.mobile-1.0b1.min.css">
34
+ <% if System::get_property('platform') == 'APPLE' %>
35
+ <link href="/public/jqmobile/jquery.mobile.iphone.css" type="text/css" rel="stylesheet"/>
36
+ <% end %>
37
+
38
+ <script type="text/javascript">
39
+ $(document).bind("mobileinit", function(){
40
+ // jQuery-Mobile init options initialization goes here. For example, you may
41
+ // enable automatically generated 'Back' buttons on headers this way:
42
+ //$.mobile.page.prototype.options.addBackBtn = true;
43
+ // Look for other init options here:
44
+ // http://jquerymobile.com/demos/1.0b1/#/demos/1.0b1/docs/api/globalconfig.html
45
+ });
46
+ </script>
47
+ <script type="text/javascript" charset="utf-8" src="/public/jqmobile/jquery.mobile-1.0b1.min.js"></script>
48
+ <script type="text/javascript" charset="utf-8" src="/public/js/jqmobile-patch.js"></script>
49
+ <% end %>
50
+
51
+ <% if System::get_property('platform') == 'APPLE' %>
52
+ <link href="/public/css/iphone.css" type="text/css" rel="stylesheet"/>
53
+ <% elsif System::get_property('platform') == 'ANDROID' %>
54
+ <link href="/public/css/android.css" type="text/css" rel="stylesheet"/>
55
+ <% elsif is_bb6 %>
56
+ <link href="/public/css/android.css" type="text/css" rel="stylesheet"/>
57
+ <% elsif System::get_property('platform') == 'Blackberry' %>
58
+ <link href="/public/css/blackberry.css" type="text/css" rel="stylesheet"/>
59
+ <% elsif System::get_property('platform') == 'WP7' %>
60
+ <link href="/public/css/windows_mobile.css" type="text/css" rel="stylesheet"/>
61
+ <% elsif System::get_property('platform') == 'WINDOWS' %>
62
+ <link href="/public/css/windows_mobile.css" type="text/css" rel="stylesheet"/>
63
+ <% elsif System::get_property('webview_framework') =~ /^WEBKIT/ %>
64
+ <link href="/public/css/android.css" type="text/css" rel="stylesheet"/>
65
+ <% end %>
66
+ </head>
67
+
68
+ <body
69
+ <% if System::get_property('platform') == 'WP7' || is_bb6 %>
70
+ data-do-fix-forms="true"
71
+ <% end %>
72
+ >
73
+ <%= @content %>
74
+ </body>
75
+
76
+ </html>
62
77
 
63
78
  ### Customizing Layouts
64
79
 
@@ -82,30 +97,25 @@ Rhodes 2.0+ includes an improved [CSS Framework](css-framework) which takes adva
82
97
 
83
98
  ## JavaScript frameworks
84
99
 
85
- To implement advanced UI for your Rhodes View you may consider using such JavaScript UI frameworks as [Sencha](http://www.sencha.com/), [Jquery Mobile](http://jquerymobile.com/), or [JQtouch](http://www.jqtouch.com/). Place one of these libraries in public/js folder of your application, load it in your [layout.erb](#layout), and you are ready to go.
100
+ To implement advanced UI for your Rhodes View you may consider using such JavaScript UI frameworks as [Sencha](http://www.sencha.com/). Place one of these libraries in public/js folder of your application, load it in your [layout.erb](#layout), and you are ready to go.
101
+ [Jquery Mobile](http://jquerymobile.com/) is supported out of the box.
86
102
 
87
- ### jQTouch modifications
103
+ ### jQuery Mobile modifications
88
104
 
89
- By default, Rhodes framework uses a modified version of jQTouch version 1, beta 2. The following is a list of modifications to the jQTouch library:
105
+ By default, Rhodes framework uses a original version of jQuery Mobile version 1, beta 2. But it is modified on the fly upon a page load event. The following is a list of modifications to the jQuery Mobile library:
90
106
 
91
107
  * $.support.WebKitAnimationEvent is set to true if the device is Android 2.x. The default implementation sets this to false.
92
108
  * A default timeout has been set for Ajax requests to 30 seconds.
93
- * The default backSelector has been changed from ".back, .cancel, .goback" to ".backButton a".
94
- * The default slideSelector has been changed from "body > * > ul li a" to "a". This makes every link animate with a slide transition by default.
95
- * Every "a" invokes liveTap; every "[type=submit]" invokes submitParentForm.
96
- * On document load, the Rhodes implementation of jQTouch wraps the children of the body with a DIV.
97
- * Fixed slide animation for Android 2.x devices. Slide transitions are handled differently than other animated transitions.
98
109
  * This implementation creates a global Rho object that contains two properties:
99
- * Rho.insertAsyncPage(screenSnippet) - a function that inserts a page to the application. Screen snippet should be a string containing a DIV representing a page that in theory contains pageTitle, toolbar and content DIVs.
100
- * Rho.jqt - a reference to the public jQTouch methods normally returned by instantiating jQTouch. For example, to programmatically go back a screen, you can invoke Rho.jqt.goBack().
101
- * Ajax requests set a 'Transition-Enabled: true' request header. This informs the controller that the request was made by a jQTouch enabled application.
102
- * Conversely, Ajax requests inspect for a 'Wait-Page' response header. This informs jQTouch that the page it received was returned after an asynchronous HTTP request was spawned by the controller. Wait pages are not added to the jQtouch history. The animation is then deferred until the expected page is returned to the user interface via the Rho.insertAsyncPage() call. This method is typically invoked after an async HTTP callback function has been triggered in the controller.
103
- * You can override the slide animated transition for forms by setting an animation class on the form like '\<form class="pop"\>...\</form\>'.
110
+ * Rho.insertAsyncPage(screenSnippet) - a function that inserts a page to the application. Screen snippet should be a string containing a DIV representing a page that in theory contains header, footer and content DIVs.
111
+ * Rho.jqm - a reference to the public jQuery Mobile, the same as jQuery.mobile or $.mobile . For example, to programmatically change a page, you can invoke Rho.jqm.changePage(). For the full jQuery Mobile API reference, see the [jQuery Mobile site](http://jquerymobile.com).
112
+ * Ajax requests set a 'Transition-Enabled: true' request header. This informs the controller that the request was made by a jQuery Mobile enabled application.
113
+ * Conversely, Ajax requests inspect for a 'Wait-Page' response header. This informs jQuery Mobile that the page it received was returned after an asynchronous HTTP request was spawned by the controller. Wait pages are not added to the jQuery Mobile history. The animation is then deferred until the expected page is returned to the user interface via the Rho.insertAsyncPage() call. This method is typically invoked after an async HTTP callback function has been triggered in the controller.
104
114
 
105
115
  ### Submit form
106
- If you need to submit form programmatically, please use the expression **jQT.submitForm('.current form.yourFormClass');**. Here **jQT** is defined as it shown above. To specify the exact form on the page it is recommended to use **class** instead of **id**.
116
+ Be careful, using expressions like **$('#form_id').submit();** with jQuery Mobile it lead to an incorrect result!
107
117
 
108
- Be careful, using expressions like **$('#form_id').submit();** with jQTouch it lead to an incorrect result!
118
+ If you need to submit form programmatically, please use the expression like **$('.current form.yourFormClass').submit();**. To specify the exact form on the page it is recommended to use **class** instead of **id**. It is important to use *.current* class name to ddress elements on current active page.
109
119
 
110
120
  ## Loading screen
111
121
 
@@ -687,18 +697,28 @@ See controller.rb and index.erb view in the /app/DateTimeAJ folder of the [Syste
687
697
 
688
698
  ## Animated transitions for Webkit platforms
689
699
 
690
- Animated transitions are supported on the iPhone and Android. Rhodes uses a customized version of jQTouch to deliver transitions between screens. To enable animated transitions in your application, you must include this in your layout's head element:
700
+ Animated transitions are supported on the iPhone, Android and Blackberry OS6 and above. Rhodes uses a customized version of jQuery Mobile to deliver transitions between screens. To enable animated transitions in your application, you must include this in your layout's head element, as it shown in [View Layouts](#view-layouts) section.
691
701
 
692
702
  :::html
693
- <% if System::get_property('platform') == 'APPLE' ||
694
- System::get_property('platform') == 'ANDROID' %>
695
- <script src="/public/jqtouch/jquery.1.3.2.min.js"
696
- type="text/javascript"></script>
697
- <script src="/public/jqtouch/jqtouch.js"
698
- type="text/javascript"></script>
699
- <link href="/public/jqtouch/jqtouch.css"
700
- type="text/css" rel="stylesheet"/>
701
- <script>jQT = $.jQTouch();</script>
703
+ <% if System::get_property('platform') == 'APPLE' || System::get_property('platform') == 'ANDROID' || is_bb6 || ( System::get_property('platform') == 'UNKNOWN' && System::get_property('webview_framework') =~ /^WEBKIT/) %>
704
+ <script src="/public/jquery/jquery-1.6.2.min.js" type="text/javascript"></script>
705
+
706
+ <link rel="stylesheet" href="/public/jqmobile/jquery.mobile-1.0b1.min.css">
707
+ <% if System::get_property('platform') == 'APPLE' %>
708
+ <link href="/public/jqmobile/jquery.mobile.iphone.css" type="text/css" rel="stylesheet"/>
709
+ <% end %>
710
+
711
+ <script type="text/javascript">
712
+ $(document).bind("mobileinit", function(){
713
+ // jQuery-Mobile init options initialization goes here. For example, you may
714
+ // enable automatically generated 'Back' buttons on headers this way:
715
+ //$.mobile.page.prototype.options.addBackBtn = true;
716
+ // Look for other init options here:
717
+ // http://jquerymobile.com/demos/1.0b1/#/demos/1.0b1/docs/api/globalconfig.html
718
+ });
719
+ </script>
720
+ <script type="text/javascript" charset="utf-8" src="/public/jqmobile/jquery.mobile-1.0b1.min.js"></script>
721
+ <script type="text/javascript" charset="utf-8" src="/public/js/jqmobile-patch.js"></script>
702
722
  <% end %>
703
723
 
704
724
  Also make sure to add jqtouch_mode=1 to your application's [rhoconfig.txt](configuration#run-time-configuration). Setting this property enables animation for the back button in the bottom toolbar and hides the forward button.
@@ -713,7 +733,7 @@ If you have an older application that you'd like to add animated transitions to,
713
733
  * Go through each view template and change all the id attributes to classes. For example:
714
734
  ** &lt;div ''id="toolbar"''> should be &lt;div ''class="toolbar"''>
715
735
  ** &lt;div ''id="leftItem"'' class="regularButton"> should be &lt;div ''class="leftItem regularButton"''>
716
- * Copy the ''public/jqtouch'' directory from Rhodes latest to your application's ''public'' directory.
736
+ * Copy the ''public/js/jquery'' and ''public/js/jqmobile'' directories from Rhodes latest to your application's ''public'' directory.
717
737
  * Copy the ''public/css/*.css'' files from Rhodes latest to your application's ''public/css'' directory.
718
738
  ** Alternatively, you can change all the id selectors to class selectors. You may want to go down this route if you have custom changes in your CSS file. For instance, a ''#toolbar'' selector should now be ''.toolbar''.
719
739
 
@@ -0,0 +1,17 @@
1
+ LOCAL_PATH := $(call my-dir)
2
+
3
+ include $(CLEAR_VARS)
4
+
5
+ LOCAL_MODULE := barcode
6
+ LOCAL_SRC_FILES := ext/barcode/platform/android/jni/src/barcode.cpp \
7
+ ext/barcode/shared/ruby/barcode_wrap.c
8
+
9
+ LOCAL_C_INCLUDES := $(LOCAL_PATH) \
10
+ $(PROJECT_PATH)/include \
11
+ $(SHARED_PATH_INC) \
12
+ $(SHARED_PATH_INC)/ruby/include \
13
+ $(SHARED_PATH_INC)/ruby/linux \
14
+ $(SHARED_PATH_INC)/ruby/generated
15
+
16
+ include $(BUILD_STATIC_LIBRARY)
17
+
@@ -1,12 +1,12 @@
1
1
  //#include "rhodes/JNIRhodes.h"
2
2
  #include <rhodes.h>
3
- #include <android/log.h>
3
+ //#include <android/log.h>
4
4
  #include <common/RhodesApp.h>
5
- #include <logging/RhoLogConf.h>
5
+ #include <logging/RhoLog.h>
6
6
  #include <stdlib.h>
7
7
 
8
-
9
- #define logging_enable false
8
+ #undef DEFAULT_LOGCATEGORY
9
+ #define DEFAULT_LOGCATEGORY "BarcodeJNI"
10
10
 
11
11
  static char barcode_result[16000];
12
12
 
@@ -22,12 +22,20 @@ extern "C" const char* rho_barcode_barcode_recognize(const char* filename) {
22
22
  env->DeleteLocalRef(objFilename);
23
23
 
24
24
  if (res == NULL) {
25
- return NULL;
25
+ RAWLOG_ERROR("Failed to recognize.");
26
+ return NULL;
26
27
  }
27
28
 
28
- const char* code = env->GetStringUTFChars(res,0);
29
- strcpy(barcode_result, code);
30
- env->ReleaseStringUTFChars(res, code);
29
+ if(env->GetStringUTFLength(res) < (sizeof(barcode_result)/sizeof(barcode_result[0])))
30
+ {
31
+ const char* code = env->GetStringUTFChars(res,0);
32
+ strcpy(barcode_result, code);
33
+ env->ReleaseStringUTFChars(res, code);
34
+ } else
35
+ {
36
+ RAWLOG_ERROR("Recognized data is too large.");
37
+ return NULL;
38
+ }
31
39
 
32
40
  return barcode_result;
33
41
  }
@@ -40,11 +48,19 @@ extern "C" void rho_barcode_take_barcode(const char* callback) {
40
48
  if (!mid) return;
41
49
 
42
50
  jstring objCallback = env->NewStringUTF(callback);
43
- env->CallStaticObjectMethod(cls, mid, objCallback);
44
- env->DeleteLocalRef(objCallback);
51
+ if(objCallback != NULL)
52
+ {
53
+ env->CallStaticObjectMethod(cls, mid, objCallback);
54
+ env->DeleteLocalRef(objCallback);
55
+ } else
56
+ {
57
+ RAWLOG_ERROR1("Cannot take barcode, no memory: %d", strlen(callback));
58
+ }
45
59
  }
46
60
 
47
61
  RHO_GLOBAL void JNICALL Java_com_rhomobile_barcode_Barcode_callback
48
62
  (JNIEnv *env, jclass, jstring callback_url, jstring body) {
49
- rho_net_request_with_data(rho_http_normalizeurl(rho_cast<std::string>(callback_url).c_str()), rho_cast<std::string>(body).c_str());
63
+ char* url = rho_http_normalizeurl(rho_cast<std::string>(env, callback_url).c_str());
64
+ rho_net_request_with_data(url, rho_cast<std::string>(env, body).c_str());
65
+ rho_http_free(url);
50
66
  }
@@ -22,6 +22,7 @@ import com.google.zxing.ResultMetadataType;
22
22
  import com.google.zxing.ResultPoint;
23
23
  import com.google.zxing.client.android.camera.CameraManager;
24
24
 
25
+ import com.rhomobile.rhodes.BaseActivity;
25
26
  import com.rhomobile.rhodes.R;
26
27
 
27
28
  import android.app.Activity;
@@ -80,7 +81,7 @@ import java.util.Vector;
80
81
  * @author dswitkin@google.com (Daniel Switkin)
81
82
  * @author Sean Owen
82
83
  */
83
- public final class CaptureActivity extends Activity implements SurfaceHolder.Callback {
84
+ public final class CaptureActivity extends BaseActivity implements SurfaceHolder.Callback {
84
85
 
85
86
  private static final String TAG = CaptureActivity.class.getSimpleName();
86
87
 
@@ -68,14 +68,13 @@ public class Barcode {
68
68
  public static void take(String callback) {
69
69
  ourCallback = callback;
70
70
 
71
- PerformOnUiThread.exec( new Runnable() {
72
- public void run() {
73
- RhodesActivity ra = RhodesActivity.getInstance();
71
+ // PerformOnUiThread.exec( new Runnable() {
72
+ // public void run() {
73
+ RhodesActivity ra = RhodesActivity.safeGetInstance();
74
74
  Intent intent = new Intent(ra, com.google.zxing.client.android.CaptureActivity.class);
75
75
  ra.startActivity(intent);
76
-
77
- }
78
- });
76
+ // }
77
+ // });
79
78
  }
80
79
 
81
80
  public static native void callback(String callbackUrl, String body);
@@ -0,0 +1,18 @@
1
+ LOCAL_PATH := $(call my-dir)
2
+
3
+ include $(CLEAR_VARS)
4
+
5
+ LOCAL_MODULE := nfc
6
+ LOCAL_SRC_FILES := ext/nfc/platform/android/jni/src/nfc.cpp \
7
+ ext/nfc/shared/ruby/nfc_wrap.c
8
+
9
+ LOCAL_C_INCLUDES := $(LOCAL_PATH) \
10
+ $(PROJECT_PATH)/include \
11
+ $(SHARED_PATH_INC) \
12
+ $(SHARED_PATH_INC)/common \
13
+ $(SHARED_PATH_INC)/ruby/include \
14
+ $(SHARED_PATH_INC)/ruby/linux \
15
+ $(SHARED_PATH_INC)/ruby/generated
16
+
17
+ include $(BUILD_STATIC_LIBRARY)
18
+
@@ -1318,13 +1318,10 @@ extern "C" VALUE rho_nfc_tech_NfcV_transceive(VALUE data) {
1318
1318
  extern "C" void JNICALL Java_com_rhomobile_nfc_Nfc_callTechCallback
1319
1319
  (JNIEnv *env, jclass, jstring js_callback_url, jstring js_event)
1320
1320
  {
1321
- char url[2048];
1322
- char body[2048];
1321
+ char body[2048];
1323
1322
 
1324
- const char* jurl = env->GetStringUTFChars(js_callback_url,0);
1325
- const char* jevent = env->GetStringUTFChars(js_event,0);
1326
- strcpy(url, jurl);
1327
- env->ReleaseStringUTFChars(js_callback_url, jurl);
1323
+ std::string url = rho_cast<std::string>(env, js_callback_url);
1324
+ const char* jevent = env->GetStringUTFChars(js_event,0);
1328
1325
 
1329
1326
  strcpy(body, "&rho_callback=1");
1330
1327
  strcat(body, "&");
@@ -1332,7 +1329,7 @@ extern "C" void JNICALL Java_com_rhomobile_nfc_Nfc_callTechCallback
1332
1329
  strcat(body, jevent);
1333
1330
  env->ReleaseStringUTFChars(js_event, jevent);
1334
1331
 
1335
- rho_net_request_with_data(rho_http_normalizeurl(url), body);
1332
+ rho_net_request_with_data(RHODESAPP().canonicalizeRhoUrl(url).c_str(), body);
1336
1333
  }
1337
1334
 
1338
1335
  // private native void callTechCallback(String callback_url, String event);
@@ -1356,24 +1353,20 @@ extern "C" void JNICALL Java_com_rhomobile_nfc_Nfc_logNative
1356
1353
  extern "C" void JNICALL Java_com_rhomobile_nfc_Nfc_callCallback
1357
1354
  (JNIEnv *env, jclass, jstring js_callback_url, jobject jo_msgpack)
1358
1355
  {
1359
- logi("native callback START");
1356
+ logi("native callback START");
1360
1357
 
1361
1358
  initJavaIds(env);
1362
-
1363
- CNFCMessagePack* messagePack = new CNFCMessagePack(env, jo_msgpack);
1364
1359
 
1365
- char url[2048];
1366
- char body[2048];
1360
+ CNFCMessagePack* messagePack = new CNFCMessagePack(env, jo_msgpack);
1367
1361
 
1368
- const char* jurl = env->GetStringUTFChars(js_callback_url,0);
1369
- strcpy(url, jurl);
1370
- env->ReleaseStringUTFChars(js_callback_url, jurl);
1362
+ std::string url = rho_cast<std::string>(env, js_callback_url);
1363
+ char body[2048];
1371
1364
 
1372
1365
  strcpy(body, "&rho_callback=1");
1373
1366
  strcat(body, "&");
1374
1367
  strcat(body, (RHODESAPP().addCallbackObject( new RhoCallbackNFCContainer(messagePack), "messages")).c_str());
1375
1368
 
1376
- rho_net_request_with_data(rho_http_normalizeurl(url), body);
1369
+ rho_net_request_with_data(RHODESAPP().canonicalizeRhoUrl(url).c_str(), body);
1377
1370
 
1378
1371
  }
1379
1372
 
@@ -1,321 +1,10 @@
1
1
  LOCAL_PATH := $(call my-dir)
2
+ PROJECT_PATH := $(LOCAL_PATH)
2
3
  SHARED_PATH_INC := $(LOCAL_PATH)/../../../shared
3
4
  SHARED_PATH := ../../../shared
4
5
 
5
6
  include $(CLEAR_VARS)
6
7
 
7
- LOCAL_MODULE := sqlite
8
- LOCAL_SRC_FILES := $(SHARED_PATH)/sqlite/sqlite3.c
9
- LOCAL_C_INCLUDES := $(SHARED_PATH_INC)/sqlite $(SHARED_PATH_INC)
10
-
11
- include $(BUILD_STATIC_LIBRARY)
12
-
13
- include $(CLEAR_VARS)
14
-
15
- LOCAL_MODULE := curl
16
- LOCAL_SRC_FILES := \
17
- $(SHARED_PATH)/curl/lib/amigaos.c \
18
- $(SHARED_PATH)/curl/lib/base64.c \
19
- $(SHARED_PATH)/curl/lib/connect.c \
20
- $(SHARED_PATH)/curl/lib/content_encoding.c \
21
- $(SHARED_PATH)/curl/lib/cookie.c \
22
- $(SHARED_PATH)/curl/lib/curl_addrinfo.c \
23
- $(SHARED_PATH)/curl/lib/curl_memrchr.c \
24
- $(SHARED_PATH)/curl/lib/curl_rand.c \
25
- $(SHARED_PATH)/curl/lib/curl_sspi.c \
26
- $(SHARED_PATH)/curl/lib/dict.c \
27
- $(SHARED_PATH)/curl/lib/easy.c \
28
- $(SHARED_PATH)/curl/lib/escape.c \
29
- $(SHARED_PATH)/curl/lib/file.c \
30
- $(SHARED_PATH)/curl/lib/formdata.c \
31
- $(SHARED_PATH)/curl/lib/ftp.c \
32
- $(SHARED_PATH)/curl/lib/getenv.c \
33
- $(SHARED_PATH)/curl/lib/getinfo.c \
34
- $(SHARED_PATH)/curl/lib/gtls.c \
35
- $(SHARED_PATH)/curl/lib/hash.c \
36
- $(SHARED_PATH)/curl/lib/hostares.c \
37
- $(SHARED_PATH)/curl/lib/hostasyn.c \
38
- $(SHARED_PATH)/curl/lib/hostip.c \
39
- $(SHARED_PATH)/curl/lib/hostip4.c \
40
- $(SHARED_PATH)/curl/lib/hostip6.c \
41
- $(SHARED_PATH)/curl/lib/hostsyn.c \
42
- $(SHARED_PATH)/curl/lib/hostthre.c \
43
- $(SHARED_PATH)/curl/lib/http.c \
44
- $(SHARED_PATH)/curl/lib/http_chunks.c \
45
- $(SHARED_PATH)/curl/lib/http_digest.c \
46
- $(SHARED_PATH)/curl/lib/http_negotiate.c \
47
- $(SHARED_PATH)/curl/lib/if2ip.c \
48
- $(SHARED_PATH)/curl/lib/inet_ntop.c \
49
- $(SHARED_PATH)/curl/lib/inet_pton.c \
50
- $(SHARED_PATH)/curl/lib/krb4.c \
51
- $(SHARED_PATH)/curl/lib/krb5.c \
52
- $(SHARED_PATH)/curl/lib/ldap.c \
53
- $(SHARED_PATH)/curl/lib/llist.c \
54
- $(SHARED_PATH)/curl/lib/md5.c \
55
- $(SHARED_PATH)/curl/lib/memdebug.c \
56
- $(SHARED_PATH)/curl/lib/mprintf.c \
57
- $(SHARED_PATH)/curl/lib/multi.c \
58
- $(SHARED_PATH)/curl/lib/netrc.c \
59
- $(SHARED_PATH)/curl/lib/nonblock.c \
60
- $(SHARED_PATH)/curl/lib/nss.c \
61
- $(SHARED_PATH)/curl/lib/nwlib.c \
62
- $(SHARED_PATH)/curl/lib/nwos.c \
63
- $(SHARED_PATH)/curl/lib/parsedate.c \
64
- $(SHARED_PATH)/curl/lib/progress.c \
65
- $(SHARED_PATH)/curl/lib/rawstr.c \
66
- $(SHARED_PATH)/curl/lib/rhossl.c \
67
- $(SHARED_PATH)/curl/lib/security.c \
68
- $(SHARED_PATH)/curl/lib/select.c \
69
- $(SHARED_PATH)/curl/lib/sendf.c \
70
- $(SHARED_PATH)/curl/lib/share.c \
71
- $(SHARED_PATH)/curl/lib/slist.c \
72
- $(SHARED_PATH)/curl/lib/socks.c \
73
- $(SHARED_PATH)/curl/lib/socks_gssapi.c \
74
- $(SHARED_PATH)/curl/lib/socks_sspi.c \
75
- $(SHARED_PATH)/curl/lib/speedcheck.c \
76
- $(SHARED_PATH)/curl/lib/splay.c \
77
- $(SHARED_PATH)/curl/lib/ssh.c \
78
- $(SHARED_PATH)/curl/lib/sslgen.c \
79
- $(SHARED_PATH)/curl/lib/strdup.c \
80
- $(SHARED_PATH)/curl/lib/strequal.c \
81
- $(SHARED_PATH)/curl/lib/strerror.c \
82
- $(SHARED_PATH)/curl/lib/strtok.c \
83
- $(SHARED_PATH)/curl/lib/strtoofft.c \
84
- $(SHARED_PATH)/curl/lib/telnet.c \
85
- $(SHARED_PATH)/curl/lib/tftp.c \
86
- $(SHARED_PATH)/curl/lib/timeval.c \
87
- $(SHARED_PATH)/curl/lib/transfer.c \
88
- $(SHARED_PATH)/curl/lib/url.c \
89
- $(SHARED_PATH)/curl/lib/version.c
90
-
91
- LOCAL_C_INCLUDES := \
92
- $(SHARED_PATH_INC)/curl/include \
93
- $(SHARED_PATH_INC)/curl/lib \
94
- $(SHARED_PATH_INC)
95
-
96
- LOCAL_CFLAGS := -DHAVE_CONFIG_H
97
-
98
- include $(BUILD_STATIC_LIBRARY)
99
-
100
- include $(CLEAR_VARS)
101
-
102
- LOCAL_MODULE := ruby
103
- LOCAL_SRC_FILES := \
104
- $(SHARED_PATH)/ruby/array.c \
105
- $(SHARED_PATH)/ruby/bignum.c \
106
- $(SHARED_PATH)/ruby/blockinlining.c \
107
- $(SHARED_PATH)/ruby/class.c \
108
- $(SHARED_PATH)/ruby/compar.c \
109
- $(SHARED_PATH)/ruby/compile.c \
110
- $(SHARED_PATH)/ruby/complex.c \
111
- $(SHARED_PATH)/ruby/cont.c \
112
- $(SHARED_PATH)/ruby/debug.c \
113
- $(SHARED_PATH)/ruby/dir.c \
114
- $(SHARED_PATH)/ruby/dln.c \
115
- $(SHARED_PATH)/ruby/dmyencoding.c \
116
- $(SHARED_PATH)/ruby/dmyext.c \
117
- $(SHARED_PATH)/ruby/enc/ascii.c \
118
- $(SHARED_PATH)/ruby/enc/unicode.c \
119
- $(SHARED_PATH)/ruby/enc/us_ascii.c \
120
- $(SHARED_PATH)/ruby/enc/utf_8.c \
121
- $(SHARED_PATH)/ruby/enum.c \
122
- $(SHARED_PATH)/ruby/enumerator.c \
123
- $(SHARED_PATH)/ruby/error.c \
124
- $(SHARED_PATH)/ruby/eval.c \
125
- $(SHARED_PATH)/ruby/ext/alert/alert_wrap.c \
126
- $(SHARED_PATH)/ruby/ext/asynchttp/asynchttp_wrap.c \
127
- $(SHARED_PATH)/ruby/ext/bluetooth/bluetooth_wrap.c \
128
- $(SHARED_PATH)/ruby/ext/nativeviewmanager/nativeviewmanager_wrap.c \
129
- $(SHARED_PATH)/ruby/ext/calendar/calendar_wrap.c \
130
- $(SHARED_PATH)/ruby/ext/calendar/event_wrap.c \
131
- $(SHARED_PATH)/ruby/ext/camera/camera_wrap.c \
132
- $(SHARED_PATH)/ruby/ext/datetimepicker/datetimepicker_wrap.c \
133
- $(SHARED_PATH)/ruby/ext/geolocation/geolocation_wrap.c \
134
- $(SHARED_PATH)/ruby/ext/mapview/mapview_wrap.c \
135
- $(SHARED_PATH)/ruby/ext/nativebar/nativebar_wrap.c \
136
- $(SHARED_PATH)/ruby/ext/navbar/navbar_wrap.c \
137
- $(SHARED_PATH)/ruby/ext/phonebook/phonebook_wrap.c \
138
- $(SHARED_PATH)/ruby/ext/rho/extensions.c \
139
- $(SHARED_PATH)/ruby/ext/rho/rhoruby.c \
140
- $(SHARED_PATH)/ruby/ext/rho/rhosupport.c \
141
- $(SHARED_PATH)/ruby/ext/rhoconf/rhoconf_wrap.c \
142
- $(SHARED_PATH)/ruby/ext/ringtones/ringtones_wrap.c \
143
- $(SHARED_PATH)/ruby/ext/signature/signature_wrap.c \
144
- $(SHARED_PATH)/ruby/ext/socket/socket.c \
145
- $(SHARED_PATH)/ruby/ext/sqlite3_api/sqlite3_api_wrap.c \
146
- $(SHARED_PATH)/ruby/ext/stringio/stringio.c \
147
- $(SHARED_PATH)/ruby/ext/strscan/strscan.c \
148
- $(SHARED_PATH)/ruby/ext/syncengine/syncengine_wrap.c \
149
- $(SHARED_PATH)/ruby/ext/system/system_wrap.c \
150
- $(SHARED_PATH)/ruby/ext/webview/webview_wrap.c \
151
- $(SHARED_PATH)/ruby/file.c \
152
- $(SHARED_PATH)/ruby/gc.c \
153
- $(SHARED_PATH)/ruby/generated/parse.c \
154
- $(SHARED_PATH)/ruby/hash.c \
155
- $(SHARED_PATH)/ruby/inits.c \
156
- $(SHARED_PATH)/ruby/io.c \
157
- $(SHARED_PATH)/ruby/iseq.c \
158
- $(SHARED_PATH)/ruby/load.c \
159
- $(SHARED_PATH)/ruby/marshal.c \
160
- $(SHARED_PATH)/ruby/math.c \
161
- $(SHARED_PATH)/ruby/miniprelude.c \
162
- $(SHARED_PATH)/ruby/missing/acosh.c \
163
- $(SHARED_PATH)/ruby/missing/cbrt.c \
164
- $(SHARED_PATH)/ruby/missing/crypt.c \
165
- $(SHARED_PATH)/ruby/missing/dup2.c \
166
- $(SHARED_PATH)/ruby/missing/erf.c \
167
- $(SHARED_PATH)/ruby/missing/hypot.c \
168
- $(SHARED_PATH)/ruby/missing/lgamma_r.c \
169
- $(SHARED_PATH)/ruby/missing/stdlib.c \
170
- $(SHARED_PATH)/ruby/missing/strlcat.c \
171
- $(SHARED_PATH)/ruby/missing/strlcpy.c \
172
- $(SHARED_PATH)/ruby/missing/tgamma.c \
173
- $(SHARED_PATH)/ruby/newline.c \
174
- $(SHARED_PATH)/ruby/numeric.c \
175
- $(SHARED_PATH)/ruby/object.c \
176
- $(SHARED_PATH)/ruby/pack.c \
177
- $(SHARED_PATH)/ruby/proc.c \
178
- $(SHARED_PATH)/ruby/process.c \
179
- $(SHARED_PATH)/ruby/random.c \
180
- $(SHARED_PATH)/ruby/range.c \
181
- $(SHARED_PATH)/ruby/rational.c \
182
- $(SHARED_PATH)/ruby/re.c \
183
- $(SHARED_PATH)/ruby/regcomp.c \
184
- $(SHARED_PATH)/ruby/regenc.c \
185
- $(SHARED_PATH)/ruby/regerror.c \
186
- $(SHARED_PATH)/ruby/regexec.c \
187
- $(SHARED_PATH)/ruby/regparse.c \
188
- $(SHARED_PATH)/ruby/regsyntax.c \
189
- $(SHARED_PATH)/ruby/ruby.c \
190
- $(SHARED_PATH)/ruby/safe.c \
191
- $(SHARED_PATH)/ruby/signal.c \
192
- $(SHARED_PATH)/ruby/sprintf.c \
193
- $(SHARED_PATH)/ruby/st.c \
194
- $(SHARED_PATH)/ruby/strftime.c \
195
- $(SHARED_PATH)/ruby/string.c \
196
- $(SHARED_PATH)/ruby/struct.c \
197
- $(SHARED_PATH)/ruby/thread.c \
198
- $(SHARED_PATH)/ruby/time.c \
199
- $(SHARED_PATH)/ruby/transcode.c \
200
- $(SHARED_PATH)/ruby/util.c \
201
- $(SHARED_PATH)/ruby/variable.c \
202
- $(SHARED_PATH)/ruby/version.c \
203
- $(SHARED_PATH)/ruby/vm.c \
204
- $(SHARED_PATH)/ruby/vm_dump.c
205
- LOCAL_C_INCLUDES := \
206
- $(SHARED_PATH_INC)/ruby/include \
207
- $(SHARED_PATH_INC)/ruby/linux \
208
- $(SHARED_PATH_INC)/ruby/generated \
209
- $(SHARED_PATH_INC)/ruby/ \
210
- $(SHARED_PATH_INC) \
211
- $(SHARED_PATH_INC)/sqlite
212
-
213
-
214
- include $(BUILD_STATIC_LIBRARY)
215
-
216
- include $(CLEAR_VARS)
217
-
218
- LOCAL_MODULE := json
219
- LOCAL_SRC_FILES := \
220
- $(SHARED_PATH)/json/JSONIterator.cpp \
221
- $(SHARED_PATH)/json/RJSONTokener.c \
222
- $(SHARED_PATH)/json/arraylist.c \
223
- $(SHARED_PATH)/json/json_debug.c \
224
- $(SHARED_PATH)/json/json_object.c \
225
- $(SHARED_PATH)/json/json_tokener.c \
226
- $(SHARED_PATH)/json/json_util.c \
227
- $(SHARED_PATH)/json/linkhash.c \
228
- $(SHARED_PATH)/json/printbuf.c
229
- LOCAL_C_INCLUDES := $(SHARED_PATH_INC)/json $(SHARED_PATH_INC)
230
-
231
- include $(BUILD_STATIC_LIBRARY)
232
-
233
- include $(CLEAR_VARS)
234
-
235
- LOCAL_MODULE := rholog
236
- LOCAL_SRC_FILES := \
237
- $(SHARED_PATH)/logging/RhoLogConf.cpp \
238
- $(SHARED_PATH)/logging/RhoLog.cpp \
239
- $(SHARED_PATH)/logging/RhoLogSink.cpp \
240
- $(SHARED_PATH)/logging/RhoPlainLog.cpp
241
- LOCAL_C_INCLUDES := $(SHARED_PATH_INC)
242
-
243
- include $(BUILD_STATIC_LIBRARY)
244
-
245
- include $(CLEAR_VARS)
246
-
247
- LOCAL_MODULE := rhomain
248
- LOCAL_SRC_FILES := \
249
- $(SHARED_PATH)/common/RhodesApp.cpp \
250
- $(SHARED_PATH)/common/RhodesAppBase.cpp
251
- LOCAL_C_INCLUDES := $(SHARED_PATH_INC)
252
-
253
- include $(BUILD_STATIC_LIBRARY)
254
-
255
- include $(CLEAR_VARS)
256
-
257
- LOCAL_MODULE := rhocommon
258
- LOCAL_SRC_FILES := \
259
- $(SHARED_PATH)/common/app_build_configs.c \
260
- $(SHARED_PATH)/common/AppMenu.cpp \
261
- $(SHARED_PATH)/common/map/ESRIMapEngine.cpp \
262
- $(SHARED_PATH)/common/map/GoogleMapEngine.cpp \
263
- $(SHARED_PATH)/common/map/MapEngine.cpp \
264
- $(SHARED_PATH)/common/PosixThreadImpl.cpp \
265
- $(SHARED_PATH)/common/RhoConf.cpp \
266
- $(SHARED_PATH)/common/RhoFile.cpp \
267
- $(SHARED_PATH)/common/RhoMath.cpp \
268
- $(SHARED_PATH)/common/rhoparams.cpp \
269
- $(SHARED_PATH)/common/RhoThread.cpp \
270
- $(SHARED_PATH)/common/SplashScreen.cpp \
271
- $(SHARED_PATH)/common/ThreadQueue.cpp \
272
- $(SHARED_PATH)/common/Tokenizer.cpp \
273
- $(SHARED_PATH)/common/RhoTime.cpp \
274
- $(SHARED_PATH)/net/AsyncHttp.cpp \
275
- $(SHARED_PATH)/net/CURLNetRequest.cpp \
276
- $(SHARED_PATH)/net/HttpServer.cpp \
277
- $(SHARED_PATH)/net/ssl.cpp \
278
- $(SHARED_PATH)/net/URI.cpp \
279
- $(SHARED_PATH)/net/INetRequest.cpp \
280
- $(SHARED_PATH)/rubyext/GeoLocation.cpp \
281
- $(SHARED_PATH)/rubyext/RhoAppAdapter.cpp \
282
- $(SHARED_PATH)/rubyext/System.cpp \
283
- $(SHARED_PATH)/statistic/RhoProfiler.cpp \
284
- $(SHARED_PATH)/unzip/unzip.cpp
285
- LOCAL_C_INCLUDES := \
286
- $(SHARED_PATH_INC) \
287
- $(SHARED_PATH_INC)/curl/include \
288
- $(SHARED_PATH_INC)/ruby/include \
289
- $(SHARED_PATH_INC)/ruby/linux
290
-
291
- include $(BUILD_STATIC_LIBRARY)
292
-
293
- include $(CLEAR_VARS)
294
-
295
- LOCAL_MODULE := rhodb
296
- LOCAL_SRC_FILES := \
297
- $(SHARED_PATH)/db/DBAdapter.cpp \
298
- $(SHARED_PATH)/db/DBAttrManager.cpp \
299
- $(SHARED_PATH)/db/DBResult.cpp
300
- LOCAL_C_INCLUDES := $(SHARED_PATH_INC)/db $(SHARED_PATH_INC) $(SHARED_PATH_INC)/sqlite
301
-
302
- include $(BUILD_STATIC_LIBRARY)
303
-
304
- include $(CLEAR_VARS)
305
-
306
- LOCAL_MODULE := rhosync
307
- LOCAL_SRC_FILES := \
308
- $(SHARED_PATH)/sync/ClientRegister.cpp \
309
- $(SHARED_PATH)/sync/SyncEngine.cpp \
310
- $(SHARED_PATH)/sync/SyncNotify.cpp \
311
- $(SHARED_PATH)/sync/SyncSource.cpp \
312
- $(SHARED_PATH)/sync/SyncThread.cpp
313
- LOCAL_C_INCLUDES := $(SHARED_PATH_INC)/sync $(SHARED_PATH_INC) $(SHARED_PATH_INC)/sqlite
314
-
315
- include $(BUILD_STATIC_LIBRARY)
316
-
317
- include $(CLEAR_VARS)
318
-
319
8
  LOCAL_MODULE := rhodes
320
9
  LOCAL_SRC_FILES := \
321
10
  src/RhoClassFactory.cpp \
@@ -346,7 +35,8 @@ LOCAL_SRC_FILES := \
346
35
  src/splashscreen.cpp \
347
36
  src/sslimpl.cpp \
348
37
  src/webview.cpp \
349
- src/rhocryptimpl.cpp
38
+ src/rhocryptimpl.cpp \
39
+ rainbow_stab.cpp
350
40
 
351
41
  LOCAL_C_INCLUDES := \
352
42
  $(LOCAL_PATH)/include \
@@ -358,8 +48,29 @@ LOCAL_C_INCLUDES := \
358
48
  $(SHARED_PATH_INC)/curl/include \
359
49
  $(SHARED_PATH_INC)/sqlite
360
50
 
361
- LOCAL_STATIC_LIBRARIES := ruby json rhomain rhocommon rhodb rhosync curl sqlite rholog rhocommon
51
+ LOCAL_STATIC_LIBRARIES := \
52
+ ruby rhorubyext json rhomain rhocommon rhodb rhoconnect rhonet curl sqlite rholog \
53
+ rhocommon rhonet rhostat rhorubyext \
54
+ unzip barcode nfc
55
+
362
56
  LOCAL_LDLIBS := -llog -ldl -lz
363
57
 
364
58
  include $(BUILD_SHARED_LIBRARY)
365
59
 
60
+ #include $(LOCAL_PATH)/../../../../lib/extensions/barcode/ext/barcode/platform/android/jni/Android.mk
61
+
62
+ NDK_MODULE_PATH := $(SHARED_PATH_INC)
63
+ $(call import-module,sqlite)
64
+ $(call import-module,curl)
65
+ $(call import-module,ruby)
66
+ $(call import-module,rubyext)
67
+ $(call import-module,json)
68
+ $(call import-module,logging)
69
+ $(call import-module,common)
70
+ $(call import-module,net)
71
+ $(call import-module,statistic)
72
+ $(call import-module,unzip)
73
+ $(call import-module,db)
74
+ $(call import-module,sync)
75
+ $(call import-module,barcode)
76
+ $(call import-module,nfc)