package org.aisen.weibo.sina.ui.activity.comment;
import java.util.ArrayList;
import java.util.List;
import org.aisen.weibo.sina.R;
import org.aisen.weibo.sina.support.utils.AisenUtil;
import org.aisen.weibo.sina.support.utils.AppContext;
import org.aisen.weibo.sina.support.utils.AppSettings;
import org.aisen.weibo.sina.ui.fragment.base.BizFragment;
import org.aisen.weibo.sina.ui.fragment.comment.TimelineCommentsFragment;
import org.aisen.weibo.sina.ui.fragment.timeline.RepostTimelineFragment;
import org.sina.android.bean.StatusContent;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.graphics.Color;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import com.m.common.context.GlobalContext;
import com.m.support.Inject.ViewInject;
import com.m.ui.activity.AViewpagerActivity;
import com.m.ui.fragment.ABaseFragment;
public class TimelineCommentsActivity extends AViewpagerActivity implements OnClickListener {
public static void launch(ABaseFragment from, StatusContent status) {
Intent intent = new Intent(from.getActivity(), TimelineCommentsActivity.class);
intent.putExtra("bean", status);
from.startActivityForResult(intent, 1000);
}
@ViewInject(id = R.id.btnComment, click = "btnClicked")
TextView btnComment;
@ViewInject(id = R.id.btnRepost, click = "btnClicked")
TextView btnRepost;
@ViewInject(id = R.id.btnFavor, click = "btnClicked")
TextView btnFavor;
@ViewInject(id = R.id.btnOverflow, click = "btnClicked")
View btnOverflow;
@ViewInject(id = R.id.layBtns)
View layBtns;
private StatusContent mStatusContent;
private View menuActionView;
@Override
protected void onCreate(Bundle savedInstanceState) {
mStatusContent = savedInstanceState == null ? (StatusContent) getIntent().getSerializableExtra("bean")
: (StatusContent) savedInstanceState.getSerializable("bean");
org.aisen.weibo.sina.ui.fragment.base.ActivityHelper activityHelper = (org.aisen.weibo.sina.ui.fragment.base.ActivityHelper) getActivityHelper();
activityHelper.insertBottom = true;
super.onCreate(savedInstanceState);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setDisplayShowHomeEnabled(false);
getActionBar().setTitle(R.string.title_cmt);
BizFragment.getBizFragment(this);
// 微博不是普通微博
if (mStatusContent.getVisible() == null || "0".equals(mStatusContent.getVisible().getType())) {
}
else {
findViewById(R.id.dividerRepost).setVisibility(View.GONE);
btnRepost.setVisibility(View.GONE);
}
if (!AisenUtil.isTranslucent())
layBtns.setBackgroundColor(Color.parseColor(AppSettings.getThemeColor()));
}
@Override
public void setContentView(int layoutResID) {
super.setContentView(R.layout.ui_comment_pager);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putSerializable("bean", mStatusContent);
}
@Override
protected int setViewPagerTitles() {
return R.array.comments;
}
@Override
protected void setViewPagerFragments(List<ABaseFragment> fragmentList) {
fragmentList.add(TimelineCommentsFragment.newInstance(mStatusContent));
if (TextUtils.isEmpty(mStatusContent.getReposts_count())
|| Integer.parseInt(mStatusContent.getReposts_count()) == 0) {
} else {
fragmentList.add(RepostTimelineFragment.newInstance(mStatusContent));
}
}
@Override
protected boolean showIndicator() {
return false;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
if (TextUtils.isEmpty(mStatusContent.getReposts_count())
|| Integer.parseInt(mStatusContent.getReposts_count()) == 0) {
}
else {
getMenuInflater().inflate(R.menu.timeline_comments, menu);
MenuItem switchItem = menu.findItem(R.id.menuSwitch);
View viewTitle = switchItem.getActionView();
viewTitle.setOnClickListener(this);
menuActionView = viewTitle;
View txtComment = viewTitle.findViewById(R.id.txtComment);
txtComment.setSelected(getViewPager().getCurrentItem() == 0);
View txtRepost = viewTitle.findViewById(R.id.txtRepost);
txtRepost.setSelected(getViewPager().getCurrentItem() == 1);
}
return super.onCreateOptionsMenu(menu);
}
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
if (menuActionView != null) {
View txtComment = menuActionView.findViewById(R.id.txtComment);
txtComment.setSelected(getViewPager().getCurrentItem() == 0);
View txtRepost = menuActionView.findViewById(R.id.txtRepost);
txtRepost.setSelected(getViewPager().getCurrentItem() == 1);
}
}
@Override
public void onClick(View v) {
getViewPager().setCurrentItem(getViewPager().getCurrentItem() == 0 ? 1 : 0);
View txtComment = v.findViewById(R.id.txtComment);
txtComment.setSelected(getViewPager().getCurrentItem() == 0);
View txtRepost = v.findViewById(R.id.txtRepost);
txtRepost.setSelected(getViewPager().getCurrentItem() == 1);
}
void btnClicked(View v) {
try {
// 评论
if (v.getId() == R.id.btnComment) {
BizFragment.getBizFragment(this).commentCreate(mStatusContent);
}
// 转发
else if (v.getId() == R.id.btnRepost) {
BizFragment.getBizFragment(this).statusRepost(mStatusContent);
}
// 收藏
else if (v.getId() == R.id.btnFavor) {
BizFragment.getBizFragment(this).favorityCreate(mStatusContent.getId(), null);
}
// 溢出菜单
else if (v.getId() == R.id.btnOverflow) {
final String[] timelineMenuArr = GlobalContext.getInstance().getResources().getStringArray(R.array.timeline_menus);
List<String> menuList = new ArrayList<String>();
// 原微博
if (mStatusContent.getRetweeted_status() != null && mStatusContent.getRetweeted_status().getUser() != null) {
menuList.add(timelineMenuArr[0]);
}
// 围观
menuList.add(timelineMenuArr[8]);
// 复制
menuList.add(timelineMenuArr[1]);
// 取消收藏
menuList.add(timelineMenuArr[5]);
// 删除
if (mStatusContent.getUser() != null && AppContext.getUser().getIdstr().equals(mStatusContent.getUser().getIdstr()))
menuList.add(timelineMenuArr[6]);
final String[] menuArr = new String[menuList.size()];
for (int i = 0; i < menuList.size(); i++)
menuArr[i] = menuList.get(i);
String[] pageTitleArr = getResources().getStringArray(setViewPagerTitles());
final ABaseFragment fragment = (ABaseFragment) getFragmentManager().findFragmentByTag(pageTitleArr[0]);
AisenUtil.showMenuDialog(fragment,
v,
menuArr,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
AisenUtil.timelineMenuSelected(fragment, menuArr[which], mStatusContent);
}
});
}
} catch (Exception e) {
}
}
protected void onResume() {
super.onResume();
// 开启屏幕旋转
if (AppSettings.isScreenRotate()) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}
else {
if (getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_SENSOR)
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
}