Small fixes on delete
[pub/Android/ownCloud.git] / src / eu / alefzero / owncloud / ui / activity / FileDisplayActivity.java
index e8f9151..07ca6f5 100644 (file)
@@ -45,6 +45,7 @@ import android.view.ViewGroup;
 import android.widget.ArrayAdapter;\r
 import android.widget.EditText;\r
 import android.widget.TextView;\r
+import android.widget.Toast;\r
 \r
 import com.actionbarsherlock.app.ActionBar;\r
 import com.actionbarsherlock.app.ActionBar.OnNavigationListener;\r
@@ -61,6 +62,7 @@ import eu.alefzero.owncloud.authenticator.AccountAuthenticator;
 import eu.alefzero.owncloud.datamodel.DataStorageManager;\r
 import eu.alefzero.owncloud.datamodel.FileDataStorageManager;\r
 import eu.alefzero.owncloud.datamodel.OCFile;\r
+import eu.alefzero.owncloud.files.services.FileDownloader;\r
 import eu.alefzero.owncloud.files.services.FileUploader;\r
 import eu.alefzero.owncloud.syncadapter.FileSyncService;\r
 import eu.alefzero.owncloud.ui.fragment.FileDetailFragment;\r
@@ -82,7 +84,8 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
     private String[] mDirs = null;\r
 \r
     private DataStorageManager mStorageManager;\r
-    private SyncBroadcastReceiver syncBroadcastReceiver;\r
+    private SyncBroadcastReceiver mSyncBroadcastReceiver;\r
+    private UploadFinishReceiver mUploadFinishReceiver;\r
     \r
     private View mLayoutView = null;\r
     private FileListFragment mFileList;\r
@@ -300,8 +303,13 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
 \r
             // Listen for sync messages\r
             IntentFilter syncIntentFilter = new IntentFilter(FileSyncService.SYNC_MESSAGE);\r
-            syncBroadcastReceiver = new SyncBroadcastReceiver();\r
-            registerReceiver(syncBroadcastReceiver, syncIntentFilter);\r
+            mSyncBroadcastReceiver = new SyncBroadcastReceiver();\r
+            registerReceiver(mSyncBroadcastReceiver, syncIntentFilter);\r
+            \r
+            // Listen for upload messages\r
+            IntentFilter uploadIntentFilter = new IntentFilter(FileUploader.UPLOAD_FINISH_MESSAGE);\r
+            mUploadFinishReceiver = new UploadFinishReceiver();\r
+            registerReceiver(mUploadFinishReceiver, uploadIntentFilter);\r
         \r
             // Storage manager initialization\r
             mStorageManager = new FileDataStorageManager(\r
@@ -374,9 +382,13 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
     protected void onPause() {\r
         Log.i(getClass().toString(), "onPause() start");\r
         super.onPause();\r
-        if (syncBroadcastReceiver != null) {\r
-            unregisterReceiver(syncBroadcastReceiver);\r
-            syncBroadcastReceiver = null;\r
+        if (mSyncBroadcastReceiver != null) {\r
+            unregisterReceiver(mSyncBroadcastReceiver);\r
+            mSyncBroadcastReceiver = null;\r
+        }\r
+        if (mUploadFinishReceiver != null) {\r
+            unregisterReceiver(mUploadFinishReceiver);\r
+            mUploadFinishReceiver = null;\r
         }\r
         getIntent().putExtra(FileDetailFragment.EXTRA_FILE, mCurrentDir);\r
         Log.i(getClass().toString(), "onPause() end");\r
@@ -548,8 +560,7 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
     \r
         @Override\r
         public void run() {\r
-            WebdavClient wdc = new WebdavClient(Uri.parse(mAm.getUserData(\r
-                    mAccount, AccountAuthenticator.KEY_OC_URL)));\r
+            WebdavClient wdc = new WebdavClient(mAccount, getApplicationContext());\r
     \r
             String username = mAccount.name.substring(0,\r
                     mAccount.name.lastIndexOf('@'));\r
@@ -602,6 +613,21 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
             Log.d("FileDisplay", "sync of account " + account_name\r
                     + " is in_progress: " + inProgress);\r
             setSupportProgressBarIndeterminateVisibility(inProgress);\r
+            \r
+            long OCDirId = intent.getLongExtra(FileSyncService.SYNC_FOLDER, -1);\r
+            if (OCDirId > 0) {\r
+                OCFile syncDir = mStorageManager.getFileById(OCDirId);\r
+                if (syncDir != null && (\r
+                        (mCurrentDir == null && syncDir.getFileName().equals("/")) ||\r
+                         syncDir.equals(mCurrentDir))\r
+                    ) {\r
+                    FileListFragment fileListFragment = (FileListFragment) getSupportFragmentManager().findFragmentById(R.id.fileList);\r
+                    if (fileListFragment != null) { \r
+                        fileListFragment.listDirectory();\r
+                    }\r
+                }\r
+            }\r
+            \r
             if (!inProgress) {\r
                 FileListFragment fileListFragment = (FileListFragment) getSupportFragmentManager()\r
                         .findFragmentById(R.id.fileList);\r
@@ -611,7 +637,33 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
         }\r
 \r
     }\r
+    \r
+\r
+    private class UploadFinishReceiver extends BroadcastReceiver {\r
+        /**\r
+         * Once the file upload has finished -> update view\r
+         *  @author David A. Velasco\r
+         * {@link BroadcastReceiver} to enable upload feedback in UI\r
+         */\r
+        @Override\r
+        public void onReceive(Context context, Intent intent) {\r
+            long parentDirId = intent.getLongExtra(FileUploader.EXTRA_PARENT_DIR_ID, -1);\r
+            OCFile parentDir = mStorageManager.getFileById(parentDirId);\r
+            \r
+            if (parentDir != null && (\r
+                    (mCurrentDir == null && parentDir.getFileName().equals("/")) ||\r
+                     parentDir.equals(mCurrentDir))\r
+                ) {\r
+                FileListFragment fileListFragment = (FileListFragment) getSupportFragmentManager().findFragmentById(R.id.fileList);\r
+                if (fileListFragment != null) { \r
+                    fileListFragment.listDirectory();\r
+                }\r
+            }\r
+        }\r
+        \r
+    }\r
 \r
+    \r
     @Override\r
     public void onClick(View v) {\r
         if (v.getId() == R.id.setup_account) {\r