package com.owncloud.android.ui.activity;
import java.io.File;
-import java.io.InvalidClassException;
import android.accounts.Account;
import android.app.AlertDialog;
*/
public class FileDisplayActivity extends HookActivity implements
-OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNavigationListener, OnSslUntrustedCertListener, EditNameDialogListener {
+FileFragment.ContainerActivity, OnNavigationListener,
+OnSslUntrustedCertListener, EditNameDialogListener {
private ArrayAdapter<String> mDirectories;
private UploadFinishReceiver mUploadFinishReceiver;
private DownloadFinishReceiver mDownloadFinishReceiver;
//private OperationsServiceReceiver mOperationsServiceReceiver;
- private FileDownloaderBinder mDownloaderBinder = null;
- private FileUploaderBinder mUploaderBinder = null;
- private ServiceConnection mDownloadConnection = null, mUploadConnection = null;
private RemoteOperationResult mLastSslUntrustedServerResult = null;
private boolean mDualPane;
super.onCreate(savedInstanceState); // this calls onAccountChanged() when ownCloud Account is valid
- /// bindings to transference services
- mUploadConnection = new ListServiceConnection();
- mDownloadConnection = new ListServiceConnection();
- bindService(new Intent(this, FileUploader.class), mUploadConnection, Context.BIND_AUTO_CREATE);
- bindService(new Intent(this, FileDownloader.class), mDownloadConnection, Context.BIND_AUTO_CREATE);
-
// PIN CODE request ; best location is to decide, let's try this first
if (getIntent().getAction() != null && getIntent().getAction().equals(Intent.ACTION_MAIN) && savedInstanceState == null) {
requestPinCode();
protected void onStart() {
super.onStart();
getSupportActionBar().setIcon(DisplayUtils.getSeasonalIconId());
+ /*
refeshListOfFilesFragment();
+ */
}
@Override
protected void onDestroy() {
super.onDestroy();
- if (mDownloadConnection != null)
- unbindService(mDownloadConnection);
- if (mUploadConnection != null)
- unbindService(mUploadConnection);
}
/**
updateNavigationElementsInActionBar(null);
}
+ /* TODO WIP COMMENT
protected void refeshListOfFilesFragment() {
OCFileListFragment fileListFragment = getListOfFilesFragment();
if (fileListFragment != null) {
fileListFragment.listDirectory();
}
}
+ */
protected void refreshSecondFragment(String downloadEvent, String downloadedRemotePath, boolean success) {
FileFragment secondFragment = getSecondFragment();
startMediaPreview(mWaitingToPreview, 0, true);
detailsFragmentChanged = true;
} else {
- getFileOperationsHelper().openFile(mWaitingToPreview, this);
+ getFileOperationsHelper().openFile(mWaitingToPreview);
}
}
mWaitingToPreview = null;
cleanSecondFragment();
currentFile = currentDir;
}
-
+
+ /* TODO WIP COMMENT
if (synchFolderRemotePath != null && currentDir.getRemotePath().equals(synchFolderRemotePath)) {
OCFileListFragment fileListFragment = getListOfFilesFragment();
if (fileListFragment != null) {
fileListFragment.listDirectory(currentDir);
}
}
+ */
setFile(currentFile);
}
OCFile currentDir = getCurrentDir();
boolean isDescendant = (currentDir != null) && (uploadedRemotePath != null) && (uploadedRemotePath.startsWith(currentDir.getRemotePath()));
if (sameAccount && isDescendant) {
+ /*
refeshListOfFilesFragment();
+ */
}
}
boolean isDescendant = isDescendant(downloadedRemotePath);
if (sameAccount && isDescendant) {
+ /* TODO WIP COMMENT
refeshListOfFilesFragment();
+ */
refreshSecondFragment(intent.getAction(), downloadedRemotePath, intent.getBooleanExtra(FileDownloader.EXTRA_DOWNLOAD_RESULT, false));
}
if (getAccount() != null && account.name.equals(getAccount().name)
&& getStorageManager() != null
) {
+ /*
refeshListOfFilesFragment();
+ */
}
if ((getSharesResult != null) &&
RemoteOperationResult.ResultCode.SSL_RECOVERABLE_PEER_UNVERIFIED.equals(getSharesResult.getCode())) {
}
/**
- * Opens the image gallery showing the image {@link OCFile} received as parameter.
- *
- * @param file Image {@link OCFile} to show.
- */
- @Override
- public void startImagePreview(OCFile file) {
- Intent showDetailsIntent = new Intent(this, PreviewImageActivity.class);
- showDetailsIntent.putExtra(EXTRA_FILE, file);
- showDetailsIntent.putExtra(EXTRA_ACCOUNT, getAccount());
- startActivity(showDetailsIntent);
- }
-
- /**
- * Stars the preview of an already down media {@link OCFile}.
- *
- * @param file Media {@link OCFile} to preview.
- * @param startPlaybackPosition Media position where the playback will be started, in milliseconds.
- * @param autoplay When 'true', the playback will start without user interactions.
- */
- @Override
- public void startMediaPreview(OCFile file, int startPlaybackPosition, boolean autoplay) {
- Fragment mediaFragment = new PreviewMediaFragment(file, getAccount(), startPlaybackPosition, autoplay);
- setSecondFragment(mediaFragment);
- updateFragmentsVisibility(true);
- updateNavigationElementsInActionBar(file);
- setFile(file);
- }
-
- /**
- * Requests the download of the received {@link OCFile} , updates the UI
- * to monitor the download progress and prepares the activity to preview
- * or open the file when the download finishes.
- *
- * @param file {@link OCFile} to download and preview.
- */
- @Override
- public void startDownloadForPreview(OCFile file) {
- Fragment detailFragment = new FileDetailFragment(file, getAccount());
- setSecondFragment(detailFragment);
- mWaitingToPreview = file;
- requestForDownload();
- updateFragmentsVisibility(true);
- updateNavigationElementsInActionBar(file);
- setFile(file);
- }
-
-
- /**
* Shows the information of the {@link OCFile} received as a
* parameter in the second fragment.
*
/**
* {@inheritDoc}
*/
+
@Override
public void onFileStateChanged() {
+ /* TODO WIP COMMENT
refeshListOfFilesFragment();
updateNavigationElementsInActionBar(getSecondFragment().getFile());
+ */
}
- /**
- * {@inheritDoc}
- */
- @Override
- public FileDownloaderBinder getFileDownloaderBinder() {
- return mDownloaderBinder;
- }
-
-
- /**
- * {@inheritDoc}
- */
@Override
- public FileUploaderBinder getFileUploaderBinder() {
- return mUploaderBinder;
+ protected ServiceConnection newTransferenceServiceConnection() {
+ return new ListServiceConnection();
}
-
/** Defines callbacks for service binding, passed to bindService() */
private class ListServiceConnection implements ServiceConnection {
private void onCreateShareOperationFinish(CreateShareOperation operation, RemoteOperationResult result) {
if (result.isSuccess()) {
refreshShowDetails();
+ /* TODO WIP COMMENT
refeshListOfFilesFragment();
+ */
}
}
private void onUnshareLinkOperationFinish(UnshareLinkOperation operation, RemoteOperationResult result) {
if (result.isSuccess()) {
refreshShowDetails();
+ /*
refeshListOfFilesFragment();
+ */
} else if (result.getCode() == ResultCode.SHARE_NOT_FOUND) {
cleanSecondFragment();
+ /*
refeshListOfFilesFragment();
+ */
}
}
Toast msg = Toast.makeText(this, R.string.remove_success_msg, Toast.LENGTH_LONG);
msg.show();
OCFile removedFile = operation.getFile();
- getSecondFragment();
FileFragment second = getSecondFragment();
if (second != null && removedFile.equals(second.getFile())) {
cleanSecondFragment();
}
if (getStorageManager().getFileById(removedFile.getParentId()).equals(getCurrentDir())) {
+ /*
refeshListOfFilesFragment();
+ */
}
} else {
}
}
}
-
+
+
/**
* Updates the view associated to the activity after the finish of an operation trying create a new folder
*
private void onCreateFolderOperationFinish(CreateFolderOperation operation, RemoteOperationResult result) {
if (result.isSuccess()) {
dismissLoadingDialog();
+ /* TODO WIP COMMENT
refeshListOfFilesFragment();
+ */
} else {
dismissLoadingDialog();
dismissLoadingDialog();
OCFile renamedFile = operation.getFile();
if (result.isSuccess()) {
- if (mDualPane) {
- FileFragment details = getSecondFragment();
- if (details != null && details instanceof FileDetailFragment && renamedFile.equals(details.getFile()) ) {
- ((FileDetailFragment) details).updateFileDetails(renamedFile, getAccount());
- }
+ FileFragment details = getSecondFragment();
+ if (details != null && details instanceof FileDetailFragment && renamedFile.equals(details.getFile()) ) {
+ ((FileDetailFragment) details).updateFileDetails(renamedFile, getAccount());
}
if (getStorageManager().getFileById(renamedFile.getParentId()).equals(getCurrentDir())) {
+ /*
refeshListOfFilesFragment();
+ */
}
} else {
}
}
-
private void onSynchronizeFileOperationFinish(SynchronizeFileOperation operation, RemoteOperationResult result) {
dismissLoadingDialog();
OCFile syncedFile = operation.getLocalFile();
startActivity(i);
}
-
+
} else {
if (operation.transferWasRequested()) {
+ /*
refeshListOfFilesFragment();
+ */
onTransferStateChanged(syncedFile, true, true);
-
+
} else {
Toast msg = Toast.makeText(this, R.string.sync_file_nothing_to_do_msg, Toast.LENGTH_LONG);
msg.show();
}
}
-
+
/**
* {@inheritDoc}
*/
@Override
public void onTransferStateChanged(OCFile file, boolean downloading, boolean uploading) {
- if (mDualPane) {
- FileFragment details = getSecondFragment();
- if (details != null && details instanceof FileDetailFragment && file.equals(details.getFile()) ) {
- if (downloading || uploading) {
- ((FileDetailFragment)details).updateFileDetails(file, getAccount());
- } else {
- ((FileDetailFragment)details).updateFileDetails(false, true);
- }
+ FileFragment details = getSecondFragment();
+ if (details != null && details instanceof FileDetailFragment && file.equals(details.getFile()) ) {
+ if (downloading || uploading) {
+ ((FileDetailFragment)details).updateFileDetails(file, getAccount());
+ } else {
+ ((FileDetailFragment)details).updateFileDetails(false, true);
}
}
}
RemoteOperation synchFolderOp = new SynchronizeFolderOperation( folder,
currentSyncTime,
false,
- getFileOperationsHelper().isSharedSupported(this),
+ getFileOperationsHelper().isSharedSupported(),
getStorageManager(),
getAccount(),
getApplicationContext()
dialog.show(ft, DIALOG_UNTRUSTED_CERT);
}
+ private void requestForDownload(OCFile file) {
+ Account account = getAccount();
+ if (!mDownloaderBinder.isDownloading(account, file)) {
+ Intent i = new Intent(this, FileDownloader.class);
+ i.putExtra(FileDownloader.EXTRA_ACCOUNT, account);
+ i.putExtra(FileDownloader.EXTRA_FILE, file);
+ startService(i);
+ }
+ }
+
+ private void sendDownloadedFile(){
+ getFileOperationsHelper().sendDownloadedFile(mWaitingToSend);
+ mWaitingToSend = null;
+ }
+
+
/**
* Requests the download of the received {@link OCFile} , updates the UI
* to monitor the download progress and prepares the activity to send the file
*
* @param file {@link OCFile} to download and preview.
*/
- @Override
public void startDownloadForSending(OCFile file) {
mWaitingToSend = file;
requestForDownload(mWaitingToSend);
updateFragmentsVisibility(hasSecondFragment);
}
- private void requestForDownload(OCFile file) {
+ /**
+ * Opens the image gallery showing the image {@link OCFile} received as parameter.
+ *
+ * @param file Image {@link OCFile} to show.
+ */
+ public void startImagePreview(OCFile file) {
+ Intent showDetailsIntent = new Intent(this, PreviewImageActivity.class);
+ showDetailsIntent.putExtra(EXTRA_FILE, file);
+ showDetailsIntent.putExtra(EXTRA_ACCOUNT, getAccount());
+ startActivity(showDetailsIntent);
+ }
+
+ /**
+ * Stars the preview of an already down media {@link OCFile}.
+ *
+ * @param file Media {@link OCFile} to preview.
+ * @param startPlaybackPosition Media position where the playback will be started, in milliseconds.
+ * @param autoplay When 'true', the playback will start without user interactions.
+ */
+ public void startMediaPreview(OCFile file, int startPlaybackPosition, boolean autoplay) {
+ Fragment mediaFragment = new PreviewMediaFragment(file, getAccount(), startPlaybackPosition, autoplay);
+ setSecondFragment(mediaFragment);
+ updateFragmentsVisibility(true);
+ updateNavigationElementsInActionBar(file);
+ setFile(file);
+ }
+
+ /**
+ * Requests the download of the received {@link OCFile} , updates the UI
+ * to monitor the download progress and prepares the activity to preview
+ * or open the file when the download finishes.
+ *
+ * @param file {@link OCFile} to download and preview.
+ */
+ public void startDownloadForPreview(OCFile file) {
+ Fragment detailFragment = new FileDetailFragment(file, getAccount());
+ setSecondFragment(detailFragment);
+ mWaitingToPreview = file;
+ requestForDownload();
+ updateFragmentsVisibility(true);
+ updateNavigationElementsInActionBar(file);
+ setFile(file);
+ }
+
+
+ public void cancelTransference(OCFile file) {
Account account = getAccount();
- if (!mDownloaderBinder.isDownloading(account, file)) {
- Intent i = new Intent(this, FileDownloader.class);
- i.putExtra(FileDownloader.EXTRA_ACCOUNT, account);
- i.putExtra(FileDownloader.EXTRA_FILE, file);
- startService(i);
+ if (mDownloaderBinder != null && mDownloaderBinder.isDownloading(account, file)) {
+ mDownloaderBinder.cancel(account, file);
+ onTransferStateChanged(file, false, false);
+
+ } else if (mUploaderBinder != null && mUploaderBinder.isUploading(account, file)) {
+ mUploaderBinder.cancel(account, file);
+ if (!file.fileExists()) {
+ cleanSecondFragment();
+
+ } else {
+ onTransferStateChanged(file, false, false);
+ }
}
}
- private void sendDownloadedFile(){
- getFileOperationsHelper().sendDownloadedFile(mWaitingToSend, this);
- mWaitingToSend = null;
- }
-
}