X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/802a1646160051a507853ef09e680139833fb142..32dadbcc6ca0de9924f216f81c6a124862ab3136:/src/com/owncloud/android/ui/dialog/ShareLinkToDialog.java diff --git a/src/com/owncloud/android/ui/dialog/ShareLinkToDialog.java b/src/com/owncloud/android/ui/dialog/ShareLinkToDialog.java index fc88e5d1..29eaac2b 100644 --- a/src/com/owncloud/android/ui/dialog/ShareLinkToDialog.java +++ b/src/com/owncloud/android/ui/dialog/ShareLinkToDialog.java @@ -25,7 +25,7 @@ import java.util.Collections; import java.util.Iterator; import java.util.List; -import android.app.AlertDialog; +import android.support.v7.app.AlertDialog; import android.app.Dialog; import android.content.ComponentName; import android.content.Context; @@ -35,6 +35,7 @@ import android.content.pm.ActivityInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.os.Bundle; +import android.support.v4.app.DialogFragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -42,35 +43,30 @@ import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; -import com.actionbarsherlock.app.SherlockDialogFragment; import com.owncloud.android.R; -import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.lib.common.utils.Log_OC; -import com.owncloud.android.ui.activity.ComponentsGetter; import com.owncloud.android.ui.activity.CopyToClipboardActivity; -import com.owncloud.android.ui.activity.FileActivity; /** * Dialog showing a list activities able to resolve a given Intent, * filtering out the activities matching give package names. */ -public class ShareLinkToDialog extends SherlockDialogFragment { +public class ShareLinkToDialog extends DialogFragment { private final static String TAG = ShareLinkToDialog.class.getSimpleName(); - private final static String ARG_INTENT = ShareLinkToDialog.class.getSimpleName() + ".ARG_INTENT"; - private final static String ARG_PACKAGES_TO_EXCLUDE = ShareLinkToDialog.class.getSimpleName() + ".ARG_PACKAGES_TO_EXCLUDE"; - private final static String ARG_FILE_TO_SHARE = ShareLinkToDialog.class.getSimpleName() + ".FILE_TO_SHARE"; - + private final static String ARG_INTENT = ShareLinkToDialog.class.getSimpleName() + + ".ARG_INTENT"; + private final static String ARG_PACKAGES_TO_EXCLUDE = ShareLinkToDialog.class.getSimpleName() + + ".ARG_PACKAGES_TO_EXCLUDE"; + private ActivityAdapter mAdapter; - private OCFile mFile; private Intent mIntent; - public static ShareLinkToDialog newInstance(Intent intent, String[] packagesToExclude, OCFile fileToShare) { + public static ShareLinkToDialog newInstance(Intent intent, String[] packagesToExclude) { ShareLinkToDialog f = new ShareLinkToDialog(); Bundle args = new Bundle(); args.putParcelable(ARG_INTENT, intent); args.putStringArray(ARG_PACKAGES_TO_EXCLUDE, packagesToExclude); - args.putParcelable(ARG_FILE_TO_SHARE, fileToShare); f.setArguments(args); return f; } @@ -84,16 +80,17 @@ public class ShareLinkToDialog extends SherlockDialogFragment { public Dialog onCreateDialog(Bundle savedInstanceState) { mIntent = getArguments().getParcelable(ARG_INTENT); String[] packagesToExclude = getArguments().getStringArray(ARG_PACKAGES_TO_EXCLUDE); - List packagesToExcludeList = Arrays.asList(packagesToExclude != null ? packagesToExclude : new String[0]); - mFile = getArguments().getParcelable(ARG_FILE_TO_SHARE); - - PackageManager pm= getSherlockActivity().getPackageManager(); - List activities = pm.queryIntentActivities(mIntent, PackageManager.MATCH_DEFAULT_ONLY); + List packagesToExcludeList = Arrays.asList(packagesToExclude != null ? + packagesToExclude : new String[0]); + + PackageManager pm= getActivity().getPackageManager(); + List activities = pm.queryIntentActivities(mIntent, + PackageManager.MATCH_DEFAULT_ONLY); Iterator it = activities.iterator(); ResolveInfo resolveInfo; while (it.hasNext()) { resolveInfo = it.next(); - if (packagesToExcludeList.contains(resolveInfo.activityInfo.packageName.toLowerCase())) { + if (packagesToExcludeList.contains(resolveInfo.activityInfo.packageName.toLowerCase())){ it.remove(); } } @@ -102,7 +99,7 @@ public class ShareLinkToDialog extends SherlockDialogFragment { if (!sendAction) { // add activity for copy to clipboard - Intent copyToClipboardIntent = new Intent(getSherlockActivity(), CopyToClipboardActivity.class); + Intent copyToClipboardIntent = new Intent(getActivity(), CopyToClipboardActivity.class); List copyToClipboard = pm.queryIntentActivities(copyToClipboardIntent, 0); if (!copyToClipboard.isEmpty()) { activities.add(copyToClipboard.get(0)); @@ -110,7 +107,7 @@ public class ShareLinkToDialog extends SherlockDialogFragment { } Collections.sort(activities, new ResolveInfo.DisplayNameComparator(pm)); - mAdapter = new ActivityAdapter(getSherlockActivity(), pm, activities); + mAdapter = new ActivityAdapter(getActivity(), pm, activities); return createSelector(sendAction); @@ -125,7 +122,7 @@ public class ShareLinkToDialog extends SherlockDialogFragment { titleId = R.string.activity_chooser_title; } - return new AlertDialog.Builder(getSherlockActivity()) + return new AlertDialog.Builder(getActivity()) .setTitle(titleId) .setAdapter(mAdapter, new DialogInterface.OnClickListener() { @Override @@ -136,19 +133,10 @@ public class ShareLinkToDialog extends SherlockDialogFragment { ComponentName name=new ComponentName( actInfo.applicationInfo.packageName, actInfo.name); - mIntent.setComponent(name); - - if (sendAction) { - dialog.dismiss(); // explicitly added for Android 2.x devices - - // Send the file - ((FileActivity)getSherlockActivity()).startActivity(mIntent); + mIntent.setComponent(name); - } else { - // Create a new share resource - ((ComponentsGetter)getSherlockActivity()).getFileOperationsHelper() - .shareFileWithLinkToApp(mFile, "", mIntent); - } + // Send the file + getActivity().startActivity(mIntent); } }) .create(); @@ -173,7 +161,8 @@ public class ShareLinkToDialog extends SherlockDialogFragment { } private View newView(ViewGroup parent) { - return(((LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.activity_row, parent, false)); + return(((LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE)). + inflate(R.layout.activity_row, parent, false)); } private void bindView(int position, View row) {