feat: Add NotificationSettings

This commit is contained in:
Myzel394 2023-10-23 12:50:27 +02:00
parent fe443d7435
commit 01a6f49b77
No known key found for this signature in database
GPG Key ID: 50098FCA22080F0F
2 changed files with 48 additions and 0 deletions

View File

@ -3,6 +3,7 @@ package app.myzel394.alibi.db
import android.media.MediaRecorder
import android.os.Build
import android.util.Log
import app.myzel394.alibi.R
import com.arthenica.ffmpegkit.FFmpegKit
import com.arthenica.ffmpegkit.ReturnCode
import kotlinx.serialization.Serializable
@ -14,6 +15,7 @@ import java.time.format.DateTimeFormatter.ISO_DATE_TIME
@Serializable
data class AppSettings(
val audioRecorderSettings: AudioRecorderSettings = AudioRecorderSettings(),
val notificationSettings: NotificationSettings = NotificationSettings.fromPreset(NotificationSettings.Preset.Default),
val hasSeenOnboarding: Boolean = false,
val showAdvancedSettings: Boolean = false,
val theme: Theme = Theme.SYSTEM,
@ -470,3 +472,46 @@ data class AudioRecorderSettings(
}
}
}
@Serializable
data class NotificationSettings(
val title: String,
val message: String,
val showOngoing: Boolean,
val preset: Preset? = null,
) {
@Serializable
sealed class Preset(
val titleID: Int,
val messageID: Int,
val showOngoing: Boolean,
) {
data object Default : Preset(
R.string.ui_audioRecorder_state_recording_title,
R.string.ui_audioRecorder_state_recording_description,
true,
)
data object Weather : Preset(
R.string.ui_audioRecorder_state_recording_fake_weather_title,
R.string.ui_audioRecorder_state_recording_fake_weather_description,
false,
)
data object Player : Preset(
R.string.ui_audioRecorder_state_recording_fake_weather_title,
R.string.ui_audioRecorder_state_recording_fake_weather_description,
false,
)
}
companion object {
fun fromPreset(preset: Preset): NotificationSettings {
return NotificationSettings(
title = "",
message = "",
showOngoing = preset.showOngoing,
preset = preset,
)
}
}
}

View File

@ -28,8 +28,11 @@
<string name="ui_audioRecorder_action_start_description">Alibi will continue recording in the background and store the last <xliff:g name="durationInMinutes">%s</xliff:g> minutes at your request</string>
<string name="ui_audioRecorder_action_save_processing_dialog_title">Processing</string>
<string name="ui_audioRecorder_action_save_processing_dialog_description">Processing Audio, do not close Alibi! You will be automatically prompted to save the file once it\'s ready</string>
<string name="ui_audioRecorder_state_recording_title">Recording Audio</string>
<string name="ui_audioRecorder_state_recording_description">Alibi keeps recording in the background</string>
<string name="ui_audioRecorder_state_recording_fake_weather_title">Current Weather</string>
<string name="ui_audioRecorder_state_recording_fake_weather_description">14° with light chance of rain</string>
<string name="ui_welcome_explanation_title">Welcome to Alibi!</string>
<string name="ui_welcome_explanation_message">Alibi is like a dashcam for your phone. It allows you to record your audio continuously and save the last 30 minutes when you need it.</string>