Compare commits
2 commits
bfd29f19b9
...
0aa8dd91ab
| Author | SHA1 | Date | |
|---|---|---|---|
| 0aa8dd91ab | |||
| 8bec7dcde2 |
7 changed files with 37 additions and 10 deletions
|
|
@ -3,6 +3,13 @@
|
||||||
All notable changes to Tane are recorded here. Human-readable, newest
|
All notable changes to Tane are recorded here. Human-readable, newest
|
||||||
first. Dates are ISO (YYYY-MM-DD).
|
first. Dates are ISO (YYYY-MM-DD).
|
||||||
|
|
||||||
|
## [0.1.2] — 2026-07-17
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Release builds now produce one split APK per CPU architecture (smaller
|
||||||
|
downloads) instead of a single universal APK, in addition to the App
|
||||||
|
Bundle Google Play already used. No user-visible change.
|
||||||
|
|
||||||
## [0.1.1] — 2026-07-17
|
## [0.1.1] — 2026-07-17
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
|
||||||
|
|
@ -85,3 +85,21 @@ dependencies {
|
||||||
// Backport of Java 8+ APIs, required by flutter_local_notifications.
|
// Backport of Java 8+ APIs, required by flutter_local_notifications.
|
||||||
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4")
|
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// F-Droid builds one split APK per ABI (smaller downloads than a universal
|
||||||
|
// APK) and needs each split to carry a distinct versionCode so its repo can
|
||||||
|
// tell them apart; `flutter build apk --split-per-abi` alone gives every
|
||||||
|
// split the same versionCode. This override only touches the APK
|
||||||
|
// (applicationVariants) output, not the App Bundle Google Play consumes, so
|
||||||
|
// Play's per-device delivery is unaffected.
|
||||||
|
val abiVersionCodes = mapOf("armeabi-v7a" to 1, "arm64-v8a" to 2, "x86_64" to 3)
|
||||||
|
android.applicationVariants.all {
|
||||||
|
val variant = this
|
||||||
|
variant.outputs.all {
|
||||||
|
val output = this as com.android.build.gradle.internal.api.ApkVariantOutputImpl
|
||||||
|
val abi = output.getFilter(com.android.build.OutputFile.ABI)
|
||||||
|
abiVersionCodes[abi]?.let { abiCode ->
|
||||||
|
output.versionCodeOverride = variant.versionCode * 10 + abiCode
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Smaller downloads: release builds now ship one APK per phone architecture instead of one universal file. No other change.
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Descargas más pequeñas: las versiones ahora reparten un APK por arquitectura de teléfono en vez de uno universal. Sin ningún otro cambio.
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
name: tane
|
name: tane
|
||||||
description: "Tane — local-first, encrypted, decentralized traditional-seed inventory and market."
|
description: "Tane — local-first, encrypted, decentralized traditional-seed inventory and market."
|
||||||
publish_to: 'none'
|
publish_to: 'none'
|
||||||
version: 0.1.1+3
|
version: 0.1.2+4
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ^3.11.5
|
sdk: ^3.11.5
|
||||||
|
|
|
||||||
|
|
@ -277,7 +277,7 @@ h2 { font-size: clamp(1.4rem, 3vw, 1.9rem); color: var(--green-dark); }
|
||||||
main > section[id],
|
main > section[id],
|
||||||
.doc :is(h2, h3)[id] { scroll-margin-top: 5.5rem; }
|
.doc :is(h2, h3)[id] { scroll-margin-top: 5.5rem; }
|
||||||
|
|
||||||
/* Discreet, hover-revealed heading permalinks (About + Legal) */
|
/* Discreet, hover-revealed heading permalinks (landing sections + About/Legal) */
|
||||||
.heading-anchor {
|
.heading-anchor {
|
||||||
margin-inline-start: .35em;
|
margin-inline-start: .35em;
|
||||||
color: var(--green);
|
color: var(--green);
|
||||||
|
|
@ -286,5 +286,5 @@ main > section[id],
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
transition: opacity .15s;
|
transition: opacity .15s;
|
||||||
}
|
}
|
||||||
.doc :is(h2, h3):hover .heading-anchor,
|
:is(h2, h3):hover .heading-anchor,
|
||||||
.heading-anchor:focus { opacity: .6; }
|
.heading-anchor:focus { opacity: .6; }
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
<section class="status" id="status">
|
<section class="status" id="status">
|
||||||
<span class="badge-beta">{{ T "statusBadge" }}</span>
|
<span class="badge-beta">{{ T "statusBadge" }}</span>
|
||||||
<div>
|
<div>
|
||||||
<h2>{{ T "statusTitle" }}</h2>
|
<h2>{{ T "statusTitle" }} <a class="heading-anchor" href="#status" aria-label="Permalink">#</a></h2>
|
||||||
<p>{{ T "statusBody" }}</p>
|
<p>{{ T "statusBody" }}</p>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
@ -39,7 +39,7 @@
|
||||||
|
|
||||||
{{ with .Params.features }}
|
{{ with .Params.features }}
|
||||||
<section class="features" id="features">
|
<section class="features" id="features">
|
||||||
<h2>{{ .title }}</h2>
|
<h2>{{ .title }} <a class="heading-anchor" href="#features" aria-label="Permalink">#</a></h2>
|
||||||
{{ with .intro }}<p class="features-intro">{{ . }}</p>{{ end }}
|
{{ with .intro }}<p class="features-intro">{{ . }}</p>{{ end }}
|
||||||
<div class="feature-groups">
|
<div class="feature-groups">
|
||||||
{{ range .groups }}
|
{{ range .groups }}
|
||||||
|
|
@ -57,7 +57,7 @@
|
||||||
|
|
||||||
{{ $screens := slice "home" "inventory" "market" "calendar" "detail" }}
|
{{ $screens := slice "home" "inventory" "market" "calendar" "detail" }}
|
||||||
<section class="shots" id="screenshots">
|
<section class="shots" id="screenshots">
|
||||||
<h2>{{ T "screenshotsTitle" }}</h2>
|
<h2>{{ T "screenshotsTitle" }} <a class="heading-anchor" href="#screenshots" aria-label="Permalink">#</a></h2>
|
||||||
<div class="shot-row">
|
<div class="shot-row">
|
||||||
{{ range $s := $screens }}
|
{{ range $s := $screens }}
|
||||||
{{ $img := resources.Get (printf "screenshots/%s/%s.png" $lang $s) | fingerprint }}
|
{{ $img := resources.Get (printf "screenshots/%s/%s.png" $lang $s) | fingerprint }}
|
||||||
|
|
@ -82,14 +82,14 @@
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="values" id="values">
|
<section class="values" id="values">
|
||||||
<h2>{{ .Params.values.title }}</h2>
|
<h2>{{ .Params.values.title }} <a class="heading-anchor" href="#values" aria-label="Permalink">#</a></h2>
|
||||||
<ul>
|
<ul>
|
||||||
{{ range .Params.values.points }}<li>{{ . }}</li>{{ end }}
|
{{ range .Params.values.points }}<li>{{ . }}</li>{{ end }}
|
||||||
</ul>
|
</ul>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="faq" id="faq">
|
<section class="faq" id="faq">
|
||||||
<h2>{{ T "faqTitle" }}</h2>
|
<h2>{{ T "faqTitle" }} <a class="heading-anchor" href="#faq" aria-label="Permalink">#</a></h2>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>{{ T "faqFreeQ" }}</dt><dd>{{ T "faqFreeA" }}</dd>
|
<dt>{{ T "faqFreeQ" }}</dt><dd>{{ T "faqFreeA" }}</dd>
|
||||||
<dt>{{ T "faqAccountQ" }}</dt><dd>{{ T "faqAccountA" }}</dd>
|
<dt>{{ T "faqAccountQ" }}</dt><dd>{{ T "faqAccountA" }}</dd>
|
||||||
|
|
@ -100,7 +100,7 @@
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="collab" id="collab">
|
<section class="collab" id="collab">
|
||||||
<h2>{{ T "collabTitle" }}</h2>
|
<h2>{{ T "collabTitle" }} <a class="heading-anchor" href="#collab" aria-label="Permalink">#</a></h2>
|
||||||
<p class="lead">{{ T "collabIntro" }}</p>
|
<p class="lead">{{ T "collabIntro" }}</p>
|
||||||
<div class="collab-grid">
|
<div class="collab-grid">
|
||||||
<article>
|
<article>
|
||||||
|
|
@ -124,7 +124,7 @@
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="get-it" id="get">
|
<section class="get-it" id="get">
|
||||||
<h2>{{ T "getItTitle" }}</h2>
|
<h2>{{ T "getItTitle" }} <a class="heading-anchor" href="#get" aria-label="Permalink">#</a></h2>
|
||||||
{{ partial "store-badges.html" . }}
|
{{ partial "store-badges.html" . }}
|
||||||
</section>
|
</section>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue