import com.owncloud.android.ui.preview.PreviewImageActivity;
import com.owncloud.android.ui.preview.PreviewImageFragment;
import com.owncloud.android.ui.preview.PreviewMediaFragment;
+import com.owncloud.android.ui.preview.PreviewTextFragment;
import com.owncloud.android.ui.preview.PreviewVideoActivity;
import com.owncloud.android.utils.DisplayUtils;
import com.owncloud.android.utils.ErrorMessageAdapter;
import java.io.File;
-
/**
* Displays, what files the user has available in his ownCloud.
*/
implements FileFragment.ContainerActivity,
OnSslUntrustedCertListener, OnEnforceableRefreshListener {
+
+
private SyncBroadcastReceiver mSyncBroadcastReceiver;
private UploadFinishReceiver mUploadFinishReceiver;
private DownloadFinishReceiver mDownloadFinishReceiver;
mSyncInProgress = savedInstanceState.getBoolean(KEY_SYNC_IN_PROGRESS);
mWaitingToSend = (OCFile) savedInstanceState.getParcelable(
FileDisplayActivity.KEY_WAITING_TO_SEND);
-
} else {
mWaitingToPreview = null;
mSyncInProgress = false;
mProgressBar.setIndeterminate(mSyncInProgress);
// always AFTER setContentView(...) ; to work around bug in its implementation
-
+
setBackgroundText();
Log_OC.v(TAG, "onCreate() end");
listOfFiles.listDirectory(getCurrentDir());
// TODO Enable when "On Device" is recovered
// listOfFiles.listDirectory(getCurrentDir(), MainApp.getOnlyOnDevice());
+
} else {
Log_OC.e(TAG, "Still have a chance to lose the initializacion of list fragment >(");
}
setSecondFragment(secondFragment);
updateFragmentsVisibility(true);
updateActionBarTitleAndHomeButton(file);
-
+
} else {
cleanSecondFragment();
+ if (file.isDown() && PreviewTextFragment.canBePreviewed(file))
+ startTextPreview(file);
}
} else {
secondFragment = new PreviewMediaFragment(file, getAccount(),
startPlaybackPosition, autoplay);
+ } else if (file.isDown() && PreviewTextFragment.canBePreviewed(file)) {
+ secondFragment = null;
} else {
- secondFragment = FileDetailFragment.newInstance(file, getAccount());
- }
+ secondFragment = FileDetailFragment.newInstance(file, getAccount());
+ }
}
return secondFragment;
}
if (PreviewMediaFragment.canBePreviewed(mWaitingToPreview)) {
startMediaPreview(mWaitingToPreview, 0, true);
detailsFragmentChanged = true;
+ } else if (PreviewTextFragment.canBePreviewed(mWaitingToPreview)) {
+ startTextPreview(mWaitingToPreview);
+ detailsFragmentChanged = true;
} else {
getFileOperationsHelper().openFile(mWaitingToPreview);
}
createFolder();
break;
}
+
case R.id.action_sync_account: {
startSynchronization();
break;
UploadSourceDialogFragment dialog =
UploadSourceDialogFragment.newInstance(getAccount());
dialog.show(getSupportFragmentManager(), DIALOG_UPLOAD_SOURCE);
-
break;
}
case android.R.id.home: {
protected void onResume() {
Log_OC.v(TAG, "onResume() start");
super.onResume();
-
// refresh Navigation Drawer account list
mNavigationDrawerAdapter.updateAccountList();
-
// refresh list of files
refreshListOfFilesFragment();
registerReceiver(mDownloadFinishReceiver, downloadIntentFilter);
Log_OC.v(TAG, "onResume() end");
+
}
FileSyncAdapter.EXTRA_RESULT);
boolean sameAccount = (getAccount() != null &&
accountName.equals(getAccount().name) && getStorageManager() != null);
-
+
if (sameAccount) {
if (FileSyncAdapter.EVENT_FULL_SYNC_START.equals(event)) {
synchFolderRemotePath),
Toast.LENGTH_LONG)
.show();
+
browseToRoot();
} else {
.equals(event));
if (RefreshFolderOperation.EVENT_SINGLE_FOLDER_CONTENTS_SYNCED.
- equals(event) &&
- /// TODO refactor and make common
+ equals(event) &&/// TODO refactor and make common
+
synchResult != null && !synchResult.isSuccess() &&
(synchResult.getCode() == ResultCode.UNAUTHORIZED ||
synchResult.isIdPRedirection() ||
new OwnCloudAccount(getAccount(), context);
client = (OwnCloudClientManagerFactory.getDefaultSingleton().
removeClientFor(ocAccount));
-
if (client != null) {
OwnCloudCredentials cred = client.getCredentials();
if (cred != null) {
cleanSecondFragment();
}
- // Force the preview if the file is an image
- if (uploadWasFine && PreviewImageFragment.canBePreviewed(getFile())) {
- startImagePreview(getFile());
- } // TODO what about other kind of previews?
+ // Force the preview if the file is an image or text file
+ if (uploadWasFine) {
+ OCFile ocFile = getFile();
+ if (PreviewImageFragment.canBePreviewed(ocFile))
+ startImagePreview(getFile());
+ else if (PreviewTextFragment.canBePreviewed(ocFile))
+ startTextPreview(ocFile);
+ // TODO what about other kind of previews?
+ }
}
mProgressBar.setIndeterminate(false);
if (mWaitingToSend != null) {
mWaitingToSend =
getStorageManager().getFileByPath(mWaitingToSend.getRemotePath());
- if (mWaitingToSend.isDown()) {
+ if (mWaitingToSend.isDown()) {
sendDownloadedFile();
}
}
startSyncFolderOperation(root, false);
}
cleanSecondFragment();
-
}
}
// a new chance to get the mDownloadBinder through
// getFileDownloadBinder() - THIS IS A MESS
- OCFileListFragment listOfFiles = getListOfFilesFragment();
+ OCFileListFragment listOfFiles = getListOfFilesFragment();
if (listOfFiles != null) {
listOfFiles.listDirectory();
// TODO Enable when "On Device" is recovered ?
}
}
-
-
private void onCreateShareOperationFinish(CreateShareOperation operation,
RemoteOperationResult result) {
if (result.isSuccess()) {
}
}
-
private void onUnshareLinkOperationFinish(UnshareLinkOperation operation,
RemoteOperationResult result) {
if (result.isSuccess()) {
if (details instanceof PreviewMediaFragment) {
// Refresh OCFile of the fragment
((PreviewMediaFragment) details).updateFile(file);
+ } else if (details instanceof PreviewTextFragment) {
+ // Refresh OCFile of the fragment
+ ((PreviewTextFragment) details).updateFile(file);
} else {
showDetails(file);
}
Toast msg = Toast.makeText(this,
ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()),
- Toast.LENGTH_LONG);
+ Toast.LENGTH_LONG);
msg.show();
if (result.isSuccess()) {
setFile(getStorageManager().getFileById(removedFile.getParentId()));
cleanSecondFragment();
}
- if (getStorageManager().getFileById(removedFile.getParentId()).equals(getCurrentDir())) {
+ if (getStorageManager().getFileById(removedFile.getParentId()).equals(getCurrentDir())){
refreshListOfFilesFragment();
}
invalidateOptionsMenu();
} else {
getFileOperationsHelper().openFile(renamedFile);
}
+ } else if (details instanceof PreviewTextFragment &&
+ renamedFile.equals(details.getFile())) {
+ ((PreviewTextFragment) details).updateFile(renamedFile);
+ if (PreviewTextFragment.canBePreviewed(renamedFile)) {
+ startTextPreview(renamedFile);
+ } else {
+ getFileOperationsHelper().openFile(renamedFile);
+ }
}
}
} else {
Toast msg = Toast.makeText(this,
ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()),
- Toast.LENGTH_LONG);
+ Toast.LENGTH_LONG);
msg.show();
if (result.isSslRecoverableException()) {
getApplicationContext()
);
synchFolderOp.execute(getAccount(), MainApp.getAppContext(), this, null, null);
+
mProgressBar.setIndeterminate(true);
setBackgroundText();
showDetailsIntent.putExtra(EXTRA_FILE, file);
showDetailsIntent.putExtra(EXTRA_ACCOUNT, getAccount());
startActivity(showDetailsIntent);
-
}
/**
}
/**
+ * Stars the preview of a text file {@link OCFile}.
+ *
+ * @param file Text {@link OCFile} to preview.
+ */
+ public void startTextPreview(OCFile file) {
+ Bundle args = new Bundle();
+ args.putParcelable(EXTRA_FILE, file);
+ args.putParcelable(EXTRA_ACCOUNT, getAccount());
+ Fragment textPreviewFragment = Fragment.instantiate(getApplicationContext(),
+ PreviewTextFragment.class.getName(), args);
+ setSecondFragment(textPreviewFragment);
+ 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.