rhoconnect-client 5.5.0
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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +9 -0
- data/CREDITS +0 -0
- data/LICENSE +9 -0
- data/README.md +47 -0
- data/ext/rhoconnect-client/RhoConnectClient.rb +190 -0
- data/ext/rhoconnect-client/ext/RhoConnectClient.xml +726 -0
- data/ext/rhoconnect-client/ext/build +26 -0
- data/ext/rhoconnect-client/ext/build.bat +30 -0
- data/ext/rhoconnect-client/ext/platform/android/ext_java.files +1 -0
- data/ext/rhoconnect-client/ext/platform/android/ext_native.files +14 -0
- data/ext/rhoconnect-client/ext/platform/android/src/com/rhoconnectclient/RhoconnectClient.java +1 -0
- data/ext/rhoconnect-client/ext/platform/iphone/.gitignore +1 -0
- data/ext/rhoconnect-client/ext/platform/iphone/Rakefile +74 -0
- data/ext/rhoconnect-client/ext/platform/iphone/RhoconnectClient.xcodeproj/project.pbxproj +390 -0
- data/ext/rhoconnect-client/ext/platform/iphone/RhoconnectClient_Prefix.pch +7 -0
- data/ext/rhoconnect-client/ext/platform/iphone/impl/readme.txt +7 -0
- data/ext/rhoconnect-client/ext/platform/qt/Rakefile +35 -0
- data/ext/rhoconnect-client/ext/platform/qt/rhoconnect-client.pro +88 -0
- data/ext/rhoconnect-client/ext/platform/wm/Rhoconnect-client.sln +36 -0
- data/ext/rhoconnect-client/ext/platform/wm/Rhoconnect-client.vcproj +774 -0
- data/ext/rhoconnect-client/ext/platform/wm/Rhoconnect-client.vsprops +15 -0
- data/ext/rhoconnect-client/ext/platform/wm/src/rhoconnectclient_wm.cpp +40 -0
- data/ext/rhoconnect-client/ext/platform/wm/src/rhoconnectclient_wm.h +2 -0
- data/ext/rhoconnect-client/ext/platform/wp8/Rhoconnect-client.props +22 -0
- data/ext/rhoconnect-client/ext/platform/wp8/Rhoconnect-client.sln +32 -0
- data/ext/rhoconnect-client/ext/platform/wp8/Rhoconnect-client.vcxproj +220 -0
- data/ext/rhoconnect-client/ext/platform/wp8/Rhoconnect-client.vcxproj.filters +103 -0
- data/ext/rhoconnect-client/ext/shared/RhoConnectClientImpl.cpp +273 -0
- data/ext/rhoconnect-client/ext/shared/RhoConnectClientImpl.h +60 -0
- data/ext/rhoconnect-client/ext/shared/RhoConnectClientSingletonImpl.h +53 -0
- data/ext/rhoconnect-client/ext/shared/initRhoconnectClient.cpp +207 -0
- data/ext/rhoconnect-client/ext/shared/rhoconnectclient.c +18 -0
- data/ext/rhoconnect-client/ext/shared/sync/ClientRegister.cpp +398 -0
- data/ext/rhoconnect-client/ext/shared/sync/ClientRegister.h +147 -0
- data/ext/rhoconnect-client/ext/shared/sync/ISyncProtocol.h +91 -0
- data/ext/rhoconnect-client/ext/shared/sync/SyncEngine.cpp +1245 -0
- data/ext/rhoconnect-client/ext/shared/sync/SyncEngine.h +213 -0
- data/ext/rhoconnect-client/ext/shared/sync/SyncNotify.cpp +737 -0
- data/ext/rhoconnect-client/ext/shared/sync/SyncNotify.h +209 -0
- data/ext/rhoconnect-client/ext/shared/sync/SyncProtocol_3.h +220 -0
- data/ext/rhoconnect-client/ext/shared/sync/SyncProtocol_4.h +259 -0
- data/ext/rhoconnect-client/ext/shared/sync/SyncSource.cpp +1694 -0
- data/ext/rhoconnect-client/ext/shared/sync/SyncSource.h +212 -0
- data/ext/rhoconnect-client/ext/shared/sync/SyncThread.cpp +583 -0
- data/ext/rhoconnect-client/ext/shared/sync/SyncThread.h +250 -0
- data/ext/rhoconnect-client/ext.yml +12 -0
- data/lib/build/run_rhoconnect_spec.rb +135 -0
- data/lib/rhoconnect-client.rb +3 -0
- data/platform/shared/RhoConnectClient/RhoConnectClient.cpp +1673 -0
- data/platform/shared/RhoConnectClient/RhoConnectClient.h +181 -0
- data/platform/shared/RhoConnectClient/RhoError.h +77 -0
- data/rhoconnect-client/C++/Tests/RhoConnectClientTest.cpp +830 -0
- data/rhoconnect-client/C++/Tests/win32/.gitignore +3 -0
- data/rhoconnect-client/C++/Tests/win32/RhoConnectClient.sln +65 -0
- data/rhoconnect-client/C++/Tests/win32/RhoConnectClient.vcproj +634 -0
- data/rhoconnect-client/C++/Tests/win32/RhoConnectClientTest/RhoConnectClientTest.vcproj +222 -0
- data/rhoconnect-client/C++/Tests/win32/RhoConnectClientTest/stdafx.h +65 -0
- data/rhoconnect-client/C++/Tests/win32/stdafx.h +65 -0
- data/rhoconnect-client/CHANGELOG +18 -0
- data/rhoconnect-client/Java/Android/build/android.rake +387 -0
- data/rhoconnect-client/Java/Android/build/android_sdk.rb +582 -0
- data/rhoconnect-client/Java/Android/build/libcurl_build.files +73 -0
- data/rhoconnect-client/Java/Android/build/libjson_build.files +9 -0
- data/rhoconnect-client/Java/Android/build/librhocommon_build.files +14 -0
- data/rhoconnect-client/Java/Android/build/librhodb_build.files +5 -0
- data/rhoconnect-client/Java/Android/build/librhoimpl_build.files +13 -0
- data/rhoconnect-client/Java/Android/build/librholog_build.files +4 -0
- data/rhoconnect-client/Java/Android/build/libsqlite_build.files +1 -0
- data/rhoconnect-client/Java/Android/build/libsync_build.files +7 -0
- data/rhoconnect-client/Java/Android/build/libunzip_build.files +1 -0
- data/rhoconnect-client/Java/Android/build/rhoconnectclient_build.files +3 -0
- data/rhoconnect-client/Java/Android/build/rhoimpljava_build.files +21 -0
- data/rhoconnect-client/Java/Android/src/com/rhomobile/rhodes/Capabilities.java +63 -0
- data/rhoconnect-client/Java/Android/src/com/rhomobile/rhodes/MemoryInfoCollector.java +79 -0
- data/rhoconnect-client/Java/Android/src/com/rhomobile/rhodes/util/ContextFactory.java +63 -0
- data/rhoconnect-client/Java/Android/test/.classpath +9 -0
- data/rhoconnect-client/Java/Android/test/.project +33 -0
- data/rhoconnect-client/Java/Android/test/AndroidManifest.xml +14 -0
- data/rhoconnect-client/Java/Android/test/assets/apps/androidtest.png +0 -0
- data/rhoconnect-client/Java/Android/test/assets/apps/rhoconfig.txt +19 -0
- data/rhoconnect-client/Java/Android/test/assets/apps/rhoconfig.txt.timestamp +1 -0
- data/rhoconnect-client/Java/Android/test/assets/db/syncdb.schema +44 -0
- data/rhoconnect-client/Java/Android/test/assets/db/syncdb.triggers +10 -0
- data/rhoconnect-client/Java/Android/test/assets/db/syncdb_java.triggers +21 -0
- data/rhoconnect-client/Java/Android/test/assets/rho.dat +9 -0
- data/rhoconnect-client/Java/Android/test/proguard.cfg +36 -0
- data/rhoconnect-client/Java/Android/test/project.properties +11 -0
- data/rhoconnect-client/Java/Android/test/res/drawable-hdpi/icon.png +0 -0
- data/rhoconnect-client/Java/Android/test/res/drawable-ldpi/icon.png +0 -0
- data/rhoconnect-client/Java/Android/test/res/drawable-mdpi/icon.png +0 -0
- data/rhoconnect-client/Java/Android/test/res/layout/main.xml +12 -0
- data/rhoconnect-client/Java/Android/test/res/values/strings.xml +5 -0
- data/rhoconnect-client/Java/Android/test/rhoimpl.jar +0 -0
- data/rhoconnect-client/Java/Android/test/src/com/rhomobile/rhoconnect_client_test/TestRhoConnectClient.java +343 -0
- data/rhoconnect-client/Java/Android/test/src/com/rhomobile/rhoconnect_client_test/TestRhoConnectClientBlobs.java +219 -0
- data/rhoconnect-client/Java/RhoConnect/.classpath +6 -0
- data/rhoconnect-client/Java/RhoConnect/.project +93 -0
- data/rhoconnect-client/Java/RhoConnect/assets/apps/rhoconfig.txt +19 -0
- data/rhoconnect-client/Java/RhoConnect/assets/apps/rhoconfig.txt.timestamp +1 -0
- data/rhoconnect-client/Java/RhoConnect/assets/db/syncdb.schema +44 -0
- data/rhoconnect-client/Java/RhoConnect/assets/db/syncdb.triggers +10 -0
- data/rhoconnect-client/Java/RhoConnect/assets/db/syncdb_java.triggers +21 -0
- data/rhoconnect-client/Java/RhoConnect/assets/rho.dat +8 -0
- data/rhoconnect-client/Java/RhoConnect/jni/include/RhoConnectJniNotify.h +61 -0
- data/rhoconnect-client/Java/RhoConnect/jni/include/com_rhomobile_rhoconnect_RhoConnectClient.h +181 -0
- data/rhoconnect-client/Java/RhoConnect/jni/include/com_rhomobile_rhoconnect_RhoConnectNotify.h +13 -0
- data/rhoconnect-client/Java/RhoConnect/jni/include/com_rhomobile_rhoconnect_RhoConnectNotify_IDelegate.h +13 -0
- data/rhoconnect-client/Java/RhoConnect/jni/include/com_rhomobile_rhoconnect_RhoConnectObjectNotify.h +13 -0
- data/rhoconnect-client/Java/RhoConnect/jni/include/com_rhomobile_rhoconnect_RhoConnectObjectNotify_IDelegate.h +13 -0
- data/rhoconnect-client/Java/RhoConnect/jni/include/com_rhomobile_rhoconnect_RhomModel.h +103 -0
- data/rhoconnect-client/Java/RhoConnect/jni/include/rhojava.inc +76 -0
- data/rhoconnect-client/Java/RhoConnect/jni/src/RhoConnectJniClient.cpp +401 -0
- data/rhoconnect-client/Java/RhoConnect/jni/src/RhoConnectJniModel.cpp +332 -0
- data/rhoconnect-client/Java/RhoConnect/jni/src/RhoConnectJniNotify.cpp +223 -0
- data/rhoconnect-client/Java/RhoConnect/jni/src/RhoConnectUtil.cpp +82 -0
- data/rhoconnect-client/Java/RhoConnect/jni/src/RhodesApp.cpp +114 -0
- data/rhoconnect-client/Java/RhoConnect/src/com/rhomobile/rhoconnect/RhoConnectClient.java +108 -0
- data/rhoconnect-client/Java/RhoConnect/src/com/rhomobile/rhoconnect/RhoConnectNotify.java +78 -0
- data/rhoconnect-client/Java/RhoConnect/src/com/rhomobile/rhoconnect/RhoConnectObjectNotify.java +71 -0
- data/rhoconnect-client/Java/RhoConnect/src/com/rhomobile/rhoconnect/RhomModel.java +195 -0
- data/rhoconnect-client/JavaScript/.classpath +10 -0
- data/rhoconnect-client/JavaScript/.gitignore +4 -0
- data/rhoconnect-client/JavaScript/.project +17 -0
- data/rhoconnect-client/JavaScript/README.textile +1 -0
- data/rhoconnect-client/JavaScript/build.xml +185 -0
- data/rhoconnect-client/JavaScript/doc/fsm-sample.js +44 -0
- data/rhoconnect-client/JavaScript/doc/fsm-sample.png +0 -0
- data/rhoconnect-client/JavaScript/src/RhoSyncJS.gwt.xml +21 -0
- data/rhoconnect-client/JavaScript/stubs/RhoSyncStubsJS.gwt.xml +21 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/Capabilities.java +7 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/IRhoRubyHelper.java +7 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/Mutex.java +5 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/RhoAppAdapter.java +39 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/RhoClassFactory.java +29 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/RhoConf.java +100 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/RhoEmptyLogger.java +7 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/RhoEmptyProfiler.java +5 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/RhoLogger.java +32 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/RhoProfiler.java +27 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/RhodesApp.java +25 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/TimeInterval.java +22 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/Tokenizer.java +23 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/db/DBAdapter.java +174 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/db/DBAttrManager.java +15 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/db/DBException.java +5 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/db/IDBResult.java +27 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/file/IFileAccess.java +7 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/file/SimpleFile.java +15 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/net/IHttpConnection.java +22 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/net/NetRequest.java +324 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/net/NetResponse.java +51 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/net/URI.java +64 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/sync/ClientRegister.java +15 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/sync/JSONArrayIterator.java +37 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/sync/JSONEntry.java +48 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/sync/JSONStructIterator.java +41 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/sync/SyncNotify.java +98 -0
- data/rhoconnect-client/JavaScript/stubs/com/rho/sync/SyncThread.java +92 -0
- data/rhoconnect-client/JavaScript/war/WEB-INF/lib/gwt-servlet-deps.jar +0 -0
- data/rhoconnect-client/JavaScript/war/WEB-INF/lib/gwt-servlet.jar +0 -0
- data/rhoconnect-client/JavaScript/war/js/fsm-sample.js +54 -0
- data/rhoconnect-client/JavaScript/war/js/rhosync-api.js +237 -0
- data/rhoconnect-client/JavaScript/war/js/rhosync-fsm.js +307 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/4C71D69C9BBC9E6F05C6BA49B01BCBC1.cache.html +3122 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/5146F4FFF34511C8BB2661E920B49E3A.cache.html +3254 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/5248C67481D9D27AD0703D15CDBD2A1C.cache.html +3147 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/EE1DC2692C9C32367B53A39E2358AF23.cache.html +3195 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/clear.cache.gif +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/corner.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/corner_ie6.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/hborder.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/hborder_ie6.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/ie6/corner_dialog_topleft.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/ie6/corner_dialog_topright.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/ie6/hborder_blue_shadow.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/ie6/hborder_gray_shadow.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/ie6/vborder_blue_shadow.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/ie6/vborder_gray_shadow.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/splitPanelThumb.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/vborder.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/images/vborder_ie6.png +0 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/standard.css +1144 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/gwt/standard/standard_rtl.css +1145 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/hosted.html +350 -0
- data/rhoconnect-client/JavaScript/war/rhosyncjs/rhosyncjs.nocache.js +314 -0
- data/rhoconnect-client/JavaScript/war/test/SpecRunner.html +35 -0
- data/rhoconnect-client/JavaScript/war/test/dbtest.html +38 -0
- data/rhoconnect-client/JavaScript/war/test/lib/jasmine-1.0.1/MIT.LICENSE +20 -0
- data/rhoconnect-client/JavaScript/war/test/lib/jasmine-1.0.1/jasmine-html.js +188 -0
- data/rhoconnect-client/JavaScript/war/test/lib/jasmine-1.0.1/jasmine.css +166 -0
- data/rhoconnect-client/JavaScript/war/test/lib/jasmine-1.0.1/jasmine.js +2421 -0
- data/rhoconnect-client/JavaScript/war/test/spec/SpecHelper.js +7 -0
- data/rhoconnect-client/JavaScript/war/test/spec/SyncApiSpec.js +573 -0
- data/rhoconnect-client/JavaScript/war/test/spec/samples/PlayerSpec.js +58 -0
- data/rhoconnect-client/JavaScript/war/test/worker-test.js +17 -0
- data/rhoconnect-client/LICENSE +41 -0
- data/rhoconnect-client/ObjectiveC/RhoConnectClient.h +118 -0
- data/rhoconnect-client/ObjectiveC/RhoConnectClient.m +641 -0
- data/rhoconnect-client/ObjectiveC/RhoConnectClient.xcodeproj/project.pbxproj +1434 -0
- data/rhoconnect-client/ObjectiveC/RhoConnectNotify.h +83 -0
- data/rhoconnect-client/ObjectiveC/RhoConnectNotify.m +181 -0
- data/rhoconnect-client/ObjectiveC/RhoConnectObjectNotify.h +65 -0
- data/rhoconnect-client/ObjectiveC/RhoConnectObjectNotify.m +73 -0
- data/rhoconnect-client/ObjectiveC/RhomModel.h +101 -0
- data/rhoconnect-client/ObjectiveC/RhomModel.m +320 -0
- data/rhoconnect-client/ObjectiveC/Tests/RhoConnectClientTest/MainWindow.xib +198 -0
- data/rhoconnect-client/ObjectiveC/Tests/RhoConnectClientTest/RhoConnectClientTest-Info.plist +30 -0
- data/rhoconnect-client/ObjectiveC/Tests/RhoConnectClientTest/RhoConnectClientTest.xcodeproj/project.pbxproj +373 -0
- data/rhoconnect-client/ObjectiveC/Tests/RhoConnectClientTest/RhoConnectClientTestAppDelegate.h +58 -0
- data/rhoconnect-client/ObjectiveC/Tests/RhoConnectClientTest/RhoConnectClientTestAppDelegate.m +84 -0
- data/rhoconnect-client/ObjectiveC/Tests/RhoConnectClientTest/RhoConnectClientTest_Prefix.pch +8 -0
- data/rhoconnect-client/ObjectiveC/Tests/RhoConnectClientTest/invalid_import_db.zip +0 -0
- data/rhoconnect-client/ObjectiveC/Tests/RhoConnectClientTest/main.m +1096 -0
- data/rhoconnect-client/ObjectiveC/Tests/RhoConnectClientTest/test.png +0 -0
- data/rhoconnect-client/ObjectiveC/Tests/RhoConnectClientTest/test2.png +0 -0
- data/rhoconnect-client/ObjectiveC/Tests/RhoConnectClientTest/valid_import_db.zip +0 -0
- data/rhoconnect-client/ObjectiveC/Tests/ptests/Classes/ptestsAppDelegate.h +62 -0
- data/rhoconnect-client/ObjectiveC/Tests/ptests/Classes/ptestsAppDelegate.m +35 -0
- data/rhoconnect-client/ObjectiveC/Tests/ptests/Classes/ptestsViewController.h +78 -0
- data/rhoconnect-client/ObjectiveC/Tests/ptests/Classes/ptestsViewController.m +549 -0
- data/rhoconnect-client/ObjectiveC/Tests/ptests/MainWindow.xib +227 -0
- data/rhoconnect-client/ObjectiveC/Tests/ptests/main.m +17 -0
- data/rhoconnect-client/ObjectiveC/Tests/ptests/ptests-Info.plist +30 -0
- data/rhoconnect-client/ObjectiveC/Tests/ptests/ptests.xcodeproj/project.pbxproj +363 -0
- data/rhoconnect-client/ObjectiveC/Tests/ptests/ptestsViewController.xib +641 -0
- data/rhoconnect-client/ObjectiveC/Tests/ptests/ptests_Prefix.pch +8 -0
- data/rhoconnect-client/README.textile +23 -0
- data/rhoconnect-client/Rakefile +20 -0
- data/rhoconnect-client/Samples/Java/android_store/.classpath +8 -0
- data/rhoconnect-client/Samples/Java/android_store/.project +33 -0
- data/rhoconnect-client/Samples/Java/android_store/AndroidManifest.xml +24 -0
- data/rhoconnect-client/Samples/Java/android_store/assets/apps/rhoconfig.txt +19 -0
- data/rhoconnect-client/Samples/Java/android_store/assets/apps/rhoconfig.txt.timestamp +1 -0
- data/rhoconnect-client/Samples/Java/android_store/assets/db/syncdb.schema +44 -0
- data/rhoconnect-client/Samples/Java/android_store/assets/db/syncdb.triggers +10 -0
- data/rhoconnect-client/Samples/Java/android_store/assets/db/syncdb_java.triggers +21 -0
- data/rhoconnect-client/Samples/Java/android_store/assets/rho.dat +8 -0
- data/rhoconnect-client/Samples/Java/android_store/default.properties +11 -0
- data/rhoconnect-client/Samples/Java/android_store/project.properties +14 -0
- data/rhoconnect-client/Samples/Java/android_store/res/drawable-hdpi/icon.png +0 -0
- data/rhoconnect-client/Samples/Java/android_store/res/drawable-ldpi/icon.png +0 -0
- data/rhoconnect-client/Samples/Java/android_store/res/drawable-mdpi/icon.png +0 -0
- data/rhoconnect-client/Samples/Java/android_store/res/layout/main.xml +12 -0
- data/rhoconnect-client/Samples/Java/android_store/res/values/strings.xml +5 -0
- data/rhoconnect-client/Samples/Java/android_store/rhoimpl.jar +0 -0
- data/rhoconnect-client/Samples/Java/android_store/src/com/rhomobile/android_store/StoreActivity.java +68 -0
- data/rhoconnect-client/Samples/Java/android_store/src/com/rhomobile/android_store/StoreApplication.java +15 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/Classes/LoginViewController.h +70 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/Classes/LoginViewController.m +94 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/Classes/RhoConnectEngine.h +82 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/Classes/RhoConnectEngine.m +119 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/Classes/RootViewController.h +63 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/Classes/RootViewController.m +314 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/Classes/WaitLoginController.h +65 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/Classes/WaitLoginController.m +110 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/Classes/storeAppDelegate.h +61 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/Classes/storeAppDelegate.m +171 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/LoginViewController.xib +779 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/MainWindow.xib +580 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/RootViewController.xib +384 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/WaitLoginController.xib +557 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/icon.png +0 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/main.m +22 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/store-Info.plist +30 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/store.xcodeproj/project.pbxproj +367 -0
- data/rhoconnect-client/Samples/ObjectiveC/store/store_Prefix.pch +14 -0
- data/rhoconnect-client/build.yml +3 -0
- data/rhoconnect-client/version +1 -0
- metadata +314 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
//
|
|
2
|
+
// LoginViewController.m
|
|
3
|
+
// store
|
|
4
|
+
//
|
|
5
|
+
// Created by Vlad on 8/30/10.
|
|
6
|
+
// Copyright 2010 __MyCompanyName__. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#import "RhoConnectEngine.h"
|
|
10
|
+
#import "LoginViewController.h"
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@implementation LoginViewController
|
|
14
|
+
|
|
15
|
+
@synthesize txtLogin, txtPassword, waitPage, indexPage;
|
|
16
|
+
|
|
17
|
+
- (void)viewDidLoad
|
|
18
|
+
{
|
|
19
|
+
if ( [RhoConnectEngine sharedInstance].loginState == logged_in )
|
|
20
|
+
[[self navigationController] pushViewController:indexPage animated:YES];
|
|
21
|
+
else
|
|
22
|
+
[super viewDidLoad];
|
|
23
|
+
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
- (void)loginComplete:(RhoConnectNotify*) notify
|
|
27
|
+
{
|
|
28
|
+
if ( notify.error_code != RHO_ERR_NONE || ![[RhoConnectEngine sharedInstance].syncClient is_logged_in])
|
|
29
|
+
[RhoConnectEngine sharedInstance].loginState = failed;
|
|
30
|
+
else
|
|
31
|
+
[RhoConnectEngine sharedInstance].loginState = logged_in;
|
|
32
|
+
|
|
33
|
+
NSString* error_message = notify.error_message;
|
|
34
|
+
if ( error_message == nil || error_message.length == 0 )
|
|
35
|
+
error_message = [NSString stringWithFormat:@"Error code: %d", notify.error_code];
|
|
36
|
+
|
|
37
|
+
[waitPage loginComplete: error_message ];
|
|
38
|
+
|
|
39
|
+
//[notify release];
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
- (IBAction)doLogin:(id)sender
|
|
43
|
+
{
|
|
44
|
+
[RhoConnectEngine sharedInstance].loginState = in_progress;
|
|
45
|
+
[[self navigationController] pushViewController:waitPage animated:YES];
|
|
46
|
+
|
|
47
|
+
[ [RhoConnectEngine sharedInstance].syncClient loginWithUser:txtLogin.text pwd:txtPassword.text callback:@selector(loginComplete:) target:self];
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/*
|
|
51
|
+
// The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
|
|
52
|
+
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
|
|
53
|
+
if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
|
|
54
|
+
// Custom initialization
|
|
55
|
+
}
|
|
56
|
+
return self;
|
|
57
|
+
}
|
|
58
|
+
*/
|
|
59
|
+
|
|
60
|
+
/*
|
|
61
|
+
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
|
|
62
|
+
- (void)viewDidLoad {
|
|
63
|
+
[super viewDidLoad];
|
|
64
|
+
}
|
|
65
|
+
*/
|
|
66
|
+
|
|
67
|
+
/*
|
|
68
|
+
// Override to allow orientations other than the default portrait orientation.
|
|
69
|
+
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
|
|
70
|
+
// Return YES for supported orientations
|
|
71
|
+
return (interfaceOrientation == UIInterfaceOrientationPortrait);
|
|
72
|
+
}
|
|
73
|
+
*/
|
|
74
|
+
|
|
75
|
+
- (void)didReceiveMemoryWarning {
|
|
76
|
+
// Releases the view if it doesn't have a superview.
|
|
77
|
+
[super didReceiveMemoryWarning];
|
|
78
|
+
|
|
79
|
+
// Release any cached data, images, etc that aren't in use.
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
- (void)viewDidUnload {
|
|
83
|
+
[super viewDidUnload];
|
|
84
|
+
// Release any retained subviews of the main view.
|
|
85
|
+
// e.g. self.myOutlet = nil;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
- (void)dealloc {
|
|
90
|
+
[super dealloc];
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
@end
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/*------------------------------------------------------------------------
|
|
2
|
+
* (The MIT License)
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2008-2011 Rhomobile, Inc.
|
|
5
|
+
*
|
|
6
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
* in the Software without restriction, including without limitation the rights
|
|
9
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
* furnished to do so, subject to the following conditions:
|
|
12
|
+
*
|
|
13
|
+
* The above copyright notice and this permission notice shall be included in
|
|
14
|
+
* all copies or substantial portions of the Software.
|
|
15
|
+
*
|
|
16
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
22
|
+
* THE SOFTWARE.
|
|
23
|
+
*
|
|
24
|
+
* http://rhomobile.com
|
|
25
|
+
|
|
26
|
+
* Copyright (c) 2011-2016 Symbol Technologies, Inc.
|
|
27
|
+
*
|
|
28
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
29
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
30
|
+
* in the Software without restriction, including without limitation the rights
|
|
31
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
32
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
33
|
+
* furnished to do so, subject to the following conditions:
|
|
34
|
+
*
|
|
35
|
+
* The above copyright notice and this permission notice shall be included in
|
|
36
|
+
* all copies or substantial portions of the Software.
|
|
37
|
+
*
|
|
38
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
39
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
40
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
41
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
42
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
43
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
44
|
+
* THE SOFTWARE.
|
|
45
|
+
*
|
|
46
|
+
* http://symbol.com
|
|
47
|
+
*------------------------------------------------------------------------*/
|
|
48
|
+
|
|
49
|
+
#import <Foundation/Foundation.h>
|
|
50
|
+
#import "../../../../ObjectiveC/RhoConnectClient.h"
|
|
51
|
+
|
|
52
|
+
enum LoginState {
|
|
53
|
+
logged_out,
|
|
54
|
+
logged_in,
|
|
55
|
+
in_progress,
|
|
56
|
+
failed
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
@interface RhoConnectEngine : NSObject {
|
|
60
|
+
enum LoginState loginState;
|
|
61
|
+
|
|
62
|
+
RhomModel* customer;
|
|
63
|
+
RhomModel* product;
|
|
64
|
+
RhoConnectClient* sclient;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
+ (void)create;
|
|
68
|
+
+ (void)destroy;
|
|
69
|
+
|
|
70
|
+
+ (RhoConnectEngine *)sharedInstance;
|
|
71
|
+
|
|
72
|
+
@property enum LoginState loginState;
|
|
73
|
+
|
|
74
|
+
@property(readonly, getter=getSClient) RhoConnectClient* syncClient;
|
|
75
|
+
|
|
76
|
+
@property(readonly) RhomModel* product;
|
|
77
|
+
|
|
78
|
+
- (void)dealloc;
|
|
79
|
+
|
|
80
|
+
@end
|
|
81
|
+
|
|
82
|
+
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
//
|
|
2
|
+
// syncEngine.m
|
|
3
|
+
// store
|
|
4
|
+
//
|
|
5
|
+
// Created by Vlad on 8/30/10.
|
|
6
|
+
// Copyright 2010 __MyCompanyName__. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#import "RhoConnectEngine.h"
|
|
10
|
+
|
|
11
|
+
@implementation RhoConnectEngine
|
|
12
|
+
|
|
13
|
+
@synthesize loginState;
|
|
14
|
+
@synthesize product;
|
|
15
|
+
|
|
16
|
+
static RhoConnectEngine *sharedInst = nil;
|
|
17
|
+
|
|
18
|
+
+ (void)create
|
|
19
|
+
{
|
|
20
|
+
@synchronized( self ) {
|
|
21
|
+
if ( sharedInst == nil ) {
|
|
22
|
+
/* sharedInst set up in init */
|
|
23
|
+
[[self alloc] init];
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
+ (void)destroy
|
|
29
|
+
{
|
|
30
|
+
if ( sharedInst )
|
|
31
|
+
{
|
|
32
|
+
[sharedInst dealloc];
|
|
33
|
+
sharedInst = nil;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
+ (id)sharedInstance
|
|
38
|
+
{
|
|
39
|
+
return sharedInst;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
- (id)init
|
|
43
|
+
{
|
|
44
|
+
if ( sharedInst != nil ) {
|
|
45
|
+
[NSException raise:NSInternalInconsistencyException
|
|
46
|
+
format:@"[%@ %@] cannot be called; use +[%@ %@] instead",
|
|
47
|
+
NSStringFromClass([self class]), NSStringFromSelector(_cmd),
|
|
48
|
+
NSStringFromClass([self class]),
|
|
49
|
+
NSStringFromSelector(@selector(sharedInstance))];
|
|
50
|
+
} else if ( self = [super init] ) {
|
|
51
|
+
sharedInst = self;
|
|
52
|
+
|
|
53
|
+
[RhoConnectClient initDatabase];
|
|
54
|
+
|
|
55
|
+
customer = [[RhomModel alloc] init];
|
|
56
|
+
customer.name = @"Customer";
|
|
57
|
+
|
|
58
|
+
product = [[RhomModel alloc] init];
|
|
59
|
+
product.name = @"Product";
|
|
60
|
+
|
|
61
|
+
sclient = [[RhoConnectClient alloc] init];
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
NSMutableArray* models = [NSMutableArray arrayWithObjects:customer, product, nil];
|
|
65
|
+
|
|
66
|
+
[sclient addModels:models];
|
|
67
|
+
|
|
68
|
+
[sclient setLogSeverity:1];
|
|
69
|
+
|
|
70
|
+
//sclient.sync_server = @"http://store-bulk.rhohub.com";
|
|
71
|
+
//sclient.sync_server = @"http://rhodes-store-server.herokuapp.com";
|
|
72
|
+
sclient.sync_server = @"http://localhost:9292";
|
|
73
|
+
//sclient.sync_server = @"http://localhost:9292/application";
|
|
74
|
+
sclient.threaded_mode = TRUE;
|
|
75
|
+
|
|
76
|
+
loginState = [sclient is_logged_in] ? logged_in : logged_out;
|
|
77
|
+
}
|
|
78
|
+
return sharedInst;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
- (void)dealloc
|
|
82
|
+
{
|
|
83
|
+
[customer release];
|
|
84
|
+
[product release];
|
|
85
|
+
[sclient release];
|
|
86
|
+
|
|
87
|
+
[super dealloc];
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
- (RhoConnectClient*) getSClient
|
|
91
|
+
{
|
|
92
|
+
return sclient;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/* These probably do nothing in
|
|
96
|
+
a GC app. Keeps singleton
|
|
97
|
+
as an actual singleton in a
|
|
98
|
+
non CG app
|
|
99
|
+
*/
|
|
100
|
+
- (NSUInteger)retainCount
|
|
101
|
+
{
|
|
102
|
+
return NSUIntegerMax;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
- (oneway void)release
|
|
106
|
+
{
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
- (id)retain
|
|
110
|
+
{
|
|
111
|
+
return sharedInst;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
- (id)autorelease
|
|
115
|
+
{
|
|
116
|
+
return sharedInst;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
@end
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/*------------------------------------------------------------------------
|
|
2
|
+
* (The MIT License)
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2008-2011 Rhomobile, Inc.
|
|
5
|
+
*
|
|
6
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
* in the Software without restriction, including without limitation the rights
|
|
9
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
* furnished to do so, subject to the following conditions:
|
|
12
|
+
*
|
|
13
|
+
* The above copyright notice and this permission notice shall be included in
|
|
14
|
+
* all copies or substantial portions of the Software.
|
|
15
|
+
*
|
|
16
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
22
|
+
* THE SOFTWARE.
|
|
23
|
+
*
|
|
24
|
+
* http://rhomobile.com
|
|
25
|
+
|
|
26
|
+
* Copyright (c) 2011-2016 Symbol Technologies, Inc.
|
|
27
|
+
*
|
|
28
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
29
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
30
|
+
* in the Software without restriction, including without limitation the rights
|
|
31
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
32
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
33
|
+
* furnished to do so, subject to the following conditions:
|
|
34
|
+
*
|
|
35
|
+
* The above copyright notice and this permission notice shall be included in
|
|
36
|
+
* all copies or substantial portions of the Software.
|
|
37
|
+
*
|
|
38
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
39
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
40
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
41
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
42
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
43
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
44
|
+
* THE SOFTWARE.
|
|
45
|
+
*
|
|
46
|
+
* http://symbol.com
|
|
47
|
+
*------------------------------------------------------------------------*/
|
|
48
|
+
|
|
49
|
+
#import <UIKit/UIKit.h>
|
|
50
|
+
|
|
51
|
+
@interface RootViewController : UITableViewController {
|
|
52
|
+
NSObject* arItems;
|
|
53
|
+
NSString *CurrentTitle;
|
|
54
|
+
NSInteger CurrentLevel;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@property (nonatomic, retain) NSObject *arItems;
|
|
58
|
+
@property (nonatomic, retain) NSString *CurrentTitle;
|
|
59
|
+
@property (nonatomic, readwrite) NSInteger CurrentLevel;
|
|
60
|
+
|
|
61
|
+
-(UITableViewCell *)reuseTableViewCellWithIdentifier:(NSString *)identifier;
|
|
62
|
+
|
|
63
|
+
@end
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
//
|
|
2
|
+
// RootViewController.m
|
|
3
|
+
// store
|
|
4
|
+
//
|
|
5
|
+
// Created by Vlad on 8/30/10.
|
|
6
|
+
// Copyright __MyCompanyName__ 2010. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#import "RootViewController.h"
|
|
10
|
+
#import "RhoConnectEngine.h"
|
|
11
|
+
|
|
12
|
+
#define ROW_HEIGHT 40
|
|
13
|
+
#define CELL_WIDTH 320.0
|
|
14
|
+
#define LABEL_HEIGHT 20
|
|
15
|
+
|
|
16
|
+
//Lets define the dimensions of the two columns
|
|
17
|
+
//Set the column offset and the width.
|
|
18
|
+
#define NAME_OFFSET 10.0
|
|
19
|
+
#define NAME_WIDTH 150.0
|
|
20
|
+
#define NAME_TAG 1
|
|
21
|
+
|
|
22
|
+
#define TEXT_OFFSET 160.0
|
|
23
|
+
#define TEXT_WIDTH 160.0
|
|
24
|
+
#define TEXT_TAG 2
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
@implementation RootViewController
|
|
28
|
+
|
|
29
|
+
@synthesize CurrentLevel;
|
|
30
|
+
@synthesize CurrentTitle;
|
|
31
|
+
@synthesize arItems;
|
|
32
|
+
|
|
33
|
+
#pragma mark -
|
|
34
|
+
#pragma mark View lifecycle
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
- (void)viewDidLoad {
|
|
38
|
+
[super viewDidLoad];
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
if(CurrentLevel == 0) {
|
|
42
|
+
self.navigationItem.title = @"Home";
|
|
43
|
+
self.navigationItem.hidesBackButton = true;
|
|
44
|
+
} else {
|
|
45
|
+
self.navigationItem.title = CurrentTitle;
|
|
46
|
+
self.navigationItem.hidesBackButton = false;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
|
|
50
|
+
// self.navigationItem.rightBarButtonItem = self.editButtonItem;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/*
|
|
54
|
+
- (void)viewWillAppear:(BOOL)animated {
|
|
55
|
+
[super viewWillAppear:animated];
|
|
56
|
+
}
|
|
57
|
+
*/
|
|
58
|
+
/*
|
|
59
|
+
- (void)viewDidAppear:(BOOL)animated {
|
|
60
|
+
[super viewDidAppear:animated];
|
|
61
|
+
}
|
|
62
|
+
*/
|
|
63
|
+
/*
|
|
64
|
+
- (void)viewWillDisappear:(BOOL)animated {
|
|
65
|
+
[super viewWillDisappear:animated];
|
|
66
|
+
}
|
|
67
|
+
*/
|
|
68
|
+
/*
|
|
69
|
+
- (void)viewDidDisappear:(BOOL)animated {
|
|
70
|
+
[super viewDidDisappear:animated];
|
|
71
|
+
}
|
|
72
|
+
*/
|
|
73
|
+
|
|
74
|
+
/*
|
|
75
|
+
// Override to allow orientations other than the default portrait orientation.
|
|
76
|
+
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
|
|
77
|
+
// Return YES for supported orientations.
|
|
78
|
+
return (interfaceOrientation == UIInterfaceOrientationPortrait);
|
|
79
|
+
}
|
|
80
|
+
*/
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
#pragma mark -
|
|
84
|
+
#pragma mark Table view data source
|
|
85
|
+
|
|
86
|
+
// Customize the number of sections in the table view.
|
|
87
|
+
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
|
|
88
|
+
return 1;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
// Customize the number of rows in the table view.
|
|
93
|
+
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
|
|
94
|
+
{
|
|
95
|
+
if (!arItems)
|
|
96
|
+
[self setArItems: [[RhoConnectEngine sharedInstance].product find_all:nil]];
|
|
97
|
+
|
|
98
|
+
//warning here because this may be dictionary or an array when called.
|
|
99
|
+
return (NSUInteger)[arItems count];
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// Customize the appearance of table view cells.
|
|
103
|
+
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
104
|
+
|
|
105
|
+
static NSString *CellIdentifier = @"Cell";
|
|
106
|
+
static NSString *ColumnCellIdentifier = @"ColumnCell";
|
|
107
|
+
|
|
108
|
+
UITableViewCell *cell;
|
|
109
|
+
|
|
110
|
+
if([arItems isKindOfClass:NSClassFromString(@"NSMutableArray")]) {
|
|
111
|
+
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
|
|
112
|
+
if (cell == nil) {
|
|
113
|
+
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// Configure the cell.
|
|
117
|
+
NSDictionary* item = [(NSMutableArray *)arItems objectAtIndex: indexPath.row ];
|
|
118
|
+
cell.textLabel.text = [item valueForKey:@"name"];
|
|
119
|
+
} else if([arItems isKindOfClass:NSClassFromString(@"NSDictionary")]) {
|
|
120
|
+
|
|
121
|
+
cell = [tableView dequeueReusableCellWithIdentifier:ColumnCellIdentifier];
|
|
122
|
+
if(cell == nil)
|
|
123
|
+
cell = [self reuseTableViewCellWithIdentifier:ColumnCellIdentifier];
|
|
124
|
+
|
|
125
|
+
NSString *key = [[(NSDictionary *)arItems allKeys] objectAtIndex:indexPath.row];
|
|
126
|
+
|
|
127
|
+
UILabel *lbl = (UILabel *)[cell viewWithTag:NAME_TAG];
|
|
128
|
+
lbl.text = key;
|
|
129
|
+
|
|
130
|
+
UILabel *lblText = (UILabel *)[cell viewWithTag:TEXT_TAG];
|
|
131
|
+
lblText.text = [arItems valueForKey:key];
|
|
132
|
+
}
|
|
133
|
+
return cell;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
/*
|
|
138
|
+
// Override to support conditional editing of the table view.
|
|
139
|
+
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
140
|
+
// Return NO if you do not want the specified item to be editable.
|
|
141
|
+
return YES;
|
|
142
|
+
}
|
|
143
|
+
*/
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
/*
|
|
147
|
+
// Override to support editing the table view.
|
|
148
|
+
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
149
|
+
|
|
150
|
+
if (editingStyle == UITableViewCellEditingStyleDelete) {
|
|
151
|
+
// Delete the row from the data source.
|
|
152
|
+
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
|
|
153
|
+
}
|
|
154
|
+
else if (editingStyle == UITableViewCellEditingStyleInsert) {
|
|
155
|
+
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view.
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
*/
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
/*
|
|
162
|
+
// Override to support rearranging the table view.
|
|
163
|
+
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
|
|
164
|
+
}
|
|
165
|
+
*/
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
/*
|
|
169
|
+
// Override to support conditional rearranging of the table view.
|
|
170
|
+
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
171
|
+
// Return NO if you do not want the item to be re-orderable.
|
|
172
|
+
return YES;
|
|
173
|
+
}
|
|
174
|
+
*/
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
#pragma mark -
|
|
178
|
+
#pragma mark Table view delegate
|
|
179
|
+
|
|
180
|
+
- (void)doSyncAllTest {
|
|
181
|
+
[[RhoConnectEngine sharedInstance].syncClient setNotification: @selector(syncAllCalback:) target:self];
|
|
182
|
+
[[RhoConnectEngine sharedInstance].syncClient syncAll];
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
186
|
+
|
|
187
|
+
//if (indexPath.row == 3) {
|
|
188
|
+
// [self doSyncAllTest];
|
|
189
|
+
// return;
|
|
190
|
+
//}
|
|
191
|
+
|
|
192
|
+
if([arItems isKindOfClass:NSClassFromString(@"NSMutableArray")]) {
|
|
193
|
+
//Get the dictionary of the selected data source.
|
|
194
|
+
NSDictionary *dictionary = [(NSMutableArray *)arItems objectAtIndex:indexPath.row];
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
//Prepare to tableview.
|
|
198
|
+
RootViewController *rvController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:[NSBundle mainBundle]];
|
|
199
|
+
|
|
200
|
+
//Increment the Current View
|
|
201
|
+
rvController.CurrentLevel += 1;
|
|
202
|
+
|
|
203
|
+
//Set the title;
|
|
204
|
+
rvController.CurrentTitle = [dictionary objectForKey:@"name"];
|
|
205
|
+
|
|
206
|
+
//Push the new table view on the stack
|
|
207
|
+
[self.navigationController pushViewController:rvController animated:YES];
|
|
208
|
+
|
|
209
|
+
rvController.arItems = dictionary;
|
|
210
|
+
|
|
211
|
+
[rvController release];
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
- (void)syncAllCalback:(RhoConnectNotify*) notify {
|
|
216
|
+
NSString* status = notify.status;
|
|
217
|
+
NSString* error = notify.error_message;
|
|
218
|
+
int err_code = notify.error_code;
|
|
219
|
+
|
|
220
|
+
NSLog(@"syncAll DONE, status: '%s' , error_msg: '%s' , error_code: %d",
|
|
221
|
+
[status cStringUsingEncoding: NSUTF8StringEncoding],
|
|
222
|
+
[error cStringUsingEncoding: NSUTF8StringEncoding],
|
|
223
|
+
err_code
|
|
224
|
+
);
|
|
225
|
+
|
|
226
|
+
if ( [notify.status compare:@"in_progress"] == 0) {
|
|
227
|
+
|
|
228
|
+
} else if ([notify.status compare:@"complete"] == 0) {
|
|
229
|
+
|
|
230
|
+
[[RhoConnectEngine sharedInstance].syncClient clearNotification];
|
|
231
|
+
|
|
232
|
+
} else if ([notify.status compare:@"error"] == 0) {
|
|
233
|
+
|
|
234
|
+
if([notify.error_message caseInsensitiveCompare:@"unknown client"] == 0) {
|
|
235
|
+
[[RhoConnectEngine sharedInstance].syncClient database_client_reset];
|
|
236
|
+
[[RhoConnectEngine sharedInstance].syncClient setNotification: @selector(syncAllCalback:) target:self];
|
|
237
|
+
[[RhoConnectEngine sharedInstance].syncClient syncAll];
|
|
238
|
+
} else if( err_code == RHO_ERR_CLIENTISNOTLOGGEDIN
|
|
239
|
+
|| err_code == RHO_ERR_UNATHORIZED) {
|
|
240
|
+
|
|
241
|
+
NSLog(@"GO TO LOGIN PAGE!");
|
|
242
|
+
// real code to trigger view transition goes here..
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
#pragma mark -
|
|
248
|
+
#pragma mark Memory management
|
|
249
|
+
|
|
250
|
+
- (void)didReceiveMemoryWarning {
|
|
251
|
+
// Releases the view if it doesn't have a superview.
|
|
252
|
+
[super didReceiveMemoryWarning];
|
|
253
|
+
|
|
254
|
+
// Relinquish ownership any cached data, images, etc that aren't in use.
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
- (void)viewDidUnload {
|
|
258
|
+
// Relinquish ownership of anything that can be recreated in viewDidLoad or on demand.
|
|
259
|
+
// For example: self.myOutlet = nil;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
- (void)dealloc {
|
|
264
|
+
[super dealloc];
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
#pragma mark -
|
|
269
|
+
#pragma mark Custom Cell
|
|
270
|
+
-(UITableViewCell *)reuseTableViewCellWithIdentifier:(NSString *)identifier {
|
|
271
|
+
|
|
272
|
+
//Rectangle which will be used to create labels and table view cell.
|
|
273
|
+
CGRect cellRectangle;
|
|
274
|
+
|
|
275
|
+
//Returns a rectangle with the coordinates and dimensions.
|
|
276
|
+
cellRectangle = CGRectMake(0.0, 0.0, CELL_WIDTH, ROW_HEIGHT);
|
|
277
|
+
|
|
278
|
+
//Initialize a UITableViewCell with the rectangle we created.
|
|
279
|
+
UITableViewCell *cell = [[[UITableViewCell alloc] initWithFrame:cellRectangle reuseIdentifier:identifier] autorelease];
|
|
280
|
+
|
|
281
|
+
//Now we have to create the two labels.
|
|
282
|
+
UILabel *label;
|
|
283
|
+
|
|
284
|
+
//Create a rectangle container for the number text.
|
|
285
|
+
cellRectangle = CGRectMake(NAME_OFFSET, (ROW_HEIGHT - LABEL_HEIGHT) / 2.0, NAME_WIDTH, LABEL_HEIGHT);
|
|
286
|
+
|
|
287
|
+
//Initialize the label with the rectangle.
|
|
288
|
+
label = [[UILabel alloc] initWithFrame:cellRectangle];
|
|
289
|
+
|
|
290
|
+
//Mark the label with a tag
|
|
291
|
+
label.tag = NAME_TAG;
|
|
292
|
+
|
|
293
|
+
//Add the label as a sub view to the cell.
|
|
294
|
+
[cell.contentView addSubview:label];
|
|
295
|
+
[label release];
|
|
296
|
+
|
|
297
|
+
//Create a rectangle container for the custom text.
|
|
298
|
+
cellRectangle = CGRectMake(TEXT_OFFSET, (ROW_HEIGHT - LABEL_HEIGHT) / 2.0, TEXT_WIDTH, LABEL_HEIGHT);
|
|
299
|
+
|
|
300
|
+
//Initialize the label with the rectangle.
|
|
301
|
+
label = [[UILabel alloc] initWithFrame:cellRectangle];
|
|
302
|
+
|
|
303
|
+
//Mark the label with a tag
|
|
304
|
+
label.tag = TEXT_TAG;
|
|
305
|
+
|
|
306
|
+
//Add the label as a sub view to the cell.
|
|
307
|
+
[cell.contentView addSubview:label];
|
|
308
|
+
[label release];
|
|
309
|
+
|
|
310
|
+
return cell;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
@end
|
|
314
|
+
|