package io.kaif.mobile.view;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import javax.inject.Inject;
import butterknife.BindView;
import butterknife.ButterKnife;
import io.kaif.mobile.KaifApplication;
import io.kaif.mobile.R;
import io.kaif.mobile.app.BaseFragment;
import io.kaif.mobile.view.daemon.AccountDaemon;
import io.kaif.mobile.view.daemon.FeedDaemon;
import io.kaif.mobile.view.drawable.NewsFeedBadgeDrawable;
public class HomeFragment extends BaseFragment {
public static HomeFragment newInstance() {
return new HomeFragment();
}
@BindView(R.id.sliding_tabs)
TabLayout slidingTabLayout;
@BindView(R.id.view_pager)
ViewPager viewPager;
@Inject
AccountDaemon accountDaemon;
@Inject
FeedDaemon feedDaemon;
private NewsFeedBadgeDrawable newsFeedBadgeDrawable;
public HomeFragment() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
KaifApplication.getInstance().beans().inject(this);
setHasOptionsMenu(true);
newsFeedBadgeDrawable = new NewsFeedBadgeDrawable(getResources());
}
@Override
public void onResume() {
super.onResume();
bind(feedDaemon.newsUnreadCount()).subscribe(newsFeedBadgeDrawable::changeCount, ignoreEx -> {
});
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_home, menu);
MenuItem newsFeedAction = menu.findItem(R.id.action_news_feed);
newsFeedAction.setIcon(newsFeedBadgeDrawable);
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_sign_out) {
accountDaemon.signOut();
return true;
}
if (id == R.id.action_news_feed) {
startActivity(new NewsFeedActivity.NewsFeedActivityIntent(getActivity()));
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_home, container, false);
ButterKnife.bind(this, view);
viewPager.setAdapter(new HomePagerAdapter(getActivity(), getFragmentManager()));
viewPager.setOffscreenPageLimit(2);
slidingTabLayout.setBackgroundColor(getResources().getColor(R.color.kaif_blue));
slidingTabLayout.setupWithViewPager(viewPager);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(slidingTabLayout));
return view;
}
}