diff --git a/materialious/android/app/build.gradle b/materialious/android/app/build.gradle index 8050e272..003749e3 100644 --- a/materialious/android/app/build.gradle +++ b/materialious/android/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId "us.materialio.app" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 132 - versionName "1.9.15" + versionCode 133 + versionName "1.9.16" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" aaptOptions { // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. diff --git a/materialious/electron/materialious.metainfo.xml b/materialious/electron/materialious.metainfo.xml index 641674c3..bd3f756d 100644 --- a/materialious/electron/materialious.metainfo.xml +++ b/materialious/electron/materialious.metainfo.xml @@ -67,7 +67,11 @@ - + + + https://github.com/Materialious/Materialious/releases/tag/1.9.16 + + https://github.com/Materialious/Materialious/releases/tag/1.9.15 diff --git a/materialious/electron/package-lock.json b/materialious/electron/package-lock.json index c24ee22d..803fa2a1 100644 --- a/materialious/electron/package-lock.json +++ b/materialious/electron/package-lock.json @@ -1,12 +1,12 @@ { "name": "Materialious", - "version": "1.9.14", + "version": "1.9.16", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "Materialious", - "version": "1.9.14", + "version": "1.9.16", "license": "MIT", "dependencies": { "@capacitor-community/electron": "^5.0.0", diff --git a/materialious/electron/package.json b/materialious/electron/package.json index 7e954db0..05842ada 100644 --- a/materialious/electron/package.json +++ b/materialious/electron/package.json @@ -1,6 +1,6 @@ { "name": "Materialious", - "version": "1.9.15", + "version": "1.9.16", "description": "Modern material design for Invidious.", "author": { "name": "Ward Pearce", diff --git a/materialious/package.json b/materialious/package.json index d98a65e3..5f94b409 100644 --- a/materialious/package.json +++ b/materialious/package.json @@ -1,6 +1,6 @@ { "name": "materialious", - "version": "1.9.15", + "version": "1.9.16", "private": true, "scripts": { "dev": "vite dev", diff --git a/materialious/src/lib/components/Player.svelte b/materialious/src/lib/components/Player.svelte index 99a48735..067f2769 100644 --- a/materialious/src/lib/components/Player.svelte +++ b/materialious/src/lib/components/Player.svelte @@ -585,7 +585,10 @@ playerElement.addEventListener('ended', async () => { if (!data.playlistId) { if ($playerAutoplayNextByDefaultStore) { - goto(`/${$isAndroidTvStore ? 'tv' : 'watch'}/${data.video.recommendedVideos[0].videoId}`); + goto( + `/${$isAndroidTvStore ? 'tv' : 'watch'}/${data.video.recommendedVideos[0].videoId}`, + { replaceState: $isAndroidTvStore } + ); } return; @@ -629,7 +632,8 @@ } goto( - `/${$isAndroidTvStore ? 'tv' : 'watch'}/${goToVideo.videoId}?playlist=${data.playlistId}` + `/${$isAndroidTvStore ? 'tv' : 'watch'}/${goToVideo.videoId}?playlist=${data.playlistId}`, + { replaceState: $isAndroidTvStore } ); } }); diff --git a/materialious/src/lib/components/Thumbnail.svelte b/materialious/src/lib/components/Thumbnail.svelte index 6a7c2aa5..9d3c5de7 100644 --- a/materialious/src/lib/components/Thumbnail.svelte +++ b/materialious/src/lib/components/Thumbnail.svelte @@ -22,6 +22,7 @@ } from '../store'; import { goto } from '$app/navigation'; import { queueSyncious } from '$lib/api/apiExtended'; + import { page } from '$app/state'; interface Props { video: VideoBase | Video | Notification | PlaylistPageVideo; @@ -165,7 +166,7 @@ tabindex="0" role="button" onclick={async () => { - goto(watchUrl); + goto(watchUrl, { replaceState: $isAndroidTvStore && page.url.pathname.startsWith('/tv') }); }} >
diff --git a/materialious/src/lib/store.ts b/materialious/src/lib/store.ts index e1cbbc2e..9204cd25 100644 --- a/materialious/src/lib/store.ts +++ b/materialious/src/lib/store.ts @@ -143,3 +143,4 @@ export const playlistCacheStore: Writable<{ }> = writable({}); export const isAndroidTvStore: Writable = writable(false); +export const isTvRouteLoading: Writable = writable(false); diff --git a/materialious/src/routes/(no-layout)/tv/[slug]/+layout.svelte b/materialious/src/routes/(no-layout)/tv/[slug]/+layout.svelte new file mode 100644 index 00000000..980927e7 --- /dev/null +++ b/materialious/src/routes/(no-layout)/tv/[slug]/+layout.svelte @@ -0,0 +1,12 @@ + + +{#if $isTvRouteLoading} + +{:else} + {@render children?.()} +{/if} diff --git a/materialious/src/routes/(no-layout)/tv/[slug]/+page@.svelte b/materialious/src/routes/(no-layout)/tv/[slug]/+page.svelte similarity index 100% rename from materialious/src/routes/(no-layout)/tv/[slug]/+page@.svelte rename to materialious/src/routes/(no-layout)/tv/[slug]/+page.svelte diff --git a/materialious/src/routes/(no-layout)/tv/[slug]/+page.ts b/materialious/src/routes/(no-layout)/tv/[slug]/+page.ts index ce91aad0..c9eb4ce9 100644 --- a/materialious/src/routes/(no-layout)/tv/[slug]/+page.ts +++ b/materialious/src/routes/(no-layout)/tv/[slug]/+page.ts @@ -1,5 +1,9 @@ +import { isTvRouteLoading } from '$lib/store.js'; import { getWatchDetails } from '$lib/watch.js'; export async function load({ params, url }) { - return await getWatchDetails(params.slug, url); + isTvRouteLoading.set(true); + const details = await getWatchDetails(params.slug, url); + isTvRouteLoading.set(false); + return details; } diff --git a/update_versions.py b/update_versions.py index d0173705..416cd1db 100644 --- a/update_versions.py +++ b/update_versions.py @@ -3,7 +3,7 @@ import os import re from datetime import datetime -LATEST_VERSION = "1.9.15" +LATEST_VERSION = "1.9.16" RELEASE_DATE = datetime.now().strftime("%Y-%-m-%d") # Format: YYYY-M-D WORKING_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "materialious")