From ee2bb0883ac789e347bde11c1b21deec104cdac4 Mon Sep 17 00:00:00 2001 From: cmclark00 Date: Thu, 27 Mar 2025 18:37:22 -0400 Subject: [PATCH 01/13] Add reset stats functionality to stats screen with confirmation dialog --- .../main/java/com/mintris/StatsActivity.kt | 18 ++++++++++++++++ .../java/com/mintris/model/StatsManager.kt | 21 +++++++++++++++++++ app/src/main/res/layout/activity_stats.xml | 9 ++++++++ app/src/main/res/values/strings.xml | 1 + 4 files changed, 49 insertions(+) diff --git a/app/src/main/java/com/mintris/StatsActivity.kt b/app/src/main/java/com/mintris/StatsActivity.kt index 269adb0..edcc765 100644 --- a/app/src/main/java/com/mintris/StatsActivity.kt +++ b/app/src/main/java/com/mintris/StatsActivity.kt @@ -3,6 +3,7 @@ package com.mintris import android.os.Bundle import android.widget.Button import android.widget.TextView +import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatActivity import com.mintris.databinding.ActivityStatsBinding import com.mintris.model.StatsManager @@ -25,9 +26,26 @@ class StatsActivity : AppCompatActivity() { finish() } + // Set up reset stats button + binding.resetStatsButton.setOnClickListener { + showResetConfirmationDialog() + } + updateStats() } + private fun showResetConfirmationDialog() { + AlertDialog.Builder(this) + .setTitle("Reset Stats") + .setMessage("Are you sure you want to reset all your stats? This cannot be undone.") + .setPositiveButton("Reset") { _, _ -> + statsManager.resetStats() + updateStats() + } + .setNegativeButton("Cancel", null) + .show() + } + private fun updateStats() { // Format time duration val timeFormat = SimpleDateFormat("HH:mm:ss", Locale.getDefault()) diff --git a/app/src/main/java/com/mintris/model/StatsManager.kt b/app/src/main/java/com/mintris/model/StatsManager.kt index 3a3eae7..cc5272f 100644 --- a/app/src/main/java/com/mintris/model/StatsManager.kt +++ b/app/src/main/java/com/mintris/model/StatsManager.kt @@ -157,6 +157,27 @@ class StatsManager(context: Context) { fun getSessionTriples(): Int = sessionTriples fun getSessionTetrises(): Int = sessionTetrises + fun resetStats() { + // Reset all lifetime stats + totalGames = 0 + totalScore = 0 + totalLines = 0 + totalPieces = 0 + totalTime = 0 + maxLevel = 0 + maxScore = 0 + maxLines = 0 + + // Reset line clear stats + totalSingles = 0 + totalDoubles = 0 + totalTriples = 0 + totalTetrises = 0 + + // Save the reset stats + saveStats() + } + companion object { private const val PREFS_NAME = "mintris_stats" private const val KEY_TOTAL_GAMES = "total_games" diff --git a/app/src/main/res/layout/activity_stats.xml b/app/src/main/res/layout/activity_stats.xml index 66ecff7..460226a 100644 --- a/app/src/main/res/layout/activity_stats.xml +++ b/app/src/main/res/layout/activity_stats.xml @@ -143,5 +143,14 @@ android:background="@color/transparent" android:layout_marginTop="16dp"/> +