ソースを参照

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

David A. Velasco 12 年 前
コミット
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();