X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/b22dc8bce6f43c832468b4fa0c0ba0d1d4eb59d8..7cc88a22d183a5bc82ddbd30945789d58e0a753b:/src/com/owncloud/android/ui/preview/PreviewTextFragment.java
diff --git a/src/com/owncloud/android/ui/preview/PreviewTextFragment.java b/src/com/owncloud/android/ui/preview/PreviewTextFragment.java
new file mode 100644
index 00000000..d0a678c8
--- /dev/null
+++ b/src/com/owncloud/android/ui/preview/PreviewTextFragment.java
@@ -0,0 +1,341 @@
+package com.owncloud.android.ui.preview;
+
+import android.accounts.Account;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ProgressBar;
+import android.widget.ScrollView;
+import android.widget.TextView;
+
+import com.actionbarsherlock.view.Menu;
+import com.actionbarsherlock.view.MenuInflater;
+import com.actionbarsherlock.view.MenuItem;
+import com.owncloud.android.R;
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.files.FileMenuFilter;
+import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.ui.activity.FileDisplayActivity;
+import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
+import com.owncloud.android.ui.dialog.RemoveFileDialogFragment;
+import com.owncloud.android.ui.fragment.FileFragment;
+
+import java.io.BufferedWriter;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.StringWriter;
+import java.util.Scanner;
+
+public class PreviewTextFragment extends FileFragment {
+ private static final String EXTRA_FILE = "FILE";
+ private static final String EXTRA_ACCOUNT = "ACCOUNT";
+ private static final String TAG = PreviewTextFragment.class.getSimpleName();
+
+ private Account mAccount;
+ private TextView mTextPreview;
+ private ProgressBar mProgressBar;
+ private ScrollView mScrollView;
+
+ /**
+ * Creates an empty fragment for previews.
+ *
+ * MUST BE KEPT: the system uses it when tries to reinstantiate a fragment automatically
+ * (for instance, when the device is turned a aside).
+ *
+ * DO NOT CALL IT: an {@link OCFile} and {@link Account} must be provided for a successful
+ * construction
+ */
+ public PreviewTextFragment() {
+ super();
+ mAccount = null;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ super.onCreateView(inflater, container, savedInstanceState);
+ Log_OC.e(TAG, "onCreateView");
+
+
+ View ret = inflater.inflate(R.layout.text_file_preview, container, false);
+
+ mScrollView = (ScrollView) ret.findViewById(R.id.text_scrollview);
+ mTextPreview = (TextView) ret.findViewById(R.id.text_preview);
+ mProgressBar = (ProgressBar) ret.findViewById(R.id.progress_bar);
+
+ return ret;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ OCFile file = getFile();
+
+ Bundle args = getArguments();
+
+ if (file == null)
+ file = args.getParcelable(FileDisplayActivity.EXTRA_FILE);
+
+ if (mAccount == null)
+ mAccount = args.getParcelable(FileDisplayActivity.EXTRA_ACCOUNT);
+
+
+ if (savedInstanceState == null) {
+ if (file == null) {
+ throw new IllegalStateException("Instanced with a NULL OCFile");
+ }
+ if (mAccount == null) {
+ throw new IllegalStateException("Instanced with a NULL ownCloud Account");
+ }
+ } else {
+ file = savedInstanceState.getParcelable(EXTRA_FILE);
+ mAccount = savedInstanceState.getParcelable(EXTRA_ACCOUNT);
+ }
+ setFile(file);
+ setHasOptionsMenu(true);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ outState.putParcelable(PreviewImageFragment.EXTRA_FILE, getFile());
+ outState.putParcelable(PreviewImageFragment.EXTRA_ACCOUNT, mAccount);
+ }
+
+ @Override
+ public void onStart() {
+ super.onStart();
+ Log_OC.e(TAG, "onStart");
+
+ loadAndShowTextPreview(getFile().getStoragePath(), mTextPreview);
+ }
+
+ private void loadAndShowTextPreview(String location, TextView textView) {
+ new TextLoadAsyncTask().execute(location, textView);
+ }
+
+ /**
+ * Reads the file to preview and shows its contents. Too critical to be anonymous.
+ */
+ private class TextLoadAsyncTask extends AsyncTask