83 lines
3.0 KiB
Kotlin
83 lines
3.0 KiB
Kotlin
package com.example.animalrating
|
|
|
|
import android.content.Intent
|
|
import android.os.Bundle
|
|
import android.widget.ArrayAdapter
|
|
import android.widget.Button
|
|
import android.widget.SeekBar
|
|
import android.widget.Spinner
|
|
import android.widget.TextView
|
|
import androidx.appcompat.app.AppCompatActivity
|
|
|
|
class HomeActivity : AppCompatActivity() {
|
|
|
|
companion object {
|
|
const val ALGORITHM_HAMMING = "Hamming Distance"
|
|
const val ALGORITHM_EUCLIDEAN = "Euclidean Distance"
|
|
const val ALGORITHM_JACCARD = "Jaccard Similarity"
|
|
}
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
super.onCreate(savedInstanceState)
|
|
setContentView(R.layout.activity_home)
|
|
|
|
setupUI()
|
|
}
|
|
|
|
private fun setupUI() {
|
|
// Navigation buttons
|
|
findViewById<Button>(R.id.btnViewGallery).setOnClickListener {
|
|
startActivity(Intent(this, GalleryActivity::class.java))
|
|
}
|
|
|
|
findViewById<Button>(R.id.btnSelectCow).setOnClickListener {
|
|
saveSettingsAndStart()
|
|
}
|
|
|
|
// Algorithm Spinner
|
|
val spinner = findViewById<Spinner>(R.id.spinnerAlgorithm)
|
|
val algorithms = listOf(ALGORITHM_HAMMING, ALGORITHM_EUCLIDEAN, ALGORITHM_JACCARD)
|
|
val adapter = ArrayAdapter(this, android.R.layout.simple_spinner_item, algorithms)
|
|
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
|
|
spinner.adapter = adapter
|
|
|
|
// Set default selection from preferences or intent
|
|
val prefs = getSharedPreferences("AnimalRatingPrefs", MODE_PRIVATE)
|
|
val savedAlg = prefs.getString("ALGORITHM", ALGORITHM_HAMMING)
|
|
spinner.setSelection(algorithms.indexOf(savedAlg))
|
|
|
|
// Threshold SeekBar
|
|
val seekBar = findViewById<SeekBar>(R.id.seekBarThreshold)
|
|
val tvThreshold = findViewById<TextView>(R.id.tvThresholdValue)
|
|
|
|
val savedThreshold = prefs.getInt("THRESHOLD", 75)
|
|
seekBar.progress = savedThreshold
|
|
tvThreshold.text = "$savedThreshold%"
|
|
|
|
seekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
|
|
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
|
|
tvThreshold.text = "$progress%"
|
|
}
|
|
override fun onStartTrackingTouch(seekBar: SeekBar?) {}
|
|
override fun onStopTrackingTouch(seekBar: SeekBar?) {}
|
|
})
|
|
}
|
|
|
|
private fun saveSettingsAndStart() {
|
|
val spinner = findViewById<Spinner>(R.id.spinnerAlgorithm)
|
|
val seekBar = findViewById<SeekBar>(R.id.seekBarThreshold)
|
|
|
|
val selectedAlgorithm = spinner.selectedItem.toString()
|
|
val threshold = seekBar.progress
|
|
|
|
// Save to preferences
|
|
val prefs = getSharedPreferences("AnimalRatingPrefs", MODE_PRIVATE)
|
|
prefs.edit().apply {
|
|
putString("ALGORITHM", selectedAlgorithm)
|
|
putInt("THRESHOLD", threshold)
|
|
apply()
|
|
}
|
|
|
|
startActivity(Intent(this, CowSelectionActivity::class.java))
|
|
}
|
|
} |