From: Andy Scherzinger Date: Mon, 5 Oct 2015 16:44:50 +0000 (+0200) Subject: Fix for #1182 on Android 5 X-Git-Tag: oc-android-1.9^2~57^2~1 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/8f0ea82efd778f65c1ccbfcb94b9bd7a2cc2564c?ds=sidebyside;hp=-c Fix for #1182 on Android 5 --- 8f0ea82efd778f65c1ccbfcb94b9bd7a2cc2564c diff --git a/res/values/strings.xml b/res/values/strings.xml index 8f1aec21..267d713e 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -74,6 +74,7 @@ seconds ago Nothing in here. Upload something! Loading… + No App found for file type! There are no files in this folder. Tap on a file to display additional information. Size: diff --git a/src/com/owncloud/android/files/FileOperationsHelper.java b/src/com/owncloud/android/files/FileOperationsHelper.java index 22370289..845eab7f 100644 --- a/src/com/owncloud/android/files/FileOperationsHelper.java +++ b/src/com/owncloud/android/files/FileOperationsHelper.java @@ -22,7 +22,10 @@ package com.owncloud.android.files; import android.accounts.Account; +import android.content.ActivityNotFoundException; import android.content.Intent; +import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; import android.net.Uri; import android.support.v4.app.DialogFragment; import android.webkit.MimeTypeMap; @@ -43,6 +46,8 @@ import com.owncloud.android.ui.dialog.ShareLinkToDialog; import org.apache.http.protocol.HTTP; +import java.util.List; + /** * */ @@ -88,13 +93,28 @@ public class FileOperationsHelper { } Intent chooserIntent; + List launchables; if (intentForGuessedMimeType != null) { chooserIntent = Intent.createChooser(intentForGuessedMimeType, mFileActivity.getString(R.string.actionbar_open_with)); + launchables = mFileActivity.getPackageManager().queryIntentActivities(intentForGuessedMimeType, PackageManager.GET_INTENT_FILTERS); } else { chooserIntent = Intent.createChooser(intentForSavedMimeType, mFileActivity.getString(R.string.actionbar_open_with)); + launchables = mFileActivity.getPackageManager().queryIntentActivities(intentForSavedMimeType, PackageManager.GET_INTENT_FILTERS); } - mFileActivity.startActivity(chooserIntent); + if(launchables != null && launchables.size() > 0) { + try { + mFileActivity.startActivity(chooserIntent); + } catch (ActivityNotFoundException anfe) { + Toast.makeText(mFileActivity.getApplicationContext(), + R.string.file_list_no_app_for_file_type, Toast.LENGTH_SHORT) + .show(); + } + } else { + Toast.makeText(mFileActivity.getApplicationContext(), + R.string.file_list_no_app_for_file_type, Toast.LENGTH_SHORT) + .show(); + } } else { Log_OC.wtf(TAG, "Trying to open a NULL OCFile");