/* * 官网地站:http://www.ShareSDK.cn * 技术支持QQ: 4006852216 * 官方微信:ShareSDK (如果发布新版本的话,我们将会第一时间通过微信将版本更新内容推送给您。如果使用过程中有任何问题,也可以通过微信与我们取得联系,我们将会在24小时内给予回复) * * Copyright (c) 2013年 ShareSDK.cn. All rights reserved. */ package cn.smssdk.gui; import java.util.ArrayList; import java.util.HashMap; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.net.Uri; import android.text.Html; import android.view.View; import android.view.View.OnClickListener; import android.widget.TextView; import cn.smssdk.framework.FakeActivity; import static cn.smssdk.framework.utils.R.*; /**联系人详细信息页面*/ public class ContactDetailPage extends FakeActivity implements OnClickListener{ private String phoneName = ""; private ArrayList<String> phoneList = new ArrayList<String>(); @Override public void onCreate() { int resId = getLayoutRes(activity, "smssdk_contact_detail_page"); if (resId > 0) { activity.setContentView(resId); resId = getIdRes(activity, "ll_back"); activity.findViewById(resId).setOnClickListener(this); resId = getIdRes(activity, "tv_title"); TextView tvTitle = (TextView) activity.findViewById(resId); resId = getStringRes(activity, "smssdk_contacts_detail"); tvTitle.setText(resId); resId = getIdRes(activity, "tv_contact_name"); TextView tvContactName = (TextView) activity.findViewById(resId); tvContactName.setText(phoneName); resId = getIdRes(activity, "tv_contact_phones"); TextView tvPhonesList = (TextView) activity.findViewById(resId); StringBuilder phones = new StringBuilder(); for(String phone : phoneList){ phones.append("\n"); phones.append(phone); } if(phones.length() > 0){ phones.deleteCharAt(0); tvPhonesList.setText(phones.toString()); } resId = getIdRes(activity, "tv_invite_hint"); TextView tvInviteHint = (TextView) activity.findViewById(resId); resId = getStringRes(activity, "smssdk_not_invite"); String hint = getContext().getResources().getString(resId, phoneName); tvInviteHint.setText(Html.fromHtml(hint)); resId = getIdRes(activity, "btn_invite"); activity.findViewById(resId).setOnClickListener(this); } } @Override public void onResume(){ super.onResume(); } @Override public void onPause() { super.onPause(); } /** * 设置联系人对象 * @param HashMap<String, Object> contact */ @SuppressWarnings("unchecked") public void setContact(HashMap<String, Object> contact){ if(contact.containsKey("displayname")){ phoneName = String.valueOf(contact.get("displayname")); } else if (contact.containsKey("phones")) { ArrayList<HashMap<String, Object>> phones = (ArrayList<HashMap<String, Object>>) contact.get("phones"); if (phones != null && phones.size() > 0) { phoneName = (String) phones.get(0).get("phone"); } } ArrayList<HashMap<String, Object>> phones = (ArrayList<HashMap<String, Object>>) contact.get("phones"); if (phones != null && phones.size() > 0) { for (HashMap<String, Object> phone : phones) { String pn = (String) phone.get("phone"); phoneList.add(pn); } } } @Override public void onClick(View v) { int id = v.getId(); int id_ll_back = getIdRes(activity, "ll_back"); int id_btn_invite = getIdRes(activity, "btn_invite"); if (id == id_ll_back) { finish(); } else if (id == id_btn_invite) { //发送短信,如果有多个号码,就弹出对话框,让用户自己选择 if(phoneList.size()>1){ showDialog(); return; }else{ String phone = phoneList.size() > 0 ? phoneList.get(0) : ""; sendMsg(phone); } } } /** * 发送消息 * @param String phone */ private void sendMsg(String phone){ Uri smsToUri = Uri.parse("smsto:"+phone); Intent intent = new Intent(Intent.ACTION_SENDTO, smsToUri); int resId = getStringRes(activity, "smssdk_invite_content"); if (resId > 0) { intent.putExtra("sms_body", activity.getString(resId)); } startActivity(intent); } /**有多个电话号码时,弹出的选择对话框*/ private void showDialog() { String[] phones = new String[phoneList.size()]; phones = phoneList.toArray(phones); AlertDialog.Builder builder = new AlertDialog.Builder(activity); int resId = getStringRes(activity, "smssdk_invite_content"); if (resId > 0) { builder.setTitle(resId); } builder.setCancelable(true); resId = getStringRes(activity, "smssdk_cancel"); if (resId > 0) { builder.setNegativeButton(resId, new DialogInterface.OnClickListener(){ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); } builder.setItems(phones, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); sendMsg(phoneList.get(which)); } }); builder.create().show(); } }