* Copyright (C) 2012-2013 ownCloud Inc.
*
* This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
+ * it under the terms of the GNU General Public License version 2,
+ * as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.FragmentStatePagerAdapter;
-import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
import com.owncloud.android.ui.fragment.FileFragment;
+import com.owncloud.android.Log_OC;
import com.owncloud.android.R;
import eu.alefzero.webdav.OnDatatransferProgressListener;
public static final String EXTRA_FILE = "FILE";
public static final String EXTRA_ACCOUNT = "ACCOUNT";
+ private static final String EXTRA_ERROR = "ERROR";
private FileFragment.ContainerActivity mContainerActivity;
private boolean mListening;
private static final String TAG = FileDownloadFragment.class.getSimpleName();
-
+
private boolean mIgnoreFirstSavedState;
+ private boolean mError;
/**
mProgressListener = null;
mListening = false;
mIgnoreFirstSavedState = false;
+ mError = false;
}
mProgressListener = null;
mListening = false;
mIgnoreFirstSavedState = ignoreFirstSavedState;
+ mError = false;
}
if (!mIgnoreFirstSavedState) {
mFile = savedInstanceState.getParcelable(FileDownloadFragment.EXTRA_FILE);
mAccount = savedInstanceState.getParcelable(FileDownloadFragment.EXTRA_ACCOUNT);
+ mError = savedInstanceState.getBoolean(FileDownloadFragment.EXTRA_ERROR);
} else {
mIgnoreFirstSavedState = false;
}
((Button)mView.findViewById(R.id.cancelBtn)).setOnClickListener(this);
+ if (mError) {
+ setButtonsForRemote();
+ } else {
+ setButtonsForTransferring();
+ }
+
return view;
}
super.onSaveInstanceState(outState);
outState.putParcelable(FileDownloadFragment.EXTRA_FILE, mFile);
outState.putParcelable(FileDownloadFragment.EXTRA_ACCOUNT, mAccount);
+ outState.putBoolean(FileDownloadFragment.EXTRA_ERROR, mError);
}
@Override
break;
}
default:
- Log.e(TAG, "Incorrect view clicked!");
+ Log_OC.e(TAG, "Incorrect view clicked!");
}
}
*/
public void updateView(boolean transferring) {
// configure UI for depending upon local state of the file
- FileDownloaderBinder downloaderBinder = mContainerActivity.getFileDownloaderBinder();
+ FileDownloaderBinder downloaderBinder = (mContainerActivity == null) ? null : mContainerActivity.getFileDownloaderBinder();
if (transferring || (downloaderBinder != null && downloaderBinder.isDownloading(mAccount, mFile))) {
setButtonsForTransferring();
setButtonsForRemote();
}
getView().invalidate();
+
}
* Enables or disables buttons for a file being downloaded
*/
private void setButtonsForTransferring() {
- Button downloadButton = (Button) getView().findViewById(R.id.cancelBtn);
- downloadButton.setText(R.string.common_cancel);
+ getView().findViewById(R.id.cancelBtn).setVisibility(View.VISIBLE);
// show the progress bar for the transfer
- ProgressBar progressBar = (ProgressBar)getView().findViewById(R.id.progressBar);
- progressBar.setVisibility(View.VISIBLE);
+ getView().findViewById(R.id.progressBar).setVisibility(View.VISIBLE);
TextView progressText = (TextView)getView().findViewById(R.id.progressText);
progressText.setText(R.string.downloader_download_in_progress_ticker);
+ progressText.setVisibility(View.VISIBLE);
+
+ // hides the error icon
+ getView().findViewById(R.id.errorText).setVisibility(View.GONE);
+ getView().findViewById(R.id.error_image).setVisibility(View.GONE);
}
* Enables or disables buttons for a file locally available
*/
private void setButtonsForDown() {
- Button downloadButton = (Button) getView().findViewById(R.id.cancelBtn);
- downloadButton.setVisibility(View.GONE);
+ getView().findViewById(R.id.cancelBtn).setVisibility(View.GONE);
// hides the progress bar
- ProgressBar progressBar = (ProgressBar)getView().findViewById(R.id.progressBar);
- progressBar.setVisibility(View.GONE);
+ getView().findViewById(R.id.progressBar).setVisibility(View.GONE);
// updates the text message
TextView progressText = (TextView)getView().findViewById(R.id.progressText);
progressText.setText(R.string.common_loading);
+ progressText.setVisibility(View.VISIBLE);
+
+ // hides the error icon
+ getView().findViewById(R.id.errorText).setVisibility(View.GONE);
+ getView().findViewById(R.id.error_image).setVisibility(View.GONE);
}
/**
* Enables or disables buttons for a file not locally available
+ *
+ * Currently, this is only used when a download was failed
*/
private void setButtonsForRemote() {
- Button downloadButton = (Button) getView().findViewById(R.id.cancelBtn);
- downloadButton.setVisibility(View.GONE);
- //downloadButton.setText(R.string.filedetails_download);
-
- // hides the progress bar
- ProgressBar progressBar = (ProgressBar)getView().findViewById(R.id.progressBar);
- progressBar.setVisibility(View.GONE);
+ getView().findViewById(R.id.cancelBtn).setVisibility(View.GONE);
- // updates the text message
- TextView progressText = (TextView)getView().findViewById(R.id.progressText);
- progressText.setText(R.string.downloader_not_downloaded_yet);
+ // hides the progress bar and message
+ getView().findViewById(R.id.progressBar).setVisibility(View.GONE);
+ getView().findViewById(R.id.progressText).setVisibility(View.GONE);
+
+ // shows the error icon and message
+ getView().findViewById(R.id.errorText).setVisibility(View.VISIBLE);
+ getView().findViewById(R.id.error_image).setVisibility(View.VISIBLE);
}
mLastPercent = percent;
}
+ }
+
+
+ public void setError(boolean error) {
+ mError = error;
};