private ServiceConnection mDownloadConnection, mUploadConnection = null;\r
private FileUploaderBinder mUploaderBinder = null;\r
private boolean mWaitingToPreview;\r
-\r
- public ProgressListener mProgressListener;\r
\r
\r
@Override\r
\r
@Override\r
protected void onSaveInstanceState(Bundle outState) {\r
+ super.onSaveInstanceState(outState);\r
outState.putBoolean(KEY_WAITING_TO_PREVIEW, mWaitingToPreview);\r
}\r
\r
\r
@Override\r
public void onServiceConnected(ComponentName component, IBinder service) {\r
- Fragment fragment = getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);\r
- FileDetailFragment detailsFragment = (fragment instanceof FileDetailFragment) ? (FileDetailFragment) fragment : null;\r
\r
if (component.equals(new ComponentName(FileDetailActivity.this, FileDownloader.class))) {\r
Log.d(TAG, "Download service connected");\r
mDownloaderBinder = (FileDownloaderBinder) service;\r
- if (detailsFragment != null) {\r
- mProgressListener = new ProgressListener(detailsFragment.getProgressBar());\r
- mDownloaderBinder.addDatatransferProgressListener(\r
- mProgressListener, \r
- (Account) getIntent().getParcelableExtra(FileDetailFragment.EXTRA_ACCOUNT), \r
- (OCFile) getIntent().getParcelableExtra(FileDetailFragment.EXTRA_FILE)\r
- );\r
- }\r
} else if (component.equals(new ComponentName(FileDetailActivity.this, FileUploader.class))) {\r
Log.d(TAG, "Upload service connected");\r
mUploaderBinder = (FileUploaderBinder) service;\r
- if (detailsFragment != null) {\r
- mProgressListener = new ProgressListener(detailsFragment.getProgressBar());\r
- mUploaderBinder.addDatatransferProgressListener(\r
- mProgressListener, \r
- (Account) getIntent().getParcelableExtra(FileDetailFragment.EXTRA_ACCOUNT), \r
- (OCFile) getIntent().getParcelableExtra(FileDetailFragment.EXTRA_FILE)\r
- );\r
- }\r
} else {\r
return;\r
}\r
\r
+ Fragment fragment = getSupportFragmentManager().findFragmentByTag(FileDetailFragment.FTAG);\r
+ FileDetailFragment detailsFragment = (fragment instanceof FileDetailFragment) ? (FileDetailFragment) fragment : null;\r
if (detailsFragment != null) {\r
+ detailsFragment.listenForTransferProgress();\r
detailsFragment.updateFileDetails(false); // let the fragment gets the mDownloadBinder through getDownloadBinder() (see FileDetailFragment#updateFileDetais())\r
}\r
}\r
}; \r
\r
\r
- /**\r
- * Helper class responsible for updating the progress bar shown for file uploading or downloading \r
- * \r
- * @author David A. Velasco\r
- */\r
- private class ProgressListener implements OnDatatransferProgressListener {\r
- int mLastPercent = 0;\r
- WeakReference<ProgressBar> mProgressBar = null;\r
- \r
- ProgressListener(ProgressBar progressBar) {\r
- mProgressBar = new WeakReference<ProgressBar>(progressBar);\r
- }\r
- \r
- @Override\r
- public void onTransferProgress(long progressRate) {\r
- // old method, nothing here\r
- };\r
-\r
- @Override\r
- public void onTransferProgress(long progressRate, long totalTransferredSoFar, long totalToTransfer, String filename) {\r
- int percent = (int)(100.0*((double)totalTransferredSoFar)/((double)totalToTransfer));\r
- if (percent != mLastPercent) {\r
- ProgressBar pb = mProgressBar.get();\r
- if (pb != null) {\r
- pb.setProgress(percent);\r
- }\r
- }\r
- mLastPercent = percent;\r
- }\r
-\r
- };\r
- \r
-\r
@Override\r
public void onDestroy() {\r
super.onDestroy();\r