update local filename only when rename succeed
authorBartek Przybylski <bart.p.pl@gmail.com>
Wed, 11 Jul 2012 18:24:50 +0000 (20:24 +0200)
committerBartek Przybylski <bart.p.pl@gmail.com>
Wed, 11 Jul 2012 18:25:27 +0000 (20:25 +0200)
src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java
src/eu/alefzero/owncloud/ui/fragment/FileDetailFragment.java

index 42b7f45..c94c27f 100644 (file)
@@ -113,7 +113,7 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
         requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);\r
         setSupportProgressBarIndeterminateVisibility(false);\r
 \r
-        //Thread.setDefaultUncaughtExceptionHandler(new CrashHandler(getApplicationContext()));\r
+        Thread.setDefaultUncaughtExceptionHandler(new CrashHandler(getApplicationContext()));\r
 \r
         if(savedInstanceState != null) {\r
             mDirs = savedInstanceState.getStringArray(KEY_DIR_ARRAY);\r
index cf13ba3..9b41093 100644 (file)
@@ -57,6 +57,7 @@ import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;\r
 import android.net.Uri;\r
 import android.os.Bundle;\r
+import android.os.Handler;\r
 import android.preference.PreferenceActivity.Header;\r
 import android.util.Log;\r
 import android.view.Display;\r
@@ -634,11 +635,9 @@ public class FileDetailFragment extends SherlockFragment implements
                         newFile.setModificationTimestamp(mFile.getModificationTimestamp());\r
                         newFile.setParentId(mFile.getParentId());\r
                         newFile.setStoragePath(mFile.getStoragePath());\r
-                        fdsm.removeFile(mFile);\r
-                        fdsm.saveFile(newFile);\r
-                        new Thread(new RenameRunnable(mFile, newFile, mAccount)).start();\r
-                        mFile = newFile;\r
-                        updateFileDetails(mFile, mAccount);\r
+                        \r
+                        new Thread(new RenameRunnable(mFile, newFile, mAccount, new Handler())).start();\r
+\r
                     }\r
                 }\r
             }\r
@@ -652,11 +651,13 @@ public class FileDetailFragment extends SherlockFragment implements
         \r
         Account mAccount;\r
         OCFile mOld, mNew;\r
+        Handler mHandler;\r
         \r
-        public RenameRunnable(OCFile oldFile, OCFile newFile, Account account) {\r
+        public RenameRunnable(OCFile oldFile, OCFile newFile, Account account, Handler handler) {\r
             mOld = oldFile;\r
             mNew = newFile;\r
             mAccount = account;\r
+            mHandler = handler;\r
         }\r
         \r
         public void run() {\r
@@ -667,13 +668,22 @@ public class FileDetailFragment extends SherlockFragment implements
             String webdav_path = AccountUtils.getWebdavPath(ocv);\r
             Log.d("ASD", ""+baseUrl + webdav_path + mOld.getRemotePath());\r
 \r
-            \r
             Log.e("ASD", Uri.parse(baseUrl).getPath() == null ? "" : Uri.parse(baseUrl).getPath() + webdav_path + mNew.getRemotePath());\r
             LocalMoveMethod move = new LocalMoveMethod(baseUrl + webdav_path + mOld.getRemotePath(),\r
                                              Uri.parse(baseUrl).getPath() == null ? "" : Uri.parse(baseUrl).getPath() + webdav_path + mNew.getRemotePath());\r
             \r
             try {\r
                 int status = wc.executeMethod(move);\r
+                if (move.succeeded()) {\r
+                    FileDataStorageManager fdsm = new FileDataStorageManager(mAccount, getActivity().getContentResolver());\r
+                    fdsm.removeFile(mOld);\r
+                    fdsm.saveFile(mNew);\r
+                    mFile = mNew;\r
+                    mHandler.post(new Runnable() {\r
+                        @Override\r
+                        public void run() { updateFileDetails(mFile, mAccount); }\r
+                    });\r
+                }\r
                 Log.e("ASD", ""+move.getQueryString());\r
                 Log.d("move", "returned status " + status);\r
             } catch (HttpException e) {\r