refactor(branding): rename app Tanemaki → Tane
Public name is now Tane (種, "seed"); Tanemaki (種まき, "to scatter seeds") is kept only as etymology in the About screen and onboarding. App not yet distributed, so format tokens rename cleanly with no migration: backup extension .tanemaki→.tane, QR scheme tanemaki://→tane://, file prefixes tane-*. Website link and species-catalog User-Agent → tane.comunes.org. Android label capitalised to "Tane". Identity/crypto constants already use org.comunes.tane (derivation, HKDF backup, sync namespace, TANE1 recovery tag) — left untouched, so keys, backups and sync are unaffected. Tests updated; analyze + full suite green.
This commit is contained in:
parent
2c113cc17d
commit
a534c14983
34 changed files with 180 additions and 180 deletions
|
|
@ -263,7 +263,7 @@ class InventoryJsonCodec {
|
|||
throw const FormatException('Not a valid JSON file.');
|
||||
}
|
||||
if (root is! Map<String, dynamic>) {
|
||||
throw const FormatException('Not a Tanemaki inventory file.');
|
||||
throw const FormatException('Not a Tane inventory file.');
|
||||
}
|
||||
final version = root['formatVersion'];
|
||||
if (version is! int) {
|
||||
|
|
|
|||
|
|
@ -38,16 +38,16 @@ class SeedLabelData extends Equatable {
|
|||
];
|
||||
}
|
||||
|
||||
/// Encodes/decodes [SeedLabelData] as a compact, versioned `tanemaki://seed`
|
||||
/// Encodes/decodes [SeedLabelData] as a compact, versioned `tane://seed`
|
||||
/// URI — self-describing and parseable, so a future scan-to-import feature can
|
||||
/// read a label a keeper printed today. Unicode and RTL text are percent-encoded
|
||||
/// by [Uri], so any QR reader round-trips them safely.
|
||||
///
|
||||
/// Shape: `tanemaki://seed?v=<variety>&s=<scientific>&c=<common>&y=<year>&o=<origin>`
|
||||
/// Shape: `tane://seed?v=<variety>&s=<scientific>&c=<common>&y=<year>&o=<origin>`
|
||||
/// Absent fields are omitted, keeping the payload (and the QR) as small as the
|
||||
/// data allows.
|
||||
abstract final class SeedLabelCodec {
|
||||
static const _scheme = 'tanemaki';
|
||||
static const _scheme = 'tane';
|
||||
static const _host = 'seed';
|
||||
|
||||
static String encode(SeedLabelData data) {
|
||||
|
|
@ -65,7 +65,7 @@ abstract final class SeedLabelCodec {
|
|||
).toString();
|
||||
}
|
||||
|
||||
/// Parses a `tanemaki://seed` URI back to [SeedLabelData]. Returns null when
|
||||
/// Parses a `tane://seed` URI back to [SeedLabelData]. Returns null when
|
||||
/// [input] is not a well-formed seed label (wrong scheme/host, or no variety).
|
||||
static SeedLabelData? decode(String input) {
|
||||
final uri = Uri.tryParse(input.trim());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue