package com.boardgamegeek.ui; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v7.app.ActionBar; import android.view.Menu; import com.boardgamegeek.R; import com.boardgamegeek.events.PlaySelectedEvent; import com.boardgamegeek.events.PlaysCountChangedEvent; import com.boardgamegeek.events.PlaysFilterChangedEvent; import com.boardgamegeek.events.PlaysSortChangedEvent; import com.boardgamegeek.util.ActivityUtils; import com.boardgamegeek.util.ToolbarUtils; import com.crashlytics.android.answers.Answers; import com.crashlytics.android.answers.ContentViewEvent; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; import hugo.weaving.DebugLog; public class PlaysActivity extends SimpleSinglePaneActivity { private int playCount; private String sortName; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (savedInstanceState == null) { Answers.getInstance().logContentView(new ContentViewEvent().putContentType("Plays")); } } @Override protected Fragment onCreatePane(Intent intent) { return new PlaysFragment(); } @Override protected int getOptionsMenuId() { return R.menu.plays; } @Override public boolean onPrepareOptionsMenu(Menu menu) { boolean hide = playCount <= 0; ToolbarUtils.setActionBarText(menu, R.id.menu_list_count, hide ? "" : String.format("%,d", playCount), hide ? "" : sortName); return super.onPrepareOptionsMenu(menu); } @SuppressWarnings("unused") @DebugLog @Subscribe public void onEvent(PlaySelectedEvent event) { ActivityUtils.startPlayActivity(this, event); } @SuppressWarnings("unused") @DebugLog @Subscribe(sticky = true) public void onEvent(PlaysCountChangedEvent event) { playCount = event.getCount(); supportInvalidateOptionsMenu(); } @SuppressWarnings("unused") @DebugLog @Subscribe(threadMode = ThreadMode.MAIN, sticky = true) public void onEvent(PlaysFilterChangedEvent event) { final ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { if (event.getType() == PlaysFragment.FILTER_TYPE_STATUS_ALL) { actionBar.setSubtitle(""); } else { actionBar.setSubtitle(event.getDescription()); } } } @SuppressWarnings("unused") @DebugLog @Subscribe(sticky = true) public void onEvent(PlaysSortChangedEvent event) { sortName = event.getDescription(); supportInvalidateOptionsMenu(); } }