@@ -20,6 +20,9 @@ interface SettingsRepository {
2020 val bluetoothSstEnabled: Flow <Boolean >
2121 suspend fun setBluetoothSstEnabled (enabled : Boolean )
2222
23+ val mediaButtonTriggerEnabled: Flow <Boolean >
24+ suspend fun setMediaButtonTriggerEnabled (enabled : Boolean )
25+
2326 val sstLanguage: Flow <String >
2427 suspend fun setSstLanguage (language : String )
2528
@@ -39,6 +42,7 @@ class SettingsRepositoryImpl @Inject constructor(
3942 const val KEY_NUDGE_NOTIFICATIONS = " nudge_notifications_enabled"
4043 const val KEY_NAGGING_NOTIFICATIONS = " nagging_notifications_enabled"
4144 const val KEY_BLUETOOTH_SST_ENABLED = " bluetooth_sst_enabled"
45+ const val KEY_MEDIA_BUTTON_TRIGGER = " media_button_trigger_enabled"
4246 const val KEY_SST_LANGUAGE = " sst_language"
4347 const val KEY_API_KEY = " gemini_api_key"
4448 }
@@ -50,7 +54,6 @@ class SettingsRepositoryImpl @Inject constructor(
5054 }
5155 }
5256 prefs.registerOnSharedPreferenceChangeListener(listener)
53- // Send initial value
5457 trySend(prefs.getBoolean(KEY_NUDGE_NOTIFICATIONS , true ))
5558 awaitClose { prefs.unregisterOnSharedPreferenceChangeListener(listener) }
5659 }
@@ -95,6 +98,23 @@ class SettingsRepositoryImpl @Inject constructor(
9598 }
9699 }
97100
101+ override val mediaButtonTriggerEnabled: Flow <Boolean > = callbackFlow {
102+ val listener = SharedPreferences .OnSharedPreferenceChangeListener { _, key ->
103+ if (key == KEY_MEDIA_BUTTON_TRIGGER ) {
104+ trySend(prefs.getBoolean(KEY_MEDIA_BUTTON_TRIGGER , false ))
105+ }
106+ }
107+ prefs.registerOnSharedPreferenceChangeListener(listener)
108+ trySend(prefs.getBoolean(KEY_MEDIA_BUTTON_TRIGGER , false ))
109+ awaitClose { prefs.unregisterOnSharedPreferenceChangeListener(listener) }
110+ }
111+
112+ override suspend fun setMediaButtonTriggerEnabled (enabled : Boolean ) {
113+ prefs.edit {
114+ putBoolean(KEY_MEDIA_BUTTON_TRIGGER , enabled)
115+ }
116+ }
117+
98118 override val sstLanguage: Flow <String > = callbackFlow {
99119 val listener = SharedPreferences .OnSharedPreferenceChangeListener { _, key ->
100120 if (key == KEY_SST_LANGUAGE ) {
@@ -119,7 +139,6 @@ class SettingsRepositoryImpl @Inject constructor(
119139 }
120140 }
121141 prefs.registerOnSharedPreferenceChangeListener(listener)
122- // Send initial value
123142 trySend(prefs.getString(KEY_API_KEY , " " ) ? : " " )
124143 awaitClose { prefs.unregisterOnSharedPreferenceChangeListener(listener) }
125144 }
0 commit comments