Skip to content
This repository
Browse code

Merge branch 'master' of github.com:FreeRDP/FreeRDP

  • Loading branch information...
commit 22ecaa85a741d6abc8a1581bd915beb9fe0ef3b0 2 parents bc9d103 + 9f8d79c
Marc-André Moreau awakecoding authored

Showing 239 changed files with 16,390 additions and 1,138 deletions. Show diff stats Hide diff stats

  1. +32 2 CMakeLists.txt
  2. +0 1  client/.gitignore
  3. +8 0 client/Android/.classpath
  4. +10 0 client/Android/.gitignore
  5. +33 0 client/Android/.project
  6. +109 0 client/Android/AndroidManifest.xml.cmake
  7. +64 0 client/Android/CMakeLists.txt
  8. BIN  client/Android/assets/about_page/FreeRDP_Logo.png
  9. +202 0 client/Android/assets/about_page/about.html
  10. +200 0 client/Android/assets/about_page/about_phone.html
  11. BIN  client/Android/assets/about_page/back.jpg
  12. BIN  client/Android/assets/about_page/background_transparent.png
  13. BIN  client/Android/assets/help_page/back.jpg
  14. +159 0 client/Android/assets/help_page/gestures.html
  15. BIN  client/Android/assets/help_page/gestures.png
  16. +159 0 client/Android/assets/help_page/gestures_phone.html
  17. BIN  client/Android/assets/help_page/gestures_phone.png
  18. BIN  client/Android/assets/help_page/nav_gestures.png
  19. BIN  client/Android/assets/help_page/nav_toolbar.png
  20. BIN  client/Android/assets/help_page/nav_touch_pointer.png
  21. +178 0 client/Android/assets/help_page/toolbar.html
  22. BIN  client/Android/assets/help_page/toolbar.png
  23. +176 0 client/Android/assets/help_page/toolbar_phone.html
  24. BIN  client/Android/assets/help_page/toolbar_phone.png
  25. +164 0 client/Android/assets/help_page/touch_pointer.html
  26. BIN  client/Android/assets/help_page/touch_pointer.png
  27. +161 0 client/Android/assets/help_page/touch_pointer_phone.html
  28. BIN  client/Android/assets/help_page/touch_pointer_phone.png
  29. BIN  client/Android/assets/welcome_page/1.png
  30. BIN  client/Android/assets/welcome_page/2.png
  31. BIN  client/Android/assets/welcome_page/back.jpg
  32. BIN  client/Android/assets/welcome_page/new_connection.png
  33. +128 0 client/Android/assets/welcome_page/welcome.html
  34. +121 0 client/Android/assets/welcome_page/welcome_phone.html
  35. +91 0 client/Android/build.xml
  36. +65 0 client/Android/jni/CMakeLists.txt
  37. +34 0 client/Android/jni/android_debug.h
  38. +289 0 client/Android/jni/android_event.c
  39. +74 0 client/Android/jni/android_event.h
  40. +841 0 client/Android/jni/android_freerdp.c
  41. +53 0 client/Android/jni/android_freerdp.h
  42. +179 0 client/Android/jni/android_jni_callback.c
  43. +27 0 client/Android/jni/android_jni_callback.h
  44. +101 0 client/Android/jni/generated/android_freerdp_jni.c
  45. +28 0 client/Android/jni/generated/android_freerdp_jni.h
  46. +125 0 client/Android/jni/generated/com_freerdp_afreerdp_services_LibFreeRDP.h
  47. +2 0  client/Android/local.properties.cmake
  48. +11 0 client/Android/project.properties
  49. BIN  client/Android/res/drawable-hdpi/icon_button_add.png
  50. BIN  client/Android/res/drawable-hdpi/icon_edittext_clear.png
  51. BIN  client/Android/res/drawable-hdpi/icon_edittext_search.png
  52. BIN  client/Android/res/drawable-hdpi/icon_launcher_freerdp.png
  53. BIN  client/Android/res/drawable-hdpi/icon_menu_about.png
  54. BIN  client/Android/res/drawable-hdpi/icon_menu_add.png
  55. BIN  client/Android/res/drawable-hdpi/icon_menu_close.png
  56. BIN  client/Android/res/drawable-hdpi/icon_menu_disconnect.png
  57. BIN  client/Android/res/drawable-hdpi/icon_menu_ext_keyboard.png
  58. BIN  client/Android/res/drawable-hdpi/icon_menu_help.png
  59. BIN  client/Android/res/drawable-hdpi/icon_menu_preferences.png
  60. BIN  client/Android/res/drawable-hdpi/icon_menu_settings.png
  61. BIN  client/Android/res/drawable-hdpi/icon_menu_sys_keyboard.png
  62. BIN  client/Android/res/drawable-hdpi/icon_menu_touch_pointer.png
  63. BIN  client/Android/res/drawable-hdpi/icon_star_off.png
  64. BIN  client/Android/res/drawable-hdpi/icon_star_on.png
  65. BIN  client/Android/res/drawable-hdpi/search_plate.9.png
  66. BIN  client/Android/res/drawable-hdpi/sym_keyboard_delete.png
  67. BIN  client/Android/res/drawable-hdpi/sym_keyboard_feedback_delete.png
  68. BIN  client/Android/res/drawable-hdpi/sym_keyboard_feedback_return.png
  69. BIN  client/Android/res/drawable-hdpi/sym_keyboard_return.png
  70. BIN  client/Android/res/drawable-ldpi/icon_button_add.png
  71. BIN  client/Android/res/drawable-ldpi/icon_edittext_search.png
  72. BIN  client/Android/res/drawable-ldpi/icon_launcher_freerdp.png
  73. BIN  client/Android/res/drawable-ldpi/icon_menu_about.png
  74. BIN  client/Android/res/drawable-ldpi/icon_menu_add.png
  75. BIN  client/Android/res/drawable-ldpi/icon_menu_disconnect.png
  76. BIN  client/Android/res/drawable-ldpi/icon_menu_exit.png
  77. BIN  client/Android/res/drawable-ldpi/icon_menu_ext_keyboard.png
  78. BIN  client/Android/res/drawable-ldpi/icon_menu_help.png
  79. BIN  client/Android/res/drawable-ldpi/icon_menu_preferences.png
  80. BIN  client/Android/res/drawable-ldpi/icon_menu_settings.png
  81. BIN  client/Android/res/drawable-ldpi/icon_menu_sys_keyboard.png
  82. BIN  client/Android/res/drawable-ldpi/icon_menu_touch_pointer.png
  83. BIN  client/Android/res/drawable-ldpi/icon_star_off.png
  84. BIN  client/Android/res/drawable-ldpi/icon_star_on.png
  85. BIN  client/Android/res/drawable-ldpi/search_plate.9.png
  86. BIN  client/Android/res/drawable-ldpi/sym_keyboard_delete.png
  87. BIN  client/Android/res/drawable-ldpi/sym_keyboard_feedback_delete.png
  88. BIN  client/Android/res/drawable-ldpi/sym_keyboard_feedback_return.png
  89. BIN  client/Android/res/drawable-ldpi/sym_keyboard_return.png
  90. BIN  client/Android/res/drawable-mdpi/icon_button_add.png
  91. BIN  client/Android/res/drawable-mdpi/icon_edittext_clear.png
  92. BIN  client/Android/res/drawable-mdpi/icon_edittext_search.png
  93. BIN  client/Android/res/drawable-mdpi/icon_launcher_freerdp.png
  94. BIN  client/Android/res/drawable-mdpi/icon_menu_about.png
  95. BIN  client/Android/res/drawable-mdpi/icon_menu_add.png
  96. BIN  client/Android/res/drawable-mdpi/icon_menu_disconnect.png
  97. BIN  client/Android/res/drawable-mdpi/icon_menu_exit.png
  98. BIN  client/Android/res/drawable-mdpi/icon_menu_ext_keyboard.png
  99. BIN  client/Android/res/drawable-mdpi/icon_menu_help.png
  100. BIN  client/Android/res/drawable-mdpi/icon_menu_preferences.png
  101. BIN  client/Android/res/drawable-mdpi/icon_menu_settings.png
  102. BIN  client/Android/res/drawable-mdpi/icon_menu_sys_keyboard.png
  103. BIN  client/Android/res/drawable-mdpi/icon_menu_touch_pointer.png
  104. BIN  client/Android/res/drawable-mdpi/icon_star_off.png
  105. BIN  client/Android/res/drawable-mdpi/icon_star_on.png
  106. BIN  client/Android/res/drawable-mdpi/search_plate.9.png
  107. BIN  client/Android/res/drawable-mdpi/sym_keyboard_delete.png
  108. BIN  client/Android/res/drawable-mdpi/sym_keyboard_feedback_delete.png
  109. BIN  client/Android/res/drawable-mdpi/sym_keyboard_feedback_return.png
  110. BIN  client/Android/res/drawable-mdpi/sym_keyboard_return.png
  111. +61 0 client/Android/res/drawable/button_background.xml
  112. BIN  client/Android/res/drawable/icon_button_cancel.png
  113. BIN  client/Android/res/drawable/icon_launcher_freerdp.png
  114. +13 0 client/Android/res/drawable/separator_background.xml
  115. BIN  client/Android/res/drawable/sym_keyboard_arrows.png
  116. BIN  client/Android/res/drawable/sym_keyboard_arrows_black.png
  117. BIN  client/Android/res/drawable/sym_keyboard_down_arrow.png
  118. BIN  client/Android/res/drawable/sym_keyboard_down_arrow_black.png
  119. BIN  client/Android/res/drawable/sym_keyboard_left_arrow.png
  120. BIN  client/Android/res/drawable/sym_keyboard_left_arrow_black.png
  121. BIN  client/Android/res/drawable/sym_keyboard_menu.png
  122. BIN  client/Android/res/drawable/sym_keyboard_menu_black.png
  123. BIN  client/Android/res/drawable/sym_keyboard_right_arrow.png
  124. BIN  client/Android/res/drawable/sym_keyboard_right_arrow_black.png
  125. BIN  client/Android/res/drawable/sym_keyboard_up_arrow.png
  126. BIN  client/Android/res/drawable/sym_keyboard_up_arrow_black.png
  127. BIN  client/Android/res/drawable/sym_keyboard_winkey.png
  128. BIN  client/Android/res/drawable/sym_keyboard_winkey_black.png
  129. BIN  client/Android/res/drawable/touch_pointer_active.png
  130. BIN  client/Android/res/drawable/touch_pointer_default.png
  131. BIN  client/Android/res/drawable/touch_pointer_extkeyboard.png
  132. BIN  client/Android/res/drawable/touch_pointer_keyboard.png
  133. BIN  client/Android/res/drawable/touch_pointer_lclick.png
  134. BIN  client/Android/res/drawable/touch_pointer_rclick.png
  135. BIN  client/Android/res/drawable/touch_pointer_reset.png
  136. BIN  client/Android/res/drawable/touch_pointer_scroll.png
  137. +58 0 client/Android/res/layout/bookmark_list_item.xml
  138. +61 0 client/Android/res/layout/button_preference.xml
  139. +62 0 client/Android/res/layout/credentials.xml
  140. +33 0 client/Android/res/layout/dont_show_again_dialog.xml
  141. +42 0 client/Android/res/layout/home.xml
  142. +23 0 client/Android/res/layout/list_header.xml
  143. +75 0 client/Android/res/layout/session.xml
  144. +66 0 client/Android/res/layout/session_list_item.xml
  145. +55 0 client/Android/res/layout/super_bar.xml
  146. +17 0 client/Android/res/menu/bookmark_context_menu.xml
  147. +24 0 client/Android/res/menu/home_menu.xml
  148. +26 0 client/Android/res/menu/session_menu.xml
  149. +4 0 client/Android/res/values-land/dimens.xml
  150. +14 0 client/Android/res/values/attrs.xml
  151. +4 0 client/Android/res/values/dimens.xml
  152. +72 0 client/Android/res/values/integers.xml
  153. +179 0 client/Android/res/values/strings.xml
  154. +57 0 client/Android/res/values/theme.xml
  155. +38 0 client/Android/res/xml/advanced_settings.xml
  156. +33 0 client/Android/res/xml/application_settings.xml
  157. +54 0 client/Android/res/xml/bookmark_settings.xml
  158. +18 0 client/Android/res/xml/credentials_settings.xml
  159. +46 0 client/Android/res/xml/cursor_keyboard.xml
  160. +68 0 client/Android/res/xml/modifiers_keyboard.xml
  161. +67 0 client/Android/res/xml/numpad_keyboard.xml
  162. +22 0 client/Android/res/xml/performance_flags.xml
  163. +22 0 client/Android/res/xml/performance_flags_3g.xml
  164. +19 0 client/Android/res/xml/screen_settings.xml
  165. +19 0 client/Android/res/xml/screen_settings_3g.xml
  166. +26 0 client/Android/res/xml/searchable.xml
  167. +68 0 client/Android/res/xml/specialkeys_keyboard.xml
  168. +217 0 client/Android/src/com/freerdp/afreerdp/application/GlobalApp.java
  169. +141 0 client/Android/src/com/freerdp/afreerdp/application/GlobalSettings.java
  170. +52 0 client/Android/src/com/freerdp/afreerdp/application/NetworkStateReceiver.java
  171. +29 0 client/Android/src/com/freerdp/afreerdp/application/ScreenReceiver.java
  172. +95 0 client/Android/src/com/freerdp/afreerdp/application/SessionState.java
  173. +658 0 client/Android/src/com/freerdp/afreerdp/domain/BookmarkBase.java
  174. +57 0 client/Android/src/com/freerdp/afreerdp/domain/ConnectionReference.java
  175. +107 0 client/Android/src/com/freerdp/afreerdp/domain/ManualBookmark.java
  176. +83 0 client/Android/src/com/freerdp/afreerdp/domain/PlaceholderBookmark.java
  177. +70 0 client/Android/src/com/freerdp/afreerdp/domain/QuickConnectBookmark.java
  178. +75 0 client/Android/src/com/freerdp/afreerdp/presentation/AboutActivity.java
  179. +112 0 client/Android/src/com/freerdp/afreerdp/presentation/ApplicationSettingsActivity.java
  180. +450 0 client/Android/src/com/freerdp/afreerdp/presentation/BookmarkActivity.java
  181. +29 0 client/Android/src/com/freerdp/afreerdp/presentation/HelpActivity.java
  182. +417 0 client/Android/src/com/freerdp/afreerdp/presentation/HomeActivity.java
  183. +1,161 0 client/Android/src/com/freerdp/afreerdp/presentation/ScrollView2D.java
  184. +1,137 0 client/Android/src/com/freerdp/afreerdp/presentation/SessionActivity.java
  185. +342 0 client/Android/src/com/freerdp/afreerdp/presentation/SessionView.java
  186. +154 0 client/Android/src/com/freerdp/afreerdp/presentation/ShortcutsActivity.java
  187. +360 0 client/Android/src/com/freerdp/afreerdp/presentation/TouchPointerView.java
  188. +407 0 client/Android/src/com/freerdp/afreerdp/services/BookmarkBaseGateway.java
  189. +143 0 client/Android/src/com/freerdp/afreerdp/services/BookmarkDB.java
  190. +123 0 client/Android/src/com/freerdp/afreerdp/services/FreeRDPSuggestionProvider.java
  191. +48 0 client/Android/src/com/freerdp/afreerdp/services/HistoryDB.java
  192. +254 0 client/Android/src/com/freerdp/afreerdp/services/LibFreeRDP.java
  193. +86 0 client/Android/src/com/freerdp/afreerdp/services/ManualBookmarkGateway.java
  194. +105 0 client/Android/src/com/freerdp/afreerdp/services/QuickConnectHistoryGateway.java
  195. +71 0 client/Android/src/com/freerdp/afreerdp/services/SessionRequestHandlerActivity.java
  196. +133 0 client/Android/src/com/freerdp/afreerdp/utils/BookmarkArrayAdapter.java
  197. +91 0 client/Android/src/com/freerdp/afreerdp/utils/ButtonPreference.java
  198. +348 0 client/Android/src/com/freerdp/afreerdp/utils/DoubleGestureDetector.java
  199. +562 0 client/Android/src/com/freerdp/afreerdp/utils/GestureDetector.java
  200. +97 0 client/Android/src/com/freerdp/afreerdp/utils/IntEditTextPreference.java
  201. +37 0 client/Android/src/com/freerdp/afreerdp/utils/IntListPreference.java
  202. +690 0 client/Android/src/com/freerdp/afreerdp/utils/KeyboardMapper.java
  203. +57 0 client/Android/src/com/freerdp/afreerdp/utils/Mouse.java
  204. +185 0 client/Android/src/com/freerdp/afreerdp/utils/SeparatedListAdapter.java
  205. +1,568 1,125 cmake/AndroidToolchain.cmake
  206. +3 0  cmake/ConfigOptions.cmake
  207. +20 0 cmake/ConfigOptionsAndroid.cmake
  208. +2 0  cmake/FindOpenSSL.cmake
  209. +1 0  config.h.in
  210. +158 0 docs/README.android
  211. +8 0 include/freerdp/utils/bitmap.h
  212. +8 0 include/freerdp/utils/dsp.h
  213. +8 0 include/freerdp/utils/event.h
  214. +8 0 include/freerdp/utils/file.h
  215. +8 0 include/freerdp/utils/list.h
  216. +8 0 include/freerdp/utils/msusb.h
  217. +8 0 include/freerdp/utils/passphrase.h
  218. +8 0 include/freerdp/utils/pcap.h
  219. +8 0 include/freerdp/utils/profiler.h
  220. +8 0 include/freerdp/utils/rail.h
  221. +8 0 include/freerdp/utils/signal.h
  222. +8 0 include/freerdp/utils/stopwatch.h
  223. +9 0 include/freerdp/utils/stream.h
  224. +8 0 include/freerdp/utils/string.h
  225. +8 0 include/freerdp/utils/svc_plugin.h
  226. +8 0 include/freerdp/utils/tcp.h
  227. +8 0 include/freerdp/utils/thread.h
  228. +8 0 include/freerdp/utils/time.h
  229. +8 0 include/freerdp/utils/uds.h
  230. +1 1  libfreerdp/locale/timezone.c
  231. +9 0 libfreerdp/primitives/CMakeLists.txt
  232. +2 1  libfreerdp/primitives/prim_colors.c
  233. +1 1  libfreerdp/utils/file.c
  234. +1 1  libfreerdp/utils/passphrase.c
  235. +1 1  libfreerdp/utils/signal.c
  236. +1 0  scripts/.gitignore
  237. +6 0 scripts/regenerate_jni_headers.sh
  238. +5 0 winpr/include/winpr/pool.h
  239. +5 5 winpr/libwinpr/path/path.c
34 CMakeLists.txt
@@ -58,13 +58,23 @@ if (FREERDP_VERSION_SUFFIX)
58 58 else()
59 59 set(FREERDP_VERSION_FULL "${FREERDP_VERSION}")
60 60 endif()
  61 +
  62 +# Allow to search the host machine for git
  63 +if(ANDROID)
  64 + SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER, BOTH)
  65 +endif(ANDROID)
61 66 include(GetGitRevisionDescription)
  67 +if(ANDROID)
  68 + SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER, ONLY)
  69 +endif(ANDROID)
  70 +
62 71 git_describe(GIT_REVISION --match "[0-9]*" --abbrev=4 --tags --always)
63 72 message(STATUS "Git Revision ${GIT_REVISION}")
64 73
65 74 # Turn on solution folders (2.8.4+)
66 75 set_property(GLOBAL PROPERTY USE_FOLDERS ON)
67 76
  77 +
68 78 # Default to release build type
69 79 if(NOT CMAKE_BUILD_TYPE)
70 80 set(CMAKE_BUILD_TYPE "Release")
@@ -98,8 +108,10 @@ endif()
98 108
99 109 # Compiler-specific flags
100 110 if(CMAKE_COMPILER_IS_GNUCC)
101   - if(NOT CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT ANDROID)
102   - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=i686")
  111 + if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64" OR CMAKE_SYSTEM_PROCESSOR MATCHES "i686")
  112 + if(NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
  113 + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=i686")
  114 + endif()
103 115 endif()
104 116 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
105 117 CHECK_C_COMPILER_FLAG (-Wno-unused-result Wno-unused-result)
@@ -181,6 +193,15 @@ if(APPLE)
181 193 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mmacosx-version-min=10.4")
182 194 endif()
183 195
  196 +# Android
  197 +if(ANDROID)
  198 + if (NOT FREERDP_ANDROID_EXTERNAL_SSL_PATH)
  199 + message(STATUS "FREERDP_ANDROID_EXTERNAL_SSL_PATH not set! - Needs to be set if openssl is not found in the android NDK (which usually isn't)")
  200 + endif()
  201 + set(CMAKE_FIND_ROOT_PATH ${CMAKE_FIND_ROOT_PATH} ${FREERDP_ANDROID_EXTERNAL_SSL_PATH})
  202 + set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/client/Android/libs/${ANDROID_ABI})
  203 +endif()
  204 +
184 205 set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
185 206 if(NOT ANDROID)
186 207 find_package(Threads REQUIRED)
@@ -469,4 +490,13 @@ set(CPACK_COMPONENT_GROUP_RUNTIME_DESCRIPTION "Runtime")
469 490 set(CPACK_COMPONENT_GROUP_APPLICATIONS_DESCRIPTION "Applications")
470 491 set(CPACK_COMPONENT_GROUP_DEVELOPMENT_DESCRIPTION "Development")
471 492
  493 +# Workaround to remove c++ compiler macros and defines for Eclipse.
  494 +# If c++ macros/defines are set __cplusplus is also set which causes
  495 +# problems when compiling freerdp/jni. To prevent this problem
  496 +# we set the macros to "".
  497 +if (ANDROID AND CMAKE_EXTRA_GENERATOR STREQUAL "Eclipse CDT4")
  498 + set(CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS "")
  499 + message(STATUS "Disabled CXX system defines for eclipse (workaround).")
  500 +endif()
  501 +
472 502 include(CPack)
1  client/.gitignore
... ... @@ -1,2 +1 @@
1 1 iOS
2   -Android
8 client/Android/.classpath
... ... @@ -0,0 +1,8 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<classpath>
  3 + <classpathentry kind="src" path="src"/>
  4 + <classpathentry kind="src" path="gen"/>
  5 + <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
  6 + <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
  7 + <classpathentry kind="output" path="bin/classes"/>
  8 +</classpath>
10 client/Android/.gitignore
... ... @@ -0,0 +1,10 @@
  1 +# Ignore directories
  2 +bin/
  3 +obj/
  4 +gen/
  5 +jni/external/*
  6 +!libs
  7 +libs/armeabi*
  8 +AndroidManifest.xml
  9 +local.properties
  10 +!.project
33 client/Android/.project
... ... @@ -0,0 +1,33 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<projectDescription>
  3 + <name>aFreeRDP</name>
  4 + <comment></comment>
  5 + <projects>
  6 + </projects>
  7 + <buildSpec>
  8 + <buildCommand>
  9 + <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
  10 + <arguments>
  11 + </arguments>
  12 + </buildCommand>
  13 + <buildCommand>
  14 + <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
  15 + <arguments>
  16 + </arguments>
  17 + </buildCommand>
  18 + <buildCommand>
  19 + <name>org.eclipse.jdt.core.javabuilder</name>
  20 + <arguments>
  21 + </arguments>
  22 + </buildCommand>
  23 + <buildCommand>
  24 + <name>com.android.ide.eclipse.adt.ApkBuilder</name>
  25 + <arguments>
  26 + </arguments>
  27 + </buildCommand>
  28 + </buildSpec>
  29 + <natures>
  30 + <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
  31 + <nature>org.eclipse.jdt.core.javanature</nature>
  32 + </natures>
  33 +</projectDescription>
109 client/Android/AndroidManifest.xml.cmake
... ... @@ -0,0 +1,109 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +
  3 +<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  4 + android:installLocation="auto"
  5 + package="com.freerdp.afreerdp"
  6 + android:versionCode="1"
  7 + android:versionName="@FREERDP_VERSION_FULL@" >
  8 +
  9 + <uses-sdk android:targetSdkVersion="8" android:minSdkVersion="8"/>
  10 + <uses-permission android:name="android.permission.INTERNET"/>
  11 + <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  12 + <uses-permission android:name="com.android.vending.BILLING" />
  13 + <supports-screens android:anyDensity="true" android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" />
  14 +
  15 + <application android:name=".application.GlobalApp"
  16 + android:label="aFreeRDP"
  17 + android:icon="@drawable/icon_launcher_freerdp" >
  18 +
  19 + <!-- Main activity -->
  20 + <activity android:name=".presentation.HomeActivity"
  21 + android:label="@string/app_title"
  22 + android:theme="@style/Theme.Main"
  23 + android:alwaysRetainTaskState="true"
  24 + >
  25 + <intent-filter android:label="@string/app_title">
  26 + <action android:name="android.intent.action.MAIN"/>
  27 + <category android:name="android.intent.category.LAUNCHER"/>
  28 + </intent-filter>
  29 + </activity>
  30 +
  31 + <!-- Acra crash report dialog activity -->
  32 + <activity android:name="org.acra.CrashReportDialog"
  33 + android:theme="@android:style/Theme.Dialog" android:launchMode="singleInstance"
  34 + android:excludeFromRecents="true" android:finishOnTaskLaunch="true" />
  35 +
  36 + <!-- Session request handler activity - used for search and internally to start sessions -->
  37 + <activity android:name=".services.SessionRequestHandlerActivity"
  38 + android:theme="@android:style/Theme.NoDisplay"
  39 + android:noHistory="true"
  40 + android:excludeFromRecents="true">
  41 + <intent-filter>
  42 + <action android:name="android.intent.action.SEARCH" />
  43 + </intent-filter>
  44 + <meta-data android:name="android.app.searchable"
  45 + android:resource="@xml/searchable" />
  46 + </activity>
  47 +
  48 + <!-- Activity to create shortcuts -->
  49 + <activity android:name=".presentation.ShortcutsActivity"
  50 + android:theme="@style/Theme.Main"
  51 + android:label="@string/title_create_shortcut">
  52 + <intent-filter>
  53 + <action android:name="android.intent.action.MAIN" />
  54 + <category android:name="android.intent.category.DEFAULT" />
  55 + </intent-filter>
  56 +
  57 + </activity>
  58 +
  59 + <!-- It is recommended that you use an activity-alias to provide the "CREATE_SHORTCUT" -->
  60 + <!-- intent-filter. This gives you a way to set the text (and optionally the -->
  61 + <!-- icon) that will be seen in the launcher's create-shortcut user interface. -->
  62 + <activity-alias android:name=".presentation.CreateShortcuts"
  63 + android:targetActivity=".presentation.ShortcutsActivity"
  64 + android:label="@string/title_create_shortcut">
  65 + <!-- This intent-filter allows your shortcuts to be created in the launcher. -->
  66 + <intent-filter>
  67 + <action android:name="android.intent.action.CREATE_SHORTCUT" />
  68 + <category android:name="android.intent.category.DEFAULT" />
  69 + </intent-filter>
  70 + </activity-alias>
  71 +
  72 + <activity android:name=".presentation.BookmarkActivity"
  73 + android:label="@string/title_bookmark_settings"
  74 + android:theme="@style/Theme.Settings">
  75 + </activity>
  76 + <activity android:name=".presentation.ApplicationSettingsActivity"
  77 + android:label="@string/title_application_settings"
  78 + android:theme="@style/Theme.Settings"
  79 + android:windowSoftInputMode="stateHidden">
  80 + </activity>
  81 + <activity android:name=".presentation.SessionActivity"
  82 + android:theme="@android:style/Theme.Black.NoTitleBar"
  83 + android:configChanges="orientation|keyboardHidden|keyboard"
  84 + android:windowSoftInputMode="adjustResize">
  85 + </activity>
  86 + <activity android:name=".presentation.AboutActivity"
  87 + android:label="@string/title_about"
  88 + android:theme="@style/Theme.Main">
  89 + </activity>
  90 + <activity android:name=".presentation.HelpActivity"
  91 + android:label="@string/title_help"
  92 + android:theme="@style/Theme.Main">
  93 + </activity>
  94 +
  95 + <provider android:name=".services.FreeRDPSuggestionProvider"
  96 + android:authorities="com.freerdp.afreerdp.services.freerdpsuggestionprovider"
  97 + >
  98 + </provider>
  99 +
  100 + <receiver android:name=".application.NetworkStateReceiver" android:enabled="true">
  101 + <intent-filter>
  102 + <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
  103 + </intent-filter>
  104 + </receiver>
  105 +
  106 +
  107 + </application>
  108 +
  109 +</manifest>
64 client/Android/CMakeLists.txt
... ... @@ -0,0 +1,64 @@
  1 +# FreeRDP: A Remote Desktop Protocol Implementation
  2 +# Android Client
  3 +#
  4 +# Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
  5 +# Copyright 2013 Bernhard Miklautz <bmiklautz@thinstuff.at>
  6 +#
  7 +# Licensed under the Apache License, Version 2.0 (the "License");
  8 +# you may not use this file except in compliance with the License.
  9 +# You may obtain a copy of the License at
  10 +#
  11 +# http://www.apache.org/licenses/LICENSE-2.0
  12 +#
  13 +# Unless required by applicable law or agreed to in writing, software
  14 +# distributed under the License is distributed on an "AS IS" BASIS,
  15 +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  16 +# See the License for the specific language governing permissions and
  17 +# limitations under the License.
  18 +
  19 +set(ANDROID_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
  20 +set(ANDROID_PACKAGE_NAME "aFreeRDP")
  21 +
  22 +CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/AndroidManifest.xml.cmake ${CMAKE_CURRENT_SOURCE_DIR}/AndroidManifest.xml @ONLY)
  23 +
  24 +if (ANDROID_SDK)
  25 + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/local.properties.cmake ${CMAKE_CURRENT_SOURCE_DIR}/local.properties @ONLY)
  26 +endif()
  27 +
  28 +add_subdirectory(jni)
  29 +
  30 +
  31 +if(ANDROID_BUILD_JAVA)
  32 + if (NOT ANDROID_SDK)
  33 + message(FATAL_ERROR "ANDROID_SDK not set but required for building the java gui (ANDROID_BUILD_JAVA)")
  34 + endif()
  35 +
  36 + # And isn't shiped with the android ndk/sdk so
  37 + # we need to find it on the local machine
  38 + SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER, BOTH)
  39 + find_program(ANT_COMMAND ant)
  40 + SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER, ONLY)
  41 +
  42 + if(ANT_COMMAND STREQUAL "ANT_COMMAND-NOTFOUND")
  43 + message(FATAL_ERROR "ant not found but required to build android java")
  44 + endif()
  45 +
  46 + if(ANDROID_BUILD_JAVA_DEBUG)
  47 + set(ANDROID_BUILD_TYPE "debug")
  48 + set(APK "${ANDROID_SOURCE_DIR}/bin/${ANDROID_PACKAGE_NAME}-release-unsigned.apk")
  49 + else()
  50 + set(ANDROID_BUILD_TYPE "release")
  51 + set(APK "${ANDROID_SOURCE_DIR}/bin/${ANDROID_PACKAGE_NAME}-debug.apk")
  52 + endif()
  53 +
  54 + # command to create the android package
  55 + add_custom_command(
  56 + OUTPUT "${APK}"
  57 + COMMAND ${ANT_COMMAND} ${ANDROID_BUILD_TYPE}
  58 + WORKING_DIRECTORY "${ANDROID_SOURCE_DIR}"
  59 + MAIN_DEPENDENCY AndroidManifest.xml
  60 + DEPENDS freerdp-android local.properties
  61 + )
  62 + add_custom_target(android-package ALL SOURCES "${APK}")
  63 + SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "gen;bin")
  64 +endif()
BIN  client/Android/assets/about_page/FreeRDP_Logo.png
202 client/Android/assets/about_page/about.html
... ... @@ -0,0 +1,202 @@
  1 +<html>
  2 + <head>
  3 + <meta name='viewport' content='width=device-width; initial-scale=1.0; maximum-scale=1.0;' />
  4 +
  5 + <script language="javascript">
  6 +function toggle() {
  7 + var ele = document.getElementById("toggleText");
  8 + var text = document.getElementById("displayText");
  9 + if(ele.style.display == "block") {
  10 + ele.style.display = "none";
  11 + text.innerHTML = "show";
  12 + }
  13 + else {
  14 + ele.style.display = "block";
  15 + text.innerHTML = "<b>hide</b>";
  16 + }
  17 +}
  18 +</script>
  19 +
  20 + <style type="text/css">
  21 + @charset "utf-8";
  22 +body {
  23 + font: 100%%/1.4 Helvetica;
  24 + background-color:#E9EBF8;
  25 + height: 100%%; width: 100%%; margin: 0;
  26 + background-image:url(back.jpg);
  27 + background-position:center;
  28 +
  29 + text-align:center;
  30 +}
  31 +
  32 +.centered-table {
  33 + margin-left: auto;
  34 + margin-right: auto;
  35 +}
  36 +
  37 +#headline{
  38 +
  39 + background-color:#353639;
  40 + opacity:0.9;
  41 +
  42 + color:FFF;
  43 + text-align:center;
  44 +
  45 +
  46 + }
  47 +
  48 + #footer{
  49 + padding-top:10px;
  50 + }
  51 +
  52 +#footer img{
  53 + padding top:10 px;
  54 + }
  55 +#article{
  56 +
  57 +
  58 +background-color:#FFFFFF;
  59 +opacity: 0.8;
  60 +z-index:0;
  61 +margin-bottom:3%%;
  62 +padding-bottom:0.1%%;
  63 +border-radius: 15px;
  64 +border-top-left-radius:0px;
  65 +border-top-right-radius:0px;
  66 +color:#000;
  67 +margin: 10px auto;
  68 +position:relative;
  69 +
  70 + }
  71 +
  72 +
  73 +#introduction_headline{
  74 + width:inherit;
  75 + background-color:#353639;
  76 + opacity:0.9;
  77 + color:FFF;
  78 + text-align:center;
  79 + border-bottom-left-radius:15px;
  80 + border-bottom-right-radius:15px;
  81 +
  82 +
  83 + }
  84 +
  85 +#introduction{
  86 +
  87 +
  88 +background-color:#FFFFFF;
  89 +opacity: 0.8;
  90 +z-index:0;
  91 +margin-bottom:3%%;
  92 +padding-bottom:0.1%%;
  93 +border-radius: 10px;
  94 +color:#000;
  95 + }
  96 +
  97 +#container
  98 +{
  99 + margin-left: auto;
  100 + margin-right: auto;
  101 + width: 50em;
  102 + width:420px;
  103 +}
  104 +/* ~~ Element/tag selectors ~~ */
  105 +ul, ol, dl { /* Due to variations between browsers, it's best practices to zero padding and margin on lists. For consistency, you can either specify the amounts you want here, or on the list items (LI, DT, DD) they contain. Remember that what you do here will cascade to the .nav list unless you write a more specific selector. */
  106 + padding: 0;
  107 + margin: 0;
  108 +}
  109 +h1, h2, h3, h4, h5, h6, p {
  110 + margin-top: 0; /* removing the top margin gets around an issue where margins can escape from their containing div. The remaining bottom margin will hold it away from any elements that follow. */
  111 + padding-right: 1px;
  112 + padding-left: 1px; /* adding the padding to the sides of the elements within the divs, instead of the divs themselves, gets rid of any box model math. A nested div with side padding can also be used as an alternate method. */
  113 +}
  114 +a img { /* this selector removes the default blue border displayed in some browsers around an image when it is surrounded by a link */
  115 + border: none;
  116 + alignment: right;}
  117 +}
  118 +
  119 +/* ~~ Styling for your site's links must remain in this order - including the group of selectors that create the hover effect. ~~ */
  120 +/*a:link {
  121 + color:#414958;
  122 + text-decoration: underline; unless you style your links to look extremely unique, it's best to provide underlines for quick visual identification */
  123 +
  124 +
  125 +a:hover, a:active, a:focus { /* this group of selectors will give a keyboard navigator the same hover experience as the person using a mouse. */
  126 + text-decoration: none;}
  127 +
  128 +
  129 +
  130 +
  131 + a:link { color:#0000FF; }
  132 +
  133 +
  134 +
  135 +* {
  136 + -webkit-touch-callout: none;
  137 + -webkit-user-select: none; /* Disable selection/Copy of UIWebView */
  138 +}
  139 +
  140 +
  141 +
  142 + </style>
  143 + </head>
  144 + <body>
  145 +
  146 +
  147 +
  148 +
  149 + <div id="container">
  150 +
  151 +
  152 + <div id="introduction_headline">
  153 + <h2>aFreeRDP </br>Remote Desktop Client</h2>
  154 + </div>
  155 + <p>
  156 + <img src="FreeRDP_Logo.png" width="30%%"></p>
  157 + <div id="introduction">
  158 +
  159 + aFreeRDP is an open source client
  160 + capable of natively using Remote Desktop Protocol (RDP) in order to remotely access your Windows desktop.</div>
  161 +
  162 +
  163 + <div id="article">
  164 + <div id="headline"><h3>Version Information</h3></div>
  165 + <p>
  166 + <table class="centered-table" border=0 cellspacing=1 cellpadding=3 >
  167 + <tr>
  168 + <td>aFreeRDP Version</td> <td>%1$s</td> </tr>
  169 + <tr> <td>System Version</td> <td>%2$s</td> </tr>
  170 + <tr> <td>Model</td> <td>%3$s</td> </tr>
  171 + </table>
  172 + </p>
  173 + </div>
  174 +<div id="article">
  175 +
  176 + <div id="headline">
  177 + <h3>Credits</h3>
  178 + </div>
  179 +
  180 + aFreeRDP is a part of <a href="http://www.freerdp.com/">FreeRDP</a>
  181 +
  182 +</div>
  183 +
  184 +<div id="article">
  185 + <div id="headline">
  186 + <h3>License</h3>
  187 + </div>
  188 +
  189 + This program is free software; you can redistribute it and/or modify it under the terms of the Mozilla Public License, v. 2.0.
  190 + You can obtain an online version of the License from <a href="http://mozilla.org/MPL/2.0/">http://mozilla.org/MPL/2.0/</a>.
  191 + </p>
  192 + <p>
  193 + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
  194 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  195 + </p>
  196 + <p>
  197 + A copy of the product's source code can be obtained from the FreeRDP GitHub repository at <a
  198 + href="https://github.com/FreeRDP/FreeRDP">https://github.com/FreeRDP/FreeRDP</a>.<br />
  199 + </p>
  200 + <br></div>
  201 + </body>
  202 +</html>
200 client/Android/assets/about_page/about_phone.html
... ... @@ -0,0 +1,200 @@
  1 +<html>
  2 + <head>
  3 + <meta name='viewport' content='width=device-width; initial-scale=1.0; maximum-scale=1.0;' />
  4 +
  5 + <script language="javascript">
  6 +function toggle() {
  7 + var ele = document.getElementById("toggleText");
  8 + var text = document.getElementById("displayText");
  9 + if(ele.style.display == "block") {
  10 + ele.style.display = "none";
  11 + text.innerHTML = "show";
  12 + }
  13 + else {
  14 + ele.style.display = "block";
  15 + text.innerHTML = "<b>hide</b>";
  16 + }
  17 +}
  18 +</script>
  19 +
  20 + <style type="text/css">
  21 + @charset "utf-8";
  22 +body {
  23 + font: 100%%/1 Helvetica;
  24 + background-color:#E9EBF8;
  25 + height: 100%%; width: 100%%; margin: 0;
  26 + background-image:url(back.jpg);
  27 + background-position:center;
  28 +
  29 + text-align:center;
  30 +}
  31 +
  32 +.centered-table {
  33 + margin-left: auto;
  34 + margin-right: auto;
  35 +}
  36 +
  37 +#headline{
  38 +
  39 + background-color:#353639;
  40 + opacity:0.9;
  41 +
  42 + color:FFF;
  43 + text-align:center;
  44 +
  45 +
  46 + }
  47 +
  48 + #footer{
  49 + padding-top:10px;
  50 + }
  51 +
  52 +#footer img{
  53 + padding top:10 px;
  54 + }
  55 +#article{
  56 +
  57 +
  58 +background-color:#FFFFFF;
  59 +opacity: 0.8;
  60 +z-index:0;
  61 +margin-bottom:3%%;
  62 +padding-bottom:0.1%%;
  63 +border-radius: 15px;
  64 +border-top-left-radius:0px;
  65 +border-top-right-radius:0px;
  66 +color:#000;
  67 +margin: 10px auto;
  68 +position:relative;
  69 +
  70 + }
  71 +
  72 +
  73 +#introduction_headline{
  74 + width:inherit;
  75 + background-color:#353639;
  76 + opacity:0.9;
  77 + color:FFF;
  78 + text-align:center;
  79 + border-bottom-left-radius:15px;
  80 + border-bottom-right-radius:15px;
  81 +
  82 +
  83 + }
  84 +
  85 +#introduction{
  86 +
  87 +
  88 +background-color:#FFFFFF;
  89 +opacity: 0.8;
  90 +z-index:0;
  91 +margin-bottom:3%%;
  92 +padding-bottom:0.1%%;
  93 +border-radius: 10px;
  94 +color:#000;
  95 + }
  96 +
  97 +#container
  98 +{
  99 + margin-left: auto;
  100 + margin-right: auto;
  101 +
  102 + width:300px;
  103 +}
  104 +/* ~~ Element/tag selectors ~~ */
  105 +ul, ol, dl { /* Due to variations between browsers, it's best practices to zero padding and margin on lists. For consistency, you can either specify the amounts you want here, or on the list items (LI, DT, DD) they contain. Remember that what you do here will cascade to the .nav list unless you write a more specific selector. */
  106 + padding: 0;
  107 + margin: 0;
  108 +}
  109 +h1, h2, h3, h4, h5, h6, p {
  110 + margin-top: 0; /* removing the top margin gets around an issue where margins can escape from their containing div. The remaining bottom margin will hold it away from any elements that follow. */
  111 + padding-right: 1px;
  112 + padding-left: 1px; /* adding the padding to the sides of the elements within the divs, instead of the divs themselves, gets rid of any box model math. A nested div with side padding can also be used as an alternate method. */
  113 +}
  114 +a img { /* this selector removes the default blue border displayed in some browsers around an image when it is surrounded by a link */
  115 + border: none;
  116 + alignment: right;}
  117 +}
  118 +
  119 +/* ~~ Styling for your site's links must remain in this order - including the group of selectors that create the hover effect. ~~ */
  120 +/*a:link {
  121 + color:#414958;
  122 + text-decoration: underline; unless you style your links to look extremely unique, it's best to provide underlines for quick visual identification */
  123 +
  124 +
  125 +a:hover, a:active, a:focus { /* this group of selectors will give a keyboard navigator the same hover experience as the person using a mouse. */
  126 + text-decoration: none;}
  127 +
  128 +
  129 +
  130 +
  131 + a:link { color:#0000FF; }
  132 +
  133 +
  134 +
  135 +* {
  136 + -webkit-touch-callout: none;
  137 + -webkit-user-select: none; /* Disable selection/Copy of UIWebView */
  138 +}
  139 +
  140 +
  141 +
  142 +}
  143 +
  144 + </style>
  145 + </head>
  146 + <body>
  147 +
  148 +
  149 +
  150 +
  151 + <div id="container">
  152 +
  153 +
  154 + <div id="introduction_headline">
  155 + <h2>aFreeRDP</br>Remote Desktop Client</h2>
  156 + </div>
  157 + <p>
  158 + <img src="FreeRDP_Logo.png" width="25%%"></p>
  159 + <div id="introduction">
  160 +
  161 + <b>aFreeRDP</b> is an open source client for Windows Remote Services using Remote Desktop Protocol (RDP) in order to remotely access your Windows desktop.</div>
  162 +
  163 +
  164 + <div id="article">
  165 + <div id="headline"><h3>Version Information</h3></div>
  166 + <p>
  167 + <table class="centered-table" border=0 cellspacing=1 cellpadding=3 >
  168 + <tr>
  169 + <td>aFreerdp Version</td> <td>%1$s</td> </tr>
  170 + <tr> <td>System Version</td> <td>%2$s</td> </tr>
  171 + <tr> <td>Model</td> <td>%3$s</td> </tr>
  172 + </table>
  173 + </p>
  174 + </div>
  175 +<div id="article">
  176 +
  177 + <div id="headline">
  178 + <h3>Credits</h3>
  179 + </div>
  180 + aFreeRDP is part of <a href="http://www.freerdp.com/">FreeRDP</a>
  181 +</div>
  182 +<div id="article">
  183 + <div id="headline">
  184 + <h3>License</h3>
  185 + </div>
  186 +
  187 + This program is free software; you can redistribute it and/or modify it under the terms of the Mozilla Public License, v. 2.0.
  188 + You can obtain an online version of the License from <a href="http://mozilla.org/MPL/2.0/">http://mozilla.org/MPL/2.0/</a>.
  189 + </p>
  190 + <p>
  191 + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
  192 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  193 + </p>
  194 + <p>
  195 + A copy of the product's source code can be obtained from the FreeRDP GitHub repository at <a
  196 + href="https://github.com/FreeRDP/FreeRDP">https://github.com/FreeRDP/FreeRDP</a>.<br />
  197 + </p> </div>
  198 + </div>
  199 + </body>
  200 +</html>
BIN  client/Android/assets/about_page/back.jpg
BIN  client/Android/assets/about_page/background_transparent.png
BIN  client/Android/assets/help_page/back.jpg
159 client/Android/assets/help_page/gestures.html
... ... @@ -0,0 +1,159 @@
  1 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
  2 +
  3 +<html>
  4 +
  5 +<head>
  6 +<meta charset="utf-8">
  7 +<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;" />
  8 +<title>Help</title>
  9 +
  10 +<style type="text/css">
  11 +
  12 +@charset "utf-8";
  13 +
  14 +
  15 +#container{
  16 +
  17 + text-align:center;
  18 + }
  19 +
  20 +body{
  21 + margin:0;
  22 + padding:<length> 0 0 0;
  23 + font: 100%/1.4 Helvetica;
  24 + background-image:url(back.jpg);
  25 + background-position:center;
  26 + color:#000;
  27 +
  28 +
  29 + }
  30 +
  31 + #headline{
  32 +
  33 + background-color:#353639;
  34 + opacity:0.9;
  35 +
  36 + color:#000;
  37 + text-align:center;
  38 +
  39 +
  40 + }
  41 +
  42 + #article{
  43 +
  44 +
  45 +background-color:#FFFFFF;
  46 +opacity: 0.8;
  47 +z-index:0;
  48 +margin-bottom:3%;
  49 +padding-bottom:0.1%;
  50 +border-radius: 15px;
  51 +border-top-left-radius:0px;
  52 +border-top-right-radius:0px;
  53 +color:#000;
  54 +margin: 10px auto;
  55 +position:relative;
  56 +
  57 +
  58 + }
  59 +
  60 +#header{
  61 +
  62 + height:auto;
  63 + width:100%;
  64 + background-color:#353639;
  65 + padding-bottom:5px;
  66 + padding-left:5px;
  67 + padding-right:5px;
  68 + padding-top:10px;
  69 + position: fixed;
  70 + top: 0;
  71 + left: 0;
  72 + height:40px;
  73 + overflow:visible;
  74 + min-width:400px;
  75 + z-index:20;
  76 +
  77 +
  78 + }
  79 +
  80 +
  81 +
  82 +
  83 +#content{
  84 + padding-top:70px;
  85 + z-index:-20;
  86 + max-width:420px;
  87 +
  88 + }
  89 +
  90 +
  91 +
  92 +/* ~~ Element/tag selectors ~~ */
  93 +ul, ol, dl { /* Due to variations between browsers, it's best practices to zero padding and margin on lists. For consistency, you can either specify the amounts you want here, or on the list items (LI, DT, DD) they contain. Remember that what you do here will cascade to the .nav list unless you write a more specific selector. */
  94 + padding: 0;
  95 + margin: 0;
  96 +}
  97 +
  98 +h1, h2, h3, h4, h5, h6, p {
  99 + margin-top: 0; /* removing the top margin gets around an issue where margins can escape from their containing div. The remaining bottom margin will hold it away from any elements that follow. */
  100 + padding-right: 1px;
  101 + padding-left: 1px; /* adding the padding to the sides of the elements within the divs, instead of the divs themselves, gets rid of any box model math. A nested div with side padding can also be used as an alternate method.
  102 + */
  103 + color:#000;
  104 +
  105 +}
  106 +
  107 +a img { /* this selector removes the default blue border displayed in some browsers around an image when it is surrounded by a link */
  108 + border: none;
  109 +
  110 +}
  111 +
  112 +/* ~~ Styling for your site's links must remain in this order - including the group of selectors that create the hover effect. ~~ */
  113 +/*a:link {
  114 + color:#414958;
  115 + text-decoration: underline; unless you style your links to look extremely unique, it's best to provide underlines for quick visual identification */
  116 +
  117 +
  118 +a:hover, a:active, a:focus { /* this group of selectors will give a keyboard navigator the same hover experience as the person using a mouse. */
  119 + text-decoration: none;}
  120 +
  121 +
  122 +* {
  123 + -webkit-touch-callout: none;
  124 + -webkit-user-select: none; /* Disable selection/Copy of UIWebView */
  125 +}
  126 +
  127 +
  128 +
  129 +
  130 +
  131 +
  132 +</style>
  133 +
  134 +
  135 +
  136 +</head>
  137 +
  138 +<body>
  139 +<div id="container">
  140 +<center>
  141 +<div id="header">
  142 + <a href="gestures.html"><img src="nav_gestures.png"></a>
  143 + <a href="toolbar.html"><img src="nav_toolbar.png"></a>
  144 + <a href="touch_pointer.html"><img src="nav_touch_pointer.png"></a>
  145 +
  146 +</div>
  147 +
  148 +<div id="content">
  149 +<h1>Gestures</h1>
  150 +<p>
  151 +aFreeRDP is designed for touch sensitive devices.
  152 +These gestures let you do the most usual operations with your fingers.</p>
  153 +<p> <img src="gestures.png"></p>
  154 +
  155 +</div>
  156 +</div>
  157 +
  158 +</body>
  159 +</html>
BIN  client/Android/assets/help_page/gestures.png
159 client/Android/assets/help_page/gestures_phone.html
... ... @@ -0,0 +1,159 @@
  1 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
  2 +
  3 +<html>
  4 +
  5 +<head>
  6 +<meta charset="utf-8">
  7 +<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;" />
  8 +<title>Help</title>
  9 +
  10 +<style type="text/css">
  11 +
  12 +@charset "utf-8";
  13 +
  14 +
  15 +#container{
  16 +
  17 + text-align:center;
  18 + color:#000;}
  19 +
  20 +body{
  21 + margin:0;
  22 + padding:<length> 0 0 0;
  23 + font: 100% Helvetica;
  24 + background-image:url(back.jpg);
  25 + background-position:center;
  26 +
  27 +
  28 + }
  29 +
  30 + #headline{
  31 +
  32 + background-color:#353639;
  33 + opacity:0.9;
  34 +
  35 + color:FFF;
  36 + text-align:center;
  37 +
  38 +
  39 + }
  40 +
  41 + #article{
  42 +
  43 +
  44 +background-color:#FFFFFF;
  45 +opacity: 0.8;
  46 +z-index:0;
  47 +margin-bottom:3%;
  48 +padding-bottom:0.1%;
  49 +border-radius: 15px;
  50 +border-top-left-radius:0px;
  51 +border-top-right-radius:0px;
  52 +color:#000;
  53 +margin: 10px auto;
  54 +position:relative;
  55 +
  56 +
  57 + }
  58 +
  59 +#header{
  60 +
  61 +
  62 + width:100%;
  63 + background-color:#353639;
  64 + padding-bottom:1px;
  65 + padding-left:5px;
  66 + padding-right:5px;
  67 + padding-top:5px;
  68 + position: fixed;
  69 + top: 0;
  70 + left: 0;
  71 + height:30px;
  72 +
  73 + min-width:250px;
  74 + z-index:20;
  75 +
  76 +
  77 + }
  78 +
  79 +
  80 +
  81 +
  82 +#content{
  83 + padding-top:40px;
  84 + z-index:-20;
  85 + max-width:300px;
  86 +
  87 + }
  88 +
  89 +/* ~~ Element/tag selectors ~~ */
  90 +ul, ol, dl { /* Due to variations between browsers, it's best practices to zero padding and margin on lists. For consistency, you can either specify the amounts you want here, or on the list items (LI, DT, DD) they contain. Remember that what you do here will cascade to the .nav list unless you write a more specific selector. */
  91 + padding: 0;
  92 + margin: 0;
  93 +}
  94 +
  95 +h1, h2, h3, h4, h5, h6, p {
  96 + margin-top: 0; /* removing the top margin gets around an issue where margins can escape from their containing div. The remaining bottom margin will hold it away from any elements that follow. */
  97 + padding-right: 1px;
  98 + padding-left: 1px; /* adding the padding to the sides of the elements within the divs, instead of the divs themselves, gets rid of any box model math. A nested div with side padding can also be used as an alternate method.
  99 + */
  100 + color:#000;
  101 +
  102 +}
  103 +
  104 +a img { /* this selector removes the default blue border displayed in some browsers around an image when it is surrounded by a link */
  105 + border: none;