package com.mehtank.androminion.activities; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.os.Bundle; import android.support.v4.app.NavUtils; import android.support.v4.view.ViewPager; import android.widget.Button; import com.actionbarsherlock.app.ActionBar; import com.actionbarsherlock.app.SherlockFragmentActivity; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuInflater; import com.actionbarsherlock.view.MenuItem; import com.mehtank.androminion.R; import com.mehtank.androminion.fragments.AchievementsFragment; import com.mehtank.androminion.fragments.WinlossFragment; import com.mehtank.androminion.util.Achievements; import com.mehtank.androminion.util.ThemeSetter; import com.mehtank.androminion.util.compat.TabsAdapter; /** * This activity just shows two tabs: statistics and achievements. * * Rewrite to support actionbar, tabs and swipe gestures (backwards compatible * to API8). */ public class StatisticsActivity extends SherlockFragmentActivity { @SuppressWarnings("unused") private static final String TAG = "StatisticsActivity"; private ViewPager mViewPager; private TabsAdapter mTabsAdapter; @Override protected void onCreate(Bundle savedInstanceState) { ThemeSetter.setTheme(this, true); ThemeSetter.setLanguage(this); super.onCreate(savedInstanceState); mViewPager = new ViewPager(this); mViewPager.setId(R.id.combinedstats_pager); setContentView(mViewPager); ActionBar bar = getSupportActionBar(); bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); bar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE); bar.setDisplayHomeAsUpEnabled(true); bar.setDisplayShowTitleEnabled(true); bar.setTitle(R.string.statisticsactivity_title); mTabsAdapter = new TabsAdapter(this, mViewPager); ActionBar.Tab statsTab = bar.newTab().setText(R.string.win_loss_menu) .setIcon(android.R.drawable.ic_menu_myplaces); mTabsAdapter.addTab(statsTab, WinlossFragment.class, null); ActionBar.Tab achievementsTab = bar.newTab() .setText(R.string.achievements_menu) .setIcon(android.R.drawable.ic_menu_agenda); mTabsAdapter.addTab(achievementsTab, AchievementsFragment.class, null); } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getSupportMenuInflater(); inflater.inflate(R.menu.activity_statistics, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == android.R.id.home){ NavUtils.navigateUpFromSameTask(this); } else if (id == R.id.resetstatistics_menu) { buildResetDialog(this).show(); } else { return super.onOptionsItemSelected(item); } return true; } private AlertDialog buildResetDialog(final Context context) { final boolean[] choices = { true, true }; class choiceListenerClass implements DialogInterface.OnMultiChoiceClickListener, OnClickListener { private boolean resetStats = choices[0]; private boolean resetAchievements = choices[1]; private AlertDialog mDialog; @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { if (which == 0) { resetStats = isChecked; } else if (which == 1) { resetAchievements = isChecked; } Button ResetButton = mDialog .getButton(DialogInterface.BUTTON_POSITIVE); if (resetStats || resetAchievements) { ResetButton.setEnabled(true); } else { ResetButton.setEnabled(false); } } @Override public void onClick(DialogInterface dialog, int i) { final Achievements achievements = new Achievements(context); if (resetStats) { achievements.resetStats(); } if (resetAchievements) { achievements.resetAchievements(); } } public void setDialog(AlertDialog dialog) { mDialog = dialog; } } ; final choiceListenerClass choiceListener = new choiceListenerClass(); AlertDialog.Builder builder = new AlertDialog.Builder(context) .setTitle(R.string.reset) .setNegativeButton(android.R.string.cancel, null) .setMultiChoiceItems(R.array.reset_choices, choices, choiceListener) .setPositiveButton(R.string.reset, choiceListener); AlertDialog dialog = builder.create(); choiceListener.setDialog(dialog); return dialog; } @Override public void onResume() { super.onResume(); ThemeSetter.setTheme(this, true); ThemeSetter.setLanguage(this); } }