feat(mobile): zakladka nazywa sie Edge; /version 0.4.0 runtime 1.4
Nazwa od edgingu: feed krotkich klipow bez konca (wybor Jana). W kodzie zostaje Swipe (SwipeScreen, swipeTelemetry), etykieta i teksty user-facing to Edge. Backend /version podaje 0.4.0 / 1.4, wiec starsze APK dostaja monit o nowej wersji; plik app-release.apk podmieniany razem z publikacja.
This commit is contained in:
parent
9872d5e4ca
commit
8462ab50df
5 changed files with 12 additions and 11 deletions
|
|
@ -128,7 +128,7 @@ def version() -> dict[str, str | None]:
|
|||
# aktualizacji stary APK raportuje nową wersję i sam siebie uznaje za aktualny.
|
||||
# Runtime siedzi w AndroidManifest, OTA go nie rusza. Podbijaj RAZEM z `version`,
|
||||
# ale tylko przy wydaniu APK (zmiana natywna).
|
||||
return {"version": "0.3.0", "runtime_version": "1.3", "apk_url": apk_url}
|
||||
return {"version": "0.4.0", "runtime_version": "1.4", "apk_url": apk_url}
|
||||
|
||||
|
||||
@app.get("/readyz")
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ export const CHANGELOG: ChangelogEntry[] = [
|
|||
id: '2026-09-15b',
|
||||
date: 'September 2026',
|
||||
items: [
|
||||
'New Swipe tab: a vertical feed of short clips from verified creators, one per screen, playing as soon as you land on it. Double-tap to save a clip, tap to turn sound on, hold for double speed, swipe left to say what you want less of. The feed learns from what you watch and never shows the same clip twice; the refresh button deals a new hand.',
|
||||
'New Edge tab: a vertical feed of short clips from verified creators, one per screen, playing as soon as you land on it. Double-tap to save a clip, tap to turn sound on, hold for double speed, swipe left to say what you want less of. The feed learns from what you watch and never shows the same clip twice; the refresh button deals a new hand.',
|
||||
],
|
||||
minRuntime: '1.4',
|
||||
},
|
||||
|
|
@ -47,7 +47,7 @@ export const CHANGELOG: ChangelogEntry[] = [
|
|||
id: '2026-09-15a',
|
||||
date: 'September 2026',
|
||||
items: [
|
||||
'A new Swipe section (a TikTok-style feed of short clips) is ready, but it needs version 0.4.0, which you have to download and install yourself: it uses a part of the app that cannot arrive as a silent update. Get it from goon-foss.org; it installs over the version you have and keeps your settings.',
|
||||
'A new Edge section (a TikTok-style feed of short clips) is ready, but it needs version 0.4.0, which you have to download and install yourself: it uses a part of the app that cannot arrive as a silent update. Get it from goon-foss.org; it installs over the version you have and keeps your settings.',
|
||||
],
|
||||
onlyBelowRuntime: '1.4',
|
||||
},
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@ export type RootStackParamList = {
|
|||
|
||||
const Stack = createNativeStackNavigator<RootStackParamList>();
|
||||
|
||||
type TopTab = 'Scenes' | 'Swipe' | 'Movies' | 'Sites' | 'JAV' | 'Anime';
|
||||
type TopTab = 'Scenes' | 'Edge' | 'Movies' | 'Sites' | 'JAV' | 'Anime';
|
||||
|
||||
/**
|
||||
* Jeden ekran-gospodarz dla pięciu zakładek. Zakładka to STAN LOKALNY, nie trasa.
|
||||
|
|
@ -135,10 +135,10 @@ type TopTab = 'Scenes' | 'Swipe' | 'Movies' | 'Sites' | 'JAV' | 'Anime';
|
|||
*/
|
||||
function HomeScreen({ navigation }: { navigation: { setParams: (p: { tab?: string }) => void } }) {
|
||||
const insets = useSafeAreaInsets();
|
||||
// Swipe wymaga natywnego pagera (APK od runtime 1.4). Na starszym APK zakladki nie ma,
|
||||
// Edge (feed klipow, kod: Swipe) wymaga natywnego pagera (APK od runtime 1.4). Na starszym APK zakladki nie ma,
|
||||
// zamiast pokazywac ekran, ktory i tak tylko odsyla do pobrania nowej wersji.
|
||||
const tabs: TopTab[] = swipeAvailable
|
||||
? ['Scenes', 'Swipe', 'Movies', 'Sites', 'JAV', 'Anime']
|
||||
? ['Scenes', 'Edge', 'Movies', 'Sites', 'JAV', 'Anime']
|
||||
: ['Scenes', 'Movies', 'Sites', 'JAV', 'Anime'];
|
||||
const [tab, setTab] = React.useState<TopTab>('Scenes');
|
||||
|
||||
|
|
@ -161,7 +161,7 @@ function HomeScreen({ navigation }: { navigation: { setParams: (p: { tab?: strin
|
|||
siedzi w wierszu narzedzi, darowizna i zmiana backendu w ustawieniach. Zostaje
|
||||
tylko odstep na pasek statusu. */}
|
||||
<View style={{ flex: 1 }} key={tab}>
|
||||
{tab === 'Swipe' ? (
|
||||
{tab === 'Edge' ? (
|
||||
<SwipeScreen />
|
||||
) : tab === 'Movies' ? (
|
||||
<MoviesScreen />
|
||||
|
|
@ -184,7 +184,7 @@ function HomeScreen({ navigation }: { navigation: { setParams: (p: { tab?: strin
|
|||
|
||||
const TAB_ICONS = {
|
||||
Scenes: 'view-grid-outline',
|
||||
Swipe: 'gesture-swipe-vertical',
|
||||
Edge: 'gesture-swipe-vertical',
|
||||
Movies: 'movie-open-outline',
|
||||
Sites: 'web',
|
||||
JAV: 'star-four-points-outline',
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
/**
|
||||
* Zakladka Swipe: pionowy feed klipow bez konca, w stylu TikToka.
|
||||
* Zakladka Edge (w kodzie: Swipe): pionowy feed klipow bez konca, w stylu TikToka.
|
||||
* Nazwa od „edging": feed krotkich klipow, ktory nie ma konca. Wybor Jana 2026-09-15.
|
||||
*
|
||||
* Dane: `GET /clips/feed` przez useInfiniteQuery, kursor z serwera (seed + pozycja po
|
||||
* kluczu glownym), doladowanie przy 4 stronach od konca. Serwer pamieta kazdy podany
|
||||
|
|
@ -298,7 +299,7 @@ export function SwipeScreen() {
|
|||
return (
|
||||
<View style={styles.center}>
|
||||
<MaterialCommunityIcons name="gesture-swipe-vertical" size={40} color={theme.accentText} />
|
||||
<Text style={styles.centerTitle}>Swipe needs the 0.4.0 app</Text>
|
||||
<Text style={styles.centerTitle}>Edge needs the 0.4.0 app</Text>
|
||||
<Text style={styles.centerText}>This section uses a part of the app that cannot arrive as a silent update. Download 0.4.0 from goon-foss.org, it installs over this one.</Text>
|
||||
</View>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -242,7 +242,7 @@
|
|||
<div class="space-y-6">
|
||||
<div class="bg-card border border-border rounded-2xl p-6">
|
||||
<div class="font-mono text-xs text-accent mb-2">September 2026 · 0.4.0</div>
|
||||
<h3 class="text-lg font-bold mb-2">Swipe</h3>
|
||||
<h3 class="text-lg font-bold mb-2">Edge</h3>
|
||||
<p class="text-sm text-gray-400 leading-relaxed">
|
||||
A new tab with a vertical feed of short clips from verified creators, one per
|
||||
screen, playing the moment you land on it. Double-tap to save, tap for sound,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue