X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/935a7b093454f12826d51b9357bec52d145cda3c..275eb1f8f891b13f1128129564403921c0d5e43e:/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java diff --git a/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java b/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java index 7493c701..39d6e380 100644 --- a/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java +++ b/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java @@ -80,7 +80,7 @@ import eu.alefzero.webdav.WebdavClient; */ public class FileDisplayActivity extends SherlockFragmentActivity implements - FileListFragment.ContainerActivity, OnNavigationListener, OnClickListener, android.view.View.OnClickListener { + FileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNavigationListener, OnClickListener, android.view.View.OnClickListener { private ArrayAdapter mDirectories; private OCFile mCurrentDir; @@ -89,6 +89,7 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements private DataStorageManager mStorageManager; private SyncBroadcastReceiver mSyncBroadcastReceiver; private UploadFinishReceiver mUploadFinishReceiver; + private DownloadFinishReceiver mDownloadFinishReceiver; private View mLayoutView = null; private FileListFragment mFileList; @@ -329,6 +330,11 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements IntentFilter uploadIntentFilter = new IntentFilter(FileUploader.UPLOAD_FINISH_MESSAGE); mUploadFinishReceiver = new UploadFinishReceiver(); registerReceiver(mUploadFinishReceiver, uploadIntentFilter); + + // Listen for download messages + IntentFilter downloadIntentFilter = new IntentFilter(FileDownloader.DOWNLOAD_FINISH_MESSAGE); + mDownloadFinishReceiver = new DownloadFinishReceiver(); + registerReceiver(mDownloadFinishReceiver, downloadIntentFilter); // Storage manager initialization mStorageManager = new FileDataStorageManager( @@ -410,6 +416,11 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements unregisterReceiver(mUploadFinishReceiver); mUploadFinishReceiver = null; } + if (mDownloadFinishReceiver != null) { + unregisterReceiver(mDownloadFinishReceiver); + mDownloadFinishReceiver = null; + } + getIntent().putExtra(FileDetailFragment.EXTRA_FILE, mCurrentDir); Log.i(getClass().toString(), "onPause() end"); } @@ -628,13 +639,13 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements public void onReceive(Context context, Intent intent) { boolean inProgress = intent.getBooleanExtra( FileSyncService.IN_PROGRESS, false); - String account_name = intent + String accountName = intent .getStringExtra(FileSyncService.ACCOUNT_NAME); - Log.d("FileDisplay", "sync of account " + account_name + Log.d("FileDisplay", "sync of account " + accountName + " is in_progress: " + inProgress); - if (account_name.equals(AccountUtils.getCurrentOwnCloudAccount(context).name)) { + if (accountName.equals(AccountUtils.getCurrentOwnCloudAccount(context).name)) { String synchFolderRemotePath = intent.getStringExtra(FileSyncService.SYNC_FOLDER_REMOTE_PATH); @@ -672,10 +683,13 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements public void onReceive(Context context, Intent intent) { long parentDirId = intent.getLongExtra(FileUploader.EXTRA_PARENT_DIR_ID, -1); OCFile parentDir = mStorageManager.getFileById(parentDirId); - - if (parentDir != null && ( - (mCurrentDir == null && parentDir.getFileName().equals("/")) || - parentDir.equals(mCurrentDir)) + String accountName = intent.getStringExtra(FileUploader.ACCOUNT_NAME); + + if (accountName.equals(AccountUtils.getCurrentOwnCloudAccount(context).name) && + parentDir != null && + ( (mCurrentDir == null && parentDir.getFileName().equals("/")) || + parentDir.equals(mCurrentDir) + ) ) { FileListFragment fileListFragment = (FileListFragment) getSupportFragmentManager().findFragmentById(R.id.fileList); if (fileListFragment != null) { @@ -685,6 +699,26 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements } } + + + /** + * Once the file download has finished -> update view + */ + private class DownloadFinishReceiver extends BroadcastReceiver { + @Override + public void onReceive(Context context, Intent intent) { + String downloadedRemotePath = intent.getStringExtra(FileDownloader.EXTRA_REMOTE_PATH); + String accountName = intent.getStringExtra(FileDownloader.ACCOUNT_NAME); + + if (accountName.equals(AccountUtils.getCurrentOwnCloudAccount(context).name) && + mCurrentDir != null && mCurrentDir.getFileId() == mStorageManager.getFileByPath(downloadedRemotePath).getParentId()) { + FileListFragment fileListFragment = (FileListFragment) getSupportFragmentManager().findFragmentById(R.id.fileList); + if (fileListFragment != null) { + fileListFragment.listDirectory(); + } + } + } + } @Override @@ -754,6 +788,19 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements } } + + /** + * {@inheritDoc} + */ + @Override + public void onFileStateChanged() { + FileListFragment fileListFragment = (FileListFragment) getSupportFragmentManager().findFragmentById(R.id.fileList); + if (fileListFragment != null) { + fileListFragment.listDirectory(); + } + } + + /** * Operations in this method should be preferably performed in onCreate to have a lighter onResume method. *