rhodes 2.2.3 → 2.2.4.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. data/CHANGELOG +13 -0
  2. data/Rakefile +1 -1
  3. data/bin/c2dm.rb +59 -0
  4. data/lib/extensions/barcode/ext/barcode/platform/iphone/Rakefile +4 -0
  5. data/lib/framework/rho/rho.rb +2 -0
  6. data/lib/framework/rho/rhoapplication.rb +1 -0
  7. data/lib/framework/rhodes.rb +1 -1
  8. data/lib/framework/version.rb +1 -1
  9. data/lib/rhodes.rb +1 -1
  10. data/platform/android/Rhodes/AndroidManifest.xml +1 -1
  11. data/platform/android/Rhodes/jni/src/callbacks.cpp +21 -0
  12. data/platform/android/Rhodes/jni/src/nativebar.cpp +4 -0
  13. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoActivity.java +3 -1
  14. data/platform/android/Rhodes/src/com/rhomobile/rhodes/Rhodes.java +68 -7
  15. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java +113 -10
  16. data/platform/android/Rhodes/src/com/rhomobile/rhodes/SplashScreen.java +34 -3
  17. data/platform/android/Rhodes/src/com/rhomobile/rhodes/bluetooth/RhoBluetoothManager.java +21 -17
  18. data/platform/android/Rhodes/src/com/rhomobile/rhodes/datetime/DateTimePickerScreen.java +29 -5
  19. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java +7 -0
  20. data/platform/android/Rhodes/src/com/rhomobile/rhodes/uri/ExternalHttpHandler.java +37 -0
  21. data/platform/android/Rhodes/src/com/rhomobile/rhodes/uri/MailUriHandler.java +0 -1
  22. data/platform/android/build/RhodesSRC_build.files +24 -23
  23. data/platform/bb/Hsqldb/src/com/rho/db/HsqlDBStorage.java +6 -0
  24. data/platform/bb/RubyVM/src/com/rho/RhoLogger.java +42 -20
  25. data/platform/bb/RubyVM/src/com/rho/db/DBAdapter.java +111 -19
  26. data/platform/bb/RubyVM/src/com/rho/db/IDBStorage.java +2 -0
  27. data/platform/bb/RubyVM/src/com/rho/net/NetRequest.java +2 -1
  28. data/platform/bb/RubyVM/src/com/rho/net/URI.java +80 -0
  29. data/platform/bb/RubyVM/src/com/rho/sync/SyncEngine.java +21 -1
  30. data/platform/bb/RubyVM/src/com/rho/sync/SyncNotify.java +6 -1
  31. data/platform/bb/RubyVM/src/com/rho/sync/SyncSource.java +139 -46
  32. data/platform/bb/build/bb.rake +8 -3
  33. data/platform/bb/rhodes/platform/5.0/com/rho/RhodesApplicationPlatform.java +32 -21
  34. data/platform/bb/rhodes/src/com/rho/RhoRubyHelper.java +31 -14
  35. data/platform/bb/rhodes/src/com/rho/file/Jsr75File.java +3 -2
  36. data/platform/bb/rhodes/src/com/rho/rubyext/Alert.java +3 -2
  37. data/platform/bb/rhodes/src/com/rho/rubyext/System.java +28 -0
  38. data/platform/bb/rhodes/src/rhomobile/RhodesApplication.java +111 -26
  39. data/platform/iphone/Classes/AppManager/AppManager.m +22 -0
  40. data/platform/iphone/Classes/DateTimePickerDelegate.m +3 -0
  41. data/platform/iphone/Classes/MapView/MapViewController.h +8 -3
  42. data/platform/iphone/Classes/MapView/MapViewController.m +63 -12
  43. data/platform/iphone/Classes/NativeBar.h +4 -3
  44. data/platform/iphone/Classes/NativeBar.m +28 -1
  45. data/platform/iphone/Classes/Rhodes.m +87 -20
  46. data/platform/iphone/Classes/Signature/SignatureView.m +16 -10
  47. data/platform/iphone/Classes/Signature/SignatureViewController.m +2 -0
  48. data/platform/iphone/Classes/SimpleMainView.h +2 -0
  49. data/platform/iphone/Classes/SimpleMainView.m +120 -35
  50. data/platform/iphone/Classes/SplashViewController.h +8 -1
  51. data/platform/iphone/Classes/SplashViewController.m +233 -11
  52. data/platform/iphone/Classes/SplitView/LeftViewController.h +30 -0
  53. data/platform/iphone/Classes/SplitView/LeftViewController.m +189 -0
  54. data/platform/iphone/Classes/SplitView/RightViewController.h +54 -0
  55. data/platform/iphone/Classes/SplitView/RightViewController.m +268 -0
  56. data/platform/iphone/Classes/SplitView/SplitViewDelegate.h +22 -0
  57. data/platform/iphone/Classes/SplitView/SplitViewDelegate.m +92 -0
  58. data/platform/iphone/Classes/SplitView/SplittedMainView.h +65 -0
  59. data/platform/iphone/Classes/SplitView/SplittedMainView.m +304 -0
  60. data/platform/iphone/Classes/TabbedMainView.m +23 -6
  61. data/platform/iphone/Classes/WebView.m +1 -1
  62. data/platform/iphone/Info.plist +11 -2
  63. data/platform/iphone/rbuild/iphone.rake +80 -3
  64. data/platform/iphone/rhorunner.xcodeproj/project.pbxproj +50 -3
  65. data/platform/shared/common/RhoConf.cpp +5 -5
  66. data/platform/shared/db/DBAdapter.cpp +81 -3
  67. data/platform/shared/db/DBAdapter.h +1 -0
  68. data/platform/shared/json/JSONIterator.cpp +5 -0
  69. data/platform/shared/json/JSONIterator.h +1 -0
  70. data/platform/shared/net/CURLNetRequest.cpp +2 -2
  71. data/platform/shared/net/URI.cpp +53 -0
  72. data/platform/shared/net/URI.h +5 -1
  73. data/platform/shared/ruby/ext/system/system.i +9 -1
  74. data/platform/shared/ruby/ext/system/system_wrap.c +2632 -2574
  75. data/platform/shared/ruby/win32/win32.c +2 -0
  76. data/platform/shared/ruby/wince/direct.c +4 -0
  77. data/platform/shared/sync/SyncEngine.cpp +20 -1
  78. data/platform/shared/sync/SyncEngine.h +6 -1
  79. data/platform/shared/sync/SyncNotify.cpp +6 -1
  80. data/platform/shared/sync/SyncSource.cpp +130 -74
  81. data/platform/shared/sync/SyncSource.h +3 -1
  82. data/platform/wm/rhodes.sln +30 -22
  83. data/platform/wm/rhodes/Alert.cpp +4 -3
  84. data/platform/wm/rhodes/MainWindow.cpp +73 -20
  85. data/platform/wm/rhodes/RingtoneManager.cpp +4 -4
  86. data/platform/wm/rhodes/RingtoneManager.h +2 -1
  87. data/platform/wm/rhodes/Vibrate.cpp +1 -2
  88. data/platform/wm/rhodes/rho/rubyext/SystemImpl.cpp +37 -0
  89. data/platform/wm/rhodes/rhodes.vcproj +219 -5
  90. data/platform/wm/rhodes/stdafx.h +1 -0
  91. data/platform/wm/rubylib/rubylib.vcproj +10 -8
  92. data/platform/wm/sqlite3/sqlite3.vcproj +6 -4
  93. data/platform/wm/syncengine/syncengine.vcproj +7 -5
  94. data/platform/wm/tcmalloc/tcmalloc.vcproj +11 -8
  95. data/rakefile.rb +1 -1
  96. data/res/generators/templates/application/public/jqtouch/jqtouch.js +9 -1
  97. data/rhodes.gemspec +1 -1
  98. data/spec/phone_spec/app/spec/bulksync_spec.rb +71 -1
  99. metadata +17 -5
@@ -0,0 +1,22 @@
1
+ //
2
+ // TabbedMainView.h
3
+ // rhorunner
4
+ //
5
+ // Created by Dmitry Moskalchuk on 26.03.10.
6
+ // Copyright 2010 Rhomobile. All rights reserved.
7
+ //
8
+
9
+ #import <UIKit/UIKit.h>
10
+ #import "RhoMainView.h"
11
+ #import "RhoViewController.h"
12
+ #import "RightViewController.h"
13
+
14
+ @interface SplitViewDelegate : NSObject <UISplitViewControllerDelegate> {
15
+
16
+ RightViewController* rightController;
17
+
18
+ }
19
+
20
+ @property(nonatomic, retain) RightViewController* rightController;
21
+
22
+ @end
@@ -0,0 +1,92 @@
1
+ //
2
+ // TabbedMainView.m
3
+ // rhorunner
4
+ //
5
+ // Created by Dmitry Moskalchuk on 26.03.10.
6
+ // Copyright 2010 __MyCompanyName__. All rights reserved.
7
+ //
8
+
9
+ #import "SplitViewDelegate.h"
10
+ #import "SimpleMainView.h"
11
+ #import "Rhodes.h"
12
+ #import "AppManager.h"
13
+
14
+ #include "common/RhodesApp.h"
15
+ #include "logging/RhoLog.h"
16
+
17
+ #undef DEFAULT_LOGCATEGORY
18
+ #define DEFAULT_LOGCATEGORY "SplitViewDelegate"
19
+
20
+ @implementation SplitViewDelegate
21
+
22
+
23
+ @synthesize rightController;
24
+
25
+
26
+ // the master view controller will be displayed in a popover
27
+ - (void)splitViewController:(UISplitViewController*)svc
28
+ popoverController:(UIPopoverController*)pc
29
+ willPresentViewController:(UIViewController *)aViewController {
30
+
31
+ //empty for the moment
32
+
33
+ }
34
+
35
+
36
+ //the master view controller will be hidden
37
+ - (void)splitViewController:(UISplitViewController*)svc
38
+ willHideViewController:(UIViewController *)aViewController
39
+ withBarButtonItem:(UIBarButtonItem*)barButtonItem
40
+ forPopoverController:(UIPopoverController*)pc {
41
+
42
+ //[barButtonItem setTitle:@"my title"];
43
+ //self.navigationItem.leftBarButtonItem = barButtonItem;
44
+
45
+
46
+
47
+
48
+
49
+
50
+ /*
51
+ //if we keep master view in portrait mode we do not need
52
+ //a extra toolbar
53
+ if(svc.keepMasterInPortraitMode == YES)
54
+ return;
55
+
56
+ if(toolBar == nil) {
57
+
58
+ //set title of master button
59
+ barButtonItem.title = @"Show Master";
60
+
61
+ //create a toolbar
62
+ toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 1024, 44)];
63
+ [toolBar setItems:[NSArray arrayWithObject:barButtonItem] animated:YES];
64
+
65
+ }
66
+ UINavigationController
67
+
68
+ //add the toolbar to the details view
69
+ [detailController.view addSubview:toolBar];
70
+ */
71
+ }
72
+
73
+
74
+ //the master view will be shown again
75
+ - (void)splitViewController:(UISplitViewController*)svc
76
+ willShowViewController:(UIViewController *)aViewController
77
+ invalidatingBarButtonItem:(UIBarButtonItem *)button {
78
+
79
+ //self.navigationItem.leftBarButtonItem = nil;
80
+
81
+
82
+
83
+ //remove the toolbar
84
+ //if(self.toolBar != nil)
85
+ // [toolBar removeFromSuperview];
86
+ }
87
+
88
+
89
+
90
+
91
+
92
+ @end
@@ -0,0 +1,65 @@
1
+ //
2
+ // TabbedMainView.h
3
+ // rhorunner
4
+ //
5
+ // Created by Dmitry Moskalchuk on 26.03.10.
6
+ // Copyright 2010 Rhomobile. All rights reserved.
7
+ //
8
+
9
+ #import <UIKit/UIKit.h>
10
+ #import "RhoMainView.h"
11
+ #import "RhoViewController.h"
12
+
13
+
14
+ @interface RhoUISplitView : UIView {
15
+ int leftWidth;
16
+ }
17
+ @property (nonatomic,assign) int leftWidth;
18
+
19
+ - (void)layoutSubviews;
20
+
21
+ @end
22
+
23
+
24
+ @interface SplittedMainView : RhoViewController<RhoMainView> {
25
+ NSArray* viewControllers;
26
+
27
+ }
28
+
29
+ @property (nonatomic,retain) NSArray *viewControllers;
30
+
31
+ - (id)initWithMainView:(id<RhoMainView>)v parent:(UIWindow*)p tabs:(NSArray*)items;
32
+
33
+
34
+
35
+
36
+
37
+
38
+ //- (UIView*)view;
39
+
40
+ - (UIWebView*)detachWebView;
41
+
42
+ - (void)loadHTMLString:(NSString*)data;
43
+
44
+ - (void)back:(int)index;
45
+ - (void)forward:(int)index;
46
+ - (void)navigate:(NSString*)url tab:(int)index;
47
+ - (void)navigateRedirect:(NSString*)url tab:(int)index;
48
+ - (void)reload:(int)index;
49
+
50
+ - (void)executeJs:(NSString*)js tab:(int)index;
51
+
52
+ - (NSString*)currentLocation:(int)index;
53
+
54
+ - (void)switchTab:(int)index;
55
+ - (int)activeTab;
56
+
57
+ - (void)addNavBar:(NSString*)title left:(NSArray*)left right:(NSArray*)right;
58
+ - (void)removeNavBar;
59
+
60
+ - (UIWebView*)getWebView:(int)tab_index;
61
+
62
+
63
+
64
+
65
+ @end
@@ -0,0 +1,304 @@
1
+ //
2
+ // TabbedMainView.m
3
+ // rhorunner
4
+ //
5
+ // Created by Dmitry Moskalchuk on 26.03.10.
6
+ // Copyright 2010 __MyCompanyName__. All rights reserved.
7
+ //
8
+
9
+ #import "SplittedMainView.h"
10
+ #import "SimpleMainView.h"
11
+ #import "Rhodes.h"
12
+ #import "AppManager.h"
13
+
14
+ #include "common/RhodesApp.h"
15
+ #include "logging/RhoLog.h"
16
+
17
+
18
+ #import "LeftViewController.h"
19
+ #import "RightViewController.h"
20
+ #import "SplitViewDelegate.h"
21
+
22
+ #undef DEFAULT_LOGCATEGORY
23
+ #define DEFAULT_LOGCATEGORY "SplittedMainView"
24
+
25
+
26
+ #import "TabbedMainView.h"
27
+ #import "SignatureViewController.h"
28
+
29
+
30
+
31
+ @implementation RhoUISplitView
32
+
33
+ @synthesize leftWidth;
34
+
35
+ - (void)layoutSubviews {
36
+ //[super layoutSubviews];
37
+
38
+ CGRect my_frame = self.bounds;
39
+ UIView* leftView = [[self subviews] objectAtIndex:0];
40
+ UIView* rightView = [[self subviews] objectAtIndex:1];
41
+
42
+ CGSize leftSize;
43
+ leftSize.width = self.leftWidth;
44
+ leftSize.height = my_frame.size.height;
45
+
46
+ leftSize = [leftView sizeThatFits:leftSize];
47
+ CGRect left_frame = leftView.bounds;
48
+ CGRect right_frame = rightView.bounds;
49
+
50
+ left_frame.origin.x = 0;//my_frame.origin.x;
51
+ left_frame.origin.y = 0;//my_frame.origin.y;
52
+ left_frame.size.width = leftSize.width;
53
+ left_frame.size.height = my_frame.size.height;
54
+
55
+ right_frame.origin.x = left_frame.origin.x + left_frame.size.width + 2;
56
+ right_frame.origin.y = 0;//my_frame.origin.y;
57
+ right_frame.size.width = my_frame.size.width - left_frame.size.width - 2;
58
+ right_frame.size.height = my_frame.size.height;
59
+
60
+ leftView.frame = left_frame;
61
+ rightView.frame = right_frame;
62
+
63
+ }
64
+
65
+
66
+ @end
67
+
68
+
69
+
70
+ @implementation SplittedMainView
71
+
72
+
73
+ @synthesize viewControllers;
74
+
75
+ - (id)initWithMainView:(id<RhoMainView>)v parent:(UIWindow*)p tabs:(NSArray *)items {
76
+
77
+ self = [self initWithNibName:nil bundle:nil];
78
+
79
+ RightViewController *rightView = NULL;
80
+ LeftViewController *leftView = NULL;
81
+ //create the master view
82
+ leftView = [[LeftViewController alloc]
83
+ initWithItems:items
84
+ parent:self];
85
+
86
+ //create the details view
87
+ rightView = [[RightViewController alloc]
88
+ initWithItems:items
89
+ parent:self];
90
+
91
+ //RhoUISplitView* rv = [[RhoUISplitView alloc] init];
92
+
93
+
94
+
95
+ CGRect parent_frame = [[v view] frame];
96
+ self.view.frame = parent_frame;
97
+
98
+
99
+ self.viewControllers = [NSArray arrayWithObjects:leftView, rightView, nil];
100
+ [self.view addSubview:leftView.view];
101
+ [self.view addSubview:rightView.view];
102
+
103
+
104
+
105
+
106
+ //create and set the split view delegate
107
+ //SplitViewDelegate* splitViewDelegate = [[SplitViewDelegate alloc] init];
108
+ //splitViewDelegate.rightController = rightView;
109
+ //self.delegate = splitViewDelegate;
110
+
111
+ // undocumented feature
112
+ //TODO: make legal way for not hide Master view in portrait mode
113
+ //if ( [self respondsToSelector:@selector(setHidesMasterViewInPortrait:)] ) {
114
+ // [self setHidesMasterViewInPortrait:NO];
115
+ //}
116
+
117
+
118
+ RhoUISplitView* rv = (RhoUISplitView*)self.view;
119
+ rv.leftWidth = [leftView getPreferredWidth];
120
+
121
+
122
+ [leftView release];
123
+ [rightView release];
124
+
125
+
126
+ //[self.view layoutSubviews];
127
+ //[self.view setNeedsLayout];
128
+
129
+ return self;
130
+ }
131
+
132
+
133
+
134
+
135
+ - (void)loadView {
136
+ RhoUISplitView* rv = [[RhoUISplitView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
137
+ rv.hidden = NO;
138
+ rv.userInteractionEnabled = YES;
139
+ rv.autoresizesSubviews = YES;
140
+ rv.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
141
+
142
+ self.view = rv;
143
+ [rv release];
144
+ }
145
+
146
+ /*
147
+ - (void)viewDidLoad
148
+ {
149
+ [super viewDidLoad];
150
+ }
151
+ */
152
+
153
+
154
+
155
+
156
+
157
+
158
+ /*
159
+ - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
160
+ // MUST return YES to allow all orientations
161
+ return YES;
162
+ }
163
+ */
164
+
165
+ - (RightViewController*)getRightViewController {
166
+ RightViewController* rvc = (RightViewController*)[self.viewControllers objectAtIndex:1];
167
+ return rvc;
168
+ }
169
+
170
+
171
+ - (LeftViewController*)getLeftViewController {
172
+ LeftViewController* lvc = (LeftViewController*)[self.viewControllers objectAtIndex:0];
173
+ return lvc;
174
+ }
175
+
176
+
177
+ - (UIWebView*)detachWebView {
178
+ RightViewController* rvc = [self getRightViewController];
179
+ return [rvc detachWebView];
180
+ }
181
+
182
+ - (void)loadHTMLString:(NSString*)data {
183
+ RightViewController* rvc = [self getRightViewController];
184
+ [rvc loadHTMLString:data];
185
+ }
186
+
187
+ - (void)back:(int)index {
188
+ RightViewController* rvc = [self getRightViewController];
189
+ [rvc back:index];
190
+ }
191
+
192
+ - (void)forward:(int)index {
193
+ RightViewController* rvc = [self getRightViewController];
194
+ [rvc forward:index];
195
+ }
196
+
197
+ - (void)navigate:(NSString*)url tab:(int)index {
198
+ RightViewController* rvc = [self getRightViewController];
199
+ [rvc navigate:url tab:index];
200
+ }
201
+
202
+ - (void)navigateRedirect:(NSString*)url tab:(int)index {
203
+ RightViewController* rvc = [self getRightViewController];
204
+ [rvc navigateRedirect:url tab:index];
205
+ }
206
+
207
+ - (void)reload:(int)index {
208
+ RightViewController* rvc = [self getRightViewController];
209
+ [rvc reload:index];
210
+ }
211
+
212
+ - (void)executeJs:(NSString*)js tab:(int)index {
213
+ RightViewController* rvc = [self getRightViewController];
214
+ [rvc executeJs:js tab:index];
215
+ }
216
+
217
+ - (NSString*)currentLocation:(int)index {
218
+ RightViewController* rvc = [self getRightViewController];
219
+ return [rvc currentLocation:index];
220
+ }
221
+
222
+
223
+
224
+
225
+ - (void)switchTab:(int)index {
226
+ // right
227
+ RightViewController* rvc = [self getRightViewController];
228
+ [rvc switchTab:index];
229
+ // left
230
+ LeftViewController* lvc = [self getLeftViewController];
231
+ [lvc setSelection:index];
232
+ }
233
+
234
+ - (int)activeTab {
235
+ RightViewController* rvc = [self getRightViewController];
236
+ return [rvc activeTab];
237
+ }
238
+
239
+ - (void)addNavBar:(NSString*)title left:(NSArray*)left right:(NSArray*)right {
240
+ RightViewController* rvc = [self getRightViewController];
241
+ [rvc addNavBar:title left:left right:right];
242
+ }
243
+
244
+ - (void)removeNavBar {
245
+ RightViewController* rvc = [self getRightViewController];
246
+ [rvc removeNavBar];
247
+ }
248
+
249
+ - (UIWebView*)getWebView:(int)tab_index {
250
+ RightViewController* rvc = [self getRightViewController];
251
+ return [rvc getWebView:tab_index];
252
+ }
253
+
254
+ /*
255
+
256
+ - (UIWebView*)detachWebView {
257
+ return NULL;
258
+ }
259
+
260
+ - (void)loadHTMLString:(NSString*)data {
261
+ }
262
+
263
+ - (void)back:(int)index {
264
+ }
265
+
266
+ - (void)forward:(int)index {
267
+ }
268
+
269
+ - (void)navigate:(NSString*)url tab:(int)index {
270
+ }
271
+
272
+ - (void)navigateRedirect:(NSString*)url tab:(int)index {
273
+ }
274
+
275
+ - (void)reload:(int)index {
276
+ }
277
+
278
+ - (void)executeJs:(NSString*)js tab:(int)index {
279
+ }
280
+
281
+ - (NSString*)currentLocation:(int)index {
282
+ return NULL;
283
+ }
284
+
285
+ - (void)switchTab:(int)index {
286
+ }
287
+
288
+ - (int)activeTab {
289
+ return 0;
290
+ }
291
+
292
+ - (void)addNavBar:(NSString*)title left:(NSArray*)left right:(NSArray*)right {
293
+ }
294
+
295
+ - (void)removeNavBar {
296
+ }
297
+
298
+ - (UIWebView*)getWebView:(int)tab_index {
299
+ return NULL;
300
+ }
301
+
302
+ */
303
+
304
+ @end