X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/261d8a5167571ffbaa447cce8df24f32a53faf7d..59513cd56ddd82118b96df9a5485406338dfb5ea:/src/com/owncloud/android/ui/activity/FileActivity.java diff --git a/src/com/owncloud/android/ui/activity/FileActivity.java b/src/com/owncloud/android/ui/activity/FileActivity.java index 3a9297ec..4f42597f 100644 --- a/src/com/owncloud/android/ui/activity/FileActivity.java +++ b/src/com/owncloud/android/ui/activity/FileActivity.java @@ -18,15 +18,24 @@ package com.owncloud.android.ui.activity; +import java.util.ArrayList; +import java.util.List; + +import org.apache.http.protocol.HTTP; + import android.accounts.Account; import android.accounts.AccountManager; import android.accounts.AccountManagerCallback; import android.accounts.AccountManagerFuture; import android.accounts.OperationCanceledException; import android.content.Intent; +import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; import android.net.Uri; import android.os.Bundle; +import android.os.Parcelable; import android.webkit.MimeTypeMap; +import android.widget.Toast; import com.actionbarsherlock.app.SherlockFragmentActivity; import com.owncloud.android.MainApp; @@ -343,5 +352,88 @@ public abstract class FileActivity extends SherlockFragmentActivity { Log_OC.wtf(TAG, "Trying to open a NULL OCFile"); } } + + /* + public void shareFileWithLink(OCFile file) { + if (file != null) { + + Intent intentToShareLink = new Intent(Intent.ACTION_SEND); + intentToShareLink.putExtra(Intent.EXTRA_TEXT, "https://fake.url.lolo"); + intentToShareLink.setType(HTTP.PLAIN_TEXT_TYPE); + + Intent chooserIntent = Intent.createChooser(intentToShareLink, getString(R.string.action_share_file)); + startActivity(chooserIntent); + + } else { + Log_OC.wtf(TAG, "Trying to open a NULL OCFile"); + } + } + */ + + public void shareFileWithLink(OCFile file) { + if (isSharedSupported()) { + if (file != null) { + + // Create the Share + //CreateShareOperation createShare = new CreateShareOperation(file.getRemotePath(), ShareType.PUBLIC_LINK, "", false, "", 1); + //createShare.execute(getStorageManager(), this, this, mHandler, this); + + // TODO + // Get the link --> when the operation is finished + + String link = "https://fake.url.lolo"; + Intent chooserIntent = null; + List targetedShareIntents = new ArrayList(); + List resInfo = getPackageManager().queryIntentActivities(createShareWithLinkIntent(link), PackageManager.MATCH_DEFAULT_ONLY); + String myPackageName = getPackageName(); + if (!resInfo.isEmpty()) { + for (ResolveInfo info : resInfo) { + if (!info.activityInfo.packageName.equalsIgnoreCase(myPackageName)) { + Intent targetedShare = createTargetedShare(link, info.activityInfo.applicationInfo.packageName, info.activityInfo.name); + targetedShareIntents.add(targetedShare); + } + } + } + if (targetedShareIntents.size() > 0) { + Intent firstTargeted = targetedShareIntents.remove(0); + chooserIntent = Intent.createChooser(firstTargeted, getString(R.string.action_share_file)); + chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[] {})); + } else { + // to show standard message + chooserIntent = Intent.createChooser(null, getString(R.string.action_share_file)); + } + startActivity(chooserIntent); + + } else { + Log_OC.wtf(TAG, "Trying to open a NULL OCFile"); + } + + } else { + // Show a Message + Toast t = Toast.makeText(this, getString(R.string.share_link_no_support_share_api), Toast.LENGTH_LONG); + t.show(); + } + } + + private Intent createTargetedShare(String link, String packageName, String className) { + //Intent targetedShare = createShareWithLinkIntent(link); + Intent targetedShare=new Intent(Intent.ACTION_MAIN); + + targetedShare.addCategory(Intent.CATEGORY_LAUNCHER); + targetedShare.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | + Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); + Log_OC.e("LOLO", "className: " + className + "\npackageName: " + packageName + "\n"); + targetedShare.setClassName(packageName, className); + return targetedShare; + } + + + private Intent createShareWithLinkIntent(String link) { + Intent intentToShareLink = new Intent(Intent.ACTION_SEND); + intentToShareLink.putExtra(Intent.EXTRA_TEXT, link); + intentToShareLink.setType(HTTP.PLAIN_TEXT_TYPE); + return intentToShareLink; + } + }