package com.athena.asm.Adapter; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.text.ClipboardManager; import android.text.Html; import android.text.method.LinkMovementMethod; import android.util.TypedValue; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnLongClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; import com.athena.asm.R; import com.athena.asm.ReadMailActivity; import com.athena.asm.aSMApplication; import com.athena.asm.data.Mail; import com.athena.asm.util.StringUtility; @SuppressWarnings("deprecation") public class ReadMailAdapter extends BaseAdapter { private ReadMailActivity activity; private LayoutInflater inflater; private Mail m_currentMail; public ReadMailAdapter(ReadMailActivity activity, Mail currentMail, LayoutInflater inflater) { this.activity = activity; this.inflater = inflater; m_currentMail = currentMail; } public View getView(int position, View convertView, ViewGroup parent) { View layout = null; Mail mail = m_currentMail; layout = inflater.inflate(R.layout.post_list_item, null); TextView authorTextView = (TextView) layout.findViewById(R.id.AuthorID); authorTextView.setText(mail.getSenderID()); TextView titleTextView = (TextView) layout.findViewById(R.id.PostTitle); titleTextView.setText(mail.getTitle()); TextView contentTextView = (TextView) layout .findViewById(R.id.PostContent); // Vt100TerminalModel.handleContent(mail.getContent(), contentTextView); contentTextView.setText(Html.fromHtml(mail.getContent())); contentTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, aSMApplication.getCurrentApplication().getPostFontSize()); TextView attachTextView = (TextView) layout.findViewById(R.id.PostAttach); attachTextView.setMovementMethod(LinkMovementMethod.getInstance()); TextView dateTextView = (TextView) layout.findViewById(R.id.PostDate); dateTextView.setText(StringUtility.getFormattedString(mail.getDate())); layout.setTag(mail); OnLongClickListener listener = new OnLongClickListener() { @Override public boolean onLongClick(View v) { if (activity.m_smthSupport.getLoginStatus()) { RelativeLayout relativeLayout = null; if (v.getId() == R.id.PostContent) { relativeLayout = (RelativeLayout) v.getParent(); } else { relativeLayout = (RelativeLayout) v; } final String authorID = (String) ((TextView)relativeLayout.findViewById(R.id.AuthorID)).getText(); final Mail mail = (Mail) relativeLayout.getTag(); final String[] items = { activity.getString(R.string.mail_reply), activity.getString(R.string.post_query_author), activity.getString(R.string.post_copy_author)};// , AlertDialog.Builder builder = new AlertDialog.Builder( activity); builder.setTitle(R.string.post_alert_title); builder.setItems(items, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { switch (item) { case 0: Intent intent = new Intent(); intent.setClassName("com.athena.asm", "com.athena.asm.WritePostActivity"); try { intent.putExtra( StringUtility.URL, "http://www.newsmth.net/bbspstmail.php?dir=" + mail.getBoxDirString() + "&userid=" + mail.getSenderID() + "&num=" + mail.getNumber() + "&file=" + mail.getValueString() + "&title=" + URLEncoder.encode(mail.getTitle(), "GBK")); intent.putExtra(StringUtility.IS_REPLY, true); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } intent.putExtra(StringUtility.WRITE_TYPE, 1); activity.startActivity(intent); break; case 1: intent = new Intent(); intent.setClassName("com.athena.asm", "com.athena.asm.ViewProfileActivity"); intent.putExtra(StringUtility.USERID, authorID); activity.startActivity(intent); break; case 2: ClipboardManager clip = (ClipboardManager)activity.getSystemService(Context.CLIPBOARD_SERVICE); clip.setText(authorID); Toast.makeText(activity.getApplicationContext(), "ID : " + authorID + "已复制到剪贴板", Toast.LENGTH_SHORT).show(); default: break; } dialog.dismiss(); } }); AlertDialog alert = builder.create(); alert.show(); } return false; } }; contentTextView.setOnLongClickListener(listener); layout.setOnLongClickListener(listener); if (aSMApplication.getCurrentApplication().isNightTheme()) { contentTextView.setTextColor(layout.getResources().getColor(R.color.status_text_night)); authorTextView.setTextColor(layout.getResources().getColor(R.color.blue_text_night)); titleTextView.setTextColor(layout.getResources().getColor(R.color.status_text_night)); attachTextView.setTextColor(layout.getResources().getColor(R.color.status_text_night)); } return layout; } @Override public int getCount() { return 1; } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } }