package com.jasonchen.microlang.activitys;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.TextUtils;
import android.widget.Toast;
import com.jasonchen.microlang.R;
import com.jasonchen.microlang.beans.AccountBean;
import com.jasonchen.microlang.beans.GeoBean;
import com.jasonchen.microlang.beans.StatusDraftBean;
import com.jasonchen.microlang.services.SendWeiboService;
import com.jasonchen.microlang.utils.GlobalContext;
import com.jasonchen.microlang.utils.TimeLineUtility;
/**
* jasonchen
* 2015/04/17
*/
public class WriteWeiboActivity extends AbstractWriteActivity {
private StatusDraftBean statusDraftBean;
private GeoBean geoBean;
public static Intent startBecauseSendFailed(Context context,
AccountBean accountBean, String content, String picPath,
GeoBean geoBean, StatusDraftBean statusDraftBean,
String failedReason) {
Intent intent = new Intent(context, WriteWeiboActivity.class);
intent.setAction(ACTION_SEND_FAILED);
intent.putExtra("account", accountBean);
intent.putExtra("content", content);
intent.putExtra("failedReason", failedReason);
intent.putExtra("picPath", picPath);
intent.putExtra("geoBean", geoBean);
intent.putExtra("statusDraftBean", statusDraftBean);
return intent;
}
public static Intent newIntent(Context context, String content){
Intent intent = new Intent(context, WriteWeiboActivity.class);
intent.setAction(ACTION_FEED_BACK);
intent.putExtra("content", content);
return intent;
}
public static Intent newIntent(Context context, AccountBean accountBean, String name){
Intent intent = new Intent(context, WriteWeiboActivity.class);
intent.setAction(ACTION_AT);
intent.putExtra("account", accountBean);
intent.putExtra("name", name);
return intent;
}
public static Intent newIntent(Context context, AccountBean accountBean){
Intent intent = new Intent(context, WriteWeiboActivity.class);
intent.setAction(ACTION_NEW);
intent.putExtra("account", accountBean);
return intent;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initView();
}
private void initView() {
getSupportActionBar().setTitle(getString(R.string.write_status));
String action = getIntent().getAction();
String type = getIntent().getType();
token = GlobalContext.getInstance().getSpecialToken();
if (action.equals(Intent.ACTION_SEND) && !TextUtils.isEmpty(type)) {
if ("text/plain".equals(type)) {
handleSendText(getIntent());
} else if (type.startsWith("image/")) {
handleSendImage(getIntent());
}
} else if(ACTION_SEND_FAILED.equals(getIntent().getAction())){
accountBean = getIntent().getParcelableExtra("account");
String contentStr = getIntent().getStringExtra("content");
if(!TextUtils.isEmpty(contentStr)) {
SpannableString spannableString = SpannableString.valueOf(contentStr);
TimeLineUtility.addEmotions(spannableString);
content.setText(spannableString);
content.setSelection(content.length());
}
if(!TextUtils.isEmpty(getIntent().getStringExtra("picPath"))){
picPath = getIntent().getStringExtra("picPath");
enablePicture();
hasPicture = true;
}
visibility = getIntent().getIntExtra("visible", 0);
if(!TextUtils.isEmpty(getIntent().getStringExtra("failedReason"))){
Toast.makeText(WriteWeiboActivity.this, getIntent().getStringExtra("failedReason"), Toast.LENGTH_SHORT).show();
}
}else if(ACTION_AT.equals(getIntent().getAction())){
accountBean = getIntent().getParcelableExtra("account");
String name = getIntent().getStringExtra("name");
content.setText("@" + name +" ");
content.setSelection(content.getText().toString().length());
}else if(ACTION_NEW.equals(action)){
accountBean = getIntent().getParcelableExtra("account");
}else if(ACTION_FEED_BACK.equals(getIntent().getAction())){
String contentStr = getIntent().getStringExtra("content");
accountBean = GlobalContext.getInstance().getAccountBean();
content.setText(contentStr +" ");
content.setSelection(content.getText().toString().length());
}
}
private void handleSendText(Intent intent) {
String sharedText = intent.getStringExtra(Intent.EXTRA_TEXT);
if (!TextUtils.isEmpty(sharedText)) {
content.setText(sharedText);
content.setSelection(content.getText().toString().length());
}
}
private void handleSendImage(Intent intent) {
handleSendText(intent);
Uri sharedImageUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
if (sharedImageUri != null) {
imageFileUri = sharedImageUri;
createTmpUploadFileFromUri();
}
}
@Override
protected void send() {
if(canSend()){
executeTask();
}
}
@Override
protected void atUser() {
Intent intent = AtUserActivity.newIntent(WriteWeiboActivity.this, accountBean, token);
startActivityForResult(intent, AT_USER);
openActivityWithAnimation();
}
private void executeTask() {
Intent intent = new Intent(WriteWeiboActivity.this,
SendWeiboService.class);
intent.putExtra("token", token);
intent.putExtra("picPath", picPath);
intent.putExtra("account", accountBean);
intent.putExtra("content", content.getText().toString());
intent.putExtra("geo", geoBean);
intent.putExtra("draft", statusDraftBean);
startService(intent);
finishWithAnimation();
}
}