Two way synchronization for files
[pub/Android/ownCloud.git] / src / com / owncloud / android / ui / fragment / FileDetailFragment.java
index 10b44ad..3f0be07 100644 (file)
@@ -78,6 +78,7 @@ import com.owncloud.android.authenticator.AccountAuthenticator;
 import com.owncloud.android.datamodel.FileDataStorageManager;\r
 import com.owncloud.android.datamodel.OCFile;\r
 import com.owncloud.android.files.services.FileDownloader;\r
+import com.owncloud.android.files.services.FileObserverService;\r
 import com.owncloud.android.files.services.FileUploader;\r
 import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;\r
 import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;\r
@@ -247,6 +248,7 @@ public class FileDetailFragment extends SherlockFragment implements
             case R.id.fdDownloadBtn: {\r
                 //if (FileDownloader.isDownloading(mAccount, mFile.getRemotePath())) {\r
                 FileDownloaderBinder downloaderBinder = mContainerActivity.getFileDownloaderBinder();\r
+                FileUploaderBinder uploaderBinder = mContainerActivity.getFileUploaderBinder();\r
                 if (downloaderBinder != null && downloaderBinder.isDownloading(mAccount, mFile)) {\r
                     downloaderBinder.cancel(mAccount, mFile);\r
                     if (mFile.isDown()) {\r
@@ -254,6 +256,26 @@ public class FileDetailFragment extends SherlockFragment implements
                     } else {\r
                         setButtonsForRemote();\r
                     }\r
+\r
+                } else if (uploaderBinder != null && uploaderBinder.isUploading(mAccount, mFile)) {\r
+                    uploaderBinder.cancel(mAccount, mFile);\r
+                    if (!mFile.fileExists()) {\r
+                        // TODO make something better\r
+                        if (getActivity() instanceof FileDisplayActivity) {\r
+                            // double pane\r
+                            FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();\r
+                            transaction.replace(R.id.file_details_container, new FileDetailFragment(null, null), FTAG); // empty FileDetailFragment\r
+                            transaction.commit();\r
+                            mContainerActivity.onFileStateChanged();\r
+                        } else {\r
+                            getActivity().finish();\r
+                        }\r
+                        \r
+                    } else if (mFile.isDown()) {\r
+                        setButtonsForDown();\r
+                    } else {\r
+                        setButtonsForRemote();\r
+                    }\r
                     \r
                 } else {\r
                     Intent i = new Intent(getActivity(), FileDownloader.class);\r
@@ -281,7 +303,7 @@ public class FileDetailFragment extends SherlockFragment implements
                 } else {\r
                     mContainerActivity.onFileStateChanged();    // put inside 'else' to not call it twice (here, and in the virtual click on fdDownloadBtn)\r
                 }\r
-                /*\r
+                \r
                 Intent intent = new Intent(getActivity().getApplicationContext(),\r
                                            FileObserverService.class);\r
                 intent.putExtra(FileObserverService.KEY_FILE_CMD,\r
@@ -289,8 +311,9 @@ public class FileDetailFragment extends SherlockFragment implements
                                    FileObserverService.CMD_ADD_OBSERVED_FILE:\r
                                    FileObserverService.CMD_DEL_OBSERVED_FILE));\r
                 intent.putExtra(FileObserverService.KEY_CMD_ARG, mFile.getStoragePath());\r
+                Log.e(TAG, "starting observer service");\r
                 getActivity().startService(intent);\r
-                */\r
+                \r
                 break;\r
             }\r
             case R.id.fdRenameBtn: {\r
@@ -534,6 +557,7 @@ public class FileDetailFragment extends SherlockFragment implements
             ((Button) getView().findViewById(R.id.fdOpenBtn)).setEnabled(false);\r
             ((Button) getView().findViewById(R.id.fdRenameBtn)).setEnabled(false);\r
             ((Button) getView().findViewById(R.id.fdRemoveBtn)).setEnabled(false);\r
+            getView().findViewById(R.id.fdKeepInSync).setEnabled(false);\r
         }\r
     }\r
     \r
@@ -549,6 +573,7 @@ public class FileDetailFragment extends SherlockFragment implements
             ((Button) getView().findViewById(R.id.fdOpenBtn)).setEnabled(true);\r
             ((Button) getView().findViewById(R.id.fdRenameBtn)).setEnabled(true);\r
             ((Button) getView().findViewById(R.id.fdRemoveBtn)).setEnabled(true);\r
+            getView().findViewById(R.id.fdKeepInSync).setEnabled(true);\r
         }\r
     }\r
 \r
@@ -563,6 +588,7 @@ public class FileDetailFragment extends SherlockFragment implements
             ((Button) getView().findViewById(R.id.fdOpenBtn)).setEnabled(false);\r
             ((Button) getView().findViewById(R.id.fdRenameBtn)).setEnabled(true);\r
             ((Button) getView().findViewById(R.id.fdRemoveBtn)).setEnabled(true);\r
+            getView().findViewById(R.id.fdKeepInSync).setEnabled(true);\r
         }\r
     }\r
     \r