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.text.TextUtils; import android.view.Menu; import android.view.MenuItem; import com.boardgamegeek.R; import com.boardgamegeek.events.PlaySelectedEvent; import com.boardgamegeek.events.PlaysCountChangedEvent; import com.boardgamegeek.provider.BggContract; import com.boardgamegeek.util.ActivityUtils; import com.boardgamegeek.util.ToolbarUtils; import org.greenrobot.eventbus.Subscribe; import hugo.weaving.DebugLog; import icepick.Icepick; import icepick.State; public class GamePlaysActivity extends SimpleSinglePaneActivity { private int gameId; private String gameName; @State int playCount = -1; @DebugLog @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Icepick.restoreInstanceState(this, savedInstanceState); gameId = BggContract.Games.getGameId(getIntent().getData()); gameName = getIntent().getStringExtra(ActivityUtils.KEY_GAME_NAME); if (!TextUtils.isEmpty(gameName)) { ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.setSubtitle(gameName); } } } @DebugLog @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); Icepick.saveInstanceState(this, outState); } @DebugLog @Override protected Fragment onCreatePane(Intent intent) { return new PlaysFragment(); } @Override protected int getOptionsMenuId() { return R.menu.text_only; } @Override public boolean onPrepareOptionsMenu(Menu menu) { String countDescription = playCount <= 0 ? "" : String.valueOf(playCount); ToolbarUtils.setActionBarText(menu, R.id.menu_text, countDescription); return super.onPrepareOptionsMenu(menu); } @DebugLog @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: ActivityUtils.navigateUpToGame(this, gameId, gameName); finish(); return true; } return super.onOptionsItemSelected(item); } @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(); } }