Commit Graph
3420 Commits
Author SHA1 Message Date
Pranshul a179446126 New translations strings.xml (Chinese Simplified)
[ci skip]
2026-08-22 22:36:35 +05:30
Pranshul bf5468ea04 New translations strings.xml (Ukrainian)
[ci skip]
2026-08-22 22:36:34 +05:30
Pranshul 747527c23c New translations strings.xml (Turkish)
[ci skip]
2026-08-22 22:36:32 +05:30
Pranshul 4b47a9bcf4 New translations strings.xml (Russian)
[ci skip]
2026-08-22 22:36:31 +05:30
Pranshul 291984de32 New translations strings.xml (Portuguese)
[ci skip]
2026-08-22 22:36:30 +05:30
Pranshul b54b17872d New translations strings.xml (Dutch)
[ci skip]
2026-08-22 22:36:29 +05:30
Pranshul 2bb8549a93 New translations strings.xml (Japanese)
[ci skip]
2026-08-22 22:36:27 +05:30
Pranshul f3ae6d5563 New translations strings.xml (Hebrew)
[ci skip]
2026-08-22 22:36:26 +05:30
Pranshul 4479c43182 New translations strings.xml (Finnish)
[ci skip]
2026-08-22 22:36:25 +05:30
Pranshul 2dac241237 New translations strings.xml (Czech)
[ci skip]
2026-08-22 22:36:24 +05:30
Pranshul e9fb0ab462 New translations strings.xml (Spanish)
[ci skip]
2026-08-22 22:36:22 +05:30
reveler-hub fa651168f6 Auto-select a self-paired alert source to match the weather source
Sources like JMA, AccuWeather, Pirate Weather, and INMET (soon NWS)
serve both weather and alerts from the same provider, but alertSource
stayed NONE unless a user separately opened the alert-source picker
and picked it manually. Now, whenever a location's weather source is
set or changed to one with Capability.ALERTS, alertSource follows it
automatically - for a brand-new location and when editing an existing
one. Picking a non-self-paired weather source leaves the current
alert-source choice untouched rather than clearing it, so deliberately
mixed pairings (e.g. AccuWeather for weather, WMO for alerts) still
work.

Verified live on device: a new Japan location auto-pairs JMA for both;
switching an existing location's weather source to AccuWeather
auto-follows the alert-source tile before saving; switching back to a
non-self-paired source leaves the prior alert-source pick intact.
2026-08-23 00:34:43 +12:00
reveler-hub d59b4b7a4b Add NWS alerts (self-paired)
NWS is the recommended weather source for the US but had no alerts
capability, so US locations got zero recommended alert sources in the
Edit Location picker. NwsRepository now also implements AlertRepository
using the free, keyless /alerts/active endpoint on the same host
NwsRepository already talks to.
2026-08-22 23:58:37 +12:00
Pranshul d852fbbeea Merge pull request #1065 from reveler-hub/feature/backup-restore
Add Backup & Restore (export/import locations and settings)
2026-08-22 17:11:52 +05:30
PranshulGG d7a062edd8 remove redundant modifiers in feature sheets 2026-08-22 17:11:22 +05:30
Pranshul 90f331b824 New translations strings.xml (French)
[ci skip]
2026-08-22 16:34:12 +05:30
Pranshul dd84612797 New translations strings.xml (Chinese Simplified)
[ci skip]
2026-08-22 16:34:10 +05:30
Pranshul 61ce0712a5 New translations strings.xml (Russian)
[ci skip]
2026-08-22 16:34:09 +05:30
reveler-hubandClaude Sonnet 5 312df078c6 Reject backups without a default location, add intro-screen import
Addresses PranshulGG's review comment on #1065:
- restoreBackup() now rejects a backup with no default location instead
  of silently importing a state the app never expects.
- New "Import a backup" option on the intro screen, reusing the same
  restore path, so a fresh install can skip manual location setup.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FeA5SoK1dsP8uxkMi2qEGu
2026-08-22 17:00:45 +12:00
reveler-hubandClaude Sonnet 5 4977ff7a70 Add Backup & Restore (export/import locations and settings)
Closes #848. Lets users export their locations, units, weather block
layout, and app settings to a JSON file, and restore from one - the
old Flutter version had this and it was never ported to the Kotlin
rewrite. API keys are opt-in on export (off by default); import is a
full replace of everything except keys, which are left alone when the
file doesn't include any.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FeA5SoK1dsP8uxkMi2qEGu
2026-08-22 17:00:45 +12:00
Pranshul 0fd4423d9e New translations strings.xml (Chinese Simplified)
[ci skip]
2026-08-22 10:11:01 +05:30
Pranshul ba1108a681 New translations strings.xml (Spanish)
[ci skip]
2026-08-22 10:10:59 +05:30
Pranshul eb9e6bae8c New translations strings.xml (Finnish)
[ci skip]
2026-08-22 03:43:52 +05:30
Pranshul 4b363fc70c New translations strings.xml (Arabic, Saudi Arabia)
[ci skip]
2026-08-21 21:42:07 +05:30
Pranshul b589268359 New translations strings.xml (Serbian (Latin))
[ci skip]
2026-08-21 21:42:05 +05:30
Pranshul 56f6167059 New translations strings.xml (Filipino)
[ci skip]
2026-08-21 21:42:04 +05:30
Pranshul 822647ad9d New translations strings.xml (Azerbaijani)
[ci skip]
2026-08-21 21:42:02 +05:30
Pranshul a483367254 New translations strings.xml (Kazakh)
[ci skip]
2026-08-21 21:42:00 +05:30
Pranshul fb9a8418bb New translations strings.xml (Thai)
[ci skip]
2026-08-21 21:41:59 +05:30
Pranshul 996c4d0da7 New translations strings.xml (Persian)
[ci skip]
2026-08-21 21:41:57 +05:30
Pranshul 556d0c17a3 New translations strings.xml (Indonesian)
[ci skip]
2026-08-21 21:41:56 +05:30
Pranshul 77a3c2b447 New translations strings.xml (Vietnamese)
[ci skip]
2026-08-21 21:41:55 +05:30
Pranshul 8ea3391834 New translations strings.xml (Chinese Traditional)
[ci skip]
2026-08-21 21:41:53 +05:30
Pranshul 7763842e3f New translations strings.xml (Swedish)
[ci skip]
2026-08-21 21:41:52 +05:30
Pranshul 2681b5f79c New translations strings.xml (Serbian (Cyrillic))
[ci skip]
2026-08-21 21:41:50 +05:30
Pranshul 8b63311f27 New translations strings.xml (Slovenian)
[ci skip]
2026-08-21 21:41:48 +05:30
Pranshul a9ccd31878 New translations strings.xml (Korean)
[ci skip]
2026-08-21 21:41:47 +05:30
Pranshul ec379303df New translations strings.xml (Hungarian)
[ci skip]
2026-08-21 21:41:45 +05:30
Pranshul 197d7f289e New translations strings.xml (Greek)
[ci skip]
2026-08-21 21:41:43 +05:30
Pranshul d6ffaa6296 New translations strings.xml (German)
[ci skip]
2026-08-21 21:41:42 +05:30
Pranshul a712aa5cf3 New translations strings.xml (Catalan)
[ci skip]
2026-08-21 21:41:41 +05:30
Pranshul 67aecfb801 New translations strings.xml (Bulgarian)
[ci skip]
2026-08-21 21:41:39 +05:30
Pranshul c906608949 New translations strings.xml (Romanian)
[ci skip]
2026-08-21 21:41:38 +05:30
Pranshul 0250de39da New translations strings.xml (Polish)
[ci skip]
2026-08-21 21:41:36 +05:30
Pranshul f8eaf46410 New translations strings.xml (Italian)
[ci skip]
2026-08-21 21:41:35 +05:30
Pranshul de0edc1a5a New translations strings.xml (Portuguese, Brazilian)
[ci skip]
2026-08-21 21:41:33 +05:30
Pranshul b0978fcc59 New translations strings.xml (Lithuanian)
[ci skip]
2026-08-21 21:41:32 +05:30
Pranshul 494baa735e New translations strings.xml (French)
[ci skip]
2026-08-21 21:41:30 +05:30
Pranshul 9b45954b3e New translations strings.xml (Chinese Simplified)
[ci skip]
2026-08-21 21:41:28 +05:30
Pranshul d643ac0824 New translations strings.xml (Ukrainian)
[ci skip]
2026-08-21 21:41:27 +05:30