package com.jasonchen.microlang.activitys; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.text.SpannableString; import android.text.TextUtils; import android.view.View; import android.widget.Toast; import com.jasonchen.microlang.R; import com.jasonchen.microlang.beans.AccountBean; import com.jasonchen.microlang.beans.MessageBean; import com.jasonchen.microlang.beans.RepostDraftBean; import com.jasonchen.microlang.services.SendRepostService; import com.jasonchen.microlang.settings.SettingUtility; import com.jasonchen.microlang.utils.GlobalContext; import com.jasonchen.microlang.utils.TimeLineUtility; import com.jasonchen.microlang.utils.Utility; /** * jasonchen * 2015/04/17 */ public class WriteRepostActivity extends AbstractWriteActivity { private AccountBean accountBean; private MessageBean messageBean; public static Intent startBecauseSendFailed(Context context, AccountBean accountBean, String content, MessageBean oriMsg, boolean is_comment, RepostDraftBean repostDraftBean, String failedReason) { Intent intent = new Intent(context, WriteRepostActivity.class); intent.setAction(ACTION_SEND_FAILED); intent.putExtra("account", accountBean); intent.putExtra("content", content); intent.putExtra("oriMsg", oriMsg); intent.putExtra("isComment", is_comment); intent.putExtra("failedReason", failedReason); intent.putExtra("repostDraftBean", repostDraftBean); return intent; } public static Intent newIntent(Context context, AccountBean accountBean, MessageBean messageBean, String token){ Intent intent = new Intent(context, WriteRepostActivity.class); intent.putExtra("account", accountBean); intent.putExtra("message", messageBean); intent.putExtra("token", token); intent.setAction(ACTION_NEW); return intent; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initView(); } private void initView() { getSupportActionBar().setTitle(getString(R.string.write_repost)); commentMsgToo.setVisibility(View.VISIBLE); addPic.setVisibility(View.GONE); String action = getIntent().getAction(); token = GlobalContext.getInstance().getSpecialToken(); if(ACTION_SEND_FAILED.equals(getIntent().getAction())){ accountBean = getIntent().getParcelableExtra("account"); messageBean = getIntent().getParcelableExtra("oriMsg"); content.setHint(messageBean.getText()); String contentStr = getIntent().getStringExtra("content"); if(!TextUtils.isEmpty(contentStr)) { SpannableString spannableString = SpannableString.valueOf(contentStr); TimeLineUtility.addEmotions(spannableString); content.setText(spannableString); content.setSelection(content.length()); } boolean comment_too = getIntent().getBooleanExtra("isComment", false); commentToo = comment_too; if(comment_too){ repostBtn.setImageDrawable(getResources().getDrawable(R.drawable.ic_switcher_yes)); }else{ repostBtn.setImageDrawable(getResources().getDrawable(R.drawable.ic_switcher_no)); } if(!TextUtils.isEmpty(getIntent().getStringExtra("failedReason"))){ Toast.makeText(WriteRepostActivity.this, getIntent().getStringExtra("failedReason"), Toast.LENGTH_SHORT).show(); } }else if(ACTION_NEW.equals(action)){ accountBean = getIntent().getParcelableExtra("account"); messageBean = getIntent().getParcelableExtra("message"); token = getIntent().getStringExtra("token"); if(SettingUtility.getShowRepostContent() && messageBean.getRetweeted_status() != null) { content.setText("//@" + messageBean.getUser().getName() + ":" + messageBean.getText()); content.setSelection(0); }else{ content.setHint("//@" + messageBean.getUser().getName() + ":" + messageBean.getText()); } } } @Override protected void send() { if(canSend()){ repostMessage(); } } @Override protected boolean canSend() { //boolean haveContent = !TextUtils.isEmpty(content.getText().toString()); boolean haveToken = !TextUtils.isEmpty(token); int sum = Utility.length(content.getText().toString()); int num = 140 - sum; boolean contentNumBelow140 = (num >= 0); if (haveToken && contentNumBelow140) { return true; } else { if (!haveToken) { Toast.makeText(this, getString(R.string.dont_have_account), Toast.LENGTH_SHORT).show(); } if (!contentNumBelow140) { content.setError(getString(R.string.content_words_number_too_many)); } } return false; } private void repostMessage() { Intent intent = null; if(content.getText().toString().length() > 0) { intent = SendRepostService.newIntent(WriteRepostActivity.this, messageBean, content.getText().toString(), commentToo); }else{ intent = SendRepostService.newIntent(WriteRepostActivity.this, messageBean, "转发微博", commentToo); } startService(intent); finishWithAnimation(); } @Override protected void atUser() { Intent intent = AtUserActivity.newIntent(WriteRepostActivity.this, accountBean, token); startActivityForResult(intent, AT_USER); openActivityWithAnimation(); } }