rhodes 1.5.4 → 1.5.5
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.
- data/Manifest.txt +11 -1
- data/Rakefile +1 -1
- data/lib/extensions/digest/ext/Rakefile +11 -6
- data/lib/extensions/digest/ext/build.bat +2 -0
- data/lib/extensions/uri/uri.rb +29 -0
- data/lib/extensions/uri/uri/common.rb +727 -0
- data/lib/extensions/uri/uri/ftp.rb +198 -0
- data/lib/extensions/uri/uri/generic.rb +1128 -0
- data/lib/extensions/uri/uri/http.rb +100 -0
- data/lib/extensions/uri/uri/https.rb +20 -0
- data/lib/extensions/uri/uri/ldap.rb +190 -0
- data/lib/extensions/uri/uri/ldaps.rb +12 -0
- data/lib/extensions/uri/uri/mailto.rb +266 -0
- data/lib/framework/rhodes.rb +2 -2
- data/lib/framework/rhom/rhom_db_adapter.rb +12 -26
- data/lib/framework/rhom/rhom_object_factory.rb +8 -1
- data/lib/framework/version.rb +2 -2
- data/lib/rhodes.rb +2 -2
- data/platform/android/Rhodes/AndroidManifest.xml +2 -2
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/Rhodes.java +87 -42
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/SplashScreen.java +58 -7
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/MainView.java +2 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java +35 -19
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/TabbedMainView.java +4 -0
- data/platform/android/build/android.rake +30 -25
- data/platform/bb/build/rhodes_build.files +1 -1
- data/platform/bb/rhodes/rhodes.jdp +1 -1
- data/platform/bb/rhodes/src/com/rho/RhoRubyHelper.java +1 -1
- data/platform/bb/rhodes/src/com/rho/rubyext/Alert.java +300 -0
- data/platform/bb/rhodes/src/com/rho/rubyext/GeoLocation.java +42 -5
- data/platform/bb/rhodes/src/rhomobile/PushListeningThread.java +3 -4
- data/platform/bb/rhodes/src/rhomobile/RhodesApplication.java +33 -107
- data/platform/iphone/Classes/RhoRunnerAppDelegate.m +2 -0
- data/platform/iphone/Info.plist +1 -1
- data/platform/iphone/rbuild/iphone.rake +1 -1
- data/platform/iphone/rhoextlib/rhoextlib.xcodeproj/project.pbxproj +4 -0
- data/platform/shared/common/RhoMutexLock.h +8 -1
- data/platform/shared/common/RhodesApp.cpp +1 -1
- data/platform/shared/db/DBAdapter.cpp +77 -8
- data/platform/shared/db/DBAdapter.h +24 -9
- data/platform/shared/db/DBResult.cpp +19 -0
- data/platform/shared/db/DBResult.h +7 -5
- data/platform/shared/net/HttpServer.cpp +2 -0
- data/platform/shared/ruby/ext/rho/rhoruby.c +55 -0
- data/platform/shared/ruby/ext/rho/rhoruby.h +9 -0
- data/platform/shared/ruby/ext/rho/rhosupport.c +13 -4
- data/platform/shared/ruby/ext/sqlite3_api/sqlite3_api_wrap.c +21 -0
- data/platform/shared/ruby/thread_pthread.c +4 -4
- data/platform/shared/ruby/thread_win32.c +4 -4
- data/platform/shared/rubyJVM/src/com/rho/RhodesApp.java +19 -1
- data/platform/shared/rubyJVM/src/com/rho/db/DBAdapter.java +57 -24
- data/platform/shared/rubyJVM/src/com/rho/net/NetRequest.java +6 -1
- data/platform/shared/rubyJVM/src/com/rho/sync/SyncSource.java +2 -2
- data/platform/shared/rubyJVM/src/com/rho/sync/SyncThread.java +5 -5
- data/platform/shared/sync/SyncSource.cpp +1 -1
- data/platform/shared/sync/SyncThread.cpp +6 -9
- data/platform/wm/rhodes/Rhodes.cpp +4 -0
- data/rakefile.rb +1 -1
- metadata +13 -3
- data/platform/bb/rhodes/src/rhomobile/Alert.java +0 -65
@@ -136,6 +136,7 @@ public class NetRequest
|
|
136
136
|
try{
|
137
137
|
closeConnection();
|
138
138
|
m_connection = RhoClassFactory.getNetworkAccess().connect(strUrl, m_bIgnoreSuffixOnSim);
|
139
|
+
LOG.INFO("connection done");
|
139
140
|
|
140
141
|
if ( oSession != null )
|
141
142
|
{
|
@@ -146,10 +147,11 @@ public class NetRequest
|
|
146
147
|
}
|
147
148
|
|
148
149
|
m_connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
|
149
|
-
m_connection.setRequestProperty("Connection", "keep-alive");
|
150
|
+
//m_connection.setRequestProperty("Connection", "keep-alive");
|
150
151
|
//m_connection.setRequestProperty("Accept", "application/x-www-form-urlencoded,application/json,text/html");
|
151
152
|
|
152
153
|
writeHeaders(headers);
|
154
|
+
LOG.INFO("writeHeaders done");
|
153
155
|
if ( strBody != null && strBody.length() > 0 )
|
154
156
|
{
|
155
157
|
m_connection.setRequestMethod(strMethod);
|
@@ -158,7 +160,10 @@ public class NetRequest
|
|
158
160
|
}else
|
159
161
|
m_connection.setRequestMethod(strMethod);
|
160
162
|
|
163
|
+
LOG.INFO("write body done");
|
164
|
+
|
161
165
|
is = m_connection.openInputStream();
|
166
|
+
LOG.INFO("openInputStream done");
|
162
167
|
code = m_connection.getResponseCode();
|
163
168
|
|
164
169
|
LOG.INFO("getResponseCode : " + code);
|
@@ -677,9 +677,9 @@ class SyncSource
|
|
677
677
|
m_nAttribCounter = 0;
|
678
678
|
for( ; !oJsonObjList.isEnd() && getSync().isContinueSync(); oJsonObjList.next() )
|
679
679
|
{
|
680
|
-
if ( getDB().
|
680
|
+
if ( getDB().isUIWaitDB() )//|| m_nAttribCounter >= 200 )
|
681
681
|
{
|
682
|
-
if ( getDB().
|
682
|
+
if ( getDB().isUIWaitDB() )
|
683
683
|
LOG.INFO( "Commit transaction because of UI request." );
|
684
684
|
|
685
685
|
getDB().endTransaction();
|
@@ -517,7 +517,7 @@ public class SyncThread extends RhoThread
|
|
517
517
|
protected RubyValue run(RubyValue receiver, RubyBlock block) {
|
518
518
|
try{
|
519
519
|
DBAdapter db = getDBAdapter();
|
520
|
-
db.
|
520
|
+
db.setUIWaitDB(true);
|
521
521
|
db.Lock();
|
522
522
|
}catch(Exception e)
|
523
523
|
{
|
@@ -575,7 +575,7 @@ public class SyncThread extends RhoThread
|
|
575
575
|
DBAdapter db = getDBAdapter();
|
576
576
|
|
577
577
|
try{
|
578
|
-
db.
|
578
|
+
db.setUIWaitDB(true);
|
579
579
|
return getSyncEngine().isLoggedIn() ?
|
580
580
|
ObjectFactory.createInteger(1) : ObjectFactory.createInteger(0);
|
581
581
|
}catch(Exception e)
|
@@ -584,7 +584,7 @@ public class SyncThread extends RhoThread
|
|
584
584
|
throw (e instanceof RubyException ? (RubyException)e : new RubyException(e.getMessage()));
|
585
585
|
}finally
|
586
586
|
{
|
587
|
-
db.
|
587
|
+
db.setUIWaitDB(false);
|
588
588
|
}
|
589
589
|
|
590
590
|
}
|
@@ -598,7 +598,7 @@ public class SyncThread extends RhoThread
|
|
598
598
|
try{
|
599
599
|
stopSync();
|
600
600
|
|
601
|
-
db.
|
601
|
+
db.setUIWaitDB(true);
|
602
602
|
getSyncEngine().logout();
|
603
603
|
}catch(Exception e)
|
604
604
|
{
|
@@ -606,7 +606,7 @@ public class SyncThread extends RhoThread
|
|
606
606
|
throw (e instanceof RubyException ? (RubyException)e : new RubyException(e.getMessage()));
|
607
607
|
}finally
|
608
608
|
{
|
609
|
-
db.
|
609
|
+
db.setUIWaitDB(false);
|
610
610
|
}
|
611
611
|
|
612
612
|
return RubyConstant.QNIL;
|
@@ -569,7 +569,7 @@ void CSyncSource::processServerData_Ver1(CJSONArrayIterator& oJsonArr)
|
|
569
569
|
CJSONArrayIterator oJsonObjList(oJsonSource, "ol");
|
570
570
|
for( ; !oJsonObjList.isEnd() && getSync().isContinueSync(); oJsonObjList.next() )
|
571
571
|
{
|
572
|
-
if ( getDB().
|
572
|
+
if ( getDB().isUIWaitDB() )
|
573
573
|
{
|
574
574
|
LOG(INFO) + "Commit transaction because of UI request.";
|
575
575
|
getDB().endTransaction();
|
@@ -295,21 +295,14 @@ void rho_sync_login(const char *name, const char *password, const char* callback
|
|
295
295
|
|
296
296
|
int rho_sync_logged_in()
|
297
297
|
{
|
298
|
-
rho::db::CDBAdapter& db = CSyncThread::getDBAdapter();
|
299
|
-
db.setUnlockDB(true);
|
300
298
|
int nRes = CSyncThread::getSyncEngine().isLoggedIn() ? 1 : 0;
|
301
|
-
db.setUnlockDB(false);
|
302
299
|
return nRes;
|
303
300
|
}
|
304
301
|
|
305
302
|
void rho_sync_logout()
|
306
303
|
{
|
307
304
|
rho_sync_stop();
|
308
|
-
|
309
|
-
rho::db::CDBAdapter& db = CSyncThread::getDBAdapter();
|
310
|
-
db.setUnlockDB(true);
|
311
305
|
CSyncThread::getSyncEngine().logout();
|
312
|
-
db.setUnlockDB(false);
|
313
306
|
}
|
314
307
|
|
315
308
|
void rho_sync_set_notification(int source_id, const char *url, char* params)
|
@@ -349,13 +342,18 @@ int rho_sync_closeDB()
|
|
349
342
|
int rho_db_startUITransaction()
|
350
343
|
{
|
351
344
|
rho::db::CDBAdapter& db = rho::sync::CSyncThread::getDBAdapter();
|
352
|
-
db.setUnlockDB(true);
|
353
345
|
db.startTransaction();
|
354
346
|
|
355
347
|
//TODO: get error code from DBException
|
356
348
|
return 0;
|
357
349
|
}
|
358
350
|
|
351
|
+
int rho_db_is_ui_waitfordb()
|
352
|
+
{
|
353
|
+
rho::db::CDBAdapter& db = rho::sync::CSyncThread::getDBAdapter();
|
354
|
+
return db.isUIWaitDB() ? 1 :0;
|
355
|
+
}
|
356
|
+
|
359
357
|
int rho_db_commitUITransaction()
|
360
358
|
{
|
361
359
|
CSyncThread::getDBAdapter().endTransaction();
|
@@ -389,7 +387,6 @@ unsigned long rho_sync_get_attrs(int nSrcID)
|
|
389
387
|
void rho_sync_lock()
|
390
388
|
{
|
391
389
|
rho::db::CDBAdapter& db = rho::sync::CSyncThread::getDBAdapter();
|
392
|
-
db.setUnlockDB(true);
|
393
390
|
db.Lock();
|
394
391
|
}
|
395
392
|
|
@@ -34,6 +34,7 @@ HREGNOTIFY g_hNotify = NULL;
|
|
34
34
|
#endif
|
35
35
|
|
36
36
|
//BOOL EnumRhodesWindowsProc(HWND hwnd,LPARAM lParam);
|
37
|
+
extern "C" void rho_clientregister_create(const char* szDevicePin);
|
37
38
|
|
38
39
|
class CRhodesModule : public CAtlExeModuleT< CRhodesModule >
|
39
40
|
{
|
@@ -108,6 +109,7 @@ public :
|
|
108
109
|
rho_logconf_Init(m_strRootPath.c_str());
|
109
110
|
LOG(INFO) + "Rhodes started";
|
110
111
|
|
112
|
+
::SetThreadPriority(GetCurrentThread(),10);
|
111
113
|
// Create the main application window
|
112
114
|
m_appWindow.Create(NULL, CWindow::rcDefault, TEXT("Rhodes"), WS_VISIBLE);
|
113
115
|
if (NULL == m_appWindow.m_hWnd)
|
@@ -136,6 +138,8 @@ public :
|
|
136
138
|
0,
|
137
139
|
NULL,
|
138
140
|
&g_hNotify);
|
141
|
+
#else
|
142
|
+
// rho_clientregister_create("win32_client");
|
139
143
|
#endif
|
140
144
|
return S_OK;
|
141
145
|
}
|
data/rakefile.rb
CHANGED
@@ -127,7 +127,7 @@ def add_linker_library(libraryname)
|
|
127
127
|
tmpdir = $startdir + "/platform/iphone/build/rhorunner.build/#{$configuration}-" +
|
128
128
|
( simulator ? "iphonesimulator" : "iphoneos") + "/rhorunner.build"
|
129
129
|
end
|
130
|
-
$ldflags << "#{tmpdir}
|
130
|
+
$ldflags << "#{tmpdir}/lib#{libraryname}.a\n" unless $ldflags.nil?
|
131
131
|
end
|
132
132
|
|
133
133
|
def set_linker_flags
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 1
|
7
7
|
- 5
|
8
|
-
-
|
9
|
-
version: 1.5.
|
8
|
+
- 5
|
9
|
+
version: 1.5.5
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Rhomobile
|
@@ -139,6 +139,7 @@ files:
|
|
139
139
|
- lib/extensions/digest/digest/hmac.rb
|
140
140
|
- lib/extensions/digest/digest.rb
|
141
141
|
- lib/extensions/digest/ext/build
|
142
|
+
- lib/extensions/digest/ext/build.bat
|
142
143
|
- lib/extensions/digest/ext/defs.h
|
143
144
|
- lib/extensions/digest/ext/depend
|
144
145
|
- lib/extensions/digest/ext/digest.c
|
@@ -263,6 +264,15 @@ files:
|
|
263
264
|
- lib/extensions/rholang/rhoerror_ru.rb
|
264
265
|
- lib/extensions/rholang/rhomsg_ru.rb
|
265
266
|
- lib/extensions/set/set.rb
|
267
|
+
- lib/extensions/uri/uri/common.rb
|
268
|
+
- lib/extensions/uri/uri/ftp.rb
|
269
|
+
- lib/extensions/uri/uri/generic.rb
|
270
|
+
- lib/extensions/uri/uri/http.rb
|
271
|
+
- lib/extensions/uri/uri/https.rb
|
272
|
+
- lib/extensions/uri/uri/ldap.rb
|
273
|
+
- lib/extensions/uri/uri/ldaps.rb
|
274
|
+
- lib/extensions/uri/uri/mailto.rb
|
275
|
+
- lib/extensions/uri/uri.rb
|
266
276
|
- lib/framework/bsearch.rb
|
267
277
|
- lib/framework/builtinME.rb
|
268
278
|
- lib/framework/date/format.rb
|
@@ -616,11 +626,11 @@ files:
|
|
616
626
|
- platform/bb/rhodes/src/com/rho/net/TCPSocket.java
|
617
627
|
- platform/bb/rhodes/src/com/rho/RhoMainScreen.java
|
618
628
|
- platform/bb/rhodes/src/com/rho/RhoRubyHelper.java
|
629
|
+
- platform/bb/rhodes/src/com/rho/rubyext/Alert.java
|
619
630
|
- platform/bb/rhodes/src/com/rho/rubyext/GeoLocation.java
|
620
631
|
- platform/bb/rhodes/src/com/rho/rubyext/System.java
|
621
632
|
- platform/bb/rhodes/src/com/rho/rubyext/XMLParser.java
|
622
633
|
- platform/bb/rhodes/src/com/rho/Version.java
|
623
|
-
- platform/bb/rhodes/src/rhomobile/Alert.java
|
624
634
|
- platform/bb/rhodes/src/rhomobile/camera/Camera.java
|
625
635
|
- platform/bb/rhodes/src/rhomobile/camera/CameraFilesListener.java
|
626
636
|
- platform/bb/rhodes/src/rhomobile/camera/CameraScreen.java
|
@@ -1,65 +0,0 @@
|
|
1
|
-
package rhomobile;
|
2
|
-
|
3
|
-
import com.xruby.runtime.builtin.RubyArray;
|
4
|
-
import com.xruby.runtime.lang.RubyBasic;
|
5
|
-
import com.xruby.runtime.lang.RubyBlock;
|
6
|
-
import com.xruby.runtime.lang.RubyClass;
|
7
|
-
import com.xruby.runtime.lang.RubyConstant;
|
8
|
-
import com.xruby.runtime.lang.RubyException;
|
9
|
-
import com.xruby.runtime.lang.RubyOneArgMethod;
|
10
|
-
import com.xruby.runtime.lang.RubyRuntime;
|
11
|
-
import com.xruby.runtime.lang.RubyValue;
|
12
|
-
import com.xruby.runtime.lang.RubyVarArgMethod;
|
13
|
-
|
14
|
-
public class Alert extends RubyBasic {
|
15
|
-
|
16
|
-
public Alert(RubyClass arg0) {
|
17
|
-
super(arg0);
|
18
|
-
}
|
19
|
-
|
20
|
-
public static RubyValue show_popup(RubyValue arg0) {
|
21
|
-
String message = arg0.toString();
|
22
|
-
RhodesApplication.getInstance().showPopup(message);
|
23
|
-
return RubyConstant.QNIL;
|
24
|
-
}
|
25
|
-
|
26
|
-
public static RubyValue vibrate(RubyArray args) {
|
27
|
-
String duration = "2500";
|
28
|
-
if ((args != null) && (args.size() > 0))
|
29
|
-
duration = args.get(0).toString();
|
30
|
-
RhodesApplication.getInstance().vibrate(duration);
|
31
|
-
return RubyConstant.QNIL;
|
32
|
-
}
|
33
|
-
|
34
|
-
public static RubyValue play_file(RubyArray args) {
|
35
|
-
if ((args != null) && (args.size() > 0)) {
|
36
|
-
String file_name = args.get(0).toString();
|
37
|
-
String media_type = null;
|
38
|
-
if ((args.size() > 1) && (args.get(1) != RubyConstant.QNIL))
|
39
|
-
media_type = args.get(1).toString();
|
40
|
-
RhodesApplication.getInstance().play_file(file_name,media_type);
|
41
|
-
} else {
|
42
|
-
throw new RubyException(RubyRuntime.ArgumentErrorClass, "in WebView.play: wrong number of arguments");
|
43
|
-
}
|
44
|
-
return RubyConstant.QNIL;
|
45
|
-
}
|
46
|
-
|
47
|
-
public static void initMethods(RubyClass klass) {
|
48
|
-
klass.getSingletonClass().defineMethod("show_popup", new RubyOneArgMethod() {
|
49
|
-
protected RubyValue run(RubyValue receiver, RubyValue arg0, RubyBlock block) {
|
50
|
-
return Alert.show_popup(arg0);
|
51
|
-
}
|
52
|
-
});
|
53
|
-
klass.getSingletonClass().defineMethod("vibrate", new RubyVarArgMethod() {
|
54
|
-
protected RubyValue run(RubyValue receiver, RubyArray args, RubyBlock block) {
|
55
|
-
return Alert.vibrate(args);
|
56
|
-
}
|
57
|
-
});
|
58
|
-
klass.getSingletonClass().defineMethod("play_file", new RubyVarArgMethod() {
|
59
|
-
protected RubyValue run(RubyValue receiver, RubyArray args, RubyBlock block) {
|
60
|
-
return Alert.play_file(args);
|
61
|
-
}
|
62
|
-
});
|
63
|
-
}
|
64
|
-
|
65
|
-
}
|