package org.aisen.weibo.sina.ui.fragment.comment;
import android.app.Fragment;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import org.aisen.android.support.bean.TabItem;
import org.aisen.android.ui.fragment.ATabsTabLayoutFragment;
import org.aisen.weibo.sina.R;
import org.aisen.weibo.sina.base.AppContext;
import org.aisen.weibo.sina.service.UnreadService;
import org.aisen.weibo.sina.sinasdk.bean.UnreadCount;
import org.aisen.weibo.sina.support.utils.UMengUtil;
import org.aisen.weibo.sina.ui.fragment.mention.MentionCmtsFragment;
import org.aisen.weibo.sina.ui.fragment.mention.MentionTimelineFragment;
import java.util.ArrayList;
/**
* Created by wangdan on 16/2/22.
*/
public class NotificationPagerFragment extends ATabsTabLayoutFragment<TabItem> {
public static NotificationPagerFragment newInstance(int index) {
if (index == -1) {
index = 0;
UnreadCount count = AppContext.getAccount().getUnreadCount();
if (count != null && count.getCmt() == 0) {
if (count.getMention_status() > 0) {
index = 1;
}
else if (count.getMention_cmt() > 0) {
index = 2;
}
}
}
NotificationPagerFragment fragment = new NotificationPagerFragment();
Bundle args = new Bundle();
args.putString(SET_INDEX, String.valueOf(index));
fragment.setArguments(args);
return fragment;
}
@Override
public int inflateContentView() {
return org.aisen.android.R.layout.comm_ui_tabs;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
setTabLayout((TabLayout) getActivity().findViewById(R.id.tabLayout));
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
protected ArrayList<TabItem> generateTabs() {
ArrayList<TabItem> items = new ArrayList<>();
// 收到的评论
if (AppContext.getAccount().getUnreadCount().getCmt() > 0) {
items.add(new TabItem("1", String.format(getString(R.string.notification_cmt_format), AppContext.getAccount().getUnreadCount().getCmt())));
}
else {
items.add(new TabItem("1", getString(R.string.notification_cmt)));
}
// 提及我的微博
if (AppContext.getAccount().getUnreadCount().getMention_status() > 0) {
items.add(new TabItem("3", String.format(getString(R.string.notification_mention_status_format), AppContext.getAccount().getUnreadCount().getMention_status())));
}
else {
items.add(new TabItem("3", getString(R.string.notification_mention_status)));
}
// 提及我的微博
if (AppContext.getAccount().getUnreadCount().getMention_cmt() > 0) {
items.add(new TabItem("2", String.format(getString(R.string.notification_mention_cmt_format), AppContext.getAccount().getUnreadCount().getMention_cmt())));
}
else {
items.add(new TabItem("2", getString(R.string.notification_mention_cmt)));
}
items.add(new TabItem("4", getString(R.string.notification_cmt_sendbyme)));
return items;
}
@Override
protected Fragment newFragment(TabItem bean) {
// 我收到的
if ("1".equals(bean.getType())) {
return CommentsFragment.newInstance(CommentsFragment.Type.toMe);
}
// 我发出的
else if ("4".equals(bean.getType())) {
return CommentsFragment.newInstance(CommentsFragment.Type.byMe);
}
// 提及的微博
else if ("3".equals(bean.getType())) {
return MentionTimelineFragment.newInstance();
}
// 提及的评论
else if ("2".equals(bean.getType())) {
return MentionCmtsFragment.newInstance();
}
return null;
}
@Override
public void onResume() {
super.onResume();
UMengUtil.onPageStart(getActivity(), "通知页");
IntentFilter filter = new IntentFilter();
filter.addAction(UnreadService.ACTION_UNREAD_CHANGED);
getActivity().registerReceiver(receiver, filter);
}
@Override
public void onPause() {
super.onPause();
UMengUtil.onPageEnd(getActivity(), "通知页");
getActivity().unregisterReceiver(receiver);
}
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent != null && !TextUtils.isEmpty(intent.getAction())) {
if (UnreadService.ACTION_UNREAD_CHANGED.equals(intent.getAction())) {
if (getTablayout().getTabCount() < 4)
return;
String cmtText = getString(R.string.notification_cmt);
String cmtTextFormat = String.format(getString(R.string.notification_cmt_format), AppContext.getAccount().getUnreadCount().getCmt());
TabLayout.Tab tab = getTablayout().getTabAt(0);
if (AppContext.getAccount().getUnreadCount().getCmt() == 0) {
tab.setText(cmtText);
}
else {
tab.setText(cmtTextFormat);
}
String mentionStatusText = getString(R.string.notification_mention_status);
String mentionStatusTextFormat = String.format(getString(R.string.notification_mention_status_format), AppContext.getAccount().getUnreadCount().getMention_status());
tab = getTablayout().getTabAt(1);
if (AppContext.getAccount().getUnreadCount().getMention_status() == 0) {
tab.setText(mentionStatusText);
}
else {
tab.setText(mentionStatusTextFormat);
}
String mentionCmtText = getString(R.string.notification_mention_cmt);
String mentionCmtTextFormat = String.format(getString(R.string.notification_mention_cmt_format), AppContext.getAccount().getUnreadCount().getMention_cmt());
tab = getTablayout().getTabAt(2);
if (AppContext.getAccount().getUnreadCount().getMention_cmt() == 0) {
tab.setText(mentionCmtText);
}
else {
tab.setText(mentionCmtTextFormat);
}
}
}
}
};
}