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.net.Uri;
import android.widget.Toast;
import com.hellodev.lightme.R;
import java.util.ArrayList;
import java.util.List;
public class MConnectHelper {
public static final String MSTORE_URI_HEADER = "mstore:";
public static final String SOFTWARE_URL_BASE = "http://app.meizu.com/phone/apps/";
public static final String MSTORE_IDENTIFY = "45e228a5a533488c8d46f7b5284d4ec7";
private Context context;
private Resources resource;
public MConnectHelper(Context context) {
resource = context.getResources();
this.context = context;
}
public void sendLockMsgWithMail(int lisenseState) {
String subject = resource.getString(R.string.lock_subject);
String defaultContent = String.format(resource
.getString(R.string.lock_content_default), MLisenseMangaer.getLisenseInfo(lisenseState));
sendInfoWithMail(subject, defaultContent);
}
public void sendFeedbackWithMail() {
String subject = resource.getString(R.string.feedback_subject);
String defaultContent = resource
.getString(R.string.feedback_content_default);
sendInfoWithMail(subject, defaultContent);
}
private void sendInfoWithMail(String subject, String defaultContent) {
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(subject, defaultContent);
targetIntent.setPackage(activityInfo.packageName);
targetIntents.add(targetIntent);
}
}
if(targetIntents.size() == 0)//FIXME 对于卸载邮箱的用户
return ;
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(String subject, String defaultContent) {
Intent emailIntent = getBaseShareIntent();
String[] emailReciver = new String[] { "dichengsiyu@gmail.com" };
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;
}
public void jumpToMarket(String appIdentify) {
try {
Intent intent = new Intent();
intent.setData(Uri.parse(MSTORE_URI_HEADER
+ SOFTWARE_URL_BASE + appIdentify));
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setClassName("com.meizu.mstore",
"com.meizu.mstore.MStoreMainPlusActivity");
context.startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}
}
}