Преглед на файлове

Some fixes about downloads and how the detals view and list view is updated when downloads start and finish

David A. Velasco преди 13 години
родител
ревизия
2a04c6ae5d

+ 1 - 1
AndroidManifest.xml

@@ -18,7 +18,7 @@
  -->
 <manifest package="eu.alefzero.owncloud"
     android:versionCode="1"
-    android:versionName="0.1.167B" xmlns:android="http://schemas.android.com/apk/res/android">
+    android:versionName="0.1.168B" 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" />

+ 7 - 0
res/layout/file_details_fragment.xml

@@ -187,6 +187,13 @@
                         android:layout_marginTop="12dp"
                         android:text="@string/common_remove" />
 
+                    <Button
+                        android:id="@+id/fdOpenBtn"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="12dp"
+                        android:text="@string/filedetails_open" />
+
                     <Button
                         android:id="@+id/fdDownloadBtn"
                         android:layout_width="wrap_content"

+ 6 - 0
res/layout/list_layout.xml

@@ -35,6 +35,12 @@
             android:layout_height="wrap_content"
             android:src="@drawable/local_file_indicator"/>
 
+        <ImageView
+            android:id="@+id/imageView4"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:src="@drawable/downloading_file_indicator"/>
+
         <ImageView
             android:id="@+id/imageView1"
             android:layout_width="20dp"

+ 6 - 3
res/values/strings.xml

@@ -60,6 +60,8 @@
     <string name="filedetails_created">Created:</string>
     <string name="filedetails_modified">Modified:</string>
     <string name="filedetails_download">Download</string>
+	<string name="filedetails_redownload">Redownload</string>
+	<string name="filedetails_download_in_progress">Downloading</string>
     <string name="filedetails_open">Open</string>
     <string name="common_yes">Yes</string>
     <string name="common_no">No</string>
@@ -68,9 +70,10 @@
     <string name="common_save_exit">Save &amp; Exit</string>
     <string name="common_error">Error</string>
     <string name="uploader_info_dirname">Directory name</string>
-    <string name="uploader_upload_succeed">Uploading completed successfully</string>
+    <string name="uploader_upload_succeed">Upload was successful</string>
     <string name="uploader_upload_failed">Upload failed: </string>
     <string name="uploader_files_uploaded_suffix"> files uploaded</string>
+    <string name="downloader_download_succeed">Download was successful</string>
     <string name="downloader_download_failed">Download could not be completed</string>
     <string name="common_choose_account">Choose account</string>
     <string name="sync_string_contacts">Contacts</string>
@@ -107,12 +110,12 @@
     <string name="auth_connection_established">Connection established</string>
     <string name="auth_testing_connection">Testing connection…</string>
     <string name="auth_not_configured_title">Malformed ownCloud configuration</string>
-    <string name="auth_not_configured_message">It seems that your ownCloud intance is not correctly configured. Contact your administrator for more details.</string>
+    <string name="auth_not_configured_message">It seems that your ownCloud 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">Unknown error occurred. Please contact authors and include logs from your device.</string>
     <string name="auth_unknow_host_title">Can\'t establish connection</string>
     <string name="auth_unknow_host_message">Coundn\'t establish connection to host. Please check hostname and server availability and try again.</string>
-    <string name="auth_incorrect_path_title">ownCloud intance not found</string>
+    <string name="auth_incorrect_path_title">ownCloud instance not found</string>
     <string name="auth_incorrect_path_message">Application couldn\'t find ownClound instance at given path. Please check your path and try again.</string>
     <string name="auth_secure_connection">Secure connection established</string>
     <string name="auth_unknow_error">Unknown error occured!</string>

+ 1 - 1
src/eu/alefzero/owncloud/datamodel/FileDataStorageManager.java

@@ -412,7 +412,7 @@ public class FileDataStorageManager implements DataStorageManager {
                                         ProviderTableMeta.FILE_ACCOUNT_OWNER+"=?",
                                         new String[]{mAccount.name});
         }
-        if (file.getStoragePath() != null) {
+        if (file.isDown()) {
             new File(file.getStoragePath()).delete();
         }
     }

+ 24 - 3
src/eu/alefzero/owncloud/datamodel/OCFile.java

@@ -144,10 +144,31 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
     /**
      * Use this to check if this file is available locally
      * 
+     * TODO use a better condition not dependent upon mLenght being synchronized; to change when downloads are done through a temporal file
+     * 
      * @return true if it is
      */
-    public boolean isDownloaded() {
-        return mLocalPath != null && !mLocalPath.equals("");
+    public boolean isDown() {
+        if (mLocalPath != null && mLocalPath.length() > 0) {
+            File file = new File(mLocalPath);
+            return (file.exists() && file.length() == mLength);
+        }
+        return false;
+    }
+    
+    /**
+     * Use this to check if this file is downloading
+     * 
+     * TODO use a better condition not dependent upon mLenght being synchronized; to change when downloads are done through a temporal file
+     * 
+     * @return true if it is in a download in progress
+     */
+    public boolean isDownloading() {
+        if (mLocalPath != null && mLocalPath.length() > 0) {
+            File file = new File(mLocalPath);
+            return (file.exists() && file.length() < mLength);  
+        }
+        return false;
     }
 
     /**
@@ -368,7 +389,7 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
     @Override
     public String toString() {
         String asString = "[id=%s, name=%s, mime=%s, downloaded=%s, local=%s, remote=%s]";
-        asString = String.format(asString, new Long(mId), getFileName(), mMimeType, isDownloaded(), mLocalPath, mRemotePath);
+        asString = String.format(asString, new Long(mId), getFileName(), mMimeType, isDown(), mLocalPath, mRemotePath);
         return asString;
     }
 

+ 11 - 1
src/eu/alefzero/owncloud/files/services/FileDownloader.java

@@ -20,6 +20,7 @@ import android.os.Message;
 import android.os.Process;
 import android.util.Log;
 import android.widget.RemoteViews;
+import android.widget.Toast;
 import eu.alefzero.owncloud.R;
 import eu.alefzero.owncloud.authenticator.AccountAuthenticator;
 import eu.alefzero.owncloud.db.ProviderMeta.ProviderTableMeta;
@@ -146,9 +147,17 @@ public class FileDownloader extends Service implements OnDatatransferProgressLis
         
         mNotificationMngr.cancel(1);
         Intent end = new Intent(DOWNLOAD_FINISH_MESSAGE);
+        end.putExtra(EXTRA_REMOTE_PATH, mRemotePath);
         end.putExtra(EXTRA_FILE_PATH, file.getAbsolutePath());
         end.putExtra(EXTRA_DOWNLOAD_RESULT, download_result);
         sendBroadcast(end);
+
+        if (download_result) {
+            Toast.makeText(this, R.string.downloader_download_succeed , Toast.LENGTH_SHORT).show();
+        } else {
+            Toast.makeText(this, R.string.downloader_download_failed , Toast.LENGTH_SHORT).show();
+        }
+        
     }
 
     @Override
@@ -163,5 +172,6 @@ public class FileDownloader extends Service implements OnDatatransferProgressLis
         
         mLastPercent = percent;
     }
-
+    
+    
 }

+ 1 - 0
src/eu/alefzero/owncloud/syncadapter/FileSyncAdapter.java

@@ -185,6 +185,7 @@ public class FileSyncAdapter extends AbstractOwnCloudSyncAdapter {
                 }
                 if (getStorageManager().getFileByPath(file.getRemotePath()) != null)
                     file.setKeepInSync(getStorageManager().getFileByPath(file.getRemotePath()).keepInSync());
+                
                 //getStorageManager().saveFile(file);
                 updatedFiles.add(file);
                 if (parentId == 0)

+ 29 - 0
src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java

@@ -89,6 +89,7 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
     private DataStorageManager mStorageManager;
     private SyncBroadcastReceiver mSyncBroadcastReceiver;
     private UploadFinishReceiver mUploadFinishReceiver;
+    private DownloadFinishReceiver mDownloadFinishReceiver;
     
     private View mLayoutView = null;
     private FileListFragment mFileList;
@@ -329,6 +330,11 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
             IntentFilter uploadIntentFilter = new IntentFilter(FileUploader.UPLOAD_FINISH_MESSAGE);
             mUploadFinishReceiver = new UploadFinishReceiver();
             registerReceiver(mUploadFinishReceiver, uploadIntentFilter);
+            
+            // Listen for download messages
+            IntentFilter downloadIntentFilter = new IntentFilter(FileDownloader.DOWNLOAD_FINISH_MESSAGE);
+            mDownloadFinishReceiver = new DownloadFinishReceiver();
+            registerReceiver(mDownloadFinishReceiver, downloadIntentFilter);
         
             // Storage manager initialization
             mStorageManager = new FileDataStorageManager(
@@ -410,6 +416,11 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
             unregisterReceiver(mUploadFinishReceiver);
             mUploadFinishReceiver = null;
         }
+        if (mDownloadFinishReceiver != null) {
+            unregisterReceiver(mDownloadFinishReceiver);
+            mDownloadFinishReceiver = null;
+        }
+        
         getIntent().putExtra(FileDetailFragment.EXTRA_FILE, mCurrentDir);
         Log.i(getClass().toString(), "onPause() end");
     }
@@ -685,6 +696,24 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
         }
         
     }
+    
+    
+    /**
+     * Once the file download has finished -> update view
+     */
+    private class DownloadFinishReceiver extends BroadcastReceiver {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            boolean downloadWasFine = intent.getBooleanExtra(FileDownloader.EXTRA_DOWNLOAD_RESULT, false);
+            String downloadedRemotePath = intent.getStringExtra(FileDownloader.EXTRA_REMOTE_PATH);
+            if (downloadWasFine && mCurrentDir != null && mCurrentDir.getFileId() == mStorageManager.getFileByPath(downloadedRemotePath).getParentId()) {
+                FileListFragment fileListFragment = (FileListFragment) getSupportFragmentManager().findFragmentById(R.id.fileList);
+                if (fileListFragment != null) { 
+                    fileListFragment.listDirectory();
+                }
+            }
+        }
+    }
 
     
     @Override

+ 13 - 6
src/eu/alefzero/owncloud/ui/adapter/FileListListAdapter.java

@@ -109,12 +109,19 @@ public class FileListListAdapter implements ListAdapter {
             } else {
                 fileIcon.setImageResource(R.drawable.ic_menu_archive);
             }
-            ImageView down = (ImageView) view.findViewById(R.id.imageView2);
-            if (file.getStoragePath() != null)
-                down.setVisibility(View.VISIBLE);
-            else
-                down.setVisibility(View.INVISIBLE);
-
+            ImageView downloaded = (ImageView) view.findViewById(R.id.imageView2);
+            ImageView downloading = (ImageView) view.findViewById(R.id.imageView4);
+            if (file.isDown()) {
+                 downloaded.setVisibility(View.VISIBLE);
+                 downloading.setVisibility(View.INVISIBLE);
+            } else if (file.isDownloading()) {
+                downloaded.setVisibility(View.INVISIBLE);
+                downloading.setVisibility(View.VISIBLE);
+            } else {
+                downloaded.setVisibility(View.INVISIBLE);
+                downloading.setVisibility(View.INVISIBLE);
+            }
+                
             if (!file.isDirectory()) {
                 view.findViewById(R.id.file_size).setVisibility(View.VISIBLE);
                 view.findViewById(R.id.last_mod).setVisibility(View.VISIBLE);

+ 120 - 36
src/eu/alefzero/owncloud/ui/fragment/FileDetailFragment.java

@@ -22,14 +22,11 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.httpclient.HostConfiguration;
 import org.apache.commons.httpclient.HttpException;
-import org.apache.commons.httpclient.cookie.CookiePolicy;
 import org.apache.commons.httpclient.methods.GetMethod;
 import org.apache.commons.httpclient.methods.PostMethod;
 import org.apache.commons.httpclient.methods.StringRequestEntity;
 import org.apache.commons.httpclient.params.HttpConnectionManagerParams;
-import org.apache.commons.httpclient.params.HttpMethodParams;
 import org.apache.http.HttpStatus;
 import org.apache.http.NameValuePair;
 import org.apache.http.client.utils.URLEncodedUtils;
@@ -37,20 +34,15 @@ import org.apache.http.message.BasicNameValuePair;
 import org.apache.http.protocol.HTTP;
 import org.apache.jackrabbit.webdav.client.methods.DavMethodBase;
 import org.apache.jackrabbit.webdav.client.methods.DeleteMethod;
-import org.apache.jackrabbit.webdav.client.methods.MoveMethod;
 import org.apache.jackrabbit.webdav.client.methods.PropFindMethod;
 import org.json.JSONException;
 import org.json.JSONObject;
 
 import android.accounts.Account;
 import android.accounts.AccountManager;
-import android.app.AlertDialog;
-import android.app.Dialog;
 import android.content.ActivityNotFoundException;
 import android.content.BroadcastReceiver;
 import android.content.Context;
-import android.content.DialogInterface;
-import android.content.DialogInterface.OnDismissListener;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.res.Resources.NotFoundException;
@@ -58,14 +50,10 @@ import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.graphics.BitmapFactory.Options;
 import android.graphics.Point;
-import android.graphics.drawable.BitmapDrawable;
-import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.os.AsyncTask;
 import android.os.Bundle;
-import android.os.Environment;
 import android.os.Handler;
-import android.preference.PreferenceActivity.Header;
 import android.support.v4.app.FragmentTransaction;
 import android.util.Log;
 import android.view.Display;
@@ -77,7 +65,6 @@ import android.view.WindowManager.LayoutParams;
 import android.webkit.MimeTypeMap;
 import android.widget.Button;
 import android.widget.CheckBox;
-import android.widget.EditText;
 import android.widget.ImageView;
 import android.widget.TextView;
 import android.widget.Toast;
@@ -169,9 +156,11 @@ public class FileDetailFragment extends SherlockFragment implements
         
         if (mLayout == R.layout.file_details_fragment) {
             mView.findViewById(R.id.fdKeepInSync).setOnClickListener(this);
-            //mView.findViewById(R.id.fdShareBtn).setOnClickListener(this);
             mView.findViewById(R.id.fdRenameBtn).setOnClickListener(this);
+            mView.findViewById(R.id.fdDownloadBtn).setOnClickListener(this);
+            mView.findViewById(R.id.fdOpenBtn).setOnClickListener(this);
             mView.findViewById(R.id.fdRemoveBtn).setOnClickListener(this);
+            //mView.findViewById(R.id.fdShareBtn).setOnClickListener(this);
             mPreview = (ImageView)mView.findViewById(R.id.fdPreview);
         }
         
@@ -221,13 +210,16 @@ public class FileDetailFragment extends SherlockFragment implements
     public void onClick(View v) {
         switch (v.getId()) {
             case R.id.fdDownloadBtn: {
-                //Toast.makeText(getActivity(), "Downloading", Toast.LENGTH_LONG).show();
                 Intent i = new Intent(getActivity(), FileDownloader.class);
                 i.putExtra(FileDownloader.EXTRA_ACCOUNT, mAccount);
                 i.putExtra(FileDownloader.EXTRA_REMOTE_PATH, mFile.getRemotePath());
                 i.putExtra(FileDownloader.EXTRA_FILE_PATH, mFile.getRemotePath());
                 i.putExtra(FileDownloader.EXTRA_FILE_SIZE, mFile.getFileLength());
-                v.setEnabled(false);
+                
+                // update ui 
+                Toast.makeText(getActivity(), "Downloading", Toast.LENGTH_LONG).show();
+                setButtonsForDownloading();
+                
                 getActivity().startService(i);
                 break;
             }
@@ -253,6 +245,47 @@ public class FileDetailFragment extends SherlockFragment implements
                 confDialog.show(getFragmentManager(), FTAG_CONFIRMATION);
                 break;
             }
+            case R.id.fdOpenBtn: {
+                String storagePath = mFile.getStoragePath();
+                String encodedStoragePath = WebdavUtils.encodePath(storagePath);
+                try {
+                    Intent i = new Intent(Intent.ACTION_VIEW);
+                    i.setDataAndType(Uri.parse("file://"+ encodedStoragePath), mFile.getMimetype());
+                    i.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
+                    startActivity(i);
+                    
+                } catch (Throwable t) {
+                    Log.e(TAG, "Fail when trying to open with the mimeType provided from the ownCloud server: " + mFile.getMimetype());
+                    boolean toastIt = true; 
+                    String mimeType = "";
+                    try {
+                        Intent i = new Intent(Intent.ACTION_VIEW);
+                        mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(storagePath.substring(storagePath.lastIndexOf('.') + 1));
+                        if (mimeType != null && !mimeType.equals(mFile.getMimetype())) {
+                            i.setDataAndType(Uri.parse("file://"+ encodedStoragePath), mimeType);
+                            i.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
+                            startActivity(i);
+                            toastIt = false;
+                        }
+                        
+                    } catch (IndexOutOfBoundsException e) {
+                        Log.e(TAG, "Trying to find out MIME type of a file without extension: " + storagePath);
+                        
+                    } catch (ActivityNotFoundException e) {
+                        Log.e(TAG, "No activity found to handle: " + storagePath + " with MIME type " + mimeType + " obtained from extension");
+                        
+                    } catch (Throwable th) {
+                        Log.e(TAG, "Unexpected problem when opening: " + storagePath, th);
+                        
+                    } finally {
+                        if (toastIt) {
+                            Toast.makeText(getActivity(), "There is no application to handle file " + mFile.getFileName(), Toast.LENGTH_SHORT).show();
+                        }
+                    }
+                    
+                }
+                break;
+            }
             default:
                 Log.e(TAG, "Incorrect view clicked!");
         }
@@ -313,7 +346,6 @@ public class FileDetailFragment extends SherlockFragment implements
 
         if (mFile != null && mAccount != null && mLayout == R.layout.file_details_fragment) {
             
-            Button downloadButton = (Button) getView().findViewById(R.id.fdDownloadBtn);
             // set file details
             setFilename(mFile.getFileName());
             setFiletype(DisplayUtils.convertMIMEtoPrettyPrint(mFile
@@ -327,16 +359,22 @@ public class FileDetailFragment extends SherlockFragment implements
             
             CheckBox cb = (CheckBox)getView().findViewById(R.id.fdKeepInSync);
             cb.setChecked(mFile.keepInSync());
-            
-            if (mFile.getStoragePath() != null) {
+
+            // configure UI for depending upon local state of the file
+            if (mFile.isDownloading()) {
+                setButtonsForDownloading();
+                
+            } else if (mFile.isDown()) {
                 // Update preview
                 if (mFile.getMimetype().startsWith("image/")) {
                     BitmapLoader bl = new BitmapLoader();
                     bl.execute(new String[]{mFile.getStoragePath()});
                 }
                 
+                setButtonsForDown();
+                
                 // Change download button to open button
-                downloadButton.setText(R.string.filedetails_open);
+                /*downloadButton.setText(R.string.filedetails_open);
                 downloadButton.setOnClickListener(new OnClickListener() {
                     @Override
                     public void onClick(View v) {
@@ -379,10 +417,9 @@ public class FileDetailFragment extends SherlockFragment implements
                             
                         }
                     }
-                });
+                });*/
             } else {
-                // Make download button effective
-                downloadButton.setOnClickListener(this);
+                setButtonsForRemote();
             }
         }
     }
@@ -443,6 +480,53 @@ public class FileDetailFragment extends SherlockFragment implements
         }
     }
     
+    /**
+     * Enables or disables buttons for a file being downloaded
+     */
+    private void setButtonsForDownloading() {
+        if (!isEmpty()) {
+            Button downloadButton = (Button) getView().findViewById(R.id.fdDownloadBtn);
+            downloadButton.setText(R.string.filedetails_download_in_progress);
+            downloadButton.setEnabled(false);   // TODO replace it with a 'cancel download' button
+        
+            // let's protect the user from himself ;)
+            ((Button) getView().findViewById(R.id.fdOpenBtn)).setEnabled(false);
+            ((Button) getView().findViewById(R.id.fdRenameBtn)).setEnabled(false);
+            ((Button) getView().findViewById(R.id.fdRemoveBtn)).setEnabled(false);
+        }
+    }
+    
+    /**
+     * Enables or disables buttons for a file locally available 
+     */
+    private void setButtonsForDown() {
+        if (!isEmpty()) {
+            Button downloadButton = (Button) getView().findViewById(R.id.fdDownloadBtn);
+            downloadButton.setText(R.string.filedetails_redownload);
+            downloadButton.setEnabled(true);
+        
+            ((Button) getView().findViewById(R.id.fdOpenBtn)).setEnabled(true);
+            ((Button) getView().findViewById(R.id.fdRenameBtn)).setEnabled(true);
+            ((Button) getView().findViewById(R.id.fdRemoveBtn)).setEnabled(true);
+        }
+    }
+
+    /**
+     * Enables or disables buttons for a file not locally available 
+     */
+    private void setButtonsForRemote() {
+        if (!isEmpty()) {
+            Button downloadButton = (Button) getView().findViewById(R.id.fdDownloadBtn);
+            downloadButton.setText(R.string.filedetails_download);
+            downloadButton.setEnabled(true);
+            
+            ((Button) getView().findViewById(R.id.fdOpenBtn)).setEnabled(false);
+            ((Button) getView().findViewById(R.id.fdRenameBtn)).setEnabled(true);
+            ((Button) getView().findViewById(R.id.fdRemoveBtn)).setEnabled(true);
+        }
+    }
+    
+
     /**
      * In ownCloud 3.X.X and 4.X.X there is a bug that SabreDAV does not return
      * the time that the file was created. There is a chance that this will
@@ -469,17 +553,17 @@ public class FileDetailFragment extends SherlockFragment implements
     private class DownloadFinishReceiver extends BroadcastReceiver {
         @Override
         public void onReceive(Context context, Intent intent) {
-            if (getView()!=null && getView().findViewById(R.id.fdDownloadBtn) != null) 
-                getView().findViewById(R.id.fdDownloadBtn).setEnabled(true);
-            
-            if (intent.getBooleanExtra(FileDownloader.EXTRA_DOWNLOAD_RESULT, false)) {
-                mFile.setStoragePath(intent.getStringExtra(FileDownloader.EXTRA_FILE_PATH));
-                updateFileDetails();
-            } else if (intent.getAction().equals(FileDownloader.DOWNLOAD_FINISH_MESSAGE)) {
-                Toast.makeText(context, R.string.downloader_download_failed , Toast.LENGTH_SHORT).show();
+            if (mFile != null) {
+                boolean downloadWasFine = intent.getBooleanExtra(FileDownloader.EXTRA_DOWNLOAD_RESULT, false);
+                String downloadedRemotePath = intent.getStringExtra(FileDownloader.EXTRA_REMOTE_PATH);
+                if (mFile.getRemotePath().equals(downloadedRemotePath)) {
+                    if (downloadWasFine) {
+                        mFile.setStoragePath(intent.getStringExtra(FileDownloader.EXTRA_FILE_PATH));
+                    }
+                    updateFileDetails();    // it updates the buttons; must be called although !downloadWasFine
+                }
             }
         }
-        
     }
     
     // this is a temporary class for sharing purposes, it need to be replaced in transfer service
@@ -613,11 +697,11 @@ public class FileDetailFragment extends SherlockFragment implements
                         newFile.setMimetype(mFile.getMimetype());
                         newFile.setModificationTimestamp(mFile.getModificationTimestamp());
                         newFile.setParentId(mFile.getParentId());
-                        if (mFile.isDownloaded()) {
+                        if (mFile.isDown()) {
                             File f = new File(mFile.getStoragePath());
-                            Log.e(TAG, f.getAbsolutePath()+"");
+                            Log.e(TAG, f.getAbsolutePath());
                             f.renameTo(new File(f.getParent()+"/"+newFilename));
-                            Log.e(TAG, f.getAbsolutePath()+"");
+                            Log.e(TAG, f.getAbsolutePath());
                             newFile.setStoragePath(f.getAbsolutePath());
                         }
                         
@@ -627,7 +711,7 @@ public class FileDetailFragment extends SherlockFragment implements
                 }
             }
         } else {
-            Log.e(TAG, "Unknown dialog intance passed to onDismissDalog: " + dialog.getClass().getCanonicalName());
+            Log.e(TAG, "Unknown dialog instance passed to onDismissDalog: " + dialog.getClass().getCanonicalName());
         }
         
     }

+ 2 - 2
src/eu/alefzero/webdav/WebdavClient.java

@@ -144,9 +144,9 @@ public class WebdavClient extends HttpClient {
                         mDataTransferListener.transferProgress(readResult);
                     fos.write(bytes, 0, readResult);
                 }
-                
+                ret = true;
             }
-            ret = true;
+            
         } catch (Throwable e) {
             e.printStackTrace();
             targetPath.delete();