X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/39307229cda1673a67ce3248dd5110fe91edd6a9..7578a726b3e4c330025c11245ec694a8e99f6d0c:/src/eu/alefzero/owncloud/ui/fragment/FileDetailFragment.java diff --git a/src/eu/alefzero/owncloud/ui/fragment/FileDetailFragment.java b/src/eu/alefzero/owncloud/ui/fragment/FileDetailFragment.java index 7b6142b6..932fa513 100644 --- a/src/eu/alefzero/owncloud/ui/fragment/FileDetailFragment.java +++ b/src/eu/alefzero/owncloud/ui/fragment/FileDetailFragment.java @@ -17,12 +17,15 @@ */ package eu.alefzero.owncloud.ui.fragment; +import java.util.List; + import android.accounts.Account; import android.accounts.AccountManager; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.content.pm.PackageManager; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; @@ -40,10 +43,10 @@ import android.widget.Toast; import com.actionbarsherlock.app.SherlockFragment; import eu.alefzero.owncloud.DisplayUtils; -import eu.alefzero.owncloud.FileDownloader; import eu.alefzero.owncloud.R; import eu.alefzero.owncloud.authenticator.AccountAuthenticator; import eu.alefzero.owncloud.datamodel.OCFile; +import eu.alefzero.owncloud.files.services.FileDownloader; import eu.alefzero.owncloud.utils.OwnCloudVersion; /** @@ -142,6 +145,7 @@ public class FileDetailFragment extends SherlockFragment implements i.putExtra(FileDownloader.EXTRA_ACCOUNT, mIntent.getParcelableExtra(FileDownloader.EXTRA_ACCOUNT)); i.putExtra(FileDownloader.EXTRA_FILE_PATH, mFile.getRemotePath()); + i.putExtra(FileDownloader.EXTRA_FILE_SIZE, mFile.getFileLength()); getActivity().startService(i); } @@ -206,7 +210,12 @@ public class FileDetailFragment extends SherlockFragment implements public void onClick(View v) { Intent i = new Intent(Intent.ACTION_VIEW); i.setDataAndType(Uri.parse("file://"+mFile.getStoragePath()), mFile.getMimetype()); - startActivity(i); + List list = getActivity().getPackageManager().queryIntentActivities(i, PackageManager.MATCH_DEFAULT_ONLY); + if (list.size() > 0) { + startActivity(i); + } else { + Toast.makeText(getActivity(), "There is no application to handle file " + mFile.getFileName(), Toast.LENGTH_SHORT).show(); + } } }); } else { @@ -273,7 +282,7 @@ public class FileDetailFragment extends SherlockFragment implements /** * In ownCloud 3.0.3 and 4.0.0 there is a bug that SabreDAV does not return - * the time time that the file was created. There is a chance that this will + * the time that the file was created. There is a chance that this will * be fixed in future versions. Use this method to check if this version of * ownCloud has this fix. * @return True, if ownCloud the ownCloud version is > 3.0.4 and 4.0.1 @@ -300,9 +309,10 @@ public class FileDetailFragment extends SherlockFragment implements private class DownloadFinishReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { - updateFileDetails(); + ((OCFile)mIntent.getParcelableExtra(EXTRA_FILE)).setStoragePath(intent.getStringExtra(FileDownloader.EXTRA_FILE_PATH)); + updateFileDetails(mIntent); } - + } }