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.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 hugo.weaving.DebugLog; public class BuddyPlaysActivity extends SimpleSinglePaneActivity { private String buddyName; private int numberOfPlays = -1; @DebugLog @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); buddyName = getIntent().getStringExtra(ActivityUtils.KEY_BUDDY_NAME); if (!TextUtils.isEmpty(buddyName)) { ActionBar bar = getSupportActionBar(); if (bar != null) { bar.setSubtitle(buddyName); } } if (savedInstanceState == null) { Answers.getInstance().logContentView(new ContentViewEvent() .putContentType("BuddyPlays") .putContentId(buddyName)); } } @DebugLog @Override protected Fragment onCreatePane(Intent intent) { return new PlaysFragment(); } @Override protected Bundle onBeforeArgumentsSet(Bundle arguments) { arguments.putInt(PlaysFragment.KEY_MODE, PlaysFragment.MODE_BUDDY); return arguments; } @Override protected int getOptionsMenuId() { return R.menu.text_only; } @Override public boolean onPrepareOptionsMenu(Menu menu) { String countDescription = numberOfPlays <= 0 ? "" : String.valueOf(numberOfPlays); 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.navigateUpToBuddy(this, buddyName); 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) { numberOfPlays = event.getCount(); supportInvalidateOptionsMenu(); } }