rhodes 3.3.1 → 3.3.2.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (157) hide show
  1. data/CHANGELOG +9 -2
  2. data/Manifest.txt +20 -0
  3. data/Rakefile +2 -1
  4. data/doc/build.txt +9 -3
  5. data/doc/configuration.txt +5 -1
  6. data/doc/device-caps.txt +112 -27
  7. data/doc/extensions.txt +0 -51
  8. data/doc/generator.txt +6 -0
  9. data/doc/rhom.txt +3 -0
  10. data/doc/simulator.txt +57 -17
  11. data/doc/ui.txt +24 -27
  12. data/installer/RHOELEMENTS-EULA.txt +295 -0
  13. data/installer/Rakefile +75 -49
  14. data/installer/rhostudio-moto.nsi +534 -0
  15. data/installer/rhostudio.nsi +13 -4
  16. data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/barcode.m +3 -0
  17. data/lib/framework/rho/rhoapplication.rb +4 -0
  18. data/lib/framework/rho/rhoevent.rb +2 -3
  19. data/lib/framework/rho/rhoevent_c.rb +2 -2
  20. data/lib/framework/rho/rhofsconnector.rb +24 -2
  21. data/lib/framework/rhodes.rb +1 -1
  22. data/lib/framework/version.rb +1 -1
  23. data/lib/rhodes.rb +1 -1
  24. data/platform/android/Rhodes/AndroidManifest.xml +3 -3
  25. data/platform/android/Rhodes/gen/com/rhomobile/rhodes/R.java +164 -90
  26. data/platform/android/Rhodes/jni/src/signature.cpp +13 -3
  27. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoCryptImpl.java +76 -34
  28. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesActivity.java +3 -4
  29. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java +1 -1
  30. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SplashScreen.java +10 -2
  31. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/AnnotationsOverlay.java +0 -3
  32. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/Callout.java +6 -5
  33. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/GoogleMapView.java +0 -1
  34. data/platform/android/Rhodes/src/com/rhomobile/rhodes/signature/ImageCapture.java +7 -1
  35. data/platform/android/Rhodes/src/com/rhomobile/rhodes/signature/Signature.java +46 -6
  36. data/platform/android/Rhodes/src/com/rhomobile/rhodes/signature/SignatureView.java +29 -1
  37. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/ChromeClientOld.java +2 -0
  38. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/GoogleWebView.java +4 -0
  39. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebSettingsOld.java +10 -2
  40. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebViewClient.java +3 -2
  41. data/platform/android/build/android.rake +6 -27
  42. data/platform/android/build/androidcommon.rb +1 -1
  43. data/platform/bb/rhodes/src/com/rho/rubyext/GeoLocation.java +26 -0
  44. data/platform/iphone/Classes/AppManager/AppManager.h +1 -0
  45. data/platform/iphone/Classes/AppManager/AppManager.m +70 -12
  46. data/platform/iphone/Classes/Camera/PickImageDelegate.m +1 -1
  47. data/platform/iphone/Classes/Event/Event.m +38 -3
  48. data/platform/iphone/Classes/Rhodes.m +3 -2
  49. data/platform/iphone/Classes/Signature/SignatureDelegate.m +1 -1
  50. data/platform/iphone/Info.plist +1 -1
  51. data/platform/iphone/rbuild/iphone.rake +8 -8
  52. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Frameworks/QtCore.framework/Versions/4/QtCore +0 -0
  53. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Frameworks/QtGui.framework/Versions/4/QtGui +0 -0
  54. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Frameworks/QtNetwork.framework/Versions/4/QtNetwork +0 -0
  55. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Frameworks/QtWebKit.framework/Versions/4/QtWebKit +0 -0
  56. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Frameworks/phonon.framework/Versions/4/phonon +0 -0
  57. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Info.plist +1 -1
  58. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/MacOS/RhoSimulator +0 -0
  59. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/accessible/libqtaccessiblewidgets.dylib +0 -0
  60. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/bearer/libqcorewlanbearer.dylib +0 -0
  61. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/bearer/libqgenericbearer.dylib +0 -0
  62. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/codecs/libqcncodecs.dylib +0 -0
  63. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/codecs/libqjpcodecs.dylib +0 -0
  64. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/codecs/libqkrcodecs.dylib +0 -0
  65. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/codecs/libqtwcodecs.dylib +0 -0
  66. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/graphicssystems/libqtracegraphicssystem.dylib +0 -0
  67. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/imageformats/libqgif.dylib +0 -0
  68. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/imageformats/libqico.dylib +0 -0
  69. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/imageformats/libqjpeg.dylib +0 -0
  70. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/imageformats/libqmng.dylib +0 -0
  71. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/imageformats/libqtiff.dylib +0 -0
  72. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/phonon_backend/libphonon_qt7.dylib +0 -0
  73. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/qmltooling/libqmldbg_tcp.dylib +0 -0
  74. data/platform/osx/bin/RhoSimulator/RhoSimulatorMac.zip +0 -0
  75. data/platform/osx/build/osx.rake +1 -1
  76. data/platform/shared/RhoConnectClient/RhoConnectClient.cpp +1 -1
  77. data/platform/shared/common/RhoConf.cpp +15 -6
  78. data/platform/shared/common/RhoConf.h +6 -1
  79. data/platform/shared/common/RhodesApp.cpp +19 -6
  80. data/platform/shared/common/RhodesApp.h +4 -2
  81. data/platform/shared/common/RhodesAppBase.cpp +18 -10
  82. data/platform/shared/common/RhodesAppBase.h +6 -3
  83. data/platform/shared/common/map/GeocodingMapEngine.h +2 -2
  84. data/platform/shared/logging/RhoLogConf.cpp +14 -8
  85. data/platform/shared/logging/RhoLogConf.h +1 -0
  86. data/platform/shared/net/HttpServer.cpp +15 -3
  87. data/platform/shared/net/HttpServer.h +2 -1
  88. data/platform/shared/qt/curl/curl.pro +1 -1
  89. data/platform/shared/qt/rhodes/QtMainWindow.h +1 -1
  90. data/platform/shared/qt/rhodes/impl/MainWindowImpl.cpp +2 -2
  91. data/platform/shared/qt/rhodes/main.cpp +2 -1
  92. data/platform/shared/ruby/ext/rho/rhoruby.c +1 -0
  93. data/platform/shared/ruby/ext/rho/rhosupport.c +11 -1
  94. data/platform/shared/sync/SyncNotify.cpp +1 -2
  95. data/platform/shared/sync/SyncNotify.h +2 -2
  96. data/platform/shared/sync/SyncThread.cpp +27 -12
  97. data/platform/shared/sync/SyncThread.h +2 -0
  98. data/platform/shared/unzip/unzip.cpp +3 -2
  99. data/platform/win32/RhoSimulator/Microsoft.VC80.CRT.manifest +8 -0
  100. data/platform/win32/RhoSimulator/Microsoft.VC80.OpenMP.manifest +7 -0
  101. data/platform/win32/RhoSimulator/QtCore4.dll +0 -0
  102. data/platform/win32/RhoSimulator/QtGui4.dll +0 -0
  103. data/platform/win32/RhoSimulator/QtNetwork4.dll +0 -0
  104. data/platform/win32/RhoSimulator/QtWebKit4.dll +0 -0
  105. data/platform/win32/RhoSimulator/RhoSimulator.exe +0 -0
  106. data/platform/win32/RhoSimulator/imageformats/qgif4.dll +0 -0
  107. data/platform/win32/RhoSimulator/imageformats/qico4.dll +0 -0
  108. data/platform/win32/RhoSimulator/imageformats/qjpeg4.dll +0 -0
  109. data/platform/win32/RhoSimulator/imageformats/qmng4.dll +0 -0
  110. data/platform/win32/RhoSimulator/imageformats/qsvg4.dll +0 -0
  111. data/platform/win32/RhoSimulator/imageformats/qtiff4.dll +0 -0
  112. data/platform/win32/RhoSimulator/libeay32.dll +0 -0
  113. data/platform/win32/RhoSimulator/msvcm80.dll +0 -0
  114. data/platform/win32/RhoSimulator/msvcp80.dll +0 -0
  115. data/platform/win32/RhoSimulator/msvcr80.dll +0 -0
  116. data/platform/win32/RhoSimulator/ssleay32.dll +0 -0
  117. data/platform/win32/RhoSimulator/vcomp.dll +0 -0
  118. data/platform/wm/build/rhodes.nsi +316 -0
  119. data/platform/wm/build/wm.rake +57 -10
  120. data/platform/wm/rhodes/Rhodes.cpp +2 -1
  121. data/platform/wm/rhodes/rhodes.vcproj +2 -0
  122. data/platform/wm/tools/wmdc_connect.sln +20 -0
  123. data/platform/wm/tools/wmdc_connect/stdafx.cpp +27 -0
  124. data/platform/wm/tools/wmdc_connect/stdafx.h +35 -0
  125. data/platform/wm/tools/wmdc_connect/wmdc_connect.cpp +119 -0
  126. data/platform/wm/tools/wmdc_connect/wmdc_connect.vcproj +205 -0
  127. data/platform/wp7/RhoRubyExtGen/RhoAlert.cs +73 -0
  128. data/platform/wp7/RhoRubyExtGen/RhoRubyExtGen.csproj +1 -0
  129. data/platform/wp7/RhoRubyExtGen/RhoSyncEngine.cs +8 -8
  130. data/platform/wp7/RhoRubyLib/Initializers.Generated.cs +47 -6
  131. data/platform/wp7/RhoRubyLib/RhoRuby.cs +8 -0
  132. data/platform/wp7/RhoRubyLib/RhoRubyLib.csproj +5 -0
  133. data/platform/wp7/RhoRubyLib/WP_PlatformAdaptationLayer.cs +5 -0
  134. data/platform/wp7/RhoRubyLib/common/RhoParams.cs +2 -1
  135. data/platform/wp7/RhoRubyLib/common/RhodesApp.cs +58 -37
  136. data/platform/wp7/RhoRubyLib/db/DBAdapter.cs +37 -0
  137. data/platform/wp7/RhoRubyLib/db/DBAttrManager.cs +63 -1
  138. data/platform/wp7/RhoRubyLib/db/IDBStorage.cs +2 -0
  139. data/platform/wp7/RhoRubyLib/db/SqliteStorage.cs +27 -0
  140. data/platform/wp7/RhoRubyLib/logging/RhoLogServerSink.cs +2 -2
  141. data/platform/wp7/RhoRubyLib/net/NetRequest.cs +4 -3
  142. data/platform/wp7/RhoRubyLib/rubyext/RhoAlert.cs +160 -0
  143. data/platform/wp7/RhoRubyLib/rubyext/RhoSyncEngine.cs +44 -12
  144. data/platform/wp7/RhoRubyLib/sync/ClientRegister.cs +4 -3
  145. data/platform/wp7/RhoRubyLib/sync/SyncEngine.cs +27 -32
  146. data/platform/wp7/RhoRubyLib/sync/SyncNotify.cs +31 -11
  147. data/platform/wp7/RhoRubyLib/sync/SyncProtocol_3.cs +6 -1
  148. data/platform/wp7/RhoRubyLib/sync/SyncSource.cs +4 -0
  149. data/platform/wp7/RhoRubyLib/sync/SyncThread.cs +21 -15
  150. data/platform/wp7/build/wp.rake +6 -0
  151. data/rakefile.rb +2 -1
  152. data/res/build-tools/Coding4Fun.Phone.Controls.dll +0 -0
  153. data/res/build-tools/wmdc_connect.exe +0 -0
  154. data/res/generators/templates/spec/app/SpecRunner/index.erb +14 -13
  155. data/spec/phone_spec/app/spec/rhom_object_spec.rb +10 -1
  156. data/version +1 -1
  157. metadata +26 -4
data/doc/simulator.txt CHANGED
@@ -68,7 +68,7 @@ In present version of RhoStudio you may:
68
68
  If you use custom native extensions, then running and debugging your applications in RhoSimulator requires a custom build.
69
69
  Follow these instructions to build your own customized version of RhoSimulator.
70
70
 
71
- ### Preliminary steps
71
+ ### Preliminary steps for Windows
72
72
 
73
73
  * Currently only <b>Visual Studio 2005 Service Pack 1</b> is supported
74
74
  * Follow [Build for Windows - Prerequisites](build#build-for-windows), but do not install the Rhodes gem since you're going to use Rhodes SDK source.
@@ -77,14 +77,14 @@ Follow these instructions to build your own customized version of RhoSimulator.
77
77
  * Download the Qt source:
78
78
  * Go to [http://qt.nokia.com/downloads](http://qt.nokia.com/downloads)
79
79
  * Jump to `Qt libraries`
80
- * Download the [source code as a zip](http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.3.zip) (236 MB)
81
- * Extract the downloaded archive, e.g. into `C:\Qt\4.7.3-msvc2005`
80
+ * Download the [source code as a zip](http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.4.zip) (236 MB)
81
+ * Extract the downloaded archive, e.g. into `C:\Qt\4.7.4-msvc2005`
82
82
  * Prepare to build the OpenSSL library:
83
- * Download [v0.9 source code](http://www.openssl.org/source/openssl-0.9.8r.tar.gz) from [www.openssl.org](http://www.openssl.org/) and extract the downloaded archive, e.g. into `C:\Qt\openssl-0.9.8r`
83
+ * Download [v0.9 source code](http://www.openssl.org/source/openssl-0.9.8s.tar.gz) from [www.openssl.org](http://www.openssl.org/) and extract the downloaded archive, e.g. into `C:\Qt\openssl-0.9.8s`
84
84
  * Install Perl interpreter (if it's not installed yet), e.g. [ActiveState Perl](http://www.activestate.com/activeperl)
85
85
  * Open Control Panel » System » Advanced system settings » Environment Variables and then:
86
- * Create new system variable `QTDIR` = `C:\Qt\4.7.3-msvc2005`
87
- * Add to the `PATH` variable: `C:\Qt\4.7.3-msvc2005\bin;C:\Qt\openssl-0.9.8r\bin` (it doesn't matter that `C:\Qt\openssl-0.9.8r\bin` folder does not exist yet)
86
+ * Create new system variable `QTDIR` = `C:\Qt\4.7.4-msvc2005`
87
+ * Add to the `PATH` variable: `C:\Qt\4.7.4-msvc2005\bin;C:\Qt\openssl-0.9.8s\bin` (it doesn't matter that `C:\Qt\openssl-0.9.8s\bin` folder does not exist yet)
88
88
  * Either close all command prompts and Visual Studio instances, or reboot the computer so the new settings take effect.
89
89
  * Open Visual Studio 2005 Command Prompt. This is accomplished using Start » All Programs » Microsoft Visual Studio 2005 » Visual Studio Tools » Visual Studio 2005 Command Prompt. Run in Visual Studio 2005 Command Prompt:
90
90
 
@@ -93,8 +93,8 @@ Follow these instructions to build your own customized version of RhoSimulator.
93
93
 
94
94
  * To build OpenSSL library run in the same command prompt:
95
95
 
96
- > cd \Qt\openssl-0.9.8r
97
- > perl Configure VC-WIN32 --prefix=C:/Qt/openssl-0.9.8r
96
+ > cd \Qt\openssl-0.9.8s
97
+ > perl Configure VC-WIN32 --prefix=C:/Qt/openssl-0.9.8s
98
98
  > ms\do_masm
99
99
  > nmake -f ms\ntdll.mak
100
100
  > nmake -f ms\ntdll.mak install
@@ -102,30 +102,70 @@ Follow these instructions to build your own customized version of RhoSimulator.
102
102
 
103
103
  * To build Qt library run in the same command prompt:
104
104
 
105
- > cd \Qt\4.7.3-msvc2005
105
+ > cd \Qt\4.7.4-msvc2005
106
106
  > configure -opensource -platform win32-msvc2005
107
107
  -nomake examples -nomake demos -nomake docs
108
108
  -qt-libpng -qt-libjpeg -qt-libtiff -qt-gif -qt-libmng
109
- -openssl-linked -I C:/Qt/openssl-0.9.8r/include
110
- -L C:/Qt/openssl-0.9.8r/lib
109
+ -openssl-linked -I C:/Qt/openssl-0.9.8s/include
110
+ -L C:/Qt/openssl-0.9.8s/lib
111
111
  > nmake
112
112
  > nmake clean
113
113
 
114
114
  Be aware that it will take a while to build the Qt libraries from sources (maybe few hours or so). Particularly the `configure` command may run for a few minutes, and the `nmake` command may run for a few hours.
115
115
  * After the build process is completed exit Visual Studio 2005 Command Prompt
116
116
 
117
- ### Build with rake command:
117
+ ### Preliminary steps for Mac OS X
118
118
 
119
- rake build:win32:rhosimulator
119
+ * Follow [Building a Rhodes Application for iPhone/iPad - Prerequisites](build#building-a-rhodes-application-for-iphoneipad), but do not install the Rhodes gem since you're going to use Rhodes SDK source.
120
+ * Get the `rhodes` source (if haven't done it already) as described [here](build#setup-rhodes-source-code). Don't forget to add the `bin` folder to your path, run `rhodes-setup` and update Rhodes SDK path in `build.yml` at your application root folder.
121
+ * First build the Qt libraries for Mac from sources to enable HTTPS protocol support in RhoSimulator:
122
+ * Download the Qt source:
123
+ * Go to [http://qt.nokia.com/downloads](http://qt.nokia.com/downloads)
124
+ * Jump to `Qt libraries`
125
+ * Download the [source code as a zip](http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.4.zip) (236 MB)
126
+ * Extract the downloaded archive, e.g. into `~/QtSource`
127
+ * Make sure that your `PATH` environment variable does not contain the path to any previously installed Qt binaries
128
+ * Add to your `~/.profile` the new environment variable `QTDIR` by adding the line (or by changing the existing `QTDIR` variable):
129
+
130
+ export QTDIR=/Developer/SDKs/Qt
131
+
132
+ * Open `Terminal.app` and issue commands:
133
+
134
+ $ cd ~/QtSource
135
+ $ make confclean
136
+ $ ./configure -opensource -platform macx-g++
137
+ -nomake examples -nomake demos -nomake docs
138
+ -qt-libpng -qt-libjpeg -qt-libtiff -qt-gif -qt-libmng
139
+ -prefix /Developer/SDKs/Qt -release
140
+ $ make
141
+ $ sudo make install
120
142
 
121
- To run Rhodes applications in custom built RhoSimulator, please ensure that no `env:` » `paths:` » `rhosimulator:` line is present at your `rhobuild.yml` (if present, remove that line).
143
+ Be aware that it will take a while to build the Qt libraries from sources (maybe few hours or so).
122
144
 
123
- ### Build in Visual Studio 2005:
145
+ ### Enable bundled native extensions
146
+
147
+ To enable `digest` native extensions bundled with Rhodes SDK make sure that the default application in your `rhobuild.yml` is the `framework_spec`:
148
+
149
+ app: [...]/rhodes/spec/framework_spec
150
+
151
+ To compile RhoSimulator with the custom native extensions change this path to your own Rhodes application home folder.
152
+ It should be noted that extensions you'd like to compile into RhoSimulator should be listed in the main `extensions`
153
+ section of your Rhodes application `build.yml` (but not in its platform-specific `extensions` sections).
154
+
155
+ ### Build RhoSimulator with rake command:
156
+
157
+ When you've finished all the preliminary steps for your OS, the only thing you need to do is to run the rake command in the `rhodes` source folder:
158
+
159
+ rake build:rhosimulator
160
+
161
+ To run Rhodes applications in the custom built RhoSimulator, please ensure that no `env:` » `paths:` » `rhosimulator:` line is present at your `rhobuild.yml` (if present, remove that line).
162
+
163
+ ### Build RhoSimulator for Windows in Visual Studio 2005:
124
164
 
125
165
  * Open the solution:
126
166
  `C:\Rhomobile\rhodes\platform\wm\rhodes\rhodes.vcproj`
127
167
  * Build solution for the configuration `SimulatorRelease|Win32`
128
168
  * Specify the path to custom built RhoSimulator at `rhobuild.yml`:
129
- env:
130
- paths:
169
+ env:
170
+ paths:
131
171
  rhosimulator: platform/wm/bin/Win32/rhodes/SimulatorRelease
data/doc/ui.txt CHANGED
@@ -561,13 +561,13 @@ Please find sample code in "NativeToolbarTest" in [Rhodes-System-Api-Samples](ht
561
561
 
562
562
  ## Native Tabbar Control
563
563
 
564
- Rhodes supports displaying a native looking 'tabbar'.
564
+ Rhodes supports the displaying of a native-looking 'tabbar'.
565
565
 
566
- The tabbar is set of different UI views associated with each tab, so that selecting any tab will display the associated view. There is no ability to define custom actions for the tabbar like you can for the toolbar. The only action when a tab is selected is to switch to another UI view.
566
+ The tabbar is a set of different UI views associated with each tab, so that selecting any tab will display the associated view. There is no ability to define custom actions for the tabbar like you can for the toolbar. The only tabbar action is when a tab is selected, it switches to another UI view.
567
567
 
568
- The tabbar are supported on iPhone and Android.
568
+ The tabbar is supported on iPhone and Android.
569
569
 
570
- You can use VerticalTabBar control on iPad (specifically control for iPad). It like Tabbar, but tabs located on left side and each item have horizontal orientation. Like Tabs items can have Icon image and text. Functionality very similar Tabbar.
570
+ You can use the VerticalTabBar control on the iPad: this is a specific control for the iPad. The VerticalTabBar is similar to the Tabbar, but the tabs are located on the left side and each item has horizontal orientation. Like tabs in tabbar, the items can have an Icon image and text. The functionality is very similar to Tabbar.
571
571
 
572
572
  You can customize toolbars/tabbars during runtime.
573
573
 
@@ -591,16 +591,16 @@ For the tabbar:
591
591
  end
592
592
  end
593
593
 
594
- Each tabbar item defined in the above sample defines following tab elements:
594
+ Each tabbar item defined in the above sample defines the following tab elements:
595
595
 
596
596
  * :label - Visible label to display on the tabbar (required)
597
597
  * :action - Path to your rhodes action; i.e. '/app/Account' would load the Account index action (required)
598
- * :icon - Relative path to tabbar item icon in your rhodes app; typically located in /public/images/ (required)
599
- * :reload => true - Optional argument which tells rhodes to reload the tab's :action, defaults to false
600
- * :selected_color => 0xFFFF00 - Optional parameter for change selected color of this tabs (if you use it on Android - you should defined it for all tabs! and also define :background_color for TabBar!)
601
- * :disabled => true - Optional parameter for disable this tab
602
- * :web_bkg_color = > int hex value (0x7F7F7F for example) - background color for tab (use when your app bkg is not white for remove blink during switch tabs)
603
- * :use_current_view_for_tab => true - Optional argument which tells rhodes to smooth transfer WebView from current view into this Tab and make this Tab active. Defaults to false. Only one Tab can have this parameter!
598
+ * :icon - Relative path to the tabbar item icon in your rhodes app; typically located in /public/images/ (required)
599
+ * :reload => true - (optional) tells rhodes to reload the tab's :action, default is false
600
+ * :selected_color => 0xFFFF00 - (optional) change selected color of this tab (if you use it on Android, you should define it for all tabs, and also define :background_color for TabBar)
601
+ * :disabled => true - (optional) disable this tab
602
+ * :web_bkg_color = > int hex value (0x7F7F7F for example) - background color for the tab (use when your app bkg is not white to remove blink when switching tabs)
603
+ * :use_current_view_for_tab => true - (optional) tells rhodes to smooth transfer WebView from current view into this Tab and make this Tab active. Defaults to false. Only one Tab can have this parameter.
604
604
 
605
605
 
606
606
  Behind the scenes, Rho::RhoApplication will detect the @tabs array in its initialize method and build the native bar through the following function:
@@ -609,7 +609,6 @@ Behind the scenes, Rho::RhoApplication will detect the @tabs array in its initia
609
609
  require 'rho/rhotabbar'
610
610
  Rho::NativeTabbar.create(bar_items_array)
611
611
 
612
-
613
612
  To disable the tabbar entirely:
614
613
  :::ruby
615
614
  class AppApplication < Rho::RhoApplication
@@ -621,54 +620,52 @@ To disable the tabbar entirely:
621
620
 
622
621
  ### Native Tabbar runtime API
623
622
 
624
- Require rhotabbar in your controller to use it
623
+ You need to require rhotabbar in your controller to use the native tabbar.
625
624
  :::ruby
626
625
  require 'rho/rhotabbar'
627
626
 
628
- Remove existing tabbar (if exists) and create new one
627
+ Removes existing tabbar (if it exists) and create a new one.
629
628
  :::ruby
630
629
  Rho::NativeTabbar.create(tabs)
631
630
 
632
- Same as above
631
+ This works the same as above.
633
632
  :::ruby
634
633
  Rho::NativeTabbar.create( :tabs => tabs)
635
634
 
636
- Means the same as above and setup background color for tabbar.
635
+ This works the same as above, and sets up a background color for the tabbar.
637
636
  :::ruby
638
637
  Rho::NativeTabbar.create( :tabs => tabs,
639
638
  :background_color => 0x0000FF)
640
639
 
641
- Means the same as above and place TabBar in bottom of screen (actual only on Android, where TabBar placed in top of screen by default).
640
+ This places the TabBar at the bottom of the screen (only on Android, where the TabBar is placed in the top of screen by default).
642
641
  :::ruby
643
642
  Rho::NativeTabbar.create( :tabs => tabs,
644
643
  :background_color => 0x0000FF, :place_tabs_bottom => true)
645
644
 
646
- **NOTE: If you setup :background_color on Android you should also setup :selected_color for each tab **
645
+ **NOTE: If you set up :background_color on Android, you should also set up :selected_color for each tab. **
647
646
 
648
- Create TabBar and set callback for change tab event. In callback see @params['tab_index'] for string value with new tab index.
647
+ Create a TabBar and set a callback for the change tab event. In callback, see @params['tab_index'] for a string value with the new tab index.
649
648
  :::ruby
650
649
  Rho::NativeTabbar.create(:tabs => tabs, :on_change_tab_callback => url_for(:action => :tabbar_on_tab_change_callback))
651
650
 
652
-
653
- Remove current tabbar. Does nothing if there is no active bar
651
+ Remove the current tabbar. Does nothing if there is no active bar.
654
652
  :::ruby
655
653
  Rho::NativeTabbar.remove
656
654
 
657
- Switch active tab to second (numeration is zero based i.e. 0 means first tab, 1 - second etc)
655
+ Switch the active tab to second (numeration is zero based, i.e. 0 means first tab, 1 - second, etc.)
658
656
  :::ruby
659
657
  Rho::NativeTabbar.switch_tab(1)
660
658
 
661
- Get current tab index
659
+ Get the current tab index.
662
660
  :::ruby
663
661
  Rho::NativeTabbar.get_current_tab
664
662
 
665
- Set iPhone badge to Tab (worked only on iOS devices!)
663
+ Set the iPhone badge to Tab (only on iOS devices).
666
664
  :::ruby
667
665
  # set badge '12' to tab 1
668
666
  Rho::NativeTabbar.set_tab_badge( 1, '12')
669
667
 
670
-
671
- Rho::NativeTabbar.create() create native tab bar UI element and activate its first tab. If you want to see another tab, call Rho::NativeTabbar.switch_tab explicitly just after NativeBar.create:
668
+ Rho::NativeTabbar.create() createa a native tab bar UI element and activates its first tab. If you want to see another tab, call Rho::NativeTabbar.switch_tab explicitly just after NativeBar.create, as in the following example.
672
669
 
673
670
  :::ruby
674
671
  require 'rho/rhotabbar'
@@ -679,7 +676,7 @@ Rho::NativeTabbar.create() create native tab bar UI element and activate its fir
679
676
  # Show 'app/Settings' on the 3-rd tab
680
677
  WebView.navigate('app/Settings', 3)
681
678
 
682
- For VerticalTabBar on iPad (if you run this code not on iPad, then regular tabbar will be created):
679
+ For VerticalTabBar on iPad (if you run this code on a device other than iPad, then a regular tabbar will be created):
683
680
 
684
681
  :::ruby
685
682
  require 'rho/rhotabbar'
@@ -0,0 +1,295 @@
1
+ END USER LICENSE AGREEMENT
2
+
3
+ Motorola Solutions is willing to license its Software and the accompanying documentation
4
+ to you only on the condition that you accept all the terms in this License Agreement ("Agreement").
5
+
6
+ IMPORTANT: READ THE FOLLOWING TERMS AND CONDITIONS BEFORE USING THE ACCOMPANYING PRODUCTS. BY CLICKING ON THE "ACCEPT"
7
+ BUTTON BELOW, YOU ACKNOWLEDGE THAT YOU HAVE READ THIS AGREEMENT, UNDERSTAND IT AND AGREE TO BE BOUND BY THE TERMS OF
8
+ THIS AGREEMENT.�IF YOU DO NOT AGREE TO THE TERMS OF THIS AGREEMENT, MOTOROLA SOLUTIONS IS NOT WILLING TO LICENSE THE
9
+ PRODUCTS TO YOU.� YOU SHOULD CLICK ON THE "DO NOT ACCEPT" BUTTON TO DISCONTINUE THE SOFTWARE INSTALLATION PROCESS.�
10
+ IF YOU DO NOT AGREE TO THESE TERMS, YOU MAY, WITHIN 15 DAYS, RETURN THIS ENTIRE PRODUCT TO THE LOCATION WHERE YOU
11
+ ACQUIRED IT OR PROVIDE WRITTEN VERIFICATION OF DELETION OF ALL COPIES OF THE ENTIRE PRODUCT IF YOU HAVE NOT PHYSICALLY
12
+ RECEIVED A PRODUCT FOR A FULL REFUND.
13
+
14
+ 1.�������� Definitions.� In this Agreement, the word "Software" refers to the set of instructions for
15
+ computers, in executable and/or source code form and in any media, (which may include diskette, CD-ROM, downloadable
16
+ internet, hardware, or firmware) licensed to you.� The word "Documentation" refers to electronic or printed manuals and
17
+ accompanying instructional aids licensed to you.� The word "Product(s)" refers to the specific combination of Software
18
+ and Documentation that you have licensed and which has been provided to you under the terms of this Agreement. "Motorola
19
+ Solutions" means Motorola Solutions, Inc and/or its subsidiary Symbol Technologies, Inc.
20
+
21
+ 2. ������� Grant of License.
22
+ Provided that you ("Licensee" or "you") pay Motorola Solutions the per copy license fee agreed upon between Licensee
23
+ and Motorola Solutions, Motorola Solutions grants a personal, nonexclusive, nontransferable license to use the Products
24
+ subject to the Conditions Of Use set forth in Section 3 below and the terms and conditions of this Agreement.� Any terms
25
+ or conditions appearing on the face or reverse side of any purchase order, purchase order acknowledgment or other order
26
+ document that are different from, or in addition to, the terms of this Agreement will not be binding on the parties,
27
+ even if payment is accepted.�
28
+
29
+ 3.�������� Conditions of Use. Any use of the Products outside of the conditions set forth
30
+ herein is strictly prohibited and will be deemed a breach of this Agreement.
31
+
32
+ 3.1������� You shall use the Products
33
+ exclusively to support Motorola Solutions devices. Any use of the Products to support non-Motorola Solutions devices
34
+ is strictly prohibited and will be deemed an incurable breach of this Agreement.
35
+
36
+ 3.2������� Only your employees
37
+ or agents may use the Products. You shall take all necessary steps to insure that your employees and agents abide
38
+ by the terms of this Agreement.
39
+
40
+ 3.3������� You shall use the Products (i) only for your internal business purposes; (ii)
41
+ only as described in the Products; and (iii) in strict accordance with this Agreement.
42
+
43
+ 3.4������� Licensee may install
44
+ and use the Products on a single client workstation, provided that the use is in conformance with the terms set forth
45
+ in this Agreement. The unmodified Products may not be transferred to another party without the express written consent
46
+ of Motorola Solutions, regardless of whether or not such transfer is accomplished by physical or electronic means.
47
+
48
+ 3.5.������ Portions of the Products are protected by United States copyright laws, international treaty provisions,
49
+ and other applicable laws.� Therefore, you must treat the Products like any other copyrighted material (e.g., a book
50
+ or musical recording) except that you may either: (i) make 1 copy of the transportable part of the Products (which
51
+ typically is supplied on diskette, CD-ROM, or downloadable internet), solely for back-up purposes; or (ii) copy the
52
+ transportable part of the Products to a PC hard disk, provided you keep the original solely for back-up purposes.�
53
+ If the Documentation is in printed form, it may not be copied.� If the Documentation is in electronic form, you may
54
+ print out 1 copy, which then may not be copied.� With regard to the copy made for backup or archival purposes, you agree
55
+ to reproduce any Motorola Solutions copyright notice, and other proprietary legends appearing thereon.� Such copyright
56
+ notice(s) may appear in any of several forms, including machine-readable form, and you agree to reproduce such notice
57
+ in each form in which it appears, to the extent it is physically possible to do so.� Unauthorized duplication of the
58
+ Software or Documentation constitutes copyright infringement, and in the United States is punishable in federal court
59
+ by fine and imprisonment.�
60
+
61
+ 3.6������� Licensee shall not distribute, sublicense, rent, loan, lease, export, re-export,
62
+ resell, ship or divert or cause to be exported, re-exported, resold, shipped or diverted, directly or indirectly, the
63
+ unmodified Products under this Agreement.
64
+
65
+ 3.7 Licensee grants Motorola Solutions the right, which Motorola Solutions
66
+ will exercise at its own expense and no more than once per year, to enter Licensee�s premises during business hours for
67
+ the sole purpose of examining Licensee�s records and other information relating to the Licensee�s use of the Products.
68
+ If this examination reveals that Licensee has underpaid fees or improperly used the Products, Motorola Solutions shall
69
+ invoice Licensee for such unauthorized use based upon Motorola Solutions� standard fees in effect at the time the
70
+ examination is completed. If the underpaid fees exceed five percent (5%) of the fees actually paid, then Licensee shall
71
+ also pay Motorola Solutions� reasonable costs of conducting the examination.
72
+
73
+ 3.8������ Under this License, Licensee may
74
+ (i) use, modify, and incorporate all or portions of the sample source code (the "Sample Code"), runtime library files,
75
+ and/or documentation files (the "Documentation") that may be included in the unmodified Products into Licensee�s own
76
+ programs (the "User Programs") to support Motorola Solutions devices exclusively, provided that no license is granted
77
+ herein under any patents that may be infringed by Licensee�s modifications, derivative works or by other works in which
78
+ any portion of the Products may be incorporated; (ii) distribute the runtime library files and Sample Code in object
79
+ code format only as substantially modified or only as part of the User Programs to support Motorola Solutions devices
80
+ exclusively; and (iii) use the Products solely for the purpose of internal development.
81
+
82
+ 4.�������� Title; Restrictions.�
83
+ Title to all copies of Software will not pass to Licensee at any time and remains vested exclusively in Motorola
84
+ Solutions.� Motorola Solutions owns and retains all of its proprietary rights in any form concerning the Software and
85
+ Documentation, including all rights in patents, patent applications, inventions, copyrights, trade secrets, trademarks,
86
+ trade names, and other intellectual properties (including any corrections, bug fixes, enhancements, updates,
87
+ or modifications to or derivative works from the Software whether made by Motorola Solutions or another party, or any
88
+ improvements that result from Motorola Solutions� processes or, if applicable, providing information services).� Nothing
89
+ in this Agreement is intended to restrict the proprietary rights of Motorola Solutions or to grant by implication
90
+ or estoppel any proprietary rights.� All intellectual property developed, originated, or prepared by Motorola Solutions
91
+ in connection with providing to Licensee Software, Products, Documentation, or related services remain vested
92
+ exclusively in Motorola Solutions, and this Agreement does not grant to Licensee any shared development rights
93
+ of intellectual property.�
94
+
95
+ 4.1������� If you transfer possession of any copy of the Products to another party outside
96
+ of the terms of this agreement, your license is automatically terminated.� Title and copyrights to the Products and any
97
+ copies made by you remain with Motorola Solutions and its licensors.� You shall not, and shall not permit others to: (i)
98
+ modify, translate, decompile, bootleg, reverse engineer, disassemble, or extract the inner workings of the Software
99
+ or Documentation, (ii) copy the look-and-feel or functionality of the Software or Documentation; (iii) remove any
100
+ proprietary notices, marks, labels, or logos from the Software or Documentation; (iv) rent or transfer all or some
101
+ of the Software or Documentation to any other party without Motorola Solutions� prior written consent; or (v) utilize
102
+ any computer software or hardware which is designed to defeat any copy protection device, should the Products
103
+ be equipped with such a protection device.� If the Products contain Software or Documentation that is provided
104
+ on multiple types of media (such as diskette, CD-ROM, downloadable internet), then you shall only use the medium which
105
+ best meets your specific needs, and shall not loan, rent, lease, or transfer the other media contained in the package
106
+ without Motorola Solutions� written consent.� Unauthorized copying of the Software or Documentation, or failure
107
+ to comply with any of the provisions of this Agreement, will result in automatic termination of this license.���
108
+
109
+ 5.�������� Confidentiality.� You acknowledge that all Products contain valuable proprietary information and trade
110
+ secrets and that unauthorized or improper use of the Products will result in irreparable harm to Motorola Solutions for
111
+ which monetary damages would be inadequate and for which Motorola Solutions will be entitled to immediate injunctive
112
+ relief.� Accordingly, you will limit access to the Products to those of your employees and agents who need to use the
113
+ Products for your internal business purposes, and you will take appropriate action with those employees and agents
114
+ to preserve the confidentiality of the Products, using the same degree of care to avoid unauthorized or improper
115
+ disclosure as you use for the protection of your own proprietary software, but in no event less than reasonable care.
116
+ Notwithstanding anything to the contrary herein, you shall have no obligation to preserve the confidentiality
117
+ of any proprietary information that: (i) was in the public domain at the time of disclosure; (ii) entered the public
118
+ domain through no fault of yours; (iii) was given to you free of any obligation to keep it confidential; (iv)
119
+ is independently developed by you; or (v) is disclosed as required by law provided that you notify Motorola Solutions
120
+ prior to such disclosure and provide Motorola Solutions with a reasonable opportunity to respond.
121
+
122
+ 6.�������� Right to Use Motorola Solutions� Name.� Except as required in Section 3.5 above, you shall not, during the term of this
123
+ Agreement or thereafter, use any trademark, of Motorola Solutions or Symbol, or any word or symbol likely to be confused
124
+ with any Motorola Solutions or Symbol trademark, either alone or in any combination with another word or words.
125
+
126
+ 7.�������� Payment.� The rights granted hereunder are contingent upon payment for the Products.� All payments shall
127
+ be due net 30 days from date of the invoice.
128
+
129
+ 8.�������� Upgrades and Updates.� If the Products are licensed to you as an
130
+ upgrade or update to a product previously licensed to you, you must destroy the Products previously licensed to you,
131
+ including any copies, within 30 days of your receipt of the update or upgrade.
132
+
133
+ 9.�������� Maintenance.� Motorola Solutions shall not be responsible for maintenance or field service of the Software under this Agreement.
134
+
135
+ 10. Indemnification. Motorola Solutions shall indemnify Licensee by defending, at its expense, any claim, and any lawsuit
136
+ to the extent based thereon, that is brought against Licensee alleging that the Product, as originally delivered
137
+ by Motorola Solutions to Licensee under this Agreement, directly infringes a patent or copyright registered in the
138
+ country in which Motorola Solutions originally sold the Product to Licensee ("Infringement Claim"), so long as Motorola
139
+ Solutions is notified in writing by Licensee as soon as reasonably practicable as to any such claim, but in no event
140
+ after Motorola Solutions would be prejudiced by a lack of such notice, is given sole authority and control of the
141
+ defense, and is provided by Licensee all requested information and assistance for resolving or defending the
142
+ Infringement Claim. In addition to Motorola Solutions� obligation to defend, and subject to the same conditions,
143
+ Motorola Solutions shall pay all damages finally awarded against Licensee by a court of competent jurisdiction to the
144
+ extent based upon such Infringement Claim, or agreed to in writing by Motorola Solutions in settlement of the
145
+ Infringement Claim. If the Product is subject to an Infringement Claim or, if in Motorola Solutions� judgment, likely
146
+ to become subject to a Infringement Claim, in addition to its obligation to defend and pay damages, Motorola Solutions,
147
+ in its sole discretion, shall: (a) obtain a license for Licensee to continue to use or to sell the Product purchased
148
+ from Motorola Solutions; (b) replace or modify the Product so as to be substantially functionally equivalent but
149
+ non-infringing; or (c) require the return of the Product and credit the fair market value of the Product less
150
+ a reasonable charge for depreciation calculated on a three (3) year straight line depreciation basis. Motorola
151
+ Solutions shall have no liability to Licensee for any alleged or actual infringement, or otherwise, arising out of or in
152
+ connection with Licensee�s use or transfer of the Product after Motorola Solutions� written notice to Licensee that
153
+ Licensee shall cease use or transfer of such Product. Motorola Solutions shall have no obligation to defend or indemnify
154
+ Licensee under this agreement for any damages based upon a per-use royalty or the Licensee�s revenues, or upon any
155
+ damages theory other than a reasonable royalty applied to, or lost profits of the patent owner based on, the purchase
156
+ price paid by Licensee to Motorola Solutions for the infringing Product. Motorola Solutions shall have no obligation
157
+ to defend or indemnify Licensee under this agreement for any alleged or actual infringement arising out of (a) use of
158
+ Product in connection or in combination with equipment, devices or Product not provided by Motorola Solutions; (b) use
159
+ of the Product in a manner for which they were not designed; (c) any modification of the Product by anyone other than
160
+ Motorola Solutions; (d) compliance with Licensee�s designs, specifications, guidelines or instructions; (e) compliance
161
+ with a standard issued by any public or private standards body; or (f) any assertion by a non-practicing entity which
162
+ maintains no significant manufacturing capability ((a) � (d) defined as �Excluded Conduct�). Licensee shall indemnify
163
+ Motorola Solutions against any claim of infringement that is brought against Motorola Solutions based upon or arising
164
+ out of such Excluded Conduct or arising out of Licensee�s continued use or transfer of the Product after being noticed
165
+ to cease such use or transfer. Motorola Solutions shall not be responsible for any compromise or settlement made
166
+ by Licensee without Motorola Solutions� prior written consent. THIS SECTION PROVIDES LICENSEE�S SOLE AND EXCLUSIVE
167
+ REMEDIES AND MOTOROLA SOLUTIONS� ENTIRE LIABILITY IN THE EVENT OF AN INFRINGEMENT CLAIM. LICENSEE HAS NO RIGHT
168
+ TO RECOVER AND MOTOROLA SOLUTIONS HAS NO OBLIGATION TO PROVIDE ANY OTHER OR FURTHER REMEDIES, WHETHER UNDER ANOTHER
169
+ PROVISION OF THIS AGREEMENT OR ANY OTHER LEGAL THEORY OR PRINCIPLE, IN CONNECTION WITH AN INFRINGEMENT CLAIM.
170
+
171
+ 11������� Limited Warranty.� All diskettes or CD-ROMS on which the Products are furnished ("Media") are warranted to be
172
+ free from manufacturing and material defects for 90 days after the shipment date of the Products to you.� Media that
173
+ becomes defective during such period will be repaired or, at Motorola Solutions� option, replaced.� This limited
174
+ warranty is contingent upon proper use of the Media and does not cover Products which have been tampered with, modified,
175
+ or subjected to unusual physical or electrical stress.� Tampering with or removal of any factory seal or label on any
176
+ Media voids this warranty and releases Motorola Solutions from any and all liability.
177
+
178
+ 12.������� Disclaimer.�� EXCEPT FOR THE ABOVE EXPRESS LIMITED WARRANTY, MOTOROLA SOLUTIONS MAKES, AND YOU RECEIVE, NO
179
+ OTHER WARRANTIES OF ANY KIND, WHETHER EXPRESS, IMPLIED, STATUTORY, OR IN ANY COMMUNICATION WITH YOU.� MOTOROLA SOLUTIONS
180
+ SPECIFICALLY DISCLAIMS ANY WARRANTY INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILTY, NONINFRINGEMENT, OR FITNESS FOR A
181
+ PARTICULAR PURPOSE.� THE PRODUCTS ARE PROVIDED "AS IS." MOTOROLA SOLUTIONS DOES NOT WARRANT THAT THE SOFTWARE WILL MEET YOUR REQUIREMENTS,
182
+ OR THAT THE OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR FREE, OR THAT DEFECTS IN THE SOFTWARE WILL
183
+ BE CORRECTED.� MOTOROLA SOLUTIONS MAKES NO WARRANTY WITH RESPECT TO THE CORRECTNESS, ACCURACY, OR RELIABILITY OF THE
184
+ SOFTWARE AND DOCUMENTATION.� Some jurisdictions do not allow the exclusion of implied warranties, so the above exclusion
185
+ may not apply to you.
186
+
187
+ 13.������� Remedies.� The entire liability of Motorola Solutions, and your exclusive remedy under
188
+ the warranty provided herein will be, at Motorola Solutions� option, to repair or replace any Media found to be
189
+ defective within the warranty period, or to refund the purchase price and terminate this Agreement.� To seek such
190
+ a remedy, you must return the entire Product to Motorola Solutions, with a copy of the original purchase receipt, within
191
+ the warranty period.
192
+
193
+ 14.������� Limitation of Liability. THE TOTAL LIABILITY OF MOTOROLA SOLUTIONS UNDER THIS AGREEMENT
194
+ FOR DAMAGES SHALL NOT EXCEED THE TOTAL AMOUNT PAID BY YOU FOR THE PRODUCTS LICENSED UNDER THIS AGREEMENT.� IN NO EVENT
195
+ WILL MOTOROLA SOLUTIONS BE LIABLE IN ANY WAY FOR INCIDENTAL, CONSEQUENTIAL, INDIRECT, SPECIAL OR PUNITIVE DAMAGES OF ANY
196
+ NATURE, INCLUDING WITHOUT LIMITATION, LOST BUSINESS PROFITS, OR LIABILITY OR INJURY TO THIRD PERSONS, WHETHER
197
+ FORESEEABLE OR NOT, REGARDLESS OF WHETHER MOTOROLA SOLUTIONS HAS BEEN ADVISED OF THE POSSIBLITY OF SUCH DAMAGES. Some
198
+ jurisdictions do not permit limitations of liability for incidental or consequential damages, so the above exclusions
199
+ may not apply to you.� This Limitation of Liability provision survives the termination of this Agreement and applies
200
+ notwithstanding any contrary provision in this Agreement.� Licensee must bring any action under this Agreement within
201
+ one (1) year after the cause of action arises.
202
+
203
+ 15.������� High Risk Activities.� The Products are not fault-tolerant and
204
+ are not designed, manufactured or intended for use or resale as on-line control software in hazardous environments
205
+ requiring fail-safe performance, such as in the operation of nuclear facilities, aircraft navigation or communication
206
+ systems, air traffic control, direct life support machines, or weapons systems, in which the failure of the Products
207
+ could lead directly to death, personal injury, or severe physical or environmental damage ("High Risk Activities").�
208
+ Motorola Solutions and its suppliers specifically disclaim any express or implied warranty of fitness for High Risk
209
+ Activities, and if you elect to use the Products in any High Risk Activities, you agree to indemnify, defend, and hold
210
+ Motorola Solutions harmless from and against any and all costs, damages, and losses related to that use.
211
+
212
+ 6.������� U.S. Government.� If you are acquiring the Products on behalf of any unit or agency of the U.S. Government, the following
213
+ shall apply.� Use, duplication, or disclosure of the Products is subject to the restrictions set forth in subparagraphs
214
+ (c) (1) and (2) of the Commercial Computer Software - Restricted Rights clause at FAR 52.227-19 (JUNE 1987),
215
+ if applicable, unless being provided to the Department of Defense.� If being provided to the Department of Defense, use,
216
+ duplication, or disclosure of the Products is subject to the restricted rights set forth in subparagraph (c) (1) (ii)
217
+ of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013 (OCT 1988), if applicable.� Software
218
+ and Documentation may or may not include a Restricted Rights notice, or other notice referring specifically to the terms
219
+ and conditions of this Agreement.� The terms and conditions of this Agreement shall each continue to apply, but only
220
+ to the extent that such terms and conditions are not inconsistent with the rights provided to you under the
221
+ aforementioned provisions of the FAR and DFARS, as applicable to the particular procuring agency and procurement
222
+ transaction.
223
+
224
+ 17.������� Term of License.� Your right to use the Products will begin when you click the "ACCEPT" button
225
+ below, which constitutes acceptance of the terms and conditions herein, and will continue in perpetuity unless
226
+ terminated as follows.�� Your right to use the Products will terminate immediately without notice upon a breach of this
227
+ Agreement by you.� Otherwise, this Agreement may be terminated by either party upon 30 days prior written notice.�
228
+ Within 30 days after termination of this Agreement, you will certify to Motorola Solutions in writing that through your
229
+ best efforts, and to the best of your knowledge, the original and all copies, in whole or in part, in any form, of the
230
+ Software and all related material and Documentation, have been destroyed, except that, with prior written consent from
231
+ Motorola Solutions, you may retain one copy for archival or backup purposes.�� You may not sublicense, assign
232
+ or transfer the license or the Products, except as expressly provided in this Agreement. Any attempt to otherwise
233
+ sublicense, assign or transfer any of the rights, duties or obligations hereunder is null and void. 17.1.���� Licensee
234
+ acknowledges that Motorola Solutions has made a considerable investment of resources in the development, marketing, and
235
+ distribution of its proprietary Software and Documentation and that reasonable and appropriate limitations on Licensee�s
236
+ use of the Software and Documentation are necessary for Motorola Solutions to protect its investment, trade secrets, and
237
+ valuable intellectual property rights concerning the Software and Documentation.� Licensee also acknowledges that its
238
+ breach of this Agreement will result in irreparable harm to Motorola Solutions for which monetary damages would
239
+ be inadequate. In the event of a breach of this Agreement and in addition to termination of this Agreement, Motorola
240
+ Solutions will be entitled to all available remedies at law or in equity (including immediate injunctive relief and
241
+ repossession of all non-embedded Software and associated Documentation unless Licensee is a Federal agency of the United
242
+ States Government).� Within thirty (30) days after termination of this Agreement, Licensee must certify in writing
243
+ to Motorola Solutions that all copies of the Software and Documentation have been returned to Motorola Solutions
244
+ or destroyed and are no longer in use by Licensee.
245
+
246
+ 18.������� Governing Law.� This Agreement shall be governed by the laws of the United States of America to the extent
247
+ that they apply and otherwise by the laws of the State of New York without regard to its conflict of laws provisions.
248
+
249
+ 19.������� Assignment.� This Agreement may not be assigned or otherwise transferred by you.
250
+
251
+ 20.������� Survival of Provisions.� The parties agree that where the context of any provision indicates an intent that
252
+ it shall survive the term of this Agreement, then it shall survive.
253
+
254
+ 21.������� Entire Agreement.� This Agreement contains the parties� entire agreement regarding your use of the Products
255
+ and may be amended only in writing signed by both parties, except that Motorola Solutions may modify this Agreement
256
+ as necessary to comply with applicable laws and regulations including FCC regulations.
257
+
258
+ 22.������� Compliance with Laws.� Licensee will comply with all applicable laws and regulations, including export
259
+ laws and regulations of the United States.� Licensee will not, without the prior authorization of Motorola Solutions
260
+ and the appropriate governmental authority of the United States, in any form export or re-export, sell or resell,
261
+ ship or reship, or divert, through direct or indirect means, any item or technical data or direct or indirect products sold
262
+ or otherwise furnished to any person within any territory for which the United States Government or any of its agencies at
263
+ the time of the action, requires an export license or other governmental approval.� Violation of this provision
264
+ will be a material breach of this Agreement, permitting immediate termination by Motorola Solutions.
265
+
266
+ 23.������� Waivers.� Failure or delay by either party to exercise a right or power under this Agreement will not be a
267
+ waiver of the right or power.� For a waiver of a right or power to be effective, it must be in writing signed by the waiving party.
268
+ An effective waiver of a right or power will not be construed as either a future or continuing waiver of that same right or power,
269
+ or the waiver of any other right or power.
270
+
271
+ 24.������� Assignments and Subcontracting.� Motorola Solutions may assign any of its rights or subcontract any
272
+ of its obligations under this Agreement, or encumber or sell any of its rights in any Software, without prior notice
273
+ to or consent of Licensee.
274
+
275
+ 25.������� Entire Agreement and Amendment.� This Agreement constitutes the entire agreement
276
+ of the parties regarding Licensee�s use of the Software and Documentation and may be amended or modified only by
277
+ a written instrument signed by an authorized representative of each party, except that Motorola Solutions may modify
278
+ this Agreement as necessary to comply with applicable laws and regulations.� This Agreement will be fairly interpreted
279
+ in accordance with its terms and conditions and not for or against either party.
280
+
281
+ 26.������� Severability.� If a court of competent jurisdiction renders any part of this Agreement to be invalid or unenforceable,
282
+ that part will be severed and the remainder of this Agreement will continue in full force and effect.
283
+
284
+ 27.������� Third Party Software.� The Software may contain one or more items of Third-Party Software supplied by other
285
+ third-party suppliers.�The terms of this Agreement govern your use of any Third-Party Software
286
+
287
+ UNLESS A SEPARATE THIRD-PARTY SOFTWARE LICENSE IS INCLUDED, IN WHICH CASE YOUR USE OF THE THIRD-PARTY SOFTWARE WILL
288
+ THEN BE GOVERNED BY THE SEPARATE THIRD-PARTY LICENSE. IF THE FOREGOING TERMS AND CONDITIONS ARE ACCEPTABLE TO YOU,
289
+ PLEASE INDICATE YOUR AGREEMENT AND ACCEPTANCE BY CLICKING BELOW ON THE BUTTON LABELED "ACCEPT". IF THE FOREGOING TERMS
290
+ AND CONDITIONS ARE NOT ACCEPTABLE TO YOU, PLEASE CLICK ON THE "DO NOT ACCEPT" BUTTON BELOW. MOTOROLA SOLUTIONS, MOTO,
291
+ MOTOROLA SOLUTIONS and the Stylized M Logo are trademarks or registered trademarks of Motorola Trademark Holdings,
292
+ LLC and are used under license. SYMBOL is a trademark owned by Symbol Technologies, Inc., which is a wholly owned
293
+ subsidiary of Motorola Solutions, Inc. All other trademarks are the property of their respective owners.�
294
+
295
+ � 2011 Motorola Solutions, Inc. All Rights Reserved.