along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<manifest package="com.owncloud.android"
- android:versionCode="105005"
- android:versionName="1.5.5" xmlns:android="http://schemas.android.com/apk/res/android">
+ android:versionCode="105006"
+ android:versionName="1.5.6" 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" />
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.owncloud.android.workaround.accounts"
- android:versionCode="0100014"
- android:versionName="1.0.14" >
+ android:versionCode="0100015"
+ android:versionName="1.0.15" >
<uses-sdk
android:minSdkVersion="16"
<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="auth_can_not_auth_against_server">Cannot authenticate against this server</string>
<string name="fd_keep_in_sync">Keep file up to date</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="confirmation_remove_folder_alert">"Do you really want to remove %1$s and its contents ?"</string>
+ <string name="confirmation_remove_alert">"Do you really want to remove %1$s?"</string>
+ <string name="confirmation_remove_folder_alert">"Do you really want to remove %1$s and its contents?"</string>
<string name="confirmation_remove_local">Local only</string>
<string name="confirmation_remove_folder_local">Local contents only</string>
<string name="confirmation_remove_remote">Remove from server</string>
<string name="conflict_dont_upload">Don\'t upload</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_unknown_format">This image cannot be shown</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_retryall_btn">retry all selected</string>
<string name="failed_upload_headline_delete_all_btn">delete all selected from uploadqueue</string>
<string name="failed_upload_retry_text">retry to upload the image: </string>
- <string name="failed_upload_load_more_images">Load more Picrures</string>
+ <string name="failed_upload_load_more_images">Load more Pictures</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="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>
+ <string name="error_cant_bind_to_operations_service">Critical error: cannot perform operations</string>
<string name="network_error_socket_exception">An error occurred while connecting with the server.</string>
<string name="network_error_socket_timeout_exception">An error occurred while waiting for the server, the operation couldn\'t have been done</string>
<string name="network_error_connect_timeout_exception">An error occurred while waiting for the server, the operation couldn\'t have been done</string>
- <string name="network_host_not_available">The operation couldn\'t be completed, server is unavaliable</string>
-
+ <string name="network_host_not_available">The operation couldn\'t be completed, server is unavailable</string>
</resources>
)) {
requestCredentialsUpdate();
+
+ if (result.getCode() == ResultCode.UNAUTHORIZED) {
+ dismissLoadingDialog();
+ Toast t = Toast.makeText(this, ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()),
+ Toast.LENGTH_LONG);
+ t.show();
+ }
} else if (operation instanceof CreateShareOperation) {
onCreateShareOperationFinish((CreateShareOperation) operation, result);
mRightFragmentContainer = findViewById(R.id.right_fragment_container);
if (savedInstanceState == null) {
createMinFragments();
- } else {
- Log_OC.d(TAG, "Init the secondFragment again");
- if (mDualPane) {
- initFragmentsWithFile();
- }
}
// Action bar setup
\r
fileName.setText(name);\r
ImageView fileIcon = (ImageView) view.findViewById(R.id.imageView1);\r
- fileIcon.setImageResource(DisplayUtils.getResourceId(file.getMimetype()));\r
+ fileIcon.setImageResource(DisplayUtils.getResourceId(file.getMimetype(), file.getFileName()));\r
ImageView localStateView = (ImageView) view.findViewById(R.id.imageView2);\r
FileDownloaderBinder downloaderBinder = mTransferServiceGetter.getFileDownloaderBinder();\r
FileUploaderBinder uploaderBinder = mTransferServiceGetter.getFileUploaderBinder();\r
// set file details
setFilename(file.getFileName());
- setFiletype(file.getMimetype());
+ setFiletype(file.getMimetype(), file.getFileName());
setFilesize(file.getFileLength());
if(ocVersionSupportsTimeCreated()){
setTimeCreated(file.getCreationTimestamp());
/**
* Updates the MIME type in view
* @param mimetype to set
+ * @param filename
*/
- private void setFiletype(String mimetype) {
+ private void setFiletype(String mimetype, String filename) {
TextView tv = (TextView) getView().findViewById(R.id.fdType);
if (tv != null) {
String printableMimetype = DisplayUtils.convertMIMEtoPrettyPrint(mimetype);;
}
ImageView iv = (ImageView) getView().findViewById(R.id.fdIcon);
if (iv != null) {
- iv.setImageResource(DisplayUtils.getResourceId(mimetype));
+ iv.setImageResource(DisplayUtils.getResourceId(mimetype, filename));
}
}
}
} else {
- setFile((OCFile)savedInstanceState.getParcelable(PreviewMediaFragment.EXTRA_FILE));
+ file = (OCFile)savedInstanceState.getParcelable(PreviewMediaFragment.EXTRA_FILE);
+ setFile(file);
mAccount = savedInstanceState.getParcelable(PreviewMediaFragment.EXTRA_ACCOUNT);
mSavedPlaybackPosition =
savedInstanceState.getInt(PreviewMediaFragment.EXTRA_PLAY_POSITION);
private static final String TYPE_VIDEO = "video";\r
\r
private static final String SUBTYPE_PDF = "pdf";\r
- private static final String[] SUBTYPES_DOCUMENT = { "msword", "mspowerpoint", "msexcel", \r
- "vnd.oasis.opendocument.presentation",\r
- "vnd.oasis.opendocument.spreadsheet",\r
- "vnd.oasis.opendocument.text"\r
+ private static final String[] SUBTYPES_DOCUMENT = { "msword",\r
+ "vnd.openxmlformats-officedocument.wordprocessingml.document",\r
+ "vnd.oasis.opendocument.text",\r
+ "rtf"\r
};\r
private static Set<String> SUBTYPES_DOCUMENT_SET = new HashSet<String>(Arrays.asList(SUBTYPES_DOCUMENT));\r
+ private static final String[] SUBTYPES_SPREADSHEET = { "msexcel",\r
+ "vnd.openxmlformats-officedocument.spreadsheetml.sheet",\r
+ "vnd.oasis.opendocument.spreadsheet"\r
+ };\r
+ private static Set<String> SUBTYPES_SPREADSHEET_SET = new HashSet<String>(Arrays.asList(SUBTYPES_SPREADSHEET));\r
+ private static final String[] SUBTYPES_PRESENTATION = { "mspowerpoint",\r
+ "vnd.openxmlformats-officedocument.presentationml.presentation",\r
+ "vnd.oasis.opendocument.presentation"\r
+ };\r
+ private static Set<String> SUBTYPES_PRESENTATION_SET = new HashSet<String>(Arrays.asList(SUBTYPES_PRESENTATION));\r
private static final String[] SUBTYPES_COMPRESSED = {"x-tar", "x-gzip", "zip"};\r
private static final Set<String> SUBTYPES_COMPRESSED_SET = new HashSet<String>(Arrays.asList(SUBTYPES_COMPRESSED));\r
+ private static final String SUBTYPE_OCTET_STREAM = "octet-stream";\r
+ private static final String EXTENSION_RAR = "rar";\r
+ private static final String EXTENSION_RTF = "rtf";\r
+ private static final String EXTENSION_3GP = "3gp";\r
\r
/**\r
* Converts the file size in bytes to human readable output.\r
* known MIME type.\r
* \r
* @param mimetype MIME type string.\r
+ * @param filename name, with extension\r
* @return Resource identifier of an image resource.\r
*/\r
- public static int getResourceId(String mimetype) {\r
+ public static int getResourceId(String mimetype, String filename) {\r
\r
if (mimetype == null || "DIR".equals(mimetype)) {\r
return R.drawable.ic_menu_archive;\r
} else if (SUBTYPES_DOCUMENT_SET.contains(subtype)) {\r
return R.drawable.file_doc;\r
\r
+ } else if (SUBTYPES_SPREADSHEET_SET.contains(subtype)) {\r
+ return R.drawable.file_xls;\r
+\r
+ } else if (SUBTYPES_PRESENTATION_SET.contains(subtype)) {\r
+ return R.drawable.file_ppt;\r
+\r
} else if (SUBTYPES_COMPRESSED_SET.contains(subtype)) {\r
return R.drawable.file_zip;\r
- }\r
- \r
+ \r
+ } else if (SUBTYPE_OCTET_STREAM.equals(subtype) ) {\r
+ if (getExtension(filename).equalsIgnoreCase(EXTENSION_RAR)) {\r
+ return R.drawable.file_zip;\r
+ \r
+ } else if (getExtension(filename).equalsIgnoreCase(EXTENSION_RTF)) {\r
+ return R.drawable.file_doc;\r
+ \r
+ } else if (getExtension(filename).equalsIgnoreCase(EXTENSION_3GP)) {\r
+ return R.drawable.file_movie;\r
+ \r
+ } \r
+ } \r
}\r
- // problems: RAR, RTF, 3GP are send as application/octet-stream from the server ; extension in the filename should be explicitly reviewed\r
}\r
\r
// default icon\r
}\r
\r
\r
-\r
+ private static String getExtension(String filename) {\r
+ String extension = filename.substring(filename.lastIndexOf(".") + 1);\r
+ \r
+ return extension;\r
+ }\r
+ \r
/**\r
* Converts Unix time to human readable format\r
* @param miliseconds that have passed since 01/01/1970\r