From 5a43287b11aa26e78a39de79bac717359105e1b6 Mon Sep 17 00:00:00 2001 From: siddhigupta075 Date: Sat, 11 Apr 2026 04:37:41 +0530 Subject: [PATCH 1/6] feat: add per-meal notification toggle --- .../theayushyadav11/MessEase/MainActivity.kt | 13 ++++++- .../MessEase/ui/more/SettingsActivity.kt | 36 +++++++++++++++++++ .../theayushyadav11/MessEase/utils/Mess.kt | 8 +++++ app/src/main/res/layout/activity_settings.xml | 32 +++++++++++++++++ 4 files changed, 88 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/theayushyadav11/MessEase/MainActivity.kt b/app/src/main/java/com/theayushyadav11/MessEase/MainActivity.kt index 6409800..5e4862d 100644 --- a/app/src/main/java/com/theayushyadav11/MessEase/MainActivity.kt +++ b/app/src/main/java/com/theayushyadav11/MessEase/MainActivity.kt @@ -367,8 +367,19 @@ 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) + if (enabledStates[i]) { + scheduleAlarm(i, times[i], intent) + } else { + cancelAllAlarms(this, i) + } } } 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..73f8252 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 @@ -14,6 +17,7 @@ class SettingsActivity : AppCompatActivity() { private lateinit var binding:ActivitySettingsBinding private lateinit var mess:Mess override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) binding= ActivitySettingsBinding.inflate(layoutInflater) setContentView(binding.root) @@ -21,6 +25,10 @@ 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) } @@ -131,4 +139,32 @@ 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 -> + mess.setMealEnabled(key, checked) + updateUIState(checked, timeView, picker) + } + } + + private fun updateUIState( + isEnabled: Boolean, + timeView: TextView, + picker: View + ) { + timeView.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" /> + + + + Date: Sat, 11 Apr 2026 04:59:00 +0530 Subject: [PATCH 2/6] reduce the opacity of alarm icon when toggle is off --- .../com/theayushyadav11/MessEase/ui/more/SettingsActivity.kt | 1 + 1 file changed, 1 insertion(+) 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 73f8252..6c00e7a 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 @@ -162,6 +162,7 @@ class SettingsActivity : AppCompatActivity() { picker: View ) { timeView.alpha = if (isEnabled) 1f else 0.4f + picker.alpha = if (isEnabled) 1f else 0.4f picker.isEnabled = isEnabled } From 00684c764c6a03bd17e2f7c527dc023f0f79d424 Mon Sep 17 00:00:00 2001 From: siddhigupta075 Date: Sat, 11 Apr 2026 17:09:08 +0530 Subject: [PATCH 3/6] fix: resolve alarm scheduling, data overwrite and state inconsistency issues --- .../theayushyadav11/MessEase/MainActivity.kt | 7 ++++-- .../MessEase/ui/more/SettingsActivity.kt | 23 ++++++++++++++++--- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/theayushyadav11/MessEase/MainActivity.kt b/app/src/main/java/com/theayushyadav11/MessEase/MainActivity.kt index 5e4862d..99a9a60 100644 --- a/app/src/main/java/com/theayushyadav11/MessEase/MainActivity.kt +++ b/app/src/main/java/com/theayushyadav11/MessEase/MainActivity.kt @@ -374,11 +374,14 @@ class MainActivity : AppCompatActivity() { mess.isMealEnabled("dt_enabled") ) + for (i in times.indices) { + cancelAllAlarms(this, i) + } + + for (i in times.indices) { if (enabledStates[i]) { scheduleAlarm(i, times[i], intent) - } else { - cancelAllAlarms(this, i) } } } catch (e: Exception) { 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 6c00e7a..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 @@ -16,6 +16,9 @@ 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) @@ -29,6 +32,10 @@ class SettingsActivity : AppCompatActivity() { 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") } @@ -42,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 @@ -75,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() } @@ -151,7 +168,7 @@ class SettingsActivity : AppCompatActivity() { updateUIState(isEnabled, timeView, picker) switch.setOnCheckedChangeListener { _, checked -> - mess.setMealEnabled(key, checked) + tempStates[key] = checked updateUIState(checked, timeView, picker) } } From 1f9743d9ec003182363e91763192fd44d8573a76 Mon Sep 17 00:00:00 2001 From: siddhigupta075 Date: Sat, 11 Apr 2026 22:49:48 +0530 Subject: [PATCH 4/6] Apply the Dark/Light theme in the Write Review section --- app/src/main/AndroidManifest.xml | 2 +- app/src/main/res/layout/fragment_review.xml | 7 +++++-- app/src/main/res/values-night/colors.xml | 12 +++++++++++- app/src/main/res/values-night/themes.xml | 20 ++++++++++++++------ app/src/main/res/values/colors.xml | 11 ++++++++++- app/src/main/res/values/themes.xml | 20 +++++++++++++++----- 6 files changed, 56 insertions(+), 16 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8785958..9a1d43b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -46,7 +46,7 @@ #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..fb8bb82 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -1,16 +1,24 @@ - From 153eb68e7816746f82fafa7d588a66bb5611ba85 Mon Sep 17 00:00:00 2001 From: siddhigupta075 Date: Sat, 11 Apr 2026 23:22:58 +0530 Subject: [PATCH 5/6] fix: wrong change --- app/src/main/AndroidManifest.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9a1d43b..8785958 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -46,7 +46,7 @@ Date: Sat, 11 Apr 2026 23:46:53 +0530 Subject: [PATCH 6/6] fix: parent theme of night\themes.xml --- app/src/main/res/values-night/themes.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index fb8bb82..46bffb0 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -1,6 +1,6 @@ -