diff --git a/app/src/main/java/com/theayushyadav11/MessEase/MainActivity.kt b/app/src/main/java/com/theayushyadav11/MessEase/MainActivity.kt index 6409800..99a9a60 100644 --- a/app/src/main/java/com/theayushyadav11/MessEase/MainActivity.kt +++ b/app/src/main/java/com/theayushyadav11/MessEase/MainActivity.kt @@ -367,8 +367,22 @@ class MainActivity : AppCompatActivity() { mess.log("Setting alarms: Breakfast ${times[0]}, Lunch ${times[1]}, " + "Snack ${times[2]}, Dinner ${times[3]}") + val enabledStates = listOf( + mess.isMealEnabled("bt_enabled"), + mess.isMealEnabled("lt_enabled"), + mess.isMealEnabled("st_enabled"), + mess.isMealEnabled("dt_enabled") + ) + for (i in times.indices) { - scheduleAlarm(i, times[i], intent) + cancelAllAlarms(this, i) + } + + + for (i in times.indices) { + if (enabledStates[i]) { + scheduleAlarm(i, times[i], intent) + } } } catch (e: Exception) { mess.log("Error setting alarms: ${e.message}") diff --git a/app/src/main/java/com/theayushyadav11/MessEase/ui/more/SettingsActivity.kt b/app/src/main/java/com/theayushyadav11/MessEase/ui/more/SettingsActivity.kt index 936c881..68a2887 100644 --- a/app/src/main/java/com/theayushyadav11/MessEase/ui/more/SettingsActivity.kt +++ b/app/src/main/java/com/theayushyadav11/MessEase/ui/more/SettingsActivity.kt @@ -3,7 +3,10 @@ package com.theayushyadav11.MessEase.ui.more import android.app.TimePickerDialog import android.graphics.Color import android.os.Bundle +import android.widget.Switch +import android.widget.TextView import android.widget.Toast +import android.view.View import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.widget.Toolbar import com.theayushyadav11.MessEase.databinding.ActivitySettingsBinding @@ -13,7 +16,11 @@ import java.util.Calendar class SettingsActivity : AppCompatActivity() { private lateinit var binding:ActivitySettingsBinding private lateinit var mess:Mess + + private val tempStates = mutableMapOf() + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) binding= ActivitySettingsBinding.inflate(layoutInflater) setContentView(binding.root) @@ -21,6 +28,14 @@ class SettingsActivity : AppCompatActivity() { setUpToolBar() initialise() listeners() + setupToggle("bt_enabled", binding.switchBreakfast, binding.timeb, binding.pickb) + setupToggle("lt_enabled", binding.switchLunch, binding.timel, binding.pickl) + setupToggle("st_enabled", binding.switchSnacks, binding.times, binding.picks) + setupToggle("dt_enabled", binding.switchDinner, binding.timed, binding.pickd) + tempStates["bt_enabled"] = mess.isMealEnabled("bt_enabled") + tempStates["lt_enabled"] = mess.isMealEnabled("lt_enabled") + tempStates["st_enabled"] = mess.isMealEnabled("st_enabled") + tempStates["dt_enabled"] = mess.isMealEnabled("dt_enabled") } @@ -34,7 +49,12 @@ class SettingsActivity : AppCompatActivity() { fun listeners() { - val b= mutableListOf("07:30","12:0","16:30","19:0") + val b = mutableListOf( + mess.get("bt","7:30"), + mess.get("lt","12:0"), + mess.get("st","16:30"), + mess.get("dt","19:0") + ) binding.pickb.setOnClickListener{ showTimePicker(0, 0, 10, 0) {it,p-> binding.timeb.text = it @@ -67,8 +87,13 @@ class SettingsActivity : AppCompatActivity() { mess.save("st",b[2]) mess.save("dt",b[3]) mess.log(b) - mess.toast("Timings Updated") //cancelAllAlarms(this@SettingsActivity) + mess.setMealEnabled("bt_enabled", tempStates["bt_enabled"]!!) + mess.setMealEnabled("lt_enabled", tempStates["lt_enabled"]!!) + mess.setMealEnabled("st_enabled", tempStates["st_enabled"]!!) + mess.setMealEnabled("dt_enabled", tempStates["dt_enabled"]!!) + + mess.toast("Settings Updated") finish() } @@ -131,4 +156,33 @@ class SettingsActivity : AppCompatActivity() { val formattedTime = timeFormat.format(selectedTime.time) return formattedTime } + private fun setupToggle( + key: String, + switch: Switch, + timeView: TextView, + picker: View + ) { + val isEnabled = mess.isMealEnabled(key) + switch.isChecked = isEnabled + + updateUIState(isEnabled, timeView, picker) + + switch.setOnCheckedChangeListener { _, checked -> + tempStates[key] = checked + updateUIState(checked, timeView, picker) + } + } + + private fun updateUIState( + isEnabled: Boolean, + timeView: TextView, + picker: View + ) { + timeView.alpha = if (isEnabled) 1f else 0.4f + picker.alpha = if (isEnabled) 1f else 0.4f + picker.isEnabled = isEnabled + } + + + } \ No newline at end of file diff --git a/app/src/main/java/com/theayushyadav11/MessEase/utils/Mess.kt b/app/src/main/java/com/theayushyadav11/MessEase/utils/Mess.kt index 712c96d..f6942a4 100644 --- a/app/src/main/java/com/theayushyadav11/MessEase/utils/Mess.kt +++ b/app/src/main/java/com/theayushyadav11/MessEase/utils/Mess.kt @@ -587,6 +587,14 @@ class Mess(context: Context) { return get("isSkipped","false").toBoolean() } + fun setMealEnabled(key: String, value: Boolean) { + sharedPreferences.edit().putBoolean(key, value).apply() + } + + fun isMealEnabled(key: String): Boolean { + return sharedPreferences.getBoolean(key, true) + } + } diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 2400b41..2e3150b 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -75,6 +75,14 @@ android:textStyle="bold" app:layout_constraintStart_toEndOf="@id/v" app:layout_constraintTop_toTopOf="parent" /> + + + + #1972f0 #82B5FE #cfd8df - #2E2D2D #131313 #a0a0a2 + #3B82F6 + #1E3A8A + #FBBF24 + #78350F + #0F172A + #1E293B + #F9FAFB + #94A3B8 + #334155 + #F87171 + \ No newline at end of file diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index 139254d..46bffb0 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -1,16 +1,24 @@ -