X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/fdf2cae2cee2f2d7e05f923da700a6d61471a081..47d115d75a0039b528340b77e4473400f92faa08:/src/com/owncloud/android/ui/activity/FileDisplayActivity.java diff --git a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java index 9fb31519..a2bbfd0f 100644 --- a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java +++ b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java @@ -51,6 +51,7 @@ import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; +import android.widget.Button; import android.widget.TextView; import android.widget.Toast; @@ -146,6 +147,8 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa private OCFile mWaitingToPreview; private Handler mHandler; + + private boolean mSyncInProgress = false; @Override protected void onCreate(Bundle savedInstanceState) { @@ -597,21 +600,23 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa @Override public void onBackPressed() { - OCFileListFragment listOfFiles = getListOfFilesFragment(); - if (mDualPane || getSecondFragment() == null) { - if (listOfFiles != null) { // should never be null, indeed - if (mDirectories.getCount() <= 1) { - finish(); - return; + if (!mSyncInProgress) { + OCFileListFragment listOfFiles = getListOfFilesFragment(); + if (mDualPane || getSecondFragment() == null) { + if (listOfFiles != null) { // should never be null, indeed + if (mDirectories.getCount() <= 1) { + finish(); + return; + } + popDirname(); + listOfFiles.onBrowseUp(); } - popDirname(); - listOfFiles.onBrowseUp(); } + if (listOfFiles != null) { // should never be null, indeed + setFile(listOfFiles.getCurrentFile()); + } + cleanSecondFragment(); } - if (listOfFiles != null) { // should never be null, indeed - setFile(listOfFiles.getCurrentFile()); - } - cleanSecondFragment(); } @Override @@ -979,8 +984,6 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa // Sync Folder startSyncFolderOperation(directory.getRemotePath(), directory.getFileId()); -// // Update folder size on DB -// getStorageManager().calculateFolderSize(directory.getParentId()); } @@ -1056,7 +1059,7 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa if (chosenFile == null || mDualPane) { // only list of files - set for browsing through folders OCFile currentDir = getCurrentDir(); - actionBar.setDisplayHomeAsUpEnabled(currentDir != null && currentDir.getParentId() != 0); + actionBar.setDisplayHomeAsUpEnabled(currentDir != null && currentDir.getParentId() != 0 && !mSyncInProgress); actionBar.setDisplayShowTitleEnabled(false); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); actionBar.setListNavigationCallbacks(mDirectories, this); // assuming mDirectories is updated @@ -1070,6 +1073,19 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa } + private void updateDisplayHomeAtSync(){ + ActionBar actionBar = getSupportActionBar(); + OCFile currentDir = getCurrentDir(); + if (currentDir.getParentId() != DataStorageManager.ROOT_PARENT_ID) { + actionBar.setHomeButtonEnabled(!mSyncInProgress); + actionBar.setDisplayHomeAsUpEnabled(!mSyncInProgress); + } + else { + actionBar.setHomeButtonEnabled(true); + actionBar.setDisplayHomeAsUpEnabled(false); + } + } + /** * {@inheritDoc} */ @@ -1207,6 +1223,8 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa OCFileListFragment list = getListOfFilesFragment(); enableDisableViewGroup(list.getListView(), true); + mSyncInProgress = false; + updateDisplayHomeAtSync(); setSupportProgressBarIndeterminateVisibility(false); if (result.isSuccess()) { @@ -1431,11 +1449,14 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa OCFileListFragment list = getListOfFilesFragment(); enableDisableViewGroup(list.getListView(), false); + mSyncInProgress = true; + updateDisplayHomeAtSync(); // perform folder synchronization RemoteOperation synchFolderOp = new SynchronizeFolderOperation( remotePath, currentSyncTime, parentId, + false, getStorageManager(), getAccount(), getApplicationContext()