X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/31827bce0c5e5d2d595610c08aad60ee3c2fe170..5b9bf1ad3fd03c6e8437f6d4b0f9fbdba94fdec6:/src/com/owncloud/android/ui/preview/PreviewImageActivity.java diff --git a/src/com/owncloud/android/ui/preview/PreviewImageActivity.java b/src/com/owncloud/android/ui/preview/PreviewImageActivity.java index c2f1f42e..74ce769b 100644 --- a/src/com/owncloud/android/ui/preview/PreviewImageActivity.java +++ b/src/com/owncloud/android/ui/preview/PreviewImageActivity.java @@ -17,6 +17,8 @@ */ package com.owncloud.android.ui.preview; +import org.apache.commons.httpclient.methods.PostMethod; + import android.accounts.Account; import android.app.Dialog; import android.app.ProgressDialog; @@ -28,6 +30,7 @@ import android.content.IntentFilter; import android.content.ServiceConnection; import android.os.Bundle; import android.os.IBinder; +import android.support.v4.app.Fragment; import android.support.v4.view.ViewPager; import android.util.Log; import android.view.MotionEvent; @@ -234,14 +237,16 @@ public class PreviewImageActivity extends SherlockFragmentActivity implements Fi @Override protected void onResume() { super.onResume(); + //Log.e(TAG, "ACTIVITY, ONRESUME"); mDownloadFinishReceiver = new DownloadFinishReceiver(); IntentFilter filter = new IntentFilter(FileDownloader.DOWNLOAD_FINISH_MESSAGE); + filter.addAction(FileDownloader.DOWNLOAD_ADDED_MESSAGE); registerReceiver(mDownloadFinishReceiver, filter); } - @Override protected void onPostResume() { + //Log.e(TAG, "ACTIVITY, ONPOSTRESUME"); super.onPostResume(); } @@ -316,6 +321,9 @@ public class PreviewImageActivity extends SherlockFragmentActivity implements Fi showDetailsIntent.putExtra(FileDetailFragment.EXTRA_ACCOUNT, AccountUtils.getCurrentOwnCloudAccount(this)); showDetailsIntent.putExtra(FileDetailActivity.EXTRA_MODE, FileDetailActivity.MODE_DETAILS); startActivity(showDetailsIntent); + int pos = mPreviewImagePagerAdapter.getFilePosition(file); + file = mPreviewImagePagerAdapter.getFileAt(pos); + } @@ -345,7 +353,9 @@ public class PreviewImageActivity extends SherlockFragmentActivity implements Fi OCFile currentFile = mPreviewImagePagerAdapter.getFileAt(position); getSupportActionBar().setTitle(currentFile.getFileName()); if (!currentFile.isDown()) { - requestForDownload(currentFile); + if (!mPreviewImagePagerAdapter.pendingErrorAt(position)) { + requestForDownload(currentFile); + } } } } @@ -375,15 +385,6 @@ public class PreviewImageActivity extends SherlockFragmentActivity implements Fi } - private void updateCurrentDownloadFragment(boolean transferring) { - FileFragment fragment = mPreviewImagePagerAdapter.getFragmentAt(mViewPager.getCurrentItem()); - if (fragment instanceof FileDownloadFragment) { - ((FileDownloadFragment) fragment).updateView(transferring); - //mViewPager.invalidate(); - } - } - - /** * Class waiting for broadcast events from the {@link FielDownloader} service. * @@ -401,20 +402,19 @@ public class PreviewImageActivity extends SherlockFragmentActivity implements Fi OCFile file = mStorageManager.getFileByPath(downloadedRemotePath); int position = mPreviewImagePagerAdapter.getFilePosition(file); boolean downloadWasFine = intent.getBooleanExtra(FileDownloader.EXTRA_DOWNLOAD_RESULT, false); - boolean isCurrent = (mViewPager.getCurrentItem() == position); + //boolean isOffscreen = Math.abs((mViewPager.getCurrentItem() - position)) <= mViewPager.getOffscreenPageLimit(); - if (position >= 0) { - /// ITS MY BUSSINESS + if (position >= 0 && intent.getAction().equals(FileDownloader.DOWNLOAD_FINISH_MESSAGE)) { if (downloadWasFine) { - mPreviewImagePagerAdapter.updateFile(position, file); - mPreviewImagePagerAdapter.notifyDataSetChanged(); + mPreviewImagePagerAdapter.updateFile(position, file); - } else if (isCurrent) { - updateCurrentDownloadFragment(false); + } else { + mPreviewImagePagerAdapter.updateWithDownloadError(position); } + mPreviewImagePagerAdapter.notifyDataSetChanged(); // will trigger the creation of new fragments } else { - Log.e(TAG, "DOWNLOADED FILE NOT FOUND IN ADAPTER "); + Log.d(TAG, "Download finished, but the fragment is offscreen"); } }