package com.hellodev.lightme.util;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.ResolveInfo;
import android.content.res.Resources;
import android.widget.Toast;
import com.hellodev.lightme.R;
import java.util.ArrayList;
import java.util.List;
public class MShareHelper {
private Context context;
private Resources resource;
public MShareHelper(Context context) {
this.context = context;
resource = context.getResources();
}
public void shareFeedbackWithMail() {
Intent intent = getBaseShareIntent();
List<ResolveInfo> resInfos = context.getPackageManager().queryIntentActivities(intent, 0);
List<Intent> targetIntents = null;
Intent targetIntent = null;
if(resInfos != null && !resInfos.isEmpty()) {
targetIntents = new ArrayList<Intent>();
for(ResolveInfo resInfo : resInfos) {
ActivityInfo activityInfo = resInfo.activityInfo;
if(activityInfo.packageName.contains("mail")) {
targetIntent = getMailIntent();
targetIntent.setPackage(activityInfo.packageName);
targetIntents.add(targetIntent);
}
}
Intent chooserIntent = Intent.createChooser(targetIntents.remove(0), "选择分享应用");
if(chooserIntent == null)
return;
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS,
targetIntents.toArray(new Intent[]{}));
try {
context.startActivity(chooserIntent);
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(context, "Can't find share component to share",
Toast.LENGTH_SHORT).show();
}
}
}
public Intent getMailIntent() {
Intent emailIntent = getBaseShareIntent();
String[] emailReciver = new String[]{"hellodever@gmail.com"};
String subject = resource.getString(R.string.feedback_subject);
String defaultContent = resource.getString(R.string.feedback_content_default);
emailIntent.putExtra(Intent.EXTRA_EMAIL, emailReciver);
emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
emailIntent.putExtra(Intent.EXTRA_TEXT, defaultContent);
return emailIntent;
}
private Intent getBaseShareIntent() {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
return intent;
}
}