X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/dbaff802111cb4e8d502d2149bc021f39b4bea55..007edfe102ea0d433005e4f2f47e42445831d3f0:/src/eu/alefzero/owncloud/ui/fragment/FileDetail.java diff --git a/src/eu/alefzero/owncloud/ui/fragment/FileDetail.java b/src/eu/alefzero/owncloud/ui/fragment/FileDetail.java index 9ac49105..23c90dc3 100644 --- a/src/eu/alefzero/owncloud/ui/fragment/FileDetail.java +++ b/src/eu/alefzero/owncloud/ui/fragment/FileDetail.java @@ -17,32 +17,36 @@ */ package eu.alefzero.owncloud.ui.fragment; -import eu.alefzero.owncloud.DisplayUtils; -import eu.alefzero.owncloud.R; -import eu.alefzero.owncloud.cp; -import eu.alefzero.owncloud.R.id; -import eu.alefzero.owncloud.R.layout; -import eu.alefzero.owncloud.db.ProviderMeta.ProviderTableMeta; +import android.accounts.Account; import android.content.Intent; import android.database.Cursor; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Bundle; import android.support.v4.app.Fragment; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.view.View.OnClickListener; +import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; +import android.widget.VideoView; +import eu.alefzero.owncloud.DisplayUtils; +import eu.alefzero.owncloud.FileDownloader; +import eu.alefzero.owncloud.R; +import eu.alefzero.owncloud.db.ProviderMeta.ProviderTableMeta; /** * This Fragment is used to display the details about a file. * @author Bartek Przybylski * */ -public class FileDetail extends Fragment { +public class FileDetail extends Fragment implements OnClickListener { - public Intent mIntent; + private Intent mIntent; + private View mView; public void setStuff(Intent intent) { mIntent = intent; @@ -50,8 +54,10 @@ public class FileDetail extends Fragment { } private void setStuff(View view) { + mView = view; String id = mIntent.getStringExtra("FILE_ID"); - String account_name = mIntent.getStringExtra("ACCOUNT_NAME"); + Account account = mIntent.getParcelableExtra("ACCOUNT"); + String account_name = account.name; Cursor c = getActivity().managedQuery( Uri.withAppendedPath(ProviderTableMeta.CONTENT_URI_FILE, id), null, @@ -59,11 +65,37 @@ public class FileDetail extends Fragment { new String[]{account_name}, null); c.moveToFirst(); - + + // retrive details from DB String filename = c.getString(c.getColumnIndex(ProviderTableMeta.FILE_NAME)); - setFilename(filename, view); String mimetype = c.getString(c.getColumnIndex(ProviderTableMeta.FILE_CONTENT_TYPE)); - setFiletype(DisplayUtils.convertMIMEtoPrettyPrint(mimetype), view); + String path = c.getString(c.getColumnIndex(ProviderTableMeta.FILE_STORAGE_PATH)); + long filesize = c.getLong(c.getColumnIndex(ProviderTableMeta.FILE_CONTENT_LENGTH)); + + // set file details + setFilename(filename); + setFiletype(DisplayUtils.convertMIMEtoPrettyPrint(mimetype)); + setFilesize(filesize); + + // set file preview if available and possible + View w = view.findViewById(R.id.videoView1); + w.setVisibility(View.INVISIBLE); + if (path == null) { + ImageView v = (ImageView) getView().findViewById(R.id.imageView2); + v.setImageResource(R.drawable.download); + v.setOnClickListener(this); + } else { + if (mimetype.startsWith("image/")) { + ImageView v = (ImageView) view.findViewById(R.id.imageView2); + Bitmap bmp = BitmapFactory.decodeFile(path); + v.setImageBitmap(bmp); + } else if (mimetype.startsWith("video/")) { + VideoView v = (VideoView) view.findViewById(R.id.videoView1); + v.setVisibility(View.VISIBLE); + v.setVideoPath(path); + v.start(); + } + } } @Override @@ -78,21 +110,33 @@ public class FileDetail extends Fragment { return v; } - private void setFilename(String filename, View target_view) { - TextView tv = (TextView) target_view.findViewById(R.id.textView1); + @Override + public View getView() { + return mView == null ? super.getView() : mView; + }; + + public void setFilename(String filename) { + TextView tv = (TextView) getView().findViewById(R.id.textView1); if (tv != null) tv.setText(filename); } - private void setFiletype(String mimetype, View target_view) { - TextView tv = (TextView) target_view.findViewById(R.id.textView2); + public void setFiletype(String mimetype) { + TextView tv = (TextView) getView().findViewById(R.id.textView2); if (tv != null) tv.setText(mimetype); } - public void setFilename(String filename) { - setFilename(filename, getView()); + public void setFilesize(long filesize) { + TextView tv = (TextView) getView().findViewById(R.id.textView3); + if (tv != null) tv.setText(DisplayUtils.bitsToHumanReadable(filesize)); } - - public void setFiletype(String filename) { - setFiletype(filename, getView()); + + @Override + public void onClick(View v) { + Toast.makeText(getActivity(), "Downloading", Toast.LENGTH_LONG).show(); + Intent i = new Intent(getActivity(), FileDownloader.class); + i.putExtra(FileDownloader.EXTRA_ACCOUNT, mIntent.getParcelableExtra("ACCOUNT")); + i.putExtra(FileDownloader.EXTRA_FILE_PATH, mIntent.getStringExtra("FULL_PATH")); + getActivity().startService(i); } + }