package com.shvelo.guesslogo; import com.actionbarsherlock.app.SherlockActivity; import android.os.Bundle; import android.content.Intent; import android.content.res.Resources; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; import android.view.View; import com.actionbarsherlock.view.MenuItem.OnMenuItemClickListener; import android.view.View.OnClickListener; import android.widget.*; public class MainActivity extends SherlockActivity { public int brandIndex; public Brand brand; public ImageView logoImage; public Resources res; public Button variant1; public Button variant2; public Button variant3; public Button variant4; public Button nextButton; public Button restartButton; public TextView brandName; public View variants; public MenuItem menuGuessed; public MenuItem menuScore; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); res = getResources(); logoImage = (ImageView)findViewById(R.id.logoImage); variant1 = (Button)findViewById(R.id.variant1); variant2 = (Button)findViewById(R.id.variant2); variant3 = (Button)findViewById(R.id.variant3); variant4 = (Button)findViewById(R.id.variant4); nextButton = (Button)findViewById(R.id.nextButton); restartButton = (Button)findViewById(R.id.restartButton); brandName = (TextView)findViewById(R.id.brandName); variants = findViewById(R.id.variants); if(BrandManager.allGuessed() || BrandManager.size() - BrandManager.sizeGuessed() == 1) { nextButton.setVisibility(View.GONE); restartButton.setVisibility(View.VISIBLE); } variant1.setOnClickListener(new OnClickListener(){ public void onClick(View v) { checkGuess(1,v); } }); variant2.setOnClickListener(new OnClickListener(){ public void onClick(View v) { checkGuess(2,v); } }); variant3.setOnClickListener(new OnClickListener(){ public void onClick(View v) { checkGuess(3,v); } }); variant4.setOnClickListener(new OnClickListener(){ public void onClick(View v) { checkGuess(4,v); } }); nextButton.setOnClickListener(new OnClickListener(){ public void onClick(View v) { next(); } }); restartButton.setOnClickListener(new OnClickListener(){ public void onClick(View v) { restart(); } }); int intentBrand = getIntent().getIntExtra("brand", -1); if(intentBrand != -1) { startGuessing(intentBrand); } } public void checkGuess(int variant, View view) { if(brand.correct == variant) { BrandManager.updateScore(BrandManager.getScore() + 20); updateScore(); guessed(); } else { BrandManager.updateScore(BrandManager.getScore() - 5); updateScore(); view.setEnabled(false); } } public void startGuessing(int index) { brandIndex = index; brand = BrandManager.get(index); logoImage.setImageDrawable(brand.logo); variant1.setText(brand.getVariant(1)); variant2.setText(brand.getVariant(2)); variant3.setText(brand.getVariant(3)); variant4.setText(brand.getVariant(4)); brandName.setText(brand.name); if(brand.guessed) { guessed(); } } public void guessed() { BrandManager.guessed(brandIndex); brandName.setVisibility(View.VISIBLE); variants.setVisibility(View.GONE); setTitle(res.getString(R.string.guessed)); if(BrandManager.allGuessed()) { nextButton.setVisibility(View.GONE); restartButton.setVisibility(View.VISIBLE); } if(menuGuessed != null) { int total = BrandManager.size(); int totalGuessed = BrandManager.sizeGuessed(); menuGuessed.setTitle("Guessed "+String.valueOf(totalGuessed) + "/" + String.valueOf(total)); } } public void restart() { BrandManager.restart(); } public void next() { BrandManager.next(brandIndex); } @Override public boolean onCreateOptionsMenu(Menu menu) { getSupportMenuInflater().inflate(R.menu.global, menu); MenuItem menuRestart = menu.findItem(R.id.menuRestart); menuRestart.setOnMenuItemClickListener(new OnMenuItemClickListener(){ public boolean onMenuItemClick(MenuItem item) { BrandManager.restart(); return false; } }); getSupportActionBar().setDisplayHomeAsUpEnabled(true); menuGuessed = menu.findItem(R.id.menuGuessed); menuScore = menu.findItem(R.id.menuScore); updateScore(); int total = BrandManager.size(); int totalGuessed = BrandManager.sizeGuessed(); menuGuessed.setTitle("Guessed: "+String.valueOf(totalGuessed) + "/" + String.valueOf(total)); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { Intent intent; switch (item.getItemId()) { case android.R.id.home: intent = new Intent(this, LogoList.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); return true; case R.id.menuAbout: intent = new Intent(this, AboutActivity.class); startActivity(intent); return true; default: return super.onOptionsItemSelected(item); } } public void updateScore() { if(menuScore != null) { menuScore.setTitle("Score: "+ String.valueOf(BrandManager.getScore())); } } @Override public void onBackPressed() { BrandManager.showLogoList(); } }