SettingsActivity.kt

PHOTO EMBED

Sun Feb 25 2024 20:31:26 GMT+0000 (Coordinated Universal Time)

Saved by @Meidady #kotlin

package com.example.calcapptoturial

import android.content.Intent
import android.os.Bundle
import android.widget.ArrayAdapter
import android.widget.Spinner
import android.widget.ImageButton
import android.widget.Button
import android.widget.EditText
import androidx.appcompat.app.AppCompatActivity

class SettingsActivity : AppCompatActivity() {

    private lateinit var editTextFormativeWeight: EditText
    private lateinit var editTextSummativeWeight: EditText

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.dialog_settings)

        // Initialize EditText fields
        editTextFormativeWeight = findViewById(R.id.editTextFormativeWeight)
        editTextSummativeWeight = findViewById(R.id.editTextSummativeWeight)

        // Set current weights as hints for EditText fields
        val currentFormativeWeight = intent.getDoubleExtra(EXTRA_FORMATIVE_WEIGHT, 40.0)
        val currentSummativeWeight = intent.getDoubleExtra(EXTRA_SUMMATIVE_WEIGHT, 60.0)
        editTextFormativeWeight.hint = "Current Formative Weight: $currentFormativeWeight"
        editTextSummativeWeight.hint = "Current Summative Weight: $currentSummativeWeight"

        // Set click listener for the save button
        findViewById<Button>(R.id.btnSave).setOnClickListener {
            saveWeights()
            finish() // Close the settings activity
        }

        val themeOptions = arrayOf(
            "Keller HS Light",
            "Timber Creek HS Light",
            "Fossil Ridge HS Light",
            "Keller Central HS Light",
            "Keller HS Dark",
            "Timber Creek HS Dark",
            "Fossil Ridge HS Dark",
            "Keller Central HS Dark",
            "Default (Light + Orange)"
        )

        val themeSpinner = findViewById<Spinner>(R.id.themeSpinner)
        val adapter = ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, themeOptions)
        themeSpinner.adapter = adapter

        // Find the close button
        val closeButton = findViewById<ImageButton>(R.id.btnClose)

        // Set click listener for the close button
        closeButton.setOnClickListener {
            // Close the settings activity
            finish()
        }
    }

    private fun saveWeights() {
        // Get the input values from EditText fields
        val formativeWeightInput = editTextFormativeWeight.text.toString()
        val summativeWeightInput = editTextSummativeWeight.text.toString()

        // Convert input values to doubles
        val formativeWeight = if (formativeWeightInput.isNotEmpty()) formativeWeightInput.toDouble() else 40.0
        val summativeWeight = if (summativeWeightInput.isNotEmpty()) summativeWeightInput.toDouble() else 60.0

        // Create an intent to pass the weights back to MainActivity
        val intent = Intent().apply {
            putExtra(EXTRA_FORMATIVE_WEIGHT, formativeWeight)
            putExtra(EXTRA_SUMMATIVE_WEIGHT, summativeWeight)
        }
        setResult(RESULT_OK, intent) // Set result OK to indicate successful operation
    }

    companion object {
        const val EXTRA_FORMATIVE_WEIGHT = "extra_formative_weight"
        const val EXTRA_SUMMATIVE_WEIGHT = "extra_summative_weight"
    }
}
content_copyCOPY