X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/FreeShisen/blobdiff_plain/92b19250a620252d642c0abaf8dd3d733c299f3d..48a7d75f533782c3ec73ed3c4973390200e9b7d3:/src/de/cwde/freeshisen/HighscoreActivity.java diff --git a/src/de/cwde/freeshisen/HighscoreActivity.java b/src/de/cwde/freeshisen/HighscoreActivity.java index 9caf497..bf94458 100644 --- a/src/de/cwde/freeshisen/HighscoreActivity.java +++ b/src/de/cwde/freeshisen/HighscoreActivity.java @@ -1,18 +1,108 @@ package de.cwde.freeshisen; import android.os.Bundle; +import android.preference.PreferenceManager; import android.view.View; +import android.widget.TextView; import android.app.Activity; +import android.app.AlertDialog; +import android.content.DialogInterface; +import android.content.SharedPreferences; +import android.content.SharedPreferences.OnSharedPreferenceChangeListener; -public class HighscoreActivity extends Activity { +public class HighscoreActivity extends Activity implements +OnSharedPreferenceChangeListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.highscore); + updateTextViews(); + + PreferenceManager.getDefaultSharedPreferences(this) + .registerOnSharedPreferenceChangeListener(this); + } + + @Override + protected void onResume() { + super.onResume(); + PreferenceManager.getDefaultSharedPreferences(this) + .registerOnSharedPreferenceChangeListener(this); + } + + @Override + protected void onPause() { + super.onPause(); + PreferenceManager.getDefaultSharedPreferences(this) + .unregisterOnSharedPreferenceChangeListener(this); + } + + public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, + String key) { + updateTextViews(); + } + + private void updateTextViews() { + // argh... + SharedPreferences sp = PreferenceManager + .getDefaultSharedPreferences(this); + fillTextView(sp, R.id.textViewHL1, "hiscore_HL1"); + fillTextView(sp, R.id.textViewHL2, "hiscore_HL2"); + fillTextView(sp, R.id.textViewHM1, "hiscore_HM1"); + fillTextView(sp, R.id.textViewHM2, "hiscore_HM2"); + fillTextView(sp, R.id.textViewHS1, "hiscore_HS1"); + fillTextView(sp, R.id.textViewHS2, "hiscore_HS2"); + fillTextView(sp, R.id.textViewEL1, "hiscore_EL1"); + fillTextView(sp, R.id.textViewEL2, "hiscore_EL2"); + fillTextView(sp, R.id.textViewEM1, "hiscore_EM1"); + fillTextView(sp, R.id.textViewEM2, "hiscore_EM2"); + fillTextView(sp, R.id.textViewES1, "hiscore_ES1"); + fillTextView(sp, R.id.textViewES2, "hiscore_ES2"); + } + + private void fillTextView(SharedPreferences sp, int id, String key) { + TextView tv = (TextView) findViewById(id); + tv.setText(sp.getString(key, "9:99:99")); } public void clearHiscore(View view) { - // TODO + AlertDialog.Builder builder = new AlertDialog.Builder(this); + + builder.setMessage(R.string.clearhiscore_confirm_text); + builder.setTitle(R.string.clearhiscore_confirm_title); + + builder.setPositiveButton(android.R.string.ok, + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + // User clicked OK button - delete hiscores + SharedPreferences sp = PreferenceManager + .getDefaultSharedPreferences(((AlertDialog) dialog) + .getContext()); + SharedPreferences.Editor editor = sp.edit(); + editor.remove("hiscore_HL1"); + editor.remove("hiscore_HL2"); + editor.remove("hiscore_HM1"); + editor.remove("hiscore_HM2"); + editor.remove("hiscore_HS1"); + editor.remove("hiscore_HS2"); + editor.remove("hiscore_EL1"); + editor.remove("hiscore_EL2"); + editor.remove("hiscore_EM1"); + editor.remove("hiscore_EM2"); + editor.remove("hiscore_ES1"); + editor.remove("hiscore_ES2"); + editor.commit(); + } + }); + builder.setNegativeButton(android.R.string.cancel, + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + // User cancelled the dialog - nothing to do + } + }); + + AlertDialog dialog = builder.create(); + dialog.show(); + updateTextViews(); } }