rhodes 2.1.0 → 2.2.0.beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +7 -0
- data/README.textile +4 -5
- data/Rakefile +8 -1
- data/lib/build/jake.rb +22 -16
- data/lib/extensions/rhoxml/rexml/cdata.rb +67 -0
- data/lib/extensions/rhoxml/rexml/document.rb +2 -116
- data/lib/extensions/rhoxml/rexml/element.rb +1 -1
- data/lib/extensions/rhoxml/rexml/text.rb +117 -0
- data/lib/framework/rho/render.rb +19 -11
- data/lib/framework/rho/rho.rb +17 -10
- data/lib/framework/rho/rhobluetooth.rb +103 -0
- data/lib/framework/rho/rhocontroller.rb +2 -0
- data/lib/framework/rho/rhoevent.rb +43 -0
- data/lib/framework/rho/rhoevent_bb.rb +80 -0
- data/lib/framework/rho/rhoevent_c.rb +47 -0
- data/lib/framework/rhodes.rb +2 -2
- data/lib/framework/rhom/rhom_db_adapter.rb +2 -1
- data/lib/framework/rhom/rhom_model.rb +9 -3
- data/lib/framework/rhom/rhom_object_factory.rb +46 -22
- data/lib/framework/rhom/rhom_source.rb +12 -10
- data/lib/framework/version.rb +2 -2
- data/lib/rhodes.rb +2 -2
- data/platform/android/Rhodes/AndroidManifest.xml +23 -2
- data/platform/android/Rhodes/gen/com/rhomobile/rhodes/R.java +54 -38
- data/platform/android/Rhodes/jni/include/rhodes.h +3 -0
- data/platform/android/Rhodes/jni/include/rhodes/JNIRhodes.h +2 -2
- data/platform/android/Rhodes/jni/include/rhodes/details/rhojava.inc +4 -0
- data/platform/android/Rhodes/jni/include/rhodes/jni/com_rhomobile_rhodes_RhodesService.h +16 -0
- data/platform/android/Rhodes/jni/include/rhodes/jni/com_rhomobile_rhodes_bluetooth_RhoBluetoothManager.h +21 -0
- data/platform/android/Rhodes/jni/src/bluetooth.cpp +169 -0
- data/platform/android/Rhodes/jni/src/callbacks.cpp +10 -0
- data/platform/android/Rhodes/jni/src/event.cpp +429 -0
- data/platform/android/Rhodes/jni/src/fileapi.cpp +51 -1
- data/platform/android/Rhodes/jni/src/rhodes.cpp +16 -0
- data/platform/android/Rhodes/jni/src/sslimpl.cpp +3 -0
- data/platform/android/Rhodes/res/layout/bt_device_list.xml +42 -0
- data/platform/android/Rhodes/res/layout/bt_device_name.xml +7 -0
- data/platform/android/Rhodes/res/values/strings.xml +8 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/AndroidR.java +14 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/Capabilities.java +2 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/Push.java +7 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/PushReceiver.java +58 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/PushService.java +53 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/Rhodes.java +8 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java +144 -3
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/bluetooth/IRhoBluetoothManager.java +66 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/bluetooth/RhoBluetoothDeviceListActivity.java +201 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/bluetooth/RhoBluetoothManager.java +139 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/bluetooth/RhoBluetoothManagerNew.java +401 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/bluetooth/RhoBluetoothManagerOld.java +136 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/bluetooth/RhoBluetoothSession.java +457 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/bluetooth/UUIDHelper.java +71 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/ImageCapture.java +12 -7
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/event/Event.java +19 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/event/EventStore.java +261 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java +4 -2
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/TabbedMainView.java +2 -2
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/uri/MailUriHandler.java +10 -2
- data/platform/android/build/RhodesSRC_build.files +33 -22
- data/platform/android/build/android.rake +198 -27
- data/platform/android/build/librhodes_build.files +3 -1
- data/platform/android/build/libruby_build.files +4 -1
- data/platform/bb/Hsqldb/src/com/rho/db/HsqlDBResult.java +2 -2
- data/platform/bb/Hsqldb/src/com/rho/db/HsqlDBRowResult.java +1 -1
- data/platform/bb/Hsqldb/src/org/hsqldb/Expression.java +7 -4
- data/platform/bb/Hsqldb/src/org/hsqldb/Like.java +3 -3
- data/platform/bb/Hsqldb/src/org/hsqldb/Table.java +3 -1
- data/platform/bb/Hsqldb/src/org/hsqldb/Tokenizer.java +1 -1
- data/platform/bb/RubyVM/RubyVM.jdp +1 -0
- data/platform/bb/RubyVM/src/com/rho/RhoConf.java +108 -1
- data/platform/bb/RubyVM/src/com/rho/RhoLogConf.java +7 -1
- data/platform/bb/RubyVM/src/com/rho/RhoRuby.java +7 -4
- data/platform/bb/RubyVM/src/com/rho/ThreadQueue.java +7 -1
- data/platform/bb/RubyVM/src/com/rho/net/AsyncHttp.java +1 -1
- data/platform/bb/RubyVM/src/com/rho/net/NetRequest.java +21 -23
- data/platform/bb/RubyVM/src/com/rho/net/RhoConnection.java +19 -10
- data/platform/bb/RubyVM/src/com/rho/sync/SyncEngine.java +8 -0
- data/platform/bb/RubyVM/src/com/rho/sync/SyncNotify.java +3 -0
- data/platform/bb/RubyVM/src/com/rho/sync/SyncThread.java +14 -17
- data/platform/bb/RubyVM/src/com/xruby/runtime/builtin/RubyFile.java +7 -5
- data/platform/bb/RubyVM/src/com/xruby/runtime/lang/RhoSupport.java +2 -0
- data/platform/bb/RubyVM/src/com/xruby/runtime/lang/RubyRuntime.java +10 -1
- data/platform/bb/RubyVM/src/j2me/io/File.java +7 -6
- data/platform/bb/build/RubyVM_build.files +412 -412
- data/platform/bb/build/bb.rake +42 -18
- data/platform/bb/build/hsqldb_build.files +151 -151
- data/platform/bb/build/rhodes_build.files +44 -40
- data/platform/bb/rhodes/platform/5.0/com/rho/BrowserAdapter5.java +2 -0
- data/platform/bb/rhodes/platform/5.0/com/rho/RhodesApplicationPlatform.java +237 -0
- data/platform/bb/rhodes/platform/common/com/rho/RhodesApplicationPlatform.java +14 -0
- data/platform/bb/rhodes/rhodes.jdp +6 -1
- data/platform/bb/rhodes/src/com/rho/RhoRubyHelper.java +7 -1
- data/platform/bb/rhodes/src/com/rho/RhodesApplicationPlatform.java +14 -0
- data/platform/bb/rhodes/src/com/rho/net/NetworkAccess.java +62 -76
- data/platform/bb/rhodes/src/com/rho/rubyext/RhoCalendar.java +660 -0
- data/platform/bb/rhodes/src/{rhomobile → com/rho/rubyext}/RhoPhonebook.java +95 -38
- data/platform/bb/rhodes/src/com/rho/rubyext/System.java +22 -1
- data/platform/bb/rhodes/src/rhomobile/PushListeningThread.java +26 -6
- data/platform/bb/rhodes/src/rhomobile/RhodesApplication.java +21 -7
- data/platform/bb/rhodes/src/rhomobile/bluetooth/BluetoothManager.java +528 -0
- data/platform/bb/rhodes/src/rhomobile/bluetooth/BluetoothPort.java +281 -0
- data/platform/bb/rhodes/src/rhomobile/bluetooth/BluetoothScreen.java +119 -0
- data/platform/bb/rhodes/src/rhomobile/camera/CameraFilesListener.java +2 -2
- data/platform/iphone/Classes/AppManager/AppManager.m +70 -7
- data/platform/iphone/Classes/Bluetooth/Bluetooth.h +72 -0
- data/platform/iphone/Classes/Bluetooth/Bluetooth.m +414 -0
- data/platform/iphone/Classes/Event/Event.h +12 -0
- data/platform/iphone/Classes/Event/Event.m +300 -0
- data/platform/iphone/Classes/LogOptionsController.h +2 -1
- data/platform/iphone/Classes/LogOptionsController.m +1 -1
- data/platform/iphone/Classes/LogViewController.h +2 -1
- data/platform/iphone/Classes/MapView/MapViewController.h +2 -1
- data/platform/iphone/Classes/RhoViewController.h +16 -0
- data/platform/iphone/Classes/RhoViewController.m +20 -0
- data/platform/iphone/Classes/Rhodes.h +12 -0
- data/platform/iphone/Classes/Rhodes.m +34 -6
- data/platform/iphone/Classes/Signature/SignatureViewController.h +2 -2
- data/platform/iphone/Classes/Signature/SignatureViewController.m +0 -10
- data/platform/iphone/Classes/SimpleMainView.h +2 -2
- data/platform/iphone/Classes/SimpleMainView.m +5 -14
- data/platform/iphone/Classes/SplashViewController.h +2 -2
- data/platform/iphone/Classes/TabbedMainView.h +2 -2
- data/platform/iphone/Classes/TabbedMainView.m +5 -10
- data/platform/iphone/Info.plist +5 -5
- data/platform/iphone/rhorubylib/rhorubylib.xcodeproj/project.pbxproj +39 -0
- data/platform/iphone/rhorunner.xcodeproj/project.pbxproj +47 -4
- data/platform/osx/Rhodes Debugger/NoodleLineNumberView.m +3 -2
- data/platform/shared/common/AutoPointer.h +3 -0
- data/platform/shared/common/RhoConf.cpp +2 -1
- data/platform/shared/common/RhoThread.h +1 -1
- data/platform/shared/common/RhoTime.h +3 -3
- data/platform/shared/common/RhodesApp.cpp +75 -23
- data/platform/shared/common/RhodesApp.h +4 -0
- data/platform/shared/common/RhodesAppBase.h +2 -0
- data/platform/shared/common/ThreadQueue.cpp +23 -18
- data/platform/shared/common/ThreadQueue.h +2 -0
- data/platform/shared/db/res/db/syncdb.schema +39 -39
- data/platform/shared/logging/RhoLogConf.cpp +58 -3
- data/platform/shared/logging/RhoLogConf.h +3 -1
- data/platform/shared/net/CURLNetRequest.cpp +17 -6
- data/platform/shared/net/HttpServer.cpp +125 -25
- data/platform/shared/net/HttpServer.h +4 -3
- data/platform/shared/ruby/ext/bluetooth/bluetooth.i +56 -0
- data/platform/shared/ruby/ext/bluetooth/bluetooth_wrap.c +2563 -0
- data/platform/shared/ruby/ext/calendar/calendar.i +28 -0
- data/platform/shared/ruby/ext/calendar/calendar_wrap.c +2251 -0
- data/platform/shared/ruby/ext/calendar/event.h +41 -0
- data/platform/shared/ruby/ext/calendar/event.i +28 -0
- data/platform/shared/ruby/ext/calendar/event_wrap.c +2151 -0
- data/platform/shared/ruby/ext/rho/rhoruby.c +103 -3
- data/platform/shared/ruby/ext/rho/rhoruby.h +16 -2
- data/platform/shared/ruby/ext/rhoconf/rhoconf.i +12 -0
- data/platform/shared/ruby/ext/rhoconf/rhoconf_wrap.c +101 -0
- data/platform/shared/ruby/ext/system/system.i +14 -0
- data/platform/shared/ruby/ext/system/system_wrap.c +2568 -2208
- data/platform/shared/ruby/main.c +8 -0
- data/platform/shared/rubyext/GeoLocation.cpp +6 -3
- data/platform/shared/rubyext/System.cpp +14 -0
- data/platform/shared/sync/SyncEngine.cpp +9 -1
- data/platform/shared/sync/SyncNotify.cpp +16 -8
- data/platform/shared/sync/SyncNotify.h +1 -0
- data/platform/shared/sync/SyncThread.cpp +7 -12
- data/platform/shared/sync/SyncThread.h +5 -3
- data/platform/wm/build/wm.rake +7 -1
- data/platform/wm/rhodes/Alert.cpp +1 -1
- data/platform/wm/rhodes/MainWindow.cpp +28 -0
- data/platform/wm/rhodes/MainWindow.h +9 -0
- data/platform/wm/rhodes/OutlookApp.cpp +72 -0
- data/platform/wm/rhodes/OutlookApp.h +22 -0
- data/platform/wm/rhodes/Rhodes.cpp +8 -0
- data/platform/wm/rhodes/Rhodes.rc +31 -0
- data/platform/wm/rhodes/bluetooth/Bluetooth.cpp +1274 -0
- data/platform/wm/rhodes/bluetooth/Bluetooth.h +321 -0
- data/platform/wm/rhodes/phonebook/NativeAddressBook.cpp +37 -70
- data/platform/wm/rhodes/phonebook/NativeAddressBook.h +0 -4
- data/platform/wm/rhodes/resource.h +8 -1
- data/platform/wm/rhodes/rho/net/NetRequest.cpp +4 -0
- data/platform/wm/rhodes/rho/net/NetRequestImpl.cpp +6 -4
- data/platform/wm/rhodes/rho/rubyext/calendar.cpp +487 -0
- data/platform/wm/rhodes/rhodes.vcproj +28 -11
- data/platform/wm/rhodes/stdafx.h +1 -0
- data/platform/wm/rubylib/rubylib.vcproj +32 -0
- data/rakefile.rb +8 -1
- data/res/generators/templates/application/Rakefile +1 -1
- data/res/generators/templates/application/app/layout.erb +4 -1
- data/res/generators/templates/application/build.yml +0 -1
- data/res/generators/templates/application/public/css/iphone.css +2 -2
- data/res/generators/templates/application/public/jqtouch/jqtouch-iphone.css +9 -0
- data/res/generators/templates/application/public/jqtouch/jqtouch.css +1 -5
- data/res/generators/templates/application/public/jqtouch/jqtouch.js +3 -2
- data/rhodes.gemspec +1 -1
- data/spec/perfomance_spec/app/Benchmark/benchmark.rb +4 -0
- data/spec/perfomance_spec/app/Benchmark/bulk_results.erb +13 -0
- data/spec/perfomance_spec/app/Benchmark/controller.rb +178 -0
- data/spec/perfomance_spec/app/Benchmark/create_results.erb +13 -0
- data/spec/perfomance_spec/app/Benchmark/customers.erb +35 -0
- data/spec/perfomance_spec/app/Benchmark/index.erb +9 -0
- data/spec/perfomance_spec/app/Benchmark/products.erb +25 -0
- data/spec/perfomance_spec/app/Benchmark/search_results.erb +13 -0
- data/spec/perfomance_spec/app/Customer/customer.rb +6 -0
- data/spec/perfomance_spec/app/Perftest/index.erb +5 -0
- data/spec/perfomance_spec/app/Product/index.erb +25 -0
- data/spec/perfomance_spec/app/Product/product.rb +6 -0
- data/spec/perfomance_spec/app/helpers/application_helper.rb +126 -0
- data/spec/perfomance_spec/app/helpers/browser_helper.rb +18 -0
- data/spec/perfomance_spec/rhoconfig.txt +1 -1
- data/spec/phone_spec/app/Account_s/account_s.rb +5 -2
- data/spec/phone_spec/app/Case/case.rb +1 -0
- data/spec/phone_spec/app/Case_s/case_s.rb +2 -0
- data/spec/phone_spec/app/Data/perftest.json +35 -0
- data/spec/phone_spec/app/Data/testCDATA.xml +11 -0
- data/spec/phone_spec/app/Product/product.rb +1 -1
- data/spec/phone_spec/app/{Spec → spec}/asynchttp_spec.rb +66 -17
- data/spec/phone_spec/app/{Spec → spec}/barcode_spec.rb +0 -0
- data/spec/phone_spec/app/{Spec → spec}/blobsync_spec.rb +0 -0
- data/spec/phone_spec/app/{Spec → spec}/bsearch_spec.rb +0 -0
- data/spec/phone_spec/app/{Spec → spec}/bulksync_spec.rb +0 -0
- data/spec/phone_spec/app/{Spec → spec}/contacts_spec.rb +0 -0
- data/spec/phone_spec/app/{Spec → spec}/crypt_spec.rb +0 -0
- data/spec/phone_spec/app/{Spec → spec}/date_spec.rb +0 -0
- data/spec/phone_spec/app/spec/events_spec.rb +199 -0
- data/spec/phone_spec/app/{Spec → spec}/fixtures/client_info.txt +0 -0
- data/spec/phone_spec/app/{Spec → spec}/fixtures/object_values.txt +0 -0
- data/spec/phone_spec/app/{Spec → spec}/json_spec.rb +11 -2
- data/spec/phone_spec/app/{Spec → spec}/mapview_spec.rb +0 -0
- data/spec/phone_spec/app/{Spec → spec}/nativebar_spec.rb +0 -0
- data/spec/phone_spec/app/{Spec → spec}/navbar_spec.rb +0 -0
- data/spec/phone_spec/app/{Spec → spec}/pagination/fixtures/object_values.txt +0 -0
- data/spec/phone_spec/app/{Spec → spec}/rho_controller_spec.rb +5 -0
- data/spec/phone_spec/app/{Spec → spec}/rho_spec.rb +48 -0
- data/spec/phone_spec/app/{Spec → spec}/rhofile_spec.rb +9 -6
- data/spec/phone_spec/app/{Spec → spec}/rhom_object_spec.rb +188 -9
- data/spec/phone_spec/app/{Spec → spec}/syncengine_spec.rb +0 -0
- data/spec/phone_spec/app/{Spec → spec}/xml_spec.rb +15 -0
- data/spec/phone_spec/app/{Spec → spec}/xruby_spec.rb +0 -0
- data/spec/phone_spec/app/spec_runner.rb +4 -1
- data/spec/phone_spec/build.yml +2 -1
- metadata +95 -31
- data/platform/bb/rhodes/platform/5.0/com/rho/RhoMainScreen.java +0 -36
- data/platform/bb/rhodes/platform/6.0/com/rho/BrowserAdapter5.java +0 -155
- data/platform/bb/rhodes/platform/6.0/com/rho/RhoMainScreen.java +0 -36
@@ -1,40 +1,44 @@
|
|
1
|
-
platform
|
2
|
-
platform
|
3
|
-
platform
|
4
|
-
platform
|
5
|
-
platform
|
6
|
-
platform
|
7
|
-
platform
|
8
|
-
platform
|
9
|
-
platform
|
10
|
-
platform
|
11
|
-
platform
|
12
|
-
platform
|
13
|
-
platform
|
14
|
-
platform
|
15
|
-
platform
|
16
|
-
platform
|
17
|
-
platform
|
18
|
-
platform
|
19
|
-
platform
|
20
|
-
platform
|
21
|
-
platform
|
22
|
-
platform
|
23
|
-
platform
|
24
|
-
platform
|
25
|
-
platform
|
26
|
-
platform
|
27
|
-
platform
|
28
|
-
platform
|
29
|
-
platform
|
30
|
-
platform
|
31
|
-
platform
|
32
|
-
platform
|
33
|
-
platform
|
34
|
-
platform
|
35
|
-
platform
|
36
|
-
platform
|
37
|
-
platform
|
38
|
-
platform
|
39
|
-
platform
|
40
|
-
platform
|
1
|
+
platform/bb/rhodes/src/com/rho/file/Jsr75File.java
|
2
|
+
platform/bb/rhodes/src/com/rho/file/Jsr75RAFileImpl.java
|
3
|
+
platform/bb/rhodes/src/com/rho/rubyext/GeoLocation.java
|
4
|
+
platform/bb/rhodes/src/com/rho/rubyext/System.java
|
5
|
+
platform/bb/rhodes/src/com/rho/rubyext/XMLParser.java
|
6
|
+
platform/bb/rhodes/src/com/rho/rubyext/Alert.java
|
7
|
+
platform/bb/rhodes/src/com/rho/rubyext/RhoPhonebook.java
|
8
|
+
platform/bb/rhodes/src/com/rho/rubyext/RhoCalendar.java
|
9
|
+
platform/bb/rhodes/src/com/rho/net/BaseSocket.java
|
10
|
+
platform/bb/rhodes/src/com/rho/net/bb/BBHttpConnection.java
|
11
|
+
platform/bb/rhodes/src/com/rho/net/bb/NativeBBHttpConnection.java
|
12
|
+
platform/bb/rhodes/src/com/rho/net/NetworkAccess.java
|
13
|
+
platform/bb/rhodes/src/com/rho/net/SSLSocket.java
|
14
|
+
platform/bb/rhodes/src/com/rho/net/TCPSocket.java
|
15
|
+
platform/bb/rhodes/src/com/rho/RhoRubyHelper.java
|
16
|
+
platform/bb/rhodes/src/com/rho/Version.java
|
17
|
+
platform/bb/rhodes/src/com/rho/BrowserAdapter.java
|
18
|
+
platform/bb/rhodes/src/com/rho/IBrowserAdapter.java
|
19
|
+
platform/bb/rhodes/src/rhomobile/bluetooth/BluetoothManager.java
|
20
|
+
platform/bb/rhodes/src/rhomobile/bluetooth/BluetoothScreen.java
|
21
|
+
platform/bb/rhodes/src/rhomobile/bluetooth/BluetoothPort.java
|
22
|
+
platform/bb/rhodes/src/rhomobile/camera/Camera.java
|
23
|
+
platform/bb/rhodes/src/rhomobile/camera/CameraScreen.java
|
24
|
+
platform/bb/rhodes/src/rhomobile/camera/CameraFilesListener.java
|
25
|
+
platform/bb/rhodes/src/rhomobile/camera/ImageBrowserScreen.java
|
26
|
+
platform/bb/rhodes/src/rhomobile/LogOptionsScreen.java
|
27
|
+
platform/bb/rhodes/src/rhomobile/LogScreen.java
|
28
|
+
platform/bb/rhodes/src/rhomobile/PushListeningThread.java
|
29
|
+
platform/bb/rhodes/src/rhomobile/RhodesApplication.java
|
30
|
+
platform/bb/rhodes/src/rhomobile/SecondaryResourceFetchThread.java
|
31
|
+
platform/bb/rhodes/src/rhomobile/Utilities.java
|
32
|
+
platform/bb/rhodes/src/com/rho/rubyext/WebView.java
|
33
|
+
platform/bb/rhodes/src/rhomobile/datetime/DateTimePicker.java
|
34
|
+
platform/bb/rhodes/src/rhomobile/datetime/DateTimeScreen.java
|
35
|
+
platform/bb/rhodes/src/rhomobile/RingtoneManager.java
|
36
|
+
platform/bb/rhodes/src/rhomobile/NativeBar.java
|
37
|
+
platform/bb/rhodes/src/rhomobile/mapview/Annotation.java
|
38
|
+
platform/bb/rhodes/src/rhomobile/mapview/GoogleMapField.java
|
39
|
+
platform/bb/rhodes/src/rhomobile/mapview/GoogleMapProvider.java
|
40
|
+
platform/bb/rhodes/src/rhomobile/mapview/MapProvider.java
|
41
|
+
platform/bb/rhodes/src/rhomobile/mapview/MapView.java
|
42
|
+
platform/bb/rhodes/src/rhomobile/mapview/MapViewParent.java
|
43
|
+
platform/bb/rhodes/src/rhomobile/mapview/MapViewScreen.java
|
44
|
+
platform/bb/rhodes/src/rhomobile/mapview/RhoMapField.java
|
@@ -7,6 +7,7 @@ import net.rim.device.api.system.Application;
|
|
7
7
|
import javax.microedition.io.HttpConnection;
|
8
8
|
import javax.microedition.io.InputConnection;
|
9
9
|
|
10
|
+
import com.rho.RhoLogger;
|
10
11
|
import com.rho.RhodesApp;
|
11
12
|
import com.rho.net.URI;
|
12
13
|
|
@@ -95,6 +96,7 @@ public class BrowserAdapter5 implements IBrowserAdapter
|
|
95
96
|
|
96
97
|
private void createBrowserField()
|
97
98
|
{
|
99
|
+
LOG.INFO("Use BrowserField5");
|
98
100
|
m_oBrowserField = new BrowserField(m_oConfig);
|
99
101
|
m_oBrowserField.getRenderingOptions().setProperty(RenderingOptions.CORE_OPTIONS_GUID, RenderingOptions.ALLOW_POPUPS, true);
|
100
102
|
m_oController = new RhoProtocolController(m_oBrowserField);
|
@@ -0,0 +1,237 @@
|
|
1
|
+
package com.rho;
|
2
|
+
|
3
|
+
import java.io.InputStream;
|
4
|
+
|
5
|
+
import javax.microedition.io.StreamConnection;
|
6
|
+
|
7
|
+
import com.rho.RhoClassFactory;
|
8
|
+
import com.rho.RhoEmptyLogger;
|
9
|
+
import com.rho.RhoLogger;
|
10
|
+
import com.rho.RhoThread;
|
11
|
+
import com.rho.RhodesApp;
|
12
|
+
import com.rho.ThreadQueue;
|
13
|
+
import com.rho.ThreadQueue.IQueueCommand;
|
14
|
+
import com.rho.net.URI;
|
15
|
+
|
16
|
+
import net.rim.blackberry.api.push.*;
|
17
|
+
import net.rim.device.api.io.http.PushInputStream;
|
18
|
+
import net.rim.device.api.system.ApplicationDescriptor;
|
19
|
+
import net.rim.device.api.ui.UiApplication;
|
20
|
+
import net.rim.device.api.util.DataBuffer;
|
21
|
+
/**
|
22
|
+
*
|
23
|
+
*/
|
24
|
+
public class RhodesApplicationPlatform extends UiApplication implements PushApplication
|
25
|
+
{
|
26
|
+
private static final RhoLogger LOG = RhoLogger.RHO_STRIP_LOG ? new RhoEmptyLogger() :
|
27
|
+
new RhoLogger("RhodesPUSH");
|
28
|
+
|
29
|
+
private static final int CHUNK_SIZE = 256;
|
30
|
+
PushMessageThread m_PushMessageThread;
|
31
|
+
|
32
|
+
private static class PushStatusCommand implements IQueueCommand
|
33
|
+
{
|
34
|
+
String m_strStatus;
|
35
|
+
|
36
|
+
public PushStatusCommand(String strStatus)
|
37
|
+
{
|
38
|
+
m_strStatus = strStatus;
|
39
|
+
}
|
40
|
+
public boolean equals(IQueueCommand cmd){return false;}
|
41
|
+
|
42
|
+
public void execute()
|
43
|
+
{
|
44
|
+
try
|
45
|
+
{
|
46
|
+
RhodesApp.getInstance().callPushCallback(m_strStatus);
|
47
|
+
}catch(Exception exc)
|
48
|
+
{
|
49
|
+
LOG.ERROR("callPushCallback failed.", exc);
|
50
|
+
}
|
51
|
+
}
|
52
|
+
}
|
53
|
+
|
54
|
+
private static class PushMessageCommand implements IQueueCommand
|
55
|
+
{
|
56
|
+
PushInputStream m_inputStream;
|
57
|
+
StreamConnection m_conn;
|
58
|
+
|
59
|
+
public PushMessageCommand(PushInputStream inputStream, StreamConnection conn)
|
60
|
+
{
|
61
|
+
m_inputStream = inputStream;
|
62
|
+
m_conn = conn;
|
63
|
+
}
|
64
|
+
public boolean equals(IQueueCommand cmd){return false;}
|
65
|
+
|
66
|
+
public void execute()
|
67
|
+
{
|
68
|
+
InputStream input = null;
|
69
|
+
|
70
|
+
try
|
71
|
+
{
|
72
|
+
input = m_conn.openInputStream();
|
73
|
+
DataBuffer db = new DataBuffer();
|
74
|
+
byte[] data = new byte[CHUNK_SIZE];
|
75
|
+
int chunk = 0;
|
76
|
+
|
77
|
+
while ( -1 != (chunk = input.read(data)) )
|
78
|
+
{
|
79
|
+
db.write(data, 0, chunk);
|
80
|
+
}
|
81
|
+
|
82
|
+
data = db.getArray();
|
83
|
+
|
84
|
+
try
|
85
|
+
{
|
86
|
+
rhomobile.PushListeningThread.processPushMessage(data, db.getLength());
|
87
|
+
}catch(Exception exc)
|
88
|
+
{
|
89
|
+
LOG.ERROR("processPushMessage failed.Data: " + new String(data), exc);
|
90
|
+
}catch(Throwable th)
|
91
|
+
{
|
92
|
+
LOG.ERROR("processPushMessage crashed.Data: " + new String(data), th);
|
93
|
+
}
|
94
|
+
}catch(Exception exc)
|
95
|
+
{
|
96
|
+
LOG.ERROR("Read PUSH message failed.", exc);
|
97
|
+
}catch(Throwable th)
|
98
|
+
{
|
99
|
+
LOG.ERROR("Read PUSH message crashed.", th);
|
100
|
+
}finally
|
101
|
+
{
|
102
|
+
try
|
103
|
+
{
|
104
|
+
m_inputStream.accept();
|
105
|
+
|
106
|
+
if ( input != null)
|
107
|
+
input.close();
|
108
|
+
|
109
|
+
m_inputStream.close();
|
110
|
+
m_conn.close();
|
111
|
+
}catch(Exception exc)
|
112
|
+
{
|
113
|
+
|
114
|
+
}
|
115
|
+
}
|
116
|
+
}
|
117
|
+
|
118
|
+
}
|
119
|
+
|
120
|
+
private static class PushMessageThread extends ThreadQueue
|
121
|
+
{
|
122
|
+
public PushMessageThread()
|
123
|
+
{
|
124
|
+
super(new RhoClassFactory());
|
125
|
+
|
126
|
+
ThreadQueue.setLogCategory(LOG.getLogCategory());
|
127
|
+
|
128
|
+
setPollInterval(QUEUE_POLL_INTERVAL_INFINITE);
|
129
|
+
|
130
|
+
start(epLow);
|
131
|
+
}
|
132
|
+
}
|
133
|
+
|
134
|
+
public void onMessage(PushInputStream inputStream, StreamConnection conn)
|
135
|
+
{
|
136
|
+
LOG.INFO("onMessage");
|
137
|
+
m_PushMessageThread.addQueueCommand( new PushMessageCommand(inputStream, conn) );
|
138
|
+
}
|
139
|
+
|
140
|
+
public void onStatusChange(PushApplicationStatus status)
|
141
|
+
{
|
142
|
+
String strError = status.getError();
|
143
|
+
|
144
|
+
String strStatus = "", strRegReason = "";
|
145
|
+
|
146
|
+
switch( status.getStatus() )
|
147
|
+
{
|
148
|
+
case PushApplicationStatus.STATUS_ACTIVE:
|
149
|
+
strStatus = "Active";
|
150
|
+
break;
|
151
|
+
case PushApplicationStatus.STATUS_FAILED:
|
152
|
+
strStatus = "Failed";
|
153
|
+
break;
|
154
|
+
case PushApplicationStatus.STATUS_NOT_REGISTERED:
|
155
|
+
strStatus = "Not Registered";
|
156
|
+
break;
|
157
|
+
case PushApplicationStatus.STATUS_PENDING:
|
158
|
+
strStatus = "Pending";
|
159
|
+
break;
|
160
|
+
}
|
161
|
+
|
162
|
+
switch( status.getReason() ) {
|
163
|
+
case PushApplicationStatus.REASON_SIM_CHANGE:
|
164
|
+
strRegReason = "Status change was initiated by SIM card change";
|
165
|
+
break;
|
166
|
+
case PushApplicationStatus.REASON_API_CALL:
|
167
|
+
strRegReason = "Status change was initiated by API call";
|
168
|
+
break;
|
169
|
+
case PushApplicationStatus.REASON_REJECTED_BY_SERVER:
|
170
|
+
strRegReason = "Registration was rejected by server ";
|
171
|
+
break;
|
172
|
+
case PushApplicationStatus.REASON_NETWORK_ERROR:
|
173
|
+
strRegReason = "Communication failed due to network error ";
|
174
|
+
break;
|
175
|
+
case PushApplicationStatus.REASON_INVALID_PARAMETERS:
|
176
|
+
strRegReason = "Invalid parameters were provided that caused registration failure ";
|
177
|
+
break;
|
178
|
+
}
|
179
|
+
|
180
|
+
String strMsg = "status="+URI.urlEncode(strStatus)+"&reason="+URI.urlEncode(strRegReason);
|
181
|
+
|
182
|
+
if ( strError != null && strError.length() > 0 )
|
183
|
+
strMsg += "&error="+URI.urlEncode(strError);
|
184
|
+
|
185
|
+
LOG.INFO("onStatusChange : " + strMsg);
|
186
|
+
|
187
|
+
m_PushMessageThread.addQueueCommand( new PushStatusCommand(strMsg) );
|
188
|
+
}
|
189
|
+
|
190
|
+
public void onPlatformActivate()
|
191
|
+
{
|
192
|
+
if ( com.rho.Capabilities.ENABLE_PUSH )
|
193
|
+
{
|
194
|
+
if ( !rhomobile.PushListeningThread.isPushServiceEnabled() )
|
195
|
+
return;
|
196
|
+
|
197
|
+
getUiApplication().invokeLater( new Runnable()
|
198
|
+
{
|
199
|
+
public void run()
|
200
|
+
{
|
201
|
+
|
202
|
+
m_PushMessageThread = new PushMessageThread();
|
203
|
+
String strAppName = RhoConf.getInstance().getString("push_service_appname");
|
204
|
+
String strUrl = RhoConf.getInstance().getString("push_service_url");
|
205
|
+
int nPort = RhoConf.getInstance().getInt("push_service_port");
|
206
|
+
byte btServiceType = RhoConf.getInstance().getString("push_service_type").equalsIgnoreCase("BPAS") ?
|
207
|
+
PushApplicationDescriptor.SERVER_TYPE_BPAS : PushApplicationDescriptor.SERVER_TYPE_NONE;
|
208
|
+
|
209
|
+
PushApplicationDescriptor pad = new PushApplicationDescriptor(
|
210
|
+
strAppName, nPort, strUrl, btServiceType,
|
211
|
+
ApplicationDescriptor.currentApplicationDescriptor());
|
212
|
+
|
213
|
+
PushApplicationStatus status = PushApplicationRegistry.getStatus(pad);
|
214
|
+
|
215
|
+
LOG.INFO("registerPushService status : " + status.toString());
|
216
|
+
|
217
|
+
if (status.getStatus() != PushApplicationStatus.STATUS_ACTIVE && status.getStatus() != PushApplicationStatus.STATUS_PENDING)
|
218
|
+
{
|
219
|
+
|
220
|
+
LOG.INFO("registerPushService registering push");
|
221
|
+
|
222
|
+
PushApplicationRegistry.registerApplication(pad);
|
223
|
+
}
|
224
|
+
}
|
225
|
+
});
|
226
|
+
}
|
227
|
+
}
|
228
|
+
|
229
|
+
public void onPlatformClose()
|
230
|
+
{
|
231
|
+
if ( m_PushMessageThread != null )
|
232
|
+
m_PushMessageThread.stop(3);
|
233
|
+
|
234
|
+
m_PushMessageThread = null;
|
235
|
+
}
|
236
|
+
|
237
|
+
}
|
@@ -45,7 +45,13 @@ src\com\rho\rubyext\GeoLocation.java
|
|
45
45
|
src\com\rho\rubyext\System.java
|
46
46
|
src\com\rho\rubyext\WebView.java
|
47
47
|
src\com\rho\rubyext\XMLParser.java
|
48
|
+
src\com\rho\rubyext\RhoPhonebook.java
|
49
|
+
src\com\rho\rubyext\RhoCalendar.java
|
48
50
|
src\com\rho\Version.java
|
51
|
+
src\com\rho\RhodesApplicationPlatform.java
|
52
|
+
src\rhomobile\bluetooth\BluetoothManager.java
|
53
|
+
src\rhomobile\bluetooth\BluetoothScreen.java
|
54
|
+
src\rhomobile\bluetooth\BluetoothPort.java
|
49
55
|
src\rhomobile\camera\Camera.java
|
50
56
|
src\rhomobile\camera\CameraFilesListener.java
|
51
57
|
src\rhomobile\camera\CameraScreen.java
|
@@ -65,7 +71,6 @@ src\rhomobile\mapview\RhoMapField.java
|
|
65
71
|
src\rhomobile\NativeBar.java
|
66
72
|
src\rhomobile\PushListeningThread.java
|
67
73
|
src\rhomobile\RhodesApplication.java
|
68
|
-
src\rhomobile\RhoPhonebook.java
|
69
74
|
src\rhomobile\RingtoneManager.java
|
70
75
|
src\rhomobile\SecondaryResourceFetchThread.java
|
71
76
|
src\rhomobile\Utilities.java
|
@@ -8,10 +8,13 @@ import net.rim.device.api.system.DeviceInfo;
|
|
8
8
|
import net.rim.device.api.io.http.HttpHeaders;
|
9
9
|
import com.rho.rubyext.Alert;
|
10
10
|
import rhomobile.NativeBar;
|
11
|
-
import
|
11
|
+
import com.rho.rubyext.RhoPhonebook;
|
12
|
+
import com.rho.rubyext.RhoCalendar;
|
12
13
|
import rhomobile.RhodesApplication;
|
13
14
|
import rhomobile.RingtoneManager;
|
14
15
|
import com.rho.rubyext.WebView;
|
16
|
+
|
17
|
+
import rhomobile.bluetooth.BluetoothManager;
|
15
18
|
import rhomobile.camera.Camera;
|
16
19
|
import rhomobile.datetime.DateTimePicker;
|
17
20
|
import rhomobile.mapview.MapView;
|
@@ -38,7 +41,10 @@ public class RhoRubyHelper implements IRhoRubyHelper {
|
|
38
41
|
|
39
42
|
public void initRubyExtensions(){
|
40
43
|
RhoPhonebook.initMethods(RubyRuntime.PhonebookClass);
|
44
|
+
RhoCalendar.initConstants(RubyRuntime.EventModule);
|
45
|
+
RhoCalendar.initMethods(RubyRuntime.CalendarClass);
|
41
46
|
Camera.initMethods(RubyRuntime.CameraClass);
|
47
|
+
BluetoothManager.initMethods(RubyRuntime.RhoBluetoothClass);
|
42
48
|
WebView.initMethods(RubyRuntime.WebViewClass);
|
43
49
|
RhoConf.initMethods(RubyRuntime.RhoConfClass);
|
44
50
|
Alert.initMethods(RubyRuntime.AlertClass);
|
@@ -24,7 +24,7 @@ public class NetworkAccess implements INetworkAccess {
|
|
24
24
|
new RhoLogger("NetworkAccess");
|
25
25
|
|
26
26
|
private static String URLsuffix = "";
|
27
|
-
private static String WIFIsuffix;
|
27
|
+
private static String WIFIsuffix = "";
|
28
28
|
private static boolean networkConfigured = false;
|
29
29
|
private static boolean bes = true;
|
30
30
|
private static long m_nMaxPacketSize = 0;
|
@@ -33,22 +33,20 @@ public class NetworkAccess implements INetworkAccess {
|
|
33
33
|
{
|
34
34
|
networkConfigured = false;
|
35
35
|
bes = false;
|
36
|
-
URLsuffix =
|
37
|
-
|
36
|
+
URLsuffix = "";
|
37
|
+
WIFIsuffix = "";
|
38
|
+
|
38
39
|
String strDeviceside = ";deviceside=true";
|
39
40
|
if ( com.rho.RhoConf.getInstance().getInt("no_deviceside_postfix") == 1 )
|
40
41
|
strDeviceside = "";
|
41
42
|
|
42
|
-
if (DeviceInfo.isSimulator())
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
} else {
|
47
|
-
URLsuffix = ";deviceside=true";
|
48
|
-
WIFIsuffix = ";interface=wifi;deviceside=true";
|
49
|
-
}
|
43
|
+
if (DeviceInfo.isSimulator())
|
44
|
+
{
|
45
|
+
URLsuffix = strDeviceside;
|
46
|
+
WIFIsuffix = ";interface=wifi";
|
50
47
|
networkConfigured = true;
|
51
|
-
}else
|
48
|
+
}else
|
49
|
+
{
|
52
50
|
ServiceBook sb = ServiceBook.getSB();
|
53
51
|
if (sb != null) {
|
54
52
|
ServiceRecord[] wifis = sb.findRecordsByCid("WPTCP");
|
@@ -56,7 +54,7 @@ public class NetworkAccess implements INetworkAccess {
|
|
56
54
|
if (/*srs[i].isDisabled() ||*/ !wifis[i].isValid())
|
57
55
|
continue;
|
58
56
|
|
59
|
-
WIFIsuffix = ";interface=wifi" + strDeviceside;
|
57
|
+
WIFIsuffix = ";interface=wifi";// + strDeviceside;
|
60
58
|
//";deviceside=true;ConnectionUID=" +
|
61
59
|
//wifis[i].getUid();
|
62
60
|
|
@@ -114,7 +112,7 @@ public class NetworkAccess implements INetworkAccess {
|
|
114
112
|
networkConfigured = true;
|
115
113
|
}
|
116
114
|
|
117
|
-
LOG.INFO("Postfix: " + URLsuffix);
|
115
|
+
LOG.INFO("Postfix: " + URLsuffix + ";Wifi: " + WIFIsuffix);
|
118
116
|
}
|
119
117
|
|
120
118
|
/*public IHttpConnection doLocalRequest(String strUrl, String strBody)
|
@@ -183,75 +181,63 @@ public class NetworkAccess implements INetworkAccess {
|
|
183
181
|
return (SocketConnection)baseConnect(strUrl, ignoreSuffix);
|
184
182
|
}
|
185
183
|
|
184
|
+
private Connection doConnect(String urlArg, boolean bThrowIOException) throws IOException
|
185
|
+
{
|
186
|
+
Connection conn = null;
|
187
|
+
try
|
188
|
+
{
|
189
|
+
String url = new String(urlArg);
|
190
|
+
if (url.startsWith("https"))
|
191
|
+
url += ";EndToEndDesired;RdHTTPS";
|
192
|
+
|
193
|
+
LOG.INFO("Connect to url: " + url);
|
194
|
+
conn = Connector.open(url, Connector.READ_WRITE, true);
|
195
|
+
} catch (java.io.InterruptedIOException ioe)
|
196
|
+
{
|
197
|
+
LOG.ERROR("Connector.open InterruptedIOException", ioe );
|
198
|
+
if (conn != null)
|
199
|
+
conn.close();
|
200
|
+
conn = null;
|
201
|
+
throw ioe;
|
202
|
+
} catch (IOException ioe)
|
203
|
+
{
|
204
|
+
LOG.ERROR("Connector.open exception", ioe );
|
205
|
+
|
206
|
+
String strMsg = ioe.getMessage();
|
207
|
+
boolean bTimeout = strMsg != null && (strMsg.indexOf("timed out") >= 0 || strMsg.indexOf("Timed out") >= 0);
|
208
|
+
|
209
|
+
if ( bTimeout || bThrowIOException )
|
210
|
+
{
|
211
|
+
if (conn != null)
|
212
|
+
conn.close();
|
213
|
+
conn = null;
|
214
|
+
throw ioe;
|
215
|
+
}
|
216
|
+
}catch(Exception exc)
|
217
|
+
{
|
218
|
+
throw new IOException("Could not open network connection.");
|
219
|
+
}
|
220
|
+
|
221
|
+
return conn;
|
222
|
+
}
|
223
|
+
|
186
224
|
public Connection baseConnect(String strUrl, boolean ignoreSuffix) throws IOException
|
187
225
|
{
|
188
226
|
Connection conn = null;
|
189
227
|
|
190
228
|
//Try wifi first
|
191
|
-
if ( WIFIsuffix != null && isWifiActive() )
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
LOG.INFO("WIFI connection failed: " + ioe.getMessage() );
|
197
|
-
}
|
229
|
+
if ( WIFIsuffix != null && isWifiActive() )
|
230
|
+
{
|
231
|
+
conn = doConnect(strUrl + WIFIsuffix + URLsuffix, false);
|
232
|
+
if ( conn == null )
|
233
|
+
conn = doConnect(strUrl + WIFIsuffix, false);
|
198
234
|
}
|
199
235
|
|
200
|
-
if ( conn == null )
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
try {
|
207
|
-
String url = strUrl;
|
208
|
-
//if ( RhoConf.getInstance().getBool("bb_sim_use_deviceside") || !ignoreSuffix )
|
209
|
-
url += URLsuffix;
|
210
|
-
if (url.startsWith("https"))
|
211
|
-
url += ";EndToEndDesired;RdHTTPS";
|
212
|
-
|
213
|
-
LOG.INFO(url);
|
214
|
-
conn = Connector.open(url, Connector.READ_WRITE, true);
|
215
|
-
} catch (java.io.InterruptedIOException ioe) {
|
216
|
-
LOG.ERROR("Connector.open InterruptedIOException", ioe );
|
217
|
-
if (conn != null)
|
218
|
-
conn.close();
|
219
|
-
conn = null;
|
220
|
-
throw ioe;
|
221
|
-
} catch (IOException ioe) {
|
222
|
-
String strMsg = ioe.getMessage();
|
223
|
-
|
224
|
-
boolean bTimeout = strMsg != null && (strMsg.indexOf("timed out") >= 0 || strMsg.indexOf("Timed out") >= 0);
|
225
|
-
|
226
|
-
if ( !bTimeout && URLsuffix.length() > 0 ) {
|
227
|
-
LOG.ERROR("Connector.open exception", ioe );
|
228
|
-
|
229
|
-
try{
|
230
|
-
String url = strUrl;
|
231
|
-
if (url.startsWith("https"))
|
232
|
-
url += ";EndToEndDesired;RdHTTPS";
|
233
|
-
|
234
|
-
LOG.INFO(url);
|
235
|
-
conn = Connector.open(url, Connector.READ_WRITE, true);
|
236
|
-
} catch (IOException ioe2) {
|
237
|
-
LOG.ERROR("Connector.open exception", ioe2 );
|
238
|
-
if (conn != null)
|
239
|
-
conn.close();
|
240
|
-
conn = null;
|
241
|
-
throw ioe2;
|
242
|
-
}
|
243
|
-
}else
|
244
|
-
{
|
245
|
-
LOG.ERROR("Connector.open exception", ioe );
|
246
|
-
if (conn != null)
|
247
|
-
conn.close();
|
248
|
-
conn = null;
|
249
|
-
throw ioe;
|
250
|
-
}
|
251
|
-
}catch(Exception exc)
|
252
|
-
{
|
253
|
-
throw new IOException("Could not open network connection.");
|
254
|
-
}
|
236
|
+
if ( conn == null )
|
237
|
+
{
|
238
|
+
conn = doConnect(strUrl + URLsuffix, false);
|
239
|
+
if ( conn == null )
|
240
|
+
conn = doConnect(strUrl, true);
|
255
241
|
}
|
256
242
|
|
257
243
|
return conn;
|