ownCloud Android client application
Copyright (C) 2012 Bartek Przybylski
- Copyright (C) 2012-2013 ownCloud Inc.
+ Copyright (C) 2012-2014 ownCloud Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2,
along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<manifest package="com.owncloud.android"
- android:versionCode="104000"
- android:versionName="1.4.0" xmlns:android="http://schemas.android.com/apk/res/android">
+ android:versionCode="105005"
+ android:versionName="1.5.5" xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-sdk
android:minSdkVersion="8"
- android:targetSdkVersion="13" />
+ android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
</uses-permission>
<application
+ android:name=".MainApp"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/Theme.ownCloud">
<activity
android:name=".ui.activity.FileDisplayActivity"
- android:label="@string/app_name">
+ android:label="@string/app_name"
+ >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
-
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ui.activity.InstantUploadActivity">
</activity>
<activity android:name=".ui.activity.FailedUploadActivity" android:theme="@android:style/Theme.Dialog" android:excludeFromRecents="true"/>
- <activity android:name=".Uploader" >
+ <activity android:name=".ui.activity.Uploader" >
<intent-filter>
<action android:name="android.intent.action.SEND" >
</action>
<data android:mimeType="*/*" >
</data>
- </intent-filter>
+
+ </intent-filter>
</activity>
<activity
android:name=".ui.activity.Preferences"
<activity android:name=".ui.activity.PreferencesNewSessionewSession" >
</activity>
- <activity android:name="com.owncloud.android.ui.preview.PreviewImageActivity" />
+ <activity
+ android:name=".ui.preview.PreviewImageActivity"
+ />
- <activity android:name="com.owncloud.android.ui.preview.PreviewVideoActivity"
- android:label="@string/app_name"
- android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
+ <activity
+ android:name=".ui.preview.PreviewVideoActivity"
+ android:label="@string/app_name"
+ android:theme="@style/Theme.ownCloud.Fullscreen"
+ >
</activity>
<service
- android:name=".authenticator.AccountAuthenticatorService"
+ android:name=".authentication.AccountAuthenticatorService"
android:exported="true">
<intent-filter android:priority="100">
<action android:name="android.accounts.AccountAuthenticator" />
</service>
<service
android:name=".syncadapter.FileSyncService"
- android:exported="true" >
+ android:exported="true"
+ >
<intent-filter>
<action android:name="android.content.SyncAdapter" />
</intent-filter>
<provider
android:name=".providers.FileContentProvider"
- android:authorities="org.owncloud"
+ android:authorities="@string/authority"
android:enabled="true"
android:exported="false"
android:label="@string/sync_string_files"
</provider>
<activity
- android:name=".ui.activity.AuthenticatorActivity"
+ android:name=".authentication.AuthenticatorActivity"
android:exported="true"
- android:theme="@style/Theme.ownCloud.noActionBar" >
+ android:theme="@style/Theme.ownCloud.noActionBar"
+ android:launchMode="singleTask">
+ <intent-filter>
+ <action android:name="android.intent.action.VIEW" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <category android:name="android.intent.category.BROWSABLE" />
+ <data android:scheme="@string/oauth2_redirect_scheme" />
+ </intent-filter>
<intent-filter>
<action android:name="com.owncloud.android.workaround.accounts.CREATE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
+ <service android:name=".services.OperationsService" />
<service android:name=".files.services.FileDownloader" />
<service android:name=".files.services.FileUploader" />
<service android:name=".media.MediaService" />
- <activity android:name=".ui.activity.FileDetailActivity" />
<activity android:name=".ui.activity.PinCodeActivity" />
- <activity android:name=".extensions.ExtensionsAvailableActivity"></activity>
- <activity android:name=".extensions.ExtensionsListActivity"></activity>
<activity android:name=".ui.activity.AccountSelectActivity" android:uiOptions="none" android:label="@string/prefs_accounts"></activity>
<activity android:name=".ui.activity.ConflictsResolveActivity"/>
<activity android:name=".ui.activity.GenericExplanationActivity"/>
<receiver android:name=".files.InstantUploadBroadcastReceiver">
<intent-filter>
+ <!-- unofficially supported by many Android phones but not by HTC devices: -->
+ <action android:name="com.android.camera.NEW_PICTURE" />
+ <!-- officially supported since Android 4.0 (SDK 14, works even for HTC devices): -->
<action android:name="android.hardware.action.NEW_PICTURE" />
<data android:mimeType="image/*" />
</intent-filter>
<intent-filter>
+ <action android:name="android.hardware.action.NEW_VIDEO" />
+ <data android:mimeType="video/*" />
+ </intent-filter>
+ <intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
</intent-filter>
</receiver>
</intent-filter>
</receiver>
<service android:name=".files.services.FileObserverService"/>
+
+ <activity
+ android:name=".ui.activity.CopyToClipboardActivity"
+ android:label="@string/copy_link"
+ android:icon="@drawable/copy_link" />
+
</application>
-
+
</manifest>
<?xml version="1.0" encoding="utf-8"?>
<resources>
- <string name="app_name">ownCloud</string>
- <string name="main_password">Password:</string>
- <string name="main_login">Username:</string>
- <string name="main_button_login">Login</string>
- <string name="main_welcome">Welcome</string>
- <string name="main_files">Files</string>
- <string name="main_music">Music</string>
- <string name="main_contacts">Contacts</string>
- <string name="main_calendar">Calendar</string>
- <string name="main_bookmarks">Bookmarks</string>
- <string name="main_settings">Settings</string>
- <string name="main_tit_accsetup">Setup Account</string>
- <string name="main_wrn_accsetup">There is no account set up on your device. In order to use this App, you need to create one.</string>
<string name="about_android">%1$s Android App</string>
<string name="about_version">version %1$s</string>
- <string name="actionbar_sync">Refresh</string>
+ <string name="actionbar_sync">Refresh account</string>
<string name="actionbar_upload">Upload</string>
<string name="actionbar_upload_from_apps">Content from other apps</string>
<string name="actionbar_upload_files">Files</string>
- <string name="actionbar_mkdir">Create directory</string>
- <string name="actionbar_search">Search</string>
+ <string name="actionbar_open_with">Open with</string>
+ <string name="actionbar_mkdir">New folder</string>
<string name="actionbar_settings">Settings</string>
<string name="actionbar_see_details">Details</string>
-
+ <string name="actionbar_send_file">Send</string>
<string name="prefs_category_general">General</string>
- <string name="prefs_add_session">Add new session</string>
- <string name="prefs_create_img_thumbnails">Create image thumbnails</string>
- <string name="prefs_select_oc_account">Select an account</string>
- <string name="prefs_summary_select_oc_account">Choose which of your accounts the app should use.</string>
- <string name="prefs_trackmydevice">Device Tracking</string>
- <string name="prefs_trackmydevice_summary_off">Enable this App to track your device location</string>
- <string name="prefs_trackmydevice_summary_on">This App keeps track of this device</string>
- <string name="prefs_trackmydevice_interval">Update Interval</string>
- <string name="prefs_trackmydevice_interval_summary">Update every %1$s minutes</string>
+ <string name="prefs_category_more">More</string>
<string name="prefs_accounts">Accounts</string>
<string name="prefs_manage_accounts">Manage Accounts</string>
<string name="prefs_pincode">App PIN</string>
<string name="prefs_pincode_summary">Protect your client</string>
<string name="prefs_instant_upload">Enable instant uploads</string>
- <string name="prefs_instant_upload_summary">Instantly upload photos taken by camera</string>
+ <string name="prefs_instant_upload_summary">Instantly upload media taken by camera</string>
<string name="prefs_log_title">Enable Logging</string>
<string name="prefs_log_summary">This is used to log problems</string>
<string name="prefs_log_title_history">Logging History</string>
<string name="prefs_log_summary_history">This shows the recorded logs</string>
<string name="prefs_log_delete_history_button">Delete History</string>
+ <string name="prefs_help">Help</string>
+ <string name="prefs_recommend">Recommend to a friend</string>
+ <string name="prefs_feedback">Feedback</string>
+ <string name="prefs_imprint">Imprint</string>
- <string name="auth_host_url">URL</string>
+ <string name="recommend_subject">"Try %1$s on your smartphone!"</string>
+ <string name="recommend_text">"I want to invite you to use %1$s on your smartphone!\nDownload here: %2$s"
+ </string>
+
+ <string name="auth_check_server">Check Server</string>
+ <string name="auth_host_url">Server address https://…</string>
<string name="auth_username">Username</string>
<string name="auth_password">Password</string>
- <string name="auth_register">I am new to %1$s</string>
- <string name="new_session_uri_error">Incorrect address given</string>
- <string name="new_session_session_name_error">Incorrect session name</string>
+ <string name="auth_register">New to %1$s?</string>
<string name="sync_string_files">Files</string>
- <string name="uploader_no_file_selected">No file selected for upload</string>
- <string name="setup_hint_username">Username</string>
- <string name="setup_hint_password">Password</string>
- <string name="setup_hint_address">Web address</string>
- <string name="setup_hint_show_password">Show password?</string>
- <string name="setup_title">Connect to your %1$s</string>
<string name="setup_btn_connect">Connect</string>
<string name="uploader_btn_upload_text">Upload</string>
- <string name="uploader_top_message">Choose upload directory:</string>
+ <string name="uploader_top_message">Choose upload folder:</string>
<string name="uploader_wrn_no_account_title">No account found</string>
<string name="uploader_wrn_no_account_text">There are no %1$s accounts on your device. Please setup an account first.</string>
<string name="uploader_wrn_no_account_setup_btn_text">Setup</string>
<string name="uploader_wrn_no_content_text">No content was received. Nothing to upload.</string>
<string name="uploader_error_forbidden_content">%1$s is not allowed to access the shared content</string>
<string name="uploader_info_uploading">Uploading</string>
- <string name="uploader_btn_create_dir_text">Create directory for upload</string>
<string name="file_list_empty">There are no files in this folder.\nNew files can be added with the \"Upload\" menu option.</string>
<string name="filedetails_select_file">Tap on a file to display additional information.</string>
<string name="filedetails_size">Size:</string>
<string name="filedetails_created">Created:</string>
<string name="filedetails_modified">Modified:</string>
<string name="filedetails_download">Download</string>
- <string name="filedetails_sync_file">Refresh</string>
- <string name="filedetails_redownload">Redownload</string>
- <string name="filedetails_open">Open</string>
+ <string name="filedetails_sync_file">Refresh file</string>
<string name="filedetails_renamed_in_upload_msg">File was renamed to %1$s during upload</string>
+ <string name="action_share_file">Share link</string>
+ <string name="action_unshare_file">Unshare link</string>
<string name="common_yes">Yes</string>
<string name="common_no">No</string>
<string name="common_ok">OK</string>
<string name="common_cancel_upload">Cancel upload</string>
<string name="common_cancel">Cancel</string>
<string name="common_save_exit">Save & Exit</string>
- <string name="common_exit">Leave %1$s</string>
<string name="common_error">Error</string>
<string name="common_loading">Loading …</string>
<string name="common_error_unknown">Unknown error</string>
<string name="about_title">About</string>
+ <string name="change_password">Change password</string>
<string name="delete_account">Delete account</string>
<string name="create_account">Create account</string>
<string name="upload_chooser_title">Upload from …</string>
- <string name="uploader_info_dirname">Directory name</string>
+ <string name="uploader_info_dirname">Folder name</string>
<string name="uploader_upload_in_progress_ticker">Uploading …</string>
<string name="uploader_upload_in_progress_content">%1$d%% Uploading %2$s</string>
<string name="uploader_upload_succeeded_ticker">Upload succeeded</string>
<string name="uploader_upload_succeeded_content_single">%1$s was successfully uploaded</string>
- <string name="uploader_upload_succeeded_content_multiple">%1$d files were successfully uploaded</string>
<string name="uploader_upload_failed_ticker">Upload failed</string>
<string name="uploader_upload_failed_content_single">Upload of %1$s could not be completed</string>
- <string name="uploader_upload_failed_content_multiple">Upload failed: %1$d/%2$d files were upload</string>
<string name="downloader_download_in_progress_ticker">Downloading …</string>
<string name="downloader_download_in_progress_content">%1$d%% Downloading %2$s</string>
<string name="downloader_download_succeeded_ticker">Download succeeded</string>
<string name="downloader_download_failed_content">Download of %1$s could not be completed</string>
<string name="downloader_not_downloaded_yet">Not downloaded yet</string>
<string name="common_choose_account">Choose account</string>
- <string name="sync_string_contacts">Contacts</string>
<string name="sync_fail_ticker">Synchronization failed</string>
<string name="sync_fail_content">Synchronization of %1$s could not be completed</string>
- <string name="sync_conflicts_in_favourites_ticker">Conflicts found</string>
- <string name="sync_conflicts_in_favourites_content">%1$d kept-in-sync files could not be sync\'ed</string>
+ <string name="sync_fail_content_unauthorized">Invalid password for %1$s</string>
+ <string name="sync_conflicts_in_favourites_ticker">Conflicts found</string>
+ <string name="sync_conflicts_in_favourites_content">%1$d kept-in-sync files could not be sync\'ed</string>
<string name="sync_fail_in_favourites_ticker">Kept-in-sync files failed</string>
<string name="sync_fail_in_favourites_content">Contents of %1$d files could not be sync\'ed (%2$d conflicts)</string>
<string name="sync_foreign_files_forgotten_ticker">Some local files were forgotten</string>
- <string name="sync_foreign_files_forgotten_content">%1$d files out of the %2$s directory could not be copied into</string>
- <string name="sync_foreign_files_forgotten_explanation">"As of version 1.3.16, files uploaded from this device are copied into the local %1$s folder to prevent data loss when a single file is synced with multiple accounts.\n\nDue to this change, all files uploaded in previous versions of this app were copied into the %2$s folder. However, an error prevented the completion of this operation during account synchronization. You may either leave the file(s) as is and remove the link to %3$s, or move the file(s) into the %1$s directory and retain the link to %4$s.\n\nListed below are the local file(s), and the the remote file(s) in %5$s they were linked to.</string>
+ <string name="sync_foreign_files_forgotten_content">%1$d files out of the %2$s folder could not be copied into</string>
+ <string name="sync_foreign_files_forgotten_explanation">As of version 1.3.16, files uploaded from this device are copied into the local %1$s folder to prevent data loss when a single file is synced with multiple accounts.\n\nDue to this change, all files uploaded in previous versions of this app were copied into the %2$s folder. However, an error prevented the completion of this operation during account synchronization. You may either leave the file(s) as is and remove the link to %3$s, or move the file(s) into the %1$s folder and retain the link to %4$s.\n\nListed below are the local file(s), and the remote file(s) in %5$s they were linked to.</string>
+ <string name="sync_current_folder_was_removed">Folder %1$s does not exist anymore</string>
<string name="foreign_files_move">"Move all"</string>
<string name="foreign_files_success">"All files were moved"</string>
<string name="foreign_files_fail">"Some files could not be moved"</string>
<string name="foreign_files_local_text">"Local: %1$s"</string>
<string name="foreign_files_remote_text">"Remote: %1$s"</string>
<string name="upload_query_move_foreign_files">There is not space enough to copy the selected files into the %1$s folder. Would like to move them into instead? </string>
- <string name="use_ssl">Use Secure Connection</string>
- <string name="location_no_provider">%1$s cannot track your device. Please check your location settings</string>
<string name="pincode_enter_pin_code">Please, insert your App PIN</string>
- <string name="pincode_enter_new_pin_code">Please, insert your new App PIN</string>
+
<string name="pincode_configure_your_pin">Enter your App PIN</string>
<string name="pincode_configure_your_pin_explanation">The PIN will be requested every time the app is started</string>
<string name="pincode_reenter_your_pincode">Please, reenter your App PIN</string>
<string name="media_event_done">"%1$s playback finished"</string>
<string name="media_err_nothing_to_play">No media file found</string>
<string name="media_err_no_account">No account provided</string>
- <string name="media_err_not_in_owncloud">File not in a valid account</string>
- <string name="media_err_unsupported">Unsupported media codec</string>
- <string name="media_err_io">Media file could not be read</string>
- <string name="media_err_malformed">Media file not correctly encoded</string>
- <string name="media_err_timeout">Too much time trying to play</string>
- <string name="media_err_invalid_progressive_playback">Media file cannot be streamed</string>
- <string name="media_err_unknown">Media file cannot be played with the stock media player</string>
- <string name="media_err_security_ex">Security error trying to play %1$s</string>
+ <string name="media_err_not_in_owncloud">File not in a valid account</string>
+ <string name="media_err_unsupported">Unsupported media codec</string>
+ <string name="media_err_io">Media file could not be read</string>
+ <string name="media_err_malformed">Media file not correctly encoded</string>
+ <string name="media_err_timeout">Timed out while trying to play</string>
+ <string name="media_err_invalid_progressive_playback">Media file cannot be streamed</string>
+ <string name="media_err_unknown">Media file cannot be played with the stock media player</string>
+ <string name="media_err_security_ex">Security error trying to play %1$s</string>
<string name="media_err_io_ex">Input error trying to play %1$s</string>
<string name="media_err_unexpected">Unexpected error trying to play %1$s</string>
- <string name="media_previous_description">Previous track button</string>
<string name="media_rewind_description">Rewind button</string>
<string name="media_play_pause_description">Play or pause button</string>
<string name="media_forward_description">Fast forward button</string>
- <string name="media_next_description">Next track button</string>
- <string-array name="prefs_trackmydevice_intervall_keys">
- <item>15 Minutes</item>
- <item>30 Minutes</item>
- <item>60 Minutes</item>
- </string-array>
- <string-array name="prefs_trackmydevice_intervall_values">
- <item>15</item>
- <item>30</item>
- <item>60</item>
- </string-array>
- <string name="auth_trying_to_login">Trying to login...</string>
- <string name="auth_no_net_conn_title">No network connection</string>
- <string name="auth_no_net_conn_message">No network connection has been detected, check your Internet connection and try again.</string>
- <string name="auth_connect_anyway">Connect anyway</string>
- <string name="auth_nossl_plain_ok_title">Secure connection unavailable.</string>
- <string name="auth_nossl_plain_ok_message">The Application cannot establish a secure connection to the server. A non secure connection is available. You may continue or cancel.</string>
- <string name="auth_connection_established">Connection established</string>
- <string name="auth_testing_connection">Testing connection...</string>
- <string name="auth_not_configured_title">Malformed server configuration</string>
- <string name="auth_not_configured_message">It seems that your server instance is not correctly configured. Contact your administrator for more details.</string>
- <string name="auth_unknown_error_title">Unknown error occurred!</string>
- <string name="auth_unknown_error_message">An unknown error occurred. Please contact support and include logs from your device.</string>
- <string name="auth_unknown_host_title">Couldn\'t find host</string>
- <string name="auth_unknown_host_message">Couldn\'t find the entered host. Please check hostname and server availability and try again.</string>
- <string name="auth_incorrect_path_title">Server instance not found</string>
- <string name="auth_incorrect_path_message">Application couldn\'t find a server instance at the given path. Please check your path and try again.</string>
- <string name="auth_timeout_title">The server took too long to respond</string>
- <string name="auth_incorrect_address_title">Malformed URL</string>
- <string name="auth_ssl_general_error_title">SSL initialization failed</string>
- <string name="auth_ssl_unverified_server_title">Unverified SSL server\'s identity</string>
- <string name="auth_bad_oc_version_title">Unrecognized server version</string>
- <string name="auth_wrong_connection_title">Couldn\'t establish connection</string>
- <string name="auth_secure_connection">Secure connection established</string>
- <string name="auth_login_details">Login details</string>
- <string name="auth_unauthorized">Invalid login / password</string>
- <string name="auth_not_found">Wrong path given</string>
- <string name="auth_internal">Internal server error, code %1$d</string>
- <string name="crashlog_message">Application terminated unexpectedly. Would you like to submit a crash report?</string>
- <string name="crashlog_send_report">Send report</string>
- <string name="crashlog_dont_send_report">Don\'t send report</string>
- <string name="extensions_avail_title">Extensions available!</string>
- <string name="extensions_avail_message">Looks like your server instance is supporting advanced extensions. Would you like to see extensions available for android ?</string>
+ <string name="auth_getting_authorization">Getting authorization…</string>
+ <string name="auth_trying_to_login">Trying to login…</string>
+ <string name="auth_no_net_conn_title">No network connection</string>
+ <string name="auth_nossl_plain_ok_title">Secure connection unavailable.</string>
+ <string name="auth_connection_established">Connection established</string>
+ <string name="auth_testing_connection">Testing connection…</string>
+ <string name="auth_not_configured_title">Malformed server configuration</string>
+ <string name="auth_account_not_new">An account for the same user and server already exists in the device</string>
+ <string name="auth_account_not_the_same">The entered user does not match the user of this account</string>
+ <string name="auth_unknown_error_title">Unknown error occurred!</string>
+ <string name="auth_unknown_host_title">Couldn\'t find host</string>
+ <string name="auth_incorrect_path_title">Server instance not found</string>
+ <string name="auth_timeout_title">The server took too long to respond</string>
+ <string name="auth_incorrect_address_title">Malformed URL</string>
+ <string name="auth_ssl_general_error_title">SSL initialization failed</string>
+ <string name="auth_ssl_unverified_server_title">Couldn\'t verify SSL server\'s identity</string>
+ <string name="auth_bad_oc_version_title">Unrecognized server version</string>
+ <string name="auth_wrong_connection_title">Couldn\'t establish connection</string>
+ <string name="auth_secure_connection">Secure connection established</string>
+ <string name="auth_unauthorized">Wrong username or password</string>
+ <string name="auth_oauth_error">Unsuccessful authorization</string>
+ <string name="auth_oauth_error_access_denied">Access denied by authorization server</string>
+ <string name="auth_wtf_reenter_URL">Unexpected state; please, enter the server URL again</string>
+ <string name="auth_expired_oauth_token_toast">Your authorization expired. Please, authorize again</string>
+ <string name="auth_expired_basic_auth_toast">Please, enter the current password</string>
+ <string name="auth_expired_saml_sso_token_toast">Your session expired. Please connect again</string>
+ <string name="auth_connecting_auth_server">Connecting to authentication server…</string>
+ <string name="auth_unsupported_auth_method">The server does not support this authentication method</string>
+ <string name="auth_unsupported_multiaccount">%1$s does not support multiple accounts</string>
+ <string name="auth_fail_get_user_name">Your server is not returning a correct user id, please contact an administrator
+ </string>
+ <string name="auth_can_not_auth_against_server">Can not authenticate against this server</string>
+
<string name="fd_keep_in_sync">Keep file up to date</string>
- <string name="common_share">Share</string>
<string name="common_rename">Rename</string>
<string name="common_remove">Remove</string>
<string name="confirmation_remove_alert">"Do you really want to remove %1$s ?"</string>
<string name="rename_server_fail_msg">"Rename could not be completed"</string>
<string name="sync_file_fail_msg">Remote file could not be checked</string>
<string name="sync_file_nothing_to_do_msg">File contents already synchronized</string>
- <string name="create_dir_fail_msg">Directory could not be created</string>
+ <string name="create_dir_fail_msg">Folder could not be created</string>
+ <string name="filename_forbidden_characters">Forbidden characters: / \\ < > : " | ? *</string>
<string name="wait_a_moment">Wait a moment</string>
<string name="filedisplay_unexpected_bad_get_content">"Unexpected problem ; please select the file from a different app"</string>
<string name="filedisplay_no_file_selected">No file was selected</string>
- <string name="ssl_validator_title">Warning</string>
+ <string name="activity_chooser_title">Send link to …</string>
+
+ <string name="oauth_check_onoff">Login with oAuth2</string>
+ <string name="oauth_login_connection">Connecting to oAuth2 server…</string>
+
<string name="ssl_validator_header">The identity of the site could not be verified</string>
<string name="ssl_validator_reason_cert_not_trusted">- The server certificate is not trusted</string>
<string name="ssl_validator_reason_cert_expired">- The server certificate expired</string>
<string name="ssl_validator_reason_cert_not_yet_valid">- The server certificate valid dates are in the future</string>
<string name="ssl_validator_reason_hostname_not_verified">- The URL does not match the hostname in the certificate</string>
- <string name="ssl_validator_certificate_not_available">The server certificate could not be obtained</string>
<string name="ssl_validator_question">Do you want to trust this certificate anyway?</string>
<string name="ssl_validator_not_saved">The certificate could not be saved</string>
<string name="ssl_validator_btn_details_see">Details</string>
<string name="ssl_validator_label_validity_to">To:</string>
<string name="ssl_validator_label_signature">Signature:</string>
<string name="ssl_validator_label_signature_algorithm">Algorithm:</string>
+ <string name="ssl_validator_null_cert">The certificate could not be shown.</string>
+ <string name="ssl_validator_no_info_about_error">- No information about the error</string>
<string name="placeholder_sentence">This is a placeholder</string>
<string name="placeholder_filename">placeholder.txt</string>
<string name="preview_image_description">Image preview</string>
<string name="preview_image_error_unknown_format">This image can not be shown</string>
- <string name="preview_image_error_out_of_memory">"Not enough memory to show this image</string>
- <!-- we need to improve the communication of errors to the user -->
- <string name="error__upload__local_file_not_copied">%1$s could not be copied to %2$s local directory</string>
- <string name="actionbar_failed_instant_upload">Failed InstantUpload"</string>
+ <string name="error__upload__local_file_not_copied">%1$s could not be copied to %2$s local folder</string>
+ <string name="actionbar_failed_instant_upload">Failed InstantUpload</string>
<string name="failed_upload_headline_text">Failed instant uploads</string>
<string name="failed_upload_headline_hint">Summary of all failed instant uploads</string>
<string name="failed_upload_all_cb">select all</string>
<string name="failed_upload_retry_do_nothing_text">do nothing you are not online for instant upload</string>
<string name="failed_upload_failure_text">Failure Message: </string>
<string name="failed_upload_quota_exceeded_text">Please check your server configuration,maybe your quota is exceeded.</string>
+
+ <string name="share_link_no_support_share_api">Sorry, sharing is not enabled on your server. Please contact your
+ administrator.</string>
+ <string name="share_link_file_no_exist">Unable to share this file or folder. Please, make sure it exists</string>
+ <string name="share_link_file_error">An error occurred while trying to share this file or folder</string>
+ <string name="unshare_link_file_no_exist">Unable to unshare this file or folder. It does not exist.</string>
+ <string name="unshare_link_file_error">An error occurred while trying to unshare this file or folder</string>
+
+ <string name="activity_chooser_send_file_title">Send</string>
+
+ <string name="copy_link">Copy link</string>
+ <string name="clipboard_text_copied">Copied to clipboard</string>
+
+ <string name="error_cant_bind_to_operations_service">Critical error: can not perform operations</string>
</resources>
/* ownCloud Android client application
* Copyright (C) 2012 Bartek Przybylski
-- * Copyright (C) 2012-2013 ownCloud Inc.
++ * Copyright (C) 2012-2014 ownCloud Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2,
import java.io.File;
+ import com.owncloud.android.MainApp;
+ import com.owncloud.android.authentication.AccountUtils;
+ import com.owncloud.android.db.DbHandler;
+ import com.owncloud.android.files.services.FileUploader;
+ import com.owncloud.android.utils.FileStorageUtils;
+ import com.owncloud.android.utils.Log_OC;
+
+
import android.accounts.Account;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
- import android.content.IntentFilter;
+ //import android.content.IntentFilter;
import android.database.Cursor;
import android.net.ConnectivityManager;
import android.net.NetworkInfo.State;
import android.preference.PreferenceManager;
-import android.provider.MediaStore.Images.Media;
+import android.provider.MediaStore.*;
import android.webkit.MimeTypeMap;
- import com.owncloud.android.AccountUtils;
- import com.owncloud.android.Log_OC;
- import com.owncloud.android.authenticator.AccountAuthenticator;
- import com.owncloud.android.db.DbHandler;
- import com.owncloud.android.files.services.FileUploader;
- import com.owncloud.android.utils.FileStorageUtils;
public class InstantUploadBroadcastReceiver extends BroadcastReceiver {
private static String TAG = "InstantUploadBroadcastReceiver";
- private static final String[] CONTENT_PROJECTION = { Media.DATA, Media.DISPLAY_NAME, Media.MIME_TYPE, Media.SIZE };
++ // private static final String[] CONTENT_PROJECTION = { Media.DATA, Media.DISPLAY_NAME, Media.MIME_TYPE, Media.SIZE };
+ //Unofficial action, works for most devices but not HTC. See: https://github.com/owncloud/android/issues/6
+ private static String NEW_PHOTO_ACTION_UNOFFICIAL = "com.android.camera.NEW_PICTURE";
+ //Officially supported action since SDK 14: http://developer.android.com/reference/android/hardware/Camera.html#ACTION_NEW_PICTURE
private static String NEW_PHOTO_ACTION = "android.hardware.action.NEW_PICTURE";
++ // Video action
+ private static String NEW_VIDEO_ACTION = "android.hardware.action.NEW_VIDEO";
@Override
public void onReceive(Context context, Intent intent) {
Log_OC.d(TAG, "Received: " + intent.getAction());
if (intent.getAction().equals(android.net.ConnectivityManager.CONNECTIVITY_ACTION)) {
handleConnectivityAction(context, intent);
- handleNewPhotoAction(context, intent);
+ }else if (intent.getAction().equals(NEW_PHOTO_ACTION_UNOFFICIAL)) {
- handleNewPhotoAction(context, intent);
++ handleNewMediaAction(context, intent); //handleNewPhotoAction(context, intent);
+ Log_OC.d(TAG, "UNOFFICIAL processed: com.android.camera.NEW_PICTURE");
+ } else if (intent.getAction().equals(NEW_PHOTO_ACTION)) {
- } else if (intent.getAction().equals(FileUploader.UPLOAD_FINISH_MESSAGE)) {
++ handleNewMediaAction(context, intent); //handleNewPhotoAction(context, intent);
+ Log_OC.d(TAG, "OFFICIAL processed: android.hardware.action.NEW_PICTURE");
+ } else if (intent.getAction().equals(NEW_PHOTO_ACTION) || intent.getAction().equals(NEW_VIDEO_ACTION)) {
+ handleNewMediaAction(context, intent);
+ } else if (intent.getAction().equals(FileUploader.getUploadFinishMessage())) {
handleUploadFinished(context, intent);
} else {
Log_OC.e(TAG, "Incorrect intent sent: " + intent.getAction());
private void handleUploadFinished(Context context, Intent intent) {
// remove successfull uploading, ignore rest for reupload on reconnect
+ /*
if (intent.getBooleanExtra(FileUploader.EXTRA_UPLOAD_RESULT, false)) {
DbHandler db = new DbHandler(context);
String localPath = intent.getStringExtra(FileUploader.EXTRA_OLD_FILE_PATH);
}
db.close();
}
+ */
}
- private void handleNewPhotoAction(Context context, Intent intent) {
+ private void handleNewMediaAction(Context context, Intent intent) {
+ Cursor c = null;
+ String file_path = null;
+ String file_name = null;
+ String mime_type = null;
+
if (!instantUploadEnabled(context)) {
- Log_OC.d(TAG, "Instant upload disabled, abording uploading");
+ Log_OC.d(TAG, "Instant upload disabled, aborting uploading");
return;
}
return;
}
- Cursor c = context.getContentResolver().query(intent.getData(), CONTENT_PROJECTION, null, null, null);
-
- if (!c.moveToFirst()) {
- Log_OC.e(TAG, "Couldn't resolve given uri: " + intent.getDataString());
- return;
+ if (intent.getAction().equals(NEW_PHOTO_ACTION)) {
+ String[] CONTENT_PROJECTION = { Images.Media.DATA, Images.Media.DISPLAY_NAME, Images.Media.MIME_TYPE, Images.Media.SIZE };
+ c = context.getContentResolver().query(intent.getData(), CONTENT_PROJECTION, null, null, null);
+ if (!c.moveToFirst()) {
+ Log_OC.e(TAG, "Couldn't resolve given uri: " + intent.getDataString());
+ return;
+ }
+ file_path = c.getString(c.getColumnIndex(Images.Media.DATA));
+ file_name = c.getString(c.getColumnIndex(Images.Media.DISPLAY_NAME));
+ mime_type = c.getString(c.getColumnIndex(Images.Media.MIME_TYPE));
+ Log_OC.w(TAG, "New photo received");
+ }
+ else if (intent.getAction().equals(NEW_VIDEO_ACTION)) {
+ if (!isConnectedViaWiFi(context)) {
+ Log_OC.e(TAG, "No Wifi available .. Video instant upload only possible if WiFi is on");
+ return;
+ }
+ String[] CONTENT_PROJECTION = { Video.Media.DATA, Video.Media.DISPLAY_NAME, Video.Media.MIME_TYPE, Video.Media.SIZE };
+ c = context.getContentResolver().query(intent.getData(), CONTENT_PROJECTION, null, null, null);
+ if (!c.moveToFirst()) {
+ Log_OC.e(TAG, "Couldn't resolve given uri: " + intent.getDataString());
+ return;
+ }
+ file_path = c.getString(c.getColumnIndex(Video.Media.DATA));
+ file_name = c.getString(c.getColumnIndex(Video.Media.DISPLAY_NAME));
+ mime_type = c.getString(c.getColumnIndex(Video.Media.MIME_TYPE));
+ Log_OC.w(TAG, "New video received");
}
-
- String file_path = c.getString(c.getColumnIndex(Media.DATA));
- String file_name = c.getString(c.getColumnIndex(Media.DISPLAY_NAME));
- String mime_type = c.getString(c.getColumnIndex(Media.MIME_TYPE));
-
c.close();
- Log_OC.e(TAG, file_path + "");
+ Log_OC.d(TAG, file_path + "");
// same always temporally the picture to upload
DbHandler db = new DbHandler(context);
// we can unregister from entire listenings but thats suck a bit.
// On the other hand this might be only for dynamicly registered
// broadcast receivers, needs investigation.
- IntentFilter filter = new IntentFilter(FileUploader.UPLOAD_FINISH_MESSAGE);
- context.getApplicationContext().registerReceiver(this, filter);
+ /*IntentFilter filter = new IntentFilter(FileUploader.UPLOAD_FINISH_MESSAGE);
+ context.getApplicationContext().registerReceiver(this, filter);*/
Intent i = new Intent(context, FileUploader.class);
i.putExtra(FileUploader.KEY_ACCOUNT, account);
DbHandler db = new DbHandler(context);
Cursor c = db.getAwaitingFiles();
if (c.moveToFirst()) {
- IntentFilter filter = new IntentFilter(FileUploader.UPLOAD_FINISH_MESSAGE);
- context.getApplicationContext().registerReceiver(this, filter);
+ //IntentFilter filter = new IntentFilter(FileUploader.UPLOAD_FINISH_MESSAGE);
+ //context.getApplicationContext().registerReceiver(this, filter);
do {
String account_name = c.getString(c.getColumnIndex("account"));
String file_path = c.getString(c.getColumnIndex("path"));
File f = new File(file_path);
if (f.exists()) {
- Account account = new Account(account_name, AccountAuthenticator.ACCOUNT_TYPE);
+ Account account = new Account(account_name, MainApp.getAccountType());
String mimeType = null;
try {