Skip to content
Merged
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,18 @@ Rules:

---

## [0.17.0-beta.1] - 2026-05-31

### Added
- **Settings — Export Data full-page screen** — "Export Data" now opens a dedicated scrollable full-page screen (replacing the cropped `AlertDialog`). All options — date range presets, include/exclude toggles, JSON/CSV format selection — are fully accessible with a sticky Export button at the bottom.
- **Widgets — Quick Log category picker** — users can now choose which specific categories appear in the Quick Log (4×2) widget (up to 4). If none are selected the first four active categories are shown automatically, preserving previous behaviour.
- **Widgets — Status widget privacy opt-in** — the "Show data when PIN is set" toggle is now always visible in the Widgets settings sub-screen, with clear explanatory copy. It is disabled (with a hint) when no PIN is set, so users know the option exists before they set one.

### Changed
- **Settings — section header spacing** — top padding on section headers reduced from 20 dp to 12 dp for a slightly denser layout; touch-target sizes are unaffected (accessibility-safe).

---

## [0.16.1-beta.1] - 2026-05-31

### Changed
Expand Down
4 changes: 2 additions & 2 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ android {
applicationId = "com.mapgie.goflo"
minSdk = 26
targetSdk = 34
versionCode = 49
versionName = "0.16.1-beta.1"
versionCode = 50
versionName = "0.17.0-beta.1"
}

signingConfigs {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,11 @@ data class AppPreferences(
val dashboardEnabled: Boolean = false,
/** JSON-encoded list of pinned stat combos. */
val pinnedStats: String = "",
/**
* Comma-separated TrackingCategory IDs to show in the Quick Log (4×2) widget.
* Empty string means "auto" — the first four active categories by displayOrder.
*/
val widgetCategoryIds: String = "",
)

class AppPreferencesStore(private val context: Context) {
Expand All @@ -89,6 +94,7 @@ class AppPreferencesStore(private val context: Context) {
val WIDGET_DATA_VISIBLE = booleanPreferencesKey("widget_data_visible")
val DASHBOARD_ENABLED = booleanPreferencesKey("dashboard_enabled")
val PINNED_STATS = stringPreferencesKey("pinned_stats")
val WIDGET_CATEGORY_IDS = stringPreferencesKey("widget_category_ids")
}

val preferences: Flow<AppPreferences> = context.dataStore.data.map { prefs ->
Expand All @@ -105,6 +111,7 @@ class AppPreferencesStore(private val context: Context) {
widgetDataVisible = prefs[Keys.WIDGET_DATA_VISIBLE] ?: false,
dashboardEnabled = prefs[Keys.DASHBOARD_ENABLED] ?: false,
pinnedStats = prefs[Keys.PINNED_STATS] ?: "",
widgetCategoryIds = prefs[Keys.WIDGET_CATEGORY_IDS] ?: "",
reminder = ReminderSettings(
preperiodEnabled = prefs[Keys.PREPERIOD_ENABLED] ?: false,
preperiodDaysBefore = prefs[Keys.PREPERIOD_DAYS] ?: 2,
Expand Down Expand Up @@ -201,4 +208,8 @@ class AppPreferencesStore(private val context: Context) {
suspend fun setPinnedStats(json: String) {
context.dataStore.edit { it[Keys.PINNED_STATS] = json }
}

suspend fun setWidgetCategoryIds(ids: String) {
context.dataStore.edit { it[Keys.WIDGET_CATEGORY_IDS] = ids }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ fun ExportOptionsDialog(

@OptIn(ExperimentalMaterial3Api::class)
@Composable
private fun ExportDatePickerDialog(
internal fun ExportDatePickerDialog(
initial: LocalDate,
minDate: LocalDate? = null,
onConfirm: (LocalDate) -> Unit,
Expand Down
Loading
Loading