rhodes 2.0.0.beta2 → 2.0.0.beta3
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +2 -0
- data/Manifest.txt +27 -148
- data/Rakefile +49 -3
- data/lib/framework/builtinME.rb +6 -0
- data/lib/framework/rho/render.rb +13 -8
- data/lib/framework/rho/rho.rb +97 -43
- data/lib/framework/rho/rhoapplication.rb +8 -3
- data/lib/framework/rho/rhocontroller.rb +1 -1
- data/lib/framework/rhodes-framework.rb +1 -1
- data/lib/framework/rhodes.rb +1 -1
- data/lib/framework/rhoframework.rb +7 -22
- data/lib/framework/rhofsconnector.rb +1 -1
- data/lib/framework/rholang/localization_simplified.rb +2 -2
- data/lib/framework/rhom/rhom.rb +1 -0
- data/lib/framework/rhom/rhom_db_adapter.rb +2 -2
- data/lib/framework/rhom/rhom_model.rb +98 -0
- data/lib/framework/rhom/rhom_object_factory.rb +13 -12
- data/lib/rhodes.rb +1 -1
- data/platform/android/Rhodes/jni/include/{JNIRhodes.h → rhodes/JNIRhodes.h} +3 -54
- data/platform/android/Rhodes/jni/include/{RhoClassFactory.h → rhodes/RhoClassFactory.h} +0 -0
- data/platform/android/Rhodes/jni/include/{SystemInfoImpl.h → rhodes/SystemInfoImpl.h} +0 -0
- data/platform/android/Rhodes/jni/include/{details → rhodes/details}/rhojava.inc +1 -0
- data/platform/android/Rhodes/jni/include/{jni → rhodes/jni}/com_rhomobile_rhodes_Logger.h +0 -0
- data/platform/android/Rhodes/jni/include/{jni → rhodes/jni}/com_rhomobile_rhodes_RhoConf.h +0 -0
- data/platform/android/Rhodes/jni/include/{jni → rhodes/jni}/com_rhomobile_rhodes_RhoLogConf.h +0 -0
- data/platform/android/Rhodes/jni/include/{jni → rhodes/jni}/com_rhomobile_rhodes_RhoMenu.h +0 -0
- data/platform/android/Rhodes/jni/include/{jni → rhodes/jni}/com_rhomobile_rhodes_Rhodes.h +0 -0
- data/platform/android/Rhodes/jni/include/{jni → rhodes/jni}/com_rhomobile_rhodes_SplashScreen.h +0 -0
- data/platform/android/Rhodes/jni/include/{jni → rhodes/jni}/com_rhomobile_rhodes_alert_Alert.h +0 -0
- data/platform/android/Rhodes/jni/include/{jni → rhodes/jni}/com_rhomobile_rhodes_camera_Camera.h +0 -0
- data/platform/android/Rhodes/jni/include/{jni → rhodes/jni}/com_rhomobile_rhodes_datetime_DateTimePicker.h +0 -0
- data/platform/android/Rhodes/jni/include/{jni → rhodes/jni}/com_rhomobile_rhodes_geolocation_GeoLocationImpl.h +0 -0
- data/platform/android/Rhodes/jni/include/{jni → rhodes/jni}/com_rhomobile_rhodes_socket_RhoSocketImpl.h +0 -0
- data/platform/android/Rhodes/jni/include/{jni → rhodes/jni}/com_rhomobile_rhodes_socket_SSLImpl.h +0 -0
- data/platform/android/Rhodes/jni/include/{sslimpl.h → rhodes/sslimpl.h} +0 -0
- data/platform/android/Rhodes/jni/include/rhodes.h +59 -0
- data/platform/android/Rhodes/jni/src/RhoClassFactory.cpp +3 -3
- data/platform/android/Rhodes/jni/src/alert.cpp +2 -2
- data/platform/android/Rhodes/jni/src/callbacks.cpp +4 -3
- data/platform/android/Rhodes/jni/src/camera.cpp +2 -2
- data/platform/android/Rhodes/jni/src/datetimepicker.cpp +2 -2
- data/platform/android/Rhodes/jni/src/geolocation.cpp +2 -2
- data/platform/android/Rhodes/jni/src/logconf.cpp +2 -2
- data/platform/android/Rhodes/jni/src/logger.cpp +2 -2
- data/platform/android/Rhodes/jni/src/mapview.cpp +1 -1
- data/platform/android/Rhodes/jni/src/menu.cpp +2 -2
- data/platform/android/Rhodes/jni/src/nativebar.cpp +1 -1
- data/platform/android/Rhodes/jni/src/navbar.cpp +17 -3
- data/platform/android/Rhodes/jni/src/phonebook.cpp +1 -1
- data/platform/android/Rhodes/jni/src/rhoconf.cpp +2 -2
- data/platform/android/Rhodes/jni/src/rhodes.cpp +3 -3
- data/platform/android/Rhodes/jni/src/ringtones.cpp +1 -1
- data/platform/android/Rhodes/jni/src/socketimpl.cpp +2 -2
- data/platform/android/Rhodes/jni/src/splashscreen.cpp +2 -2
- data/platform/android/Rhodes/jni/src/sslimpl.cpp +3 -3
- data/platform/android/Rhodes/jni/src/syncengine.cpp +2 -2
- data/platform/android/Rhodes/jni/src/webview.cpp +15 -12
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/NativeLibraries.java +11 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/NavBar.java +52 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/Rhodes.java +8 -2
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/WebView.java +26 -28
- data/platform/android/build/RhodesSRC_build.files +21 -20
- data/platform/android/build/android.rake +69 -24
- data/platform/android/build/androidcommon.rb +17 -12
- data/platform/bb/build/bb.rake +23 -21
- data/platform/bb/rhodes/src/com/rho/BrowserAdapter.java +5 -2
- data/platform/bb/rhodes/src/com/rho/RhoRubyHelper.java +6 -1
- data/platform/bb/rhodes/src/com/rho/rubyext/System.java +9 -1
- data/platform/bb/rhodes/src/com/rho/rubyext/WebView.java +31 -2
- data/platform/bb/rhodes/src/rhomobile/RhodesApplication.java +17 -6
- data/platform/bb/rhodes/src/rhomobile/Utilities.java +6 -0
- data/platform/iphone/Classes/AppManager/AppManager.m +16 -4
- data/platform/iphone/Classes/DateTime.h +5 -6
- data/platform/iphone/Classes/DateTimePicker.m +4 -18
- data/platform/iphone/Classes/DateTimePickerDelegate.h +7 -9
- data/platform/iphone/Classes/DateTimePickerDelegate.m +141 -152
- data/platform/iphone/Classes/Rhodes.h +6 -1
- data/platform/iphone/Classes/Rhodes.m +17 -43
- data/platform/iphone/Classes/SimpleMainView.h +1 -1
- data/platform/iphone/Classes/SimpleMainView.m +54 -4
- data/platform/iphone/Classes/WebView.m +17 -0
- data/platform/iphone/rbuild/iphone.rake +1 -0
- data/platform/iphone/rhorunner.xcodeproj/project.pbxproj +0 -45
- data/platform/shared/common/PosixThreadImpl.cpp +8 -0
- data/platform/shared/common/PosixThreadImpl.h +1 -0
- data/platform/shared/common/RhoThread.cpp +1 -0
- data/platform/shared/common/RhoThread.h +4 -2
- data/platform/shared/curl/include/curl/curl.h +4 -0
- data/platform/shared/db/DBAdapter.cpp +47 -60
- data/platform/shared/db/DBAdapter.h +6 -2
- data/platform/shared/net/AsyncHttp.cpp +27 -11
- data/platform/shared/net/AsyncHttp.h +3 -1
- data/platform/shared/net/CURLNetRequest.cpp +11 -10
- data/platform/shared/net/CURLNetRequest.h +6 -4
- data/platform/shared/net/HttpServer.cpp +11 -6
- data/platform/shared/ruby/ext/asynchttp/asynchttp.i +2 -2
- data/platform/shared/ruby/ext/asynchttp/asynchttp_wrap.c +22 -11
- data/platform/shared/ruby/ext/rho/rhoruby.c +2 -2
- data/platform/shared/ruby/ext/rho/rhosupport.c +23 -3
- data/platform/shared/ruby/ext/webview/webview.i +4 -0
- data/platform/shared/ruby/ext/webview/webview_wrap.c +39 -0
- data/platform/shared/ruby/re.c +8 -0
- data/platform/shared/ruby/string.c +1 -1
- data/platform/shared/rubyJVM/src/com/rho/IRhoRubyHelper.java +1 -0
- data/platform/shared/rubyJVM/src/com/rho/RhoClassFactory.java +6 -1
- data/platform/shared/rubyJVM/src/com/rho/RhoThread.java +3 -0
- data/platform/shared/rubyJVM/src/com/rho/RhodesApp.java +34 -0
- data/platform/shared/rubyJVM/src/com/rho/db/DBAdapter.java +40 -53
- data/platform/shared/rubyJVM/src/com/rho/net/AsyncHttp.java +32 -15
- data/platform/shared/rubyJVM/src/com/rho/net/NetRequest.java +31 -17
- data/platform/shared/rubyJVM/src/com/rho/net/RhoConnection.java +3 -0
- data/platform/shared/rubyJVM/src/com/rho/sync/JSONArrayIterator.java +17 -0
- data/platform/shared/rubyJVM/src/com/rho/sync/SyncEngine.java +158 -137
- data/platform/shared/rubyJVM/src/com/rho/sync/SyncSource.java +18 -17
- data/platform/shared/rubyJVM/src/com/rho/sync/SyncThread.java +10 -2
- data/platform/shared/rubyJVM/src/com/xruby/GeneratedMethods/RubyFile_Methods.java +6 -0
- data/platform/shared/rubyJVM/src/com/xruby/runtime/builtin/RubyFile.java +18 -3
- data/platform/shared/rubyJVM/src/j2me/io/File.java +37 -9
- data/platform/shared/sqlite/sqlite3.c +14613 -13016
- data/platform/shared/sqlite/sqlite3.h +1461 -1499
- data/platform/shared/sqlite/sqlite3ext.h +0 -2
- data/platform/shared/sync/ClientRegister.cpp +3 -3
- data/platform/shared/sync/ClientRegister.h +2 -1
- data/platform/shared/sync/SyncEngine.cpp +20 -8
- data/platform/shared/sync/SyncSource.cpp +12 -12
- data/platform/shared/sync/SyncSource.h +4 -4
- data/platform/shared/sync/SyncThread.cpp +8 -1
- data/platform/shared/tcmalloc/rhomem.h +3 -0
- data/platform/shared/tcmalloc/tcmalloc_.cpp +11 -0
- data/platform/wm/rhodes/Alert.cpp +148 -101
- data/platform/wm/rhodes/Alert.h +4 -1
- data/platform/wm/rhodes/AppManager.cpp +212 -72
- data/platform/wm/rhodes/AppManager.h +24 -3
- data/platform/wm/rhodes/DateTimePicker.cpp +23 -11
- data/platform/wm/rhodes/DateTimePicker.h +16 -5
- data/platform/wm/rhodes/MainWindow.cpp +22 -7
- data/platform/wm/rhodes/OkCancelModalDialog.h +63 -0
- data/platform/wm/rhodes/Rhodes.cpp +29 -17
- data/platform/wm/rhodes/phonebook/NativeAddressBook.cpp +128 -4
- data/platform/wm/rhodes/phonebook/NativeAddressBook.h +33 -3
- data/platform/wm/rhodes/resource.h +1 -1
- data/platform/wm/rhodes/rho/common/RhoClassFactory.cpp +5 -0
- data/platform/wm/rhodes/rho/net/NetRequestImpl.cpp +136 -102
- data/platform/wm/rhodes/rho/net/NetRequestImpl.h +12 -5
- data/platform/wm/rhodes/rho/rubyext/SystemImpl.cpp +24 -10
- data/platform/wm/rhodes/rho/rubyext/WebView.cpp +6 -0
- data/platform/wm/rhodes/rhodes.vcproj +4 -0
- data/platform/wm/tools/detool/detool.cpp +17 -4
- data/rakefile.rb +49 -3
- data/res/build-tools/db/syncdb.schema +2 -2
- data/res/build-tools/detool.exe +0 -0
- data/res/generators/rhogen.rb +10 -10
- data/res/generators/templates/application/app/helpers/browser_helper.rb +9 -4
- data/res/generators/templates/application/app/index.bb.erb +5 -5
- data/res/generators/templates/application/build.yml +1 -0
- data/res/generators/templates/application/public/css/android.css +10 -8
- data/res/generators/templates/application/public/css/blackberry.css +40 -31
- data/res/generators/templates/application/public/css/iphone.css +4 -4
- data/res/generators/templates/application/public/css/webkit.css +7 -0
- data/res/generators/templates/application/public/css/windows_mobile.css +31 -27
- data/res/generators/templates/application/rhoconfig.txt +2 -2
- data/res/generators/templates/model/edit.bb.erb +2 -2
- data/res/generators/templates/model/index.bb.erb +6 -4
- data/res/generators/templates/model/model.rb +2 -1
- data/res/generators/templates/model/new.bb.erb +2 -2
- data/res/generators/templates/model/show.bb.erb +2 -2
- data/rhobuild.yml +37 -0
- data/rhodes.gemspec +1 -1
- data/spec/framework_spec/app/Account/account.rb +7 -0
- data/spec/framework_spec/app/Case/case.rb +6 -0
- data/spec/framework_spec/app/Customer/customer.rb +6 -0
- data/spec/framework_spec/app/Product/product.rb +9 -0
- data/spec/framework_spec/app/spec/rhom_object_spec.rb +1 -1
- data/spec/framework_spec/app/spec/syncengine_spec.rb +2 -1
- metadata +45 -151
- data/lib/build/manifest/createAppManifest.rb +0 -18
- data/lib/build/tasks/android.rake +0 -317
- data/lib/build/tasks/blackberry.rake +0 -355
- data/lib/build/tasks/common.rake +0 -62
- data/lib/build/tasks/iphone.rake +0 -108
- data/lib/build/tasks/linux.rake +0 -81
- data/lib/build/tasks/rhodes-build.rb +0 -11
- data/lib/build/tasks/rspec.rake +0 -20
- data/lib/build/tasks/symbian.rake +0 -202
- data/lib/build/tasks/wm.rake +0 -166
- data/lib/framework/ServeME.rb +0 -7
- data/platform/bb/build/MANIFEST.MF +0 -12
- data/platform/iphone/Classes/DateTimePicker.h +0 -17
- data/res/generators/templates/application/public/icons/Read me first - license.txt +0 -14
- data/res/generators/templates/application/public/icons/about.png +0 -0
- data/res/generators/templates/application/public/icons/airplane.png +0 -0
- data/res/generators/templates/application/public/icons/baby.png +0 -0
- data/res/generators/templates/application/public/icons/badge.png +0 -0
- data/res/generators/templates/application/public/icons/bandaid.png +0 -0
- data/res/generators/templates/application/public/icons/bar-chart.png +0 -0
- data/res/generators/templates/application/public/icons/battery.png +0 -0
- data/res/generators/templates/application/public/icons/beaker.png +0 -0
- data/res/generators/templates/application/public/icons/beaker2.png +0 -0
- data/res/generators/templates/application/public/icons/beermug.png +0 -0
- data/res/generators/templates/application/public/icons/bird.png +0 -0
- data/res/generators/templates/application/public/icons/book.png +0 -0
- data/res/generators/templates/application/public/icons/bookmark.png +0 -0
- data/res/generators/templates/application/public/icons/brightness.png +0 -0
- data/res/generators/templates/application/public/icons/bug.png +0 -0
- data/res/generators/templates/application/public/icons/cabinet.png +0 -0
- data/res/generators/templates/application/public/icons/calendar.png +0 -0
- data/res/generators/templates/application/public/icons/camera.png +0 -0
- data/res/generators/templates/application/public/icons/changeName.rb +0 -22
- data/res/generators/templates/application/public/icons/chat2.png +0 -0
- data/res/generators/templates/application/public/icons/chicken.png +0 -0
- data/res/generators/templates/application/public/icons/clock.png +0 -0
- data/res/generators/templates/application/public/icons/cloud.png +0 -0
- data/res/generators/templates/application/public/icons/coffee.png +0 -0
- data/res/generators/templates/application/public/icons/compass.png +0 -0
- data/res/generators/templates/application/public/icons/contrast.png +0 -0
- data/res/generators/templates/application/public/icons/dashboard.png +0 -0
- data/res/generators/templates/application/public/icons/display.png +0 -0
- data/res/generators/templates/application/public/icons/dogpaw.png +0 -0
- data/res/generators/templates/application/public/icons/download.png +0 -0
- data/res/generators/templates/application/public/icons/dumbbell.png +0 -0
- data/res/generators/templates/application/public/icons/ekg.png +0 -0
- data/res/generators/templates/application/public/icons/envelope.png +0 -0
- data/res/generators/templates/application/public/icons/equalizer.png +0 -0
- data/res/generators/templates/application/public/icons/eye.png +0 -0
- data/res/generators/templates/application/public/icons/film-roll.png +0 -0
- data/res/generators/templates/application/public/icons/flag.png +0 -0
- data/res/generators/templates/application/public/icons/fork-and-knife.png +0 -0
- data/res/generators/templates/application/public/icons/fuel.png +0 -0
- data/res/generators/templates/application/public/icons/gameplan.png +0 -0
- data/res/generators/templates/application/public/icons/gear.png +0 -0
- data/res/generators/templates/application/public/icons/gear2.png +0 -0
- data/res/generators/templates/application/public/icons/gift.png +0 -0
- data/res/generators/templates/application/public/icons/heart.png +0 -0
- data/res/generators/templates/application/public/icons/house.png +0 -0
- data/res/generators/templates/application/public/icons/inbox.png +0 -0
- data/res/generators/templates/application/public/icons/index-cards.png +0 -0
- data/res/generators/templates/application/public/icons/iphone.png +0 -0
- data/res/generators/templates/application/public/icons/ipod.png +0 -0
- data/res/generators/templates/application/public/icons/key.png +0 -0
- data/res/generators/templates/application/public/icons/lifebuoy.png +0 -0
- data/res/generators/templates/application/public/icons/lightbulb.png +0 -0
- data/res/generators/templates/application/public/icons/line-chart.png +0 -0
- data/res/generators/templates/application/public/icons/location.png +0 -0
- data/res/generators/templates/application/public/icons/lock.png +0 -0
- data/res/generators/templates/application/public/icons/loopback.png +0 -0
- data/res/generators/templates/application/public/icons/magnifying-glass.png +0 -0
- data/res/generators/templates/application/public/icons/map-marker.png +0 -0
- data/res/generators/templates/application/public/icons/map.png +0 -0
- data/res/generators/templates/application/public/icons/medical-bag.png +0 -0
- data/res/generators/templates/application/public/icons/medical.png +0 -0
- data/res/generators/templates/application/public/icons/microphone.png +0 -0
- data/res/generators/templates/application/public/icons/movie1.png +0 -0
- data/res/generators/templates/application/public/icons/movie2.png +0 -0
- data/res/generators/templates/application/public/icons/network.png +0 -0
- data/res/generators/templates/application/public/icons/note.png +0 -0
- data/res/generators/templates/application/public/icons/outlet.png +0 -0
- data/res/generators/templates/application/public/icons/palette.png +0 -0
- data/res/generators/templates/application/public/icons/paperclip.png +0 -0
- data/res/generators/templates/application/public/icons/phone.png +0 -0
- data/res/generators/templates/application/public/icons/photos.png +0 -0
- data/res/generators/templates/application/public/icons/piano.png +0 -0
- data/res/generators/templates/application/public/icons/picture-frame.png +0 -0
- data/res/generators/templates/application/public/icons/pill.png +0 -0
- data/res/generators/templates/application/public/icons/pin.png +0 -0
- data/res/generators/templates/application/public/icons/pinetree.png +0 -0
- data/res/generators/templates/application/public/icons/planet.png +0 -0
- data/res/generators/templates/application/public/icons/puzzle.png +0 -0
- data/res/generators/templates/application/public/icons/radar.png +0 -0
- data/res/generators/templates/application/public/icons/redo.png +0 -0
- data/res/generators/templates/application/public/icons/refresh.png +0 -0
- data/res/generators/templates/application/public/icons/runner.png +0 -0
- data/res/generators/templates/application/public/icons/shoebox.png +0 -0
- data/res/generators/templates/application/public/icons/shopping-bag.png +0 -0
- data/res/generators/templates/application/public/icons/shopping-cart.png +0 -0
- data/res/generators/templates/application/public/icons/shuffle.png +0 -0
- data/res/generators/templates/application/public/icons/signpost.png +0 -0
- data/res/generators/templates/application/public/icons/skull-n-crossbones.png +0 -0
- data/res/generators/templates/application/public/icons/skull.png +0 -0
- data/res/generators/templates/application/public/icons/sliders.png +0 -0
- data/res/generators/templates/application/public/icons/spraycan.png +0 -0
- data/res/generators/templates/application/public/icons/squiggle.png +0 -0
- data/res/generators/templates/application/public/icons/star.png +0 -0
- data/res/generators/templates/application/public/icons/stopwatch.png +0 -0
- data/res/generators/templates/application/public/icons/suitcase.png +0 -0
- data/res/generators/templates/application/public/icons/tag.png +0 -0
- data/res/generators/templates/application/public/icons/tags.png +0 -0
- data/res/generators/templates/application/public/icons/target.png +0 -0
- data/res/generators/templates/application/public/icons/testtube.png +0 -0
- data/res/generators/templates/application/public/icons/thermometer.png +0 -0
- data/res/generators/templates/application/public/icons/toolbox.png +0 -0
- data/res/generators/templates/application/public/icons/trophy.png +0 -0
- data/res/generators/templates/application/public/icons/tshirt.png +0 -0
- data/res/generators/templates/application/public/icons/tv.png +0 -0
- data/res/generators/templates/application/public/icons/umbrella.png +0 -0
- data/res/generators/templates/application/public/icons/walk.png +0 -0
- data/res/generators/templates/application/public/icons/weather.png +0 -0
- data/res/generators/templates/application/public/icons/widescreen.png +0 -0
- data/res/generators/templates/application/public/icons/wineglass.png +0 -0
- data/res/generators/templates/application/public/icons/zap.png +0 -0
- data/res/generators/templates/application/public/js/jquery-1.2.6.min.js +0 -32
- data/res/generators/templates/model/config.rb +0 -3
- data/res/generators/templates/spec/app/spec/webview_spec.rb +0 -5
- data/spec/framework_spec/app/Account/config.rb +0 -59
- data/spec/framework_spec/app/Case/config.rb +0 -3
- data/spec/framework_spec/app/Customer/config.rb +0 -3
- data/spec/framework_spec/app/Product/config.rb +0 -17
@@ -7,6 +7,8 @@
|
|
7
7
|
#include "common/rhoparams.h"
|
8
8
|
#include "rho/rubyext/GeoLocationImpl.h"
|
9
9
|
#include "ruby/ext/rho/rhoruby.h"
|
10
|
+
#include "net/NetRequestImpl.h"
|
11
|
+
#include "sync/ClientRegister.h"
|
10
12
|
|
11
13
|
using namespace rho;
|
12
14
|
using namespace rho::common;
|
@@ -39,9 +41,6 @@ HREGNOTIFY g_hNotify = NULL;
|
|
39
41
|
|
40
42
|
#endif
|
41
43
|
|
42
|
-
//BOOL EnumRhodesWindowsProc(HWND hwnd,LPARAM lParam);
|
43
|
-
extern "C" void rho_clientregister_create(const char* szDevicePin);
|
44
|
-
|
45
44
|
class CRhodesModule : public CAtlExeModuleT< CRhodesModule >
|
46
45
|
{
|
47
46
|
public :
|
@@ -120,18 +119,33 @@ public :
|
|
120
119
|
//Check for bundle directory is exists.
|
121
120
|
HANDLE hFind;
|
122
121
|
WIN32_FIND_DATA wfd;
|
123
|
-
|
122
|
+
|
123
|
+
// rootpath + "rho/"
|
124
|
+
if (m_strRootPath.at(m_strRootPath.length()-1) == '/') {
|
125
|
+
hFind = FindFirstFile(convertToStringW(m_strRootPath.substr(0, m_strRootPath.find_last_of('/'))).c_str(), &wfd);
|
126
|
+
} else if (m_strRootPath.at(m_strRootPath.length()-1) == '\\') {
|
127
|
+
//delete all '\' from the end of the pathname
|
128
|
+
int i = m_strRootPath.length();
|
129
|
+
for ( ; i != 1; i--) {
|
130
|
+
if (m_strRootPath.at(i-1) != '\\')
|
131
|
+
break;
|
132
|
+
}
|
133
|
+
hFind = FindFirstFile(convertToStringW(m_strRootPath.substr(0, i)).c_str(), &wfd);
|
134
|
+
}
|
124
135
|
|
125
136
|
if (INVALID_HANDLE_VALUE == hFind || !(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
|
126
|
-
LOG(INFO) + "Bundle directory is missing\n";
|
127
|
-
|
128
137
|
int last = 0, pre_last = 0;
|
129
138
|
last = getRhoRootPath().find_last_of('\\');
|
130
139
|
pre_last = getRhoRootPath().substr(0, last).find_last_of('\\');
|
131
140
|
String appName = getRhoRootPath().substr(pre_last + 1, last - pre_last - 1);
|
132
|
-
|
141
|
+
|
142
|
+
String messageText = "Bundle directory \"" +
|
143
|
+
m_strRootPath.substr(0, m_strRootPath.find_last_of('/')) +
|
144
|
+
"\" is missing\n";
|
145
|
+
|
146
|
+
LOG(INFO) + messageText;
|
133
147
|
int msgboxID = MessageBox(NULL,
|
134
|
-
|
148
|
+
convertToStringW(messageText).c_str(),
|
135
149
|
convertToStringW(appName).c_str(),
|
136
150
|
MB_ICONERROR | MB_OK);
|
137
151
|
|
@@ -139,6 +153,7 @@ public :
|
|
139
153
|
return S_FALSE;
|
140
154
|
}
|
141
155
|
|
156
|
+
rho::common::CRhodesApp::Create(m_strRootPath );
|
142
157
|
|
143
158
|
// Create the main application window
|
144
159
|
m_appWindow.Create(NULL, CWindow::rcDefault, TEXT("Rhodes"), WS_VISIBLE);
|
@@ -147,12 +162,8 @@ public :
|
|
147
162
|
return S_FALSE;
|
148
163
|
}
|
149
164
|
|
150
|
-
rho::common::CRhodesApp::Create(m_strRootPath );
|
151
165
|
RHODESAPP().startApp();
|
152
166
|
|
153
|
-
// m_pServerHost = new CServerHost();
|
154
|
-
// Starting local server
|
155
|
-
//m_pServerHost->Start(m_appWindow.m_hWnd);
|
156
167
|
// Navigate to the "loading..." page
|
157
168
|
m_appWindow.Navigate2(_T("about:blank"));
|
158
169
|
// Show the main application window
|
@@ -190,10 +201,6 @@ public :
|
|
190
201
|
DispatchMessage(&msg);
|
191
202
|
}
|
192
203
|
}
|
193
|
-
// Stop local server
|
194
|
-
//m_pServerHost->Stop();
|
195
|
-
//delete m_pServerHost;
|
196
|
-
//m_pServerHost = NULL;
|
197
204
|
|
198
205
|
#if defined(OS_WINCE)
|
199
206
|
CGPSController* pGPS = CGPSController::Instance();
|
@@ -201,7 +208,13 @@ public :
|
|
201
208
|
#endif
|
202
209
|
rho_ringtone_manager_stop();
|
203
210
|
|
211
|
+
#if !defined(_WIN32_WCE)
|
212
|
+
rho_clientregister_destroy();
|
213
|
+
#endif
|
214
|
+
|
204
215
|
rho::common::CRhodesApp::Destroy();
|
216
|
+
|
217
|
+
net::CNetRequestImpl::deinitConnection();
|
205
218
|
}
|
206
219
|
|
207
220
|
const rho::String& getRhoRootPath()
|
@@ -228,7 +241,6 @@ public :
|
|
228
241
|
|
229
242
|
private:
|
230
243
|
CMainWindow m_appWindow;
|
231
|
-
//CServerHost* m_pServerHost;
|
232
244
|
rho::String m_strRootPath;
|
233
245
|
int m_nRestarting;
|
234
246
|
};
|
@@ -2,13 +2,18 @@
|
|
2
2
|
|
3
3
|
#include "ext/phonebook/phonebook.h"
|
4
4
|
#include "NativeAddressBook.h"
|
5
|
+
#include <common/RhoStd.h>
|
5
6
|
|
6
7
|
#define INITGUID
|
7
8
|
#include <pimstore.h>
|
8
9
|
#include <comutil.h>
|
9
10
|
|
11
|
+
using namespace rho;
|
12
|
+
using namespace rho::common;
|
13
|
+
|
10
14
|
IMPLEMENT_LOGCLASS(CABRecord,"ABRecord");
|
11
15
|
IMPLEMENT_LOGCLASS(CABOutlookRecord,"ABOutlookRecord");
|
16
|
+
IMPLEMENT_LOGCLASS(CABSimRecord,"ABSimRecord");
|
12
17
|
IMPLEMENT_LOGCLASS(CNativeAddressBook,"NativeAddressBook");
|
13
18
|
|
14
19
|
// Note that return type is std::string, not LPCSTR!!!
|
@@ -179,30 +184,38 @@ int CABOutlookRecord::remove() {
|
|
179
184
|
//=============================================================================
|
180
185
|
|
181
186
|
CNativeAddressBook::CNativeAddressBook() :
|
182
|
-
m_openedOutlookAB(false), m_outlookApp(NULL), m_outlookItems(NULL) {
|
187
|
+
m_openedOutlookAB(false), m_outlookApp(NULL), m_outlookItems(NULL), m_hSim(0) {
|
183
188
|
}
|
184
189
|
|
185
190
|
CNativeAddressBook::~CNativeAddressBook() {
|
186
|
-
if (m_openedOutlookAB)
|
191
|
+
if (m_openedOutlookAB)
|
187
192
|
closeOutlookAB();
|
188
|
-
|
193
|
+
|
194
|
+
if (m_hSim)
|
195
|
+
closeSimAB();
|
189
196
|
}
|
190
197
|
|
191
198
|
int CNativeAddressBook::openAB() {
|
199
|
+
initSimAB();
|
192
200
|
return initOutlookAB();
|
193
201
|
}
|
194
202
|
|
195
203
|
int CNativeAddressBook::getAllRecords(std::vector<CABRecord*>& records) {
|
204
|
+
getAllSimPhonebookRecords(records);
|
205
|
+
|
196
206
|
return getAllOutlookRecords(records);
|
197
207
|
}
|
198
208
|
|
199
|
-
CABRecord* CNativeAddressBook::getRecord(char* id)
|
209
|
+
CABRecord* CNativeAddressBook::getRecord(char* id)
|
210
|
+
{
|
200
211
|
char recordType[20];
|
201
212
|
long recordId;
|
202
213
|
if ( sscanf(id, "{%s %ld}", recordType, &recordId) == 2 ) {
|
203
214
|
LOG(INFO) + "get Record " + recordId + " of " + recordType +" type";
|
204
215
|
if (strcmp(recordType,"outlook")==0) {
|
205
216
|
return getOutlookRecord(recordId);
|
217
|
+
} else if (strcmp(recordType,"sim")==0) {
|
218
|
+
return getSimRecord(recordId);
|
206
219
|
}
|
207
220
|
}
|
208
221
|
return NULL;
|
@@ -345,4 +358,115 @@ int CNativeAddressBook::addOutlookRecord(CABOutlookRecord* record) {
|
|
345
358
|
}
|
346
359
|
}
|
347
360
|
return 1;
|
361
|
+
}
|
362
|
+
|
363
|
+
bool CNativeAddressBook::initSimAB()
|
364
|
+
{
|
365
|
+
HRESULT h = SimInitialize(0, NULL, 0, &m_hSim);
|
366
|
+
if (SUCCEEDED(h))
|
367
|
+
{
|
368
|
+
if (SUCCEEDED(SimGetDevCaps(m_hSim, SIM_CAPSTYPE_ALL, &m_SimCaps)))
|
369
|
+
{
|
370
|
+
return true;
|
371
|
+
}
|
372
|
+
LOG(ERROR) + "Failed to get SIM capabilities.";
|
373
|
+
SimDeinitialize(m_hSim);
|
374
|
+
m_hSim = NULL;
|
375
|
+
}
|
376
|
+
LOG(ERROR) + "Failed to init SIM. Error=" + (int)h;
|
377
|
+
|
378
|
+
return false;
|
379
|
+
}
|
380
|
+
|
381
|
+
bool CNativeAddressBook::closeSimAB()
|
382
|
+
{
|
383
|
+
SimDeinitialize(m_hSim);
|
384
|
+
return false;
|
385
|
+
}
|
386
|
+
|
387
|
+
CABRecord* CNativeAddressBook::getSimRecord(int id)
|
388
|
+
{
|
389
|
+
CABSimRecord *pRecord;
|
390
|
+
HRESULT hr = 0;
|
391
|
+
|
392
|
+
pRecord = new CABSimRecord(id, m_hSim);
|
393
|
+
|
394
|
+
if(pRecord) {
|
395
|
+
if (SUCCEEDED(hr = pRecord->load())) {
|
396
|
+
return pRecord;
|
397
|
+
} else {
|
398
|
+
if (SIM_E_NOTFOUND)
|
399
|
+
LOG(ERROR) + "Failed to get SIM entry";
|
400
|
+
}
|
401
|
+
} else {
|
402
|
+
LOG(ERROR) + "No more memory";
|
403
|
+
}
|
404
|
+
return NULL;
|
405
|
+
}
|
406
|
+
|
407
|
+
int CNativeAddressBook::getAllSimPhonebookRecords(std::vector<CABRecord*>& records)
|
408
|
+
{
|
409
|
+
CABSimRecord *pRecord;
|
410
|
+
HRESULT hr = 0;
|
411
|
+
|
412
|
+
for(DWORD i = m_SimCaps.dwMinPBIndex; i <= m_SimCaps.dwMaxPBIndex; i++) {
|
413
|
+
pRecord = new CABSimRecord(i, m_hSim);
|
414
|
+
if(pRecord) {
|
415
|
+
if (SUCCEEDED(hr = pRecord->load()))
|
416
|
+
records.push_back(pRecord);
|
417
|
+
else {
|
418
|
+
if (SIM_E_NOTFOUND)
|
419
|
+
break;
|
420
|
+
LOG(ERROR) + "Failed to get SIM entry";
|
421
|
+
}
|
422
|
+
} else {
|
423
|
+
LOG(ERROR) + "No more memory";
|
424
|
+
}
|
425
|
+
}
|
426
|
+
|
427
|
+
|
428
|
+
return SUCCEEDED(hr) ? 1 : 0;
|
429
|
+
}
|
430
|
+
|
431
|
+
CABSimRecord::CABSimRecord(int index, HSIM hSim)
|
432
|
+
{
|
433
|
+
m_hSim = hSim;
|
434
|
+
m_index = index;
|
435
|
+
}
|
436
|
+
|
437
|
+
CABSimRecord::~CABSimRecord()
|
438
|
+
{
|
439
|
+
}
|
440
|
+
|
441
|
+
int CABSimRecord::load()
|
442
|
+
{
|
443
|
+
SIMPHONEBOOKENTRY entry;
|
444
|
+
|
445
|
+
String name, address;
|
446
|
+
HRESULT hr = SimReadPhonebookEntry(m_hSim, SIM_PBSTORAGE_SIM, m_index, &entry);
|
447
|
+
if (SUCCEEDED(hr))
|
448
|
+
{
|
449
|
+
char buf[128];
|
450
|
+
sprintf(buf,"{sim %ld}", m_index);
|
451
|
+
setValue(RUBY_PB_ID,buf);
|
452
|
+
|
453
|
+
setValue(RUBY_PB_FIRST_NAME, convertToStringA(entry.lpszText));
|
454
|
+
setValue(RUBY_PB_MAIN_MUMBER, convertToStringA(entry.lpszAddress));
|
455
|
+
}
|
456
|
+
|
457
|
+
return hr;
|
458
|
+
}
|
459
|
+
|
460
|
+
int CABSimRecord::save()
|
461
|
+
{
|
462
|
+
return 0;
|
463
|
+
}
|
464
|
+
|
465
|
+
int CABSimRecord::remove()
|
466
|
+
{
|
467
|
+
return 0;
|
468
|
+
}
|
469
|
+
|
470
|
+
void CABSimRecord::saveValues()
|
471
|
+
{
|
348
472
|
}
|
@@ -5,6 +5,7 @@
|
|
5
5
|
#include <vector>
|
6
6
|
|
7
7
|
#include <pimstore.h>
|
8
|
+
#include <simmgr.h>
|
8
9
|
#include "logging/RhoLog.h"
|
9
10
|
|
10
11
|
typedef void (*ab_callback_t)(const char*, const char*, void*);
|
@@ -33,11 +34,12 @@ public:
|
|
33
34
|
|
34
35
|
protected:
|
35
36
|
ContactType m_type;
|
36
|
-
bool
|
37
|
+
bool m_modifyed;
|
37
38
|
|
38
39
|
std::map<std::string,std::string> m_props;
|
39
40
|
};
|
40
41
|
|
42
|
+
|
41
43
|
class CABOutlookRecord : public CABRecord {
|
42
44
|
DEFINE_LOGCLASS;
|
43
45
|
public:
|
@@ -57,6 +59,26 @@ private:
|
|
57
59
|
friend class CNativeAddressBook;
|
58
60
|
};
|
59
61
|
|
62
|
+
class CABSimRecord : public CABRecord {
|
63
|
+
DEFINE_LOGCLASS;
|
64
|
+
public:
|
65
|
+
CABSimRecord(int index, HSIM hSim);
|
66
|
+
virtual ~CABSimRecord();
|
67
|
+
|
68
|
+
virtual int load();
|
69
|
+
virtual int save();
|
70
|
+
virtual int remove();
|
71
|
+
|
72
|
+
protected:
|
73
|
+
void saveValues();
|
74
|
+
|
75
|
+
private:
|
76
|
+
int m_index;
|
77
|
+
HSIM m_hSim;
|
78
|
+
|
79
|
+
friend class CNativeAddressBook;
|
80
|
+
};
|
81
|
+
|
60
82
|
class CNativeAddressBook
|
61
83
|
{
|
62
84
|
DEFINE_LOGCLASS;
|
@@ -73,6 +95,7 @@ public:
|
|
73
95
|
int deleteRecord(CABRecord* record);
|
74
96
|
|
75
97
|
protected:
|
98
|
+
//outlook
|
76
99
|
bool m_openedOutlookAB;
|
77
100
|
IPOutlookApp* m_outlookApp;
|
78
101
|
IPOutlookItemCollection* m_outlookItems;
|
@@ -84,6 +107,13 @@ protected:
|
|
84
107
|
CABRecord* getOutlookRecord(long oid);
|
85
108
|
int addOutlookRecord(CABOutlookRecord* record);
|
86
109
|
|
87
|
-
|
88
|
-
|
110
|
+
|
111
|
+
//sim
|
112
|
+
HSIM m_hSim;
|
113
|
+
SIMCAPS m_SimCaps;
|
114
|
+
|
115
|
+
bool initSimAB();
|
116
|
+
bool closeSimAB();
|
117
|
+
int getAllSimPhonebookRecords(std::vector<CABRecord*>& records);
|
118
|
+
CABRecord* getSimRecord(int id);
|
89
119
|
};
|