ProviderMeta.java 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337
  1. /*
  2. * ownCloud Android client application
  3. *
  4. * @author Bartek Przybylski
  5. * @author David A. Velasco
  6. * @author masensio
  7. * Copyright (C) 2011 Bartek Przybylski
  8. * Copyright (C) 2016 ownCloud Inc.
  9. *
  10. * This program is free software: you can redistribute it and/or modify
  11. * it under the terms of the GNU General Public License version 2,
  12. * as published by the Free Software Foundation.
  13. *
  14. * This program is distributed in the hope that it will be useful,
  15. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17. * GNU General Public License for more details.
  18. *
  19. * You should have received a copy of the GNU General Public License
  20. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  21. */
  22. package com.owncloud.android.db;
  23. import android.net.Uri;
  24. import android.provider.BaseColumns;
  25. import com.owncloud.android.MainApp;
  26. import java.util.Arrays;
  27. import java.util.Collections;
  28. import java.util.List;
  29. /**
  30. * Meta-Class that holds various static field information
  31. */
  32. public class ProviderMeta {
  33. public static final String DB_NAME = "filelist";
  34. public static final int DB_VERSION = 77;
  35. private ProviderMeta() {
  36. // No instance
  37. }
  38. static public class ProviderTableMeta implements BaseColumns {
  39. public static final String FILE_TABLE_NAME = "filelist";
  40. public static final String OCSHARES_TABLE_NAME = "ocshares";
  41. public static final String CAPABILITIES_TABLE_NAME = "capabilities";
  42. public static final String UPLOADS_TABLE_NAME = "list_of_uploads";
  43. public static final String SYNCED_FOLDERS_TABLE_NAME = "synced_folders";
  44. public static final String EXTERNAL_LINKS_TABLE_NAME = "external_links";
  45. public static final String ARBITRARY_DATA_TABLE_NAME = "arbitrary_data";
  46. public static final String VIRTUAL_TABLE_NAME = "virtual";
  47. public static final String FILESYSTEM_TABLE_NAME = "filesystem";
  48. public static final String EDITORS_TABLE_NAME = "editors";
  49. public static final String CREATORS_TABLE_NAME = "creators";
  50. private static final String CONTENT_PREFIX = "content://";
  51. public static final Uri CONTENT_URI = Uri.parse(CONTENT_PREFIX
  52. + MainApp.getAuthority() + "/");
  53. public static final Uri CONTENT_URI_FILE = Uri.parse(CONTENT_PREFIX
  54. + MainApp.getAuthority() + "/file");
  55. public static final Uri CONTENT_URI_DIR = Uri.parse(CONTENT_PREFIX
  56. + MainApp.getAuthority() + "/dir");
  57. public static final Uri CONTENT_URI_SHARE = Uri.parse(CONTENT_PREFIX
  58. + MainApp.getAuthority() + "/shares");
  59. public static final Uri CONTENT_URI_CAPABILITIES = Uri.parse(CONTENT_PREFIX
  60. + MainApp.getAuthority() + "/capabilities");
  61. public static final Uri CONTENT_URI_UPLOADS = Uri.parse(CONTENT_PREFIX
  62. + MainApp.getAuthority() + "/uploads");
  63. public static final Uri CONTENT_URI_SYNCED_FOLDERS = Uri.parse(CONTENT_PREFIX
  64. + MainApp.getAuthority() + "/synced_folders");
  65. public static final Uri CONTENT_URI_EXTERNAL_LINKS = Uri.parse(CONTENT_PREFIX
  66. + MainApp.getAuthority() + "/external_links");
  67. public static final Uri CONTENT_URI_VIRTUAL = Uri.parse(CONTENT_PREFIX + MainApp.getAuthority() + "/virtual");
  68. public static final Uri CONTENT_URI_FILESYSTEM = Uri.parse(CONTENT_PREFIX
  69. + MainApp.getAuthority() + "/filesystem");
  70. public static final String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.owncloud.file";
  71. public static final String CONTENT_TYPE_ITEM = "vnd.android.cursor.item/vnd.owncloud.file";
  72. // Columns of filelist table
  73. public static final String FILE_PARENT = "parent";
  74. public static final String FILE_NAME = "filename";
  75. public static final String FILE_ENCRYPTED_NAME = "encrypted_filename";
  76. public static final String FILE_CREATION = "created";
  77. public static final String FILE_MODIFIED = "modified";
  78. public static final String FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA = "modified_at_last_sync_for_data";
  79. public static final String FILE_CONTENT_LENGTH = "content_length";
  80. public static final String FILE_CONTENT_TYPE = "content_type";
  81. public static final String FILE_STORAGE_PATH = "media_path";
  82. public static final String FILE_PATH = "path";
  83. public static final String FILE_PATH_DECRYPTED = "path_decrypted";
  84. public static final String FILE_ACCOUNT_OWNER = "file_owner";
  85. public static final String FILE_LAST_SYNC_DATE = "last_sync_date";// _for_properties, but let's keep it as it is
  86. public static final String FILE_LAST_SYNC_DATE_FOR_DATA = "last_sync_date_for_data";
  87. public static final String FILE_KEEP_IN_SYNC = "keep_in_sync";
  88. public static final String FILE_ETAG = "etag";
  89. public static final String FILE_ETAG_ON_SERVER = "etag_on_server";
  90. public static final String FILE_SHARED_VIA_LINK = "share_by_link";
  91. public static final String FILE_SHARED_WITH_SHAREE = "shared_via_users";
  92. public static final String FILE_PERMISSIONS = "permissions";
  93. public static final String FILE_LOCAL_ID = "local_id";
  94. public static final String FILE_REMOTE_ID = "remote_id";
  95. public static final String FILE_UPDATE_THUMBNAIL = "update_thumbnail";
  96. public static final String FILE_IS_DOWNLOADING = "is_downloading";
  97. public static final String FILE_ETAG_IN_CONFLICT = "etag_in_conflict";
  98. public static final String FILE_FAVORITE = "favorite";
  99. public static final String FILE_HIDDEN = "hidden";
  100. public static final String FILE_IS_ENCRYPTED = "is_encrypted";
  101. public static final String FILE_MOUNT_TYPE = "mount_type";
  102. public static final String FILE_HAS_PREVIEW = "has_preview";
  103. public static final String FILE_UNREAD_COMMENTS_COUNT = "unread_comments_count";
  104. public static final String FILE_OWNER_ID = "owner_id";
  105. public static final String FILE_OWNER_DISPLAY_NAME = "owner_display_name";
  106. public static final String FILE_NOTE = "note";
  107. public static final String FILE_SHAREES = "sharees";
  108. public static final String FILE_RICH_WORKSPACE = "rich_workspace";
  109. public static final String FILE_METADATA_SIZE = "metadata_size";
  110. public static final String FILE_METADATA_GPS = "metadata_gps";
  111. public static final String FILE_METADATA_LIVE_PHOTO = "metadata_live_photo";
  112. public static final String FILE_LOCKED = "locked";
  113. public static final String FILE_LOCK_TYPE = "lock_type";
  114. public static final String FILE_LOCK_OWNER = "lock_owner";
  115. public static final String FILE_LOCK_OWNER_DISPLAY_NAME = "lock_owner_display_name";
  116. public static final String FILE_LOCK_OWNER_EDITOR = "lock_owner_editor";
  117. public static final String FILE_LOCK_TIMESTAMP = "lock_timestamp";
  118. public static final String FILE_LOCK_TIMEOUT = "lock_timeout";
  119. public static final String FILE_LOCK_TOKEN = "lock_token";
  120. public static final String FILE_TAGS = "tags";
  121. public static final String FILE_E2E_COUNTER = "e2e_counter";
  122. public static final List<String> FILE_ALL_COLUMNS = Collections.unmodifiableList(Arrays.asList(
  123. _ID,
  124. FILE_PARENT,
  125. FILE_NAME,
  126. FILE_ENCRYPTED_NAME,
  127. FILE_CREATION,
  128. FILE_MODIFIED,
  129. FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA,
  130. FILE_CONTENT_LENGTH,
  131. FILE_CONTENT_TYPE,
  132. FILE_STORAGE_PATH,
  133. FILE_PATH,
  134. FILE_PATH_DECRYPTED,
  135. FILE_ACCOUNT_OWNER,
  136. FILE_LAST_SYNC_DATE,
  137. FILE_LAST_SYNC_DATE_FOR_DATA,
  138. FILE_KEEP_IN_SYNC,
  139. FILE_ETAG,
  140. FILE_ETAG_ON_SERVER,
  141. FILE_SHARED_VIA_LINK,
  142. FILE_SHARED_WITH_SHAREE,
  143. FILE_PERMISSIONS,
  144. FILE_REMOTE_ID,
  145. FILE_LOCAL_ID,
  146. FILE_UPDATE_THUMBNAIL,
  147. FILE_IS_DOWNLOADING,
  148. FILE_ETAG_IN_CONFLICT,
  149. FILE_FAVORITE,
  150. FILE_HIDDEN,
  151. FILE_IS_ENCRYPTED,
  152. FILE_MOUNT_TYPE,
  153. FILE_HAS_PREVIEW,
  154. FILE_UNREAD_COMMENTS_COUNT,
  155. FILE_OWNER_ID,
  156. FILE_OWNER_DISPLAY_NAME,
  157. FILE_NOTE,
  158. FILE_SHAREES,
  159. FILE_RICH_WORKSPACE,
  160. FILE_LOCKED,
  161. FILE_LOCK_TYPE,
  162. FILE_LOCK_OWNER,
  163. FILE_LOCK_OWNER_DISPLAY_NAME,
  164. FILE_LOCK_OWNER_EDITOR,
  165. FILE_LOCK_TIMESTAMP,
  166. FILE_LOCK_TIMEOUT,
  167. FILE_LOCK_TOKEN,
  168. FILE_METADATA_SIZE,
  169. FILE_METADATA_LIVE_PHOTO,
  170. FILE_E2E_COUNTER,
  171. FILE_TAGS,
  172. FILE_METADATA_GPS));
  173. public static final String FILE_DEFAULT_SORT_ORDER = FILE_NAME + " collate nocase asc";
  174. // Columns of ocshares table
  175. public static final String OCSHARES_FILE_SOURCE = "file_source";
  176. public static final String OCSHARES_ITEM_SOURCE = "item_source";
  177. public static final String OCSHARES_SHARE_TYPE = "share_type";
  178. public static final String OCSHARES_SHARE_WITH = "shate_with";
  179. public static final String OCSHARES_PATH = "path";
  180. public static final String OCSHARES_PERMISSIONS = "permissions";
  181. public static final String OCSHARES_SHARED_DATE = "shared_date";
  182. public static final String OCSHARES_EXPIRATION_DATE = "expiration_date";
  183. public static final String OCSHARES_TOKEN = "token";
  184. public static final String OCSHARES_SHARE_WITH_DISPLAY_NAME = "shared_with_display_name";
  185. public static final String OCSHARES_IS_DIRECTORY = "is_directory";
  186. public static final String OCSHARES_USER_ID = "user_id";
  187. public static final String OCSHARES_ID_REMOTE_SHARED = "id_remote_shared";
  188. public static final String OCSHARES_ACCOUNT_OWNER = "owner_share";
  189. public static final String OCSHARES_IS_PASSWORD_PROTECTED = "is_password_protected";
  190. public static final String OCSHARES_NOTE = "note";
  191. public static final String OCSHARES_HIDE_DOWNLOAD = "hide_download";
  192. public static final String OCSHARES_SHARE_LINK = "share_link";
  193. public static final String OCSHARES_SHARE_LABEL = "share_label";
  194. public static final String OCSHARES_DEFAULT_SORT_ORDER = OCSHARES_FILE_SOURCE
  195. + " collate nocase asc";
  196. // Columns of capabilities table
  197. public static final String CAPABILITIES_ACCOUNT_NAME = "account";
  198. public static final String CAPABILITIES_VERSION_MAYOR = "version_mayor";
  199. public static final String CAPABILITIES_VERSION_MINOR = "version_minor";
  200. public static final String CAPABILITIES_VERSION_MICRO = "version_micro";
  201. public static final String CAPABILITIES_VERSION_STRING = "version_string";
  202. public static final String CAPABILITIES_VERSION_EDITION = "version_edition";
  203. public static final String CAPABILITIES_EXTENDED_SUPPORT = "extended_support";
  204. public static final String CAPABILITIES_CORE_POLLINTERVAL = "core_pollinterval";
  205. public static final String CAPABILITIES_SHARING_API_ENABLED = "sharing_api_enabled";
  206. public static final String CAPABILITIES_SHARING_PUBLIC_ENABLED = "sharing_public_enabled";
  207. public static final String CAPABILITIES_SHARING_PUBLIC_PASSWORD_ENFORCED = "sharing_public_password_enforced";
  208. public static final String CAPABILITIES_SHARING_PUBLIC_ASK_FOR_OPTIONAL_PASSWORD =
  209. "sharing_public_ask_for_optional_password";
  210. public static final String CAPABILITIES_SHARING_PUBLIC_EXPIRE_DATE_ENABLED =
  211. "sharing_public_expire_date_enabled";
  212. public static final String CAPABILITIES_SHARING_PUBLIC_EXPIRE_DATE_DAYS =
  213. "sharing_public_expire_date_days";
  214. public static final String CAPABILITIES_SHARING_PUBLIC_EXPIRE_DATE_ENFORCED =
  215. "sharing_public_expire_date_enforced";
  216. public static final String CAPABILITIES_SHARING_PUBLIC_SEND_MAIL = "sharing_public_send_mail";
  217. public static final String CAPABILITIES_SHARING_PUBLIC_UPLOAD = "sharing_public_upload";
  218. public static final String CAPABILITIES_SHARING_USER_SEND_MAIL = "sharing_user_send_mail";
  219. public static final String CAPABILITIES_SHARING_RESHARING = "sharing_resharing";
  220. public static final String CAPABILITIES_SHARING_FEDERATION_OUTGOING = "sharing_federation_outgoing";
  221. public static final String CAPABILITIES_SHARING_FEDERATION_INCOMING = "sharing_federation_incoming";
  222. public static final String CAPABILITIES_FILES_BIGFILECHUNKING = "files_bigfilechunking";
  223. public static final String CAPABILITIES_FILES_UNDELETE = "files_undelete";
  224. public static final String CAPABILITIES_FILES_VERSIONING = "files_versioning";
  225. public static final String CAPABILITIES_FILES_LOCKING_VERSION = "files_locking_version";
  226. public static final String CAPABILITIES_EXTERNAL_LINKS = "external_links";
  227. public static final String CAPABILITIES_SERVER_NAME = "server_name";
  228. public static final String CAPABILITIES_SERVER_COLOR = "server_color";
  229. public static final String CAPABILITIES_SERVER_TEXT_COLOR = "server_text_color";
  230. public static final String CAPABILITIES_SERVER_ELEMENT_COLOR = "server_element_color";
  231. public static final String CAPABILITIES_SERVER_BACKGROUND_URL = "background_url";
  232. public static final String CAPABILITIES_SERVER_SLOGAN = "server_slogan";
  233. public static final String CAPABILITIES_SERVER_LOGO = "server_logo";
  234. public static final String CAPABILITIES_SERVER_BACKGROUND_DEFAULT = "background_default";
  235. public static final String CAPABILITIES_SERVER_BACKGROUND_PLAIN = "background_plain";
  236. public static final String CAPABILITIES_END_TO_END_ENCRYPTION = "end_to_end_encryption";
  237. public static final String CAPABILITIES_END_TO_END_ENCRYPTION_KEYS_EXIST = "end_to_end_encryption_keys_exist";
  238. public static final String CAPABILITIES_END_TO_END_ENCRYPTION_API_VERSION = "end_to_end_encryption_api_version";
  239. public static final String CAPABILITIES_ACTIVITY = "activity";
  240. public static final String CAPABILITIES_RICHDOCUMENT = "richdocument";
  241. public static final String CAPABILITIES_RICHDOCUMENT_MIMETYPE_LIST = "richdocument_mimetype_list";
  242. public static final String CAPABILITIES_RICHDOCUMENT_OPTIONAL_MIMETYPE_LIST =
  243. "richdocument_optional_mimetype_list";
  244. public static final String CAPABILITIES_RICHDOCUMENT_DIRECT_EDITING = "richdocument_direct_editing";
  245. public static final String CAPABILITIES_RICHDOCUMENT_TEMPLATES = "richdocument_direct_templates";
  246. public static final String CAPABILITIES_RICHDOCUMENT_PRODUCT_NAME = "richdocument_product_name";
  247. public static final String CAPABILITIES_DEFAULT_SORT_ORDER = CAPABILITIES_ACCOUNT_NAME
  248. + " collate nocase asc";
  249. public static final String CAPABILITIES_DIRECT_EDITING_ETAG = "direct_editing_etag";
  250. public static final String CAPABILITIES_ETAG = "etag";
  251. public static final String CAPABILITIES_USER_STATUS = "user_status";
  252. public static final String CAPABILITIES_USER_STATUS_SUPPORTS_EMOJI = "user_status_supports_emoji";
  253. public static final String CAPABILITIES_GROUPFOLDERS = "groupfolders";
  254. public static final String CAPABILITIES_DROP_ACCOUNT = "drop_account";
  255. public static final String CAPABILITIES_SECURITY_GUARD = "security_guard";
  256. //Columns of Uploads table
  257. public static final String UPLOADS_LOCAL_PATH = "local_path";
  258. public static final String UPLOADS_REMOTE_PATH = "remote_path";
  259. public static final String UPLOADS_ACCOUNT_NAME = "account_name";
  260. public static final String UPLOADS_FILE_SIZE = "file_size";
  261. public static final String UPLOADS_STATUS = "status";
  262. public static final String UPLOADS_LOCAL_BEHAVIOUR = "local_behaviour";
  263. public static final String UPLOADS_UPLOAD_TIME = "upload_time";
  264. public static final String UPLOADS_NAME_COLLISION_POLICY = "name_collision_policy";
  265. public static final String UPLOADS_IS_CREATE_REMOTE_FOLDER = "is_create_remote_folder";
  266. public static final String UPLOADS_UPLOAD_END_TIMESTAMP = "upload_end_timestamp";
  267. public static final String UPLOADS_LAST_RESULT = "last_result";
  268. public static final String UPLOADS_CREATED_BY = "created_by";
  269. public static final String UPLOADS_DEFAULT_SORT_ORDER = ProviderTableMeta._ID + " collate nocase desc";
  270. public static final String UPLOADS_IS_WHILE_CHARGING_ONLY = "is_while_charging_only";
  271. public static final String UPLOADS_IS_WIFI_ONLY = "is_wifi_only";
  272. public static final String UPLOADS_FOLDER_UNLOCK_TOKEN = "folder_unlock_token";
  273. // Columns of synced folder table
  274. public static final String SYNCED_FOLDER_LOCAL_PATH = "local_path";
  275. public static final String SYNCED_FOLDER_REMOTE_PATH = "remote_path";
  276. public static final String SYNCED_FOLDER_WIFI_ONLY = "wifi_only";
  277. public static final String SYNCED_FOLDER_CHARGING_ONLY = "charging_only";
  278. public static final String SYNCED_FOLDER_EXISTING = "existing";
  279. public static final String SYNCED_FOLDER_ENABLED = "enabled";
  280. public static final String SYNCED_FOLDER_ENABLED_TIMESTAMP_MS = "enabled_timestamp_ms";
  281. public static final String SYNCED_FOLDER_TYPE = "type";
  282. public static final String SYNCED_FOLDER_SUBFOLDER_BY_DATE = "subfolder_by_date";
  283. public static final String SYNCED_FOLDER_ACCOUNT = "account";
  284. public static final String SYNCED_FOLDER_UPLOAD_ACTION = "upload_option";
  285. public static final String SYNCED_FOLDER_NAME_COLLISION_POLICY = "name_collision_policy";
  286. public static final String SYNCED_FOLDER_HIDDEN = "hidden";
  287. public static final String SYNCED_FOLDER_SUBFOLDER_RULE = "sub_folder_rule";
  288. // Columns of external links table
  289. public static final String EXTERNAL_LINKS_ICON_URL = "icon_url";
  290. public static final String EXTERNAL_LINKS_LANGUAGE = "language";
  291. public static final String EXTERNAL_LINKS_TYPE = "type";
  292. public static final String EXTERNAL_LINKS_NAME = "name";
  293. public static final String EXTERNAL_LINKS_URL = "url";
  294. public static final String EXTERNAL_LINKS_REDIRECT = "redirect";
  295. // Columns of arbitrary data table
  296. public static final String ARBITRARY_DATA_CLOUD_ID = "cloud_id";
  297. public static final String ARBITRARY_DATA_KEY = "key";
  298. public static final String ARBITRARY_DATA_VALUE = "value";
  299. // Columns of virtual
  300. public static final String VIRTUAL_TYPE = "type";
  301. public static final String VIRTUAL_OCFILE_ID = "ocfile_id";
  302. // Columns of filesystem data table
  303. public static final String FILESYSTEM_FILE_LOCAL_PATH = "local_path";
  304. public static final String FILESYSTEM_FILE_MODIFIED = "modified_at";
  305. public static final String FILESYSTEM_FILE_IS_FOLDER = "is_folder";
  306. public static final String FILESYSTEM_FILE_FOUND_RECENTLY = "found_at";
  307. public static final String FILESYSTEM_FILE_SENT_FOR_UPLOAD = "upload_triggered";
  308. public static final String FILESYSTEM_SYNCED_FOLDER_ID = "syncedfolder_id";
  309. public static final String FILESYSTEM_CRC32 = "crc32";
  310. private ProviderTableMeta() {
  311. // No instance
  312. }
  313. }
  314. }