package com.mehtank.androminion.activities; import java.util.ArrayList; import android.app.AlertDialog; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.preference.PreferenceManager; import android.text.Html; import android.text.method.LinkMovementMethod; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.TextView; import com.actionbarsherlock.app.SherlockFragment; import com.actionbarsherlock.app.SherlockFragmentActivity; import com.mehtank.androminion.R; import com.mehtank.androminion.fragments.StartGameFragment; import com.mehtank.androminion.fragments.StartGameFragment.OnStartGameListener; import com.mehtank.androminion.util.ThemeSetter; /** * Start screen of the application, showing a menu. * */ public class MenuActivity extends SherlockFragmentActivity implements OnStartGameListener { private static final String TAG = "MenuActivity"; private boolean mTwoColums = false; // Two-Column-Layout, possibly tablet private int mState = 0; @Override protected void onCreate(Bundle savedInstanceState) { ThemeSetter.setTheme(this, true); ThemeSetter.setLanguage(this); PreferenceManager.setDefaultValues(this, R.xml.preferences, false); // Fix so Androminion doesn't crash when updating SharedPreferences pref = PreferenceManager .getDefaultSharedPreferences(this); Log.d(TAG, "Theme is set to " + pref.getString("theme", "androminion-dark")); if (pref.getString("theme", getString(R.string.pref_theme_default)).equals("androminion")) { // Settings from previous Androminion version exist Log.d(TAG, "Resetting theme setting to default value"); Editor editor = pref.edit(); editor.remove("theme"); editor.commit(); } super.onCreate(savedInstanceState); setContentView(R.layout.activity_menu); if (findViewById(R.id.fragment_content) != null) { mTwoColums = true; if (savedInstanceState == null || getSupportFragmentManager().findFragmentById( R.id.fragment_content) == null) { getSupportFragmentManager().beginTransaction() .add(R.id.fragment_content, createStartGameFragment()) .commit(); mState = R.id.but_start; } if (savedInstanceState != null) { mState = savedInstanceState.getInt("mState"); } } SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); if (!prefs.getString("LastVersion", "None").equals(getString(R.string.version))) { SharedPreferences.Editor edit = prefs.edit(); edit.putString("LastVersion", getString(R.string.version)); edit.commit(); LayoutInflater inflator = LayoutInflater.from(getApplicationContext()); View v = inflator.inflate(R.layout.fragment_whatsnew, null); TextView tv = (TextView) v.findViewById(R.id.whatsnew); tv.setText(Html.fromHtml(getString(R.string.whatsnew))); tv.setMovementMethod(LinkMovementMethod.getInstance()); new AlertDialog.Builder(this) .setView(v) .setPositiveButton(android.R.string.ok, null) .setTitle(R.string.app_name) .create() .show(); } } private SherlockFragment createStartGameFragment() { SherlockFragment f = new StartGameFragment(); if (getIntent().hasExtra("cards")) { f.setArguments(getIntent().getExtras()); } return f; } @Override protected void onSaveInstanceState(Bundle savedInstanceState) { savedInstanceState.putInt("mState", mState); super.onSaveInstanceState(savedInstanceState); } public void onClickStartGame(View view) { if (mTwoColums) { if (mState != R.id.but_start) { mState = R.id.but_start; changeFragment(createStartGameFragment()); } } else { Intent i = new Intent(this, StartGameActivity.class); if (getIntent().hasExtra("cards")) { i.putExtras(getIntent()); } startActivityForResult(i, 0); } } public void onClickStats(View view) { // if (mTwoColums) { // if (mState != R.id.but_stats) { // mState = R.id.but_stats; // changeFragment(new CombinedStatsFragment()); // } // } else { startActivity(new Intent(this, StatisticsActivity.class)); // } } public void onClickSettings(View view) { startActivity(new Intent(this, SettingsActivity.class)); } public void onClickAbout(View view) { // if(mTwoColums){ // if(mState != R.id.but_about) { // mState = R.id.but_about; // changeFragment(new AboutFragment()); // } // } else { startActivity(new Intent(this, AboutActivity.class)); // } } private void changeFragment(SherlockFragment newFragment) { getSupportFragmentManager().beginTransaction() .replace(R.id.fragment_content, newFragment).commit(); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 0 && resultCode == RESULT_OK) { Intent i = new Intent(this, GameActivity.class); i.putExtras(data); startActivity(i); } } @Override public void onStartGameClick(ArrayList<String> values) { Intent i = new Intent(this, GameActivity.class); i.putStringArrayListExtra("command", values); startActivity(i); } @Override public void onResume() { super.onResume(); ThemeSetter.setTheme(this, true); ThemeSetter.setLanguage(this); } }