Merge pull request #1269 from Materialious/update/1.12.8

Update/1.12.8
This commit is contained in:
Ward
2025-12-23 04:08:24 +00:00
committed by GitHub
10 changed files with 86 additions and 27 deletions
+2 -2
View File
@@ -7,8 +7,8 @@ android {
applicationId "us.materialio.app"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 179
versionName "1.12.7"
versionCode 180
versionName "1.12.8"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
aaptOptions {
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
@@ -76,7 +76,11 @@
<release version="1.12.7" date="2025-12-22">
<release version="1.12.8" date="2025-12-23">
<url>https://github.com/Materialious/Materialious/releases/tag/1.12.8</url>
</release>
<release version="1.12.7" date="2025-12-22">
<url>https://github.com/Materialious/Materialious/releases/tag/1.12.7</url>
</release>
<release version="1.12.6" date="2025-12-22">
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "Materialious",
"version": "1.12.7",
"version": "1.12.8",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "Materialious",
"version": "1.12.7",
"version": "1.12.8",
"license": "MIT",
"dependencies": {
"@capacitor-community/electron": "^5.0.0",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "Materialious",
"version": "1.12.7",
"version": "1.12.8",
"description": "Modern material design for Invidious.",
"author": {
"name": "Ward Pearce",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "materialious",
"version": "1.12.7",
"version": "1.12.8",
"private": true,
"scripts": {
"dev": "vite dev",
+48 -17
View File
@@ -886,10 +886,43 @@
playerTimelineTooltipVisible = true;
}
function handleMouseLeave(): void {
function handleMouseLeave() {
playerTimelineTooltipVisible = false;
}
function onVideoClick(
event: MouseEvent & {
currentTarget: EventTarget & HTMLDivElement;
}
) {
if (
event.target &&
event.target instanceof HTMLElement &&
event.target.id === 'player-center' &&
playerElement
) {
const container = event.currentTarget;
const rect = container.getBoundingClientRect();
const clickX = event.clientX - rect.left;
const width = rect.width;
if (clickX < width / 3) {
// Left third, back 10s
playerElement.currentTime = Math.max(0, playerElement.currentTime - 10);
} else if (clickX < (2 * width) / 3) {
// Middle third, toggle play/pause
toggleVideoPlaybackStatus();
} else {
// Right third, forward 10s
playerElement.currentTime = Math.min(
playerElement.duration,
playerElement.currentTime + 10
);
}
}
}
onDestroy(async () => {
if (Capacitor.getPlatform() === 'android') {
if (!$isAndroidTvStore) {
@@ -932,15 +965,7 @@
class:tv-contain-video={$isAndroidTvStore}
class:hide={showVideoRetry}
role="presentation"
onclick={(event) => {
if (
event.target &&
event.target instanceof HTMLElement &&
event.target.id === 'player-center'
) {
toggleVideoPlaybackStatus();
}
}}
onclick={onVideoClick}
>
<video
controls={false}
@@ -954,7 +979,7 @@
</div>
{/if}
{#if !hideControls}
<p id="mobile-time" class="chip primary s">
<p id="mobile-time" class="chip secondary s">
{#if data.video.liveNow}
{$_('thumbnail.live')}
{:else}
@@ -966,7 +991,7 @@
{#if playerIsBuffering}
<progress class="circle large indeterminate" value="50" max="100"></progress>
{:else if !playerCurrentPlaybackState}
<button class="extra" onclick={toggleVideoPlaybackStatus}>
<button class="extra secondary" onclick={toggleVideoPlaybackStatus}>
<i>play_arrow</i>
</button>
{/if}
@@ -974,7 +999,7 @@
{#if !hideControls}
<div id="player-controls">
<article class="round" style="width: 100%;padding: 0;height: 10px;">
<label class="slider max">
<label id="progress-slider" class="slider max">
{#key playerCurrentTime}
<input
oninput={handleTimeChange}
@@ -999,7 +1024,7 @@
<nav>
<nav class="no-wrap">
<button onclick={toggleVideoPlaybackStatus}>
<button class="secondary" onclick={toggleVideoPlaybackStatus}>
<i>
{#if playerCurrentPlaybackState}
pause
@@ -1037,7 +1062,7 @@
<div class="max"></div>
<nav class="no-wrap">
<p class="chip primary m l" style="border: none;">
<p class="chip secondary m l" style="border: none;">
{#if data.video.liveNow}
{$_('thumbnail.live')}
{:else}
@@ -1045,7 +1070,7 @@
{/if}
</p>
{#if playerTextTracks && playerTextTracks.length > 0 && !data.video.liveNow}
<button>
<button class="secondary">
<i>closed_caption</i>
<menu class="no-wrap mobile" id="cc-menu" data-ui="#cc-menu">
<li
@@ -1070,7 +1095,7 @@
</menu>
</button>
{/if}
<button>
<button class="secondary">
<i>settings</i>
<menu class="no-wrap mobile" id="settings-menu">
{#if playerSettings !== 'root'}
@@ -1206,6 +1231,7 @@
</button>
{#if document.pictureInPictureEnabled}
<button
class="secondary"
onclick={() => {
(playerElement as HTMLVideoElement).requestPictureInPicture();
}}
@@ -1214,6 +1240,7 @@
</button>
{/if}
<button
class="secondary"
onclick={() => {
if (document.fullscreenElement) {
document.exitFullscreen();
@@ -1297,6 +1324,10 @@
transition: opacity 2s ease;
}
#progress-slider > span {
transition: 0.25s;
}
#player-container:focus-within #player-controls,
#player-container:active #player-controls,
#player-container:hover #player-controls {
+11 -1
View File
@@ -102,7 +102,17 @@
"chapters": "Kapitel",
"retryText": "Das Video konnte nicht geladen werden, wie möchtest du weiterfahren?",
"youtubeJsLoading": "Das Video konnte nicht geladen werden, es wird mit lokalem Video-Fallback erneut versucht.",
"premiere": "Video wird verfügbar sein"
"premiere": "Video wird verfügbar sein",
"controls": {
"back": "Zurück",
"quality": "Qualität",
"auto": "Automatisch",
"playbackSpeed": "Wiedergabegeschwindigkeit",
"loop": "Schleife",
"on": "An",
"off": "Aus",
"language": "Sprache"
}
},
"layout": {
"interface": "Benutzeroberfläche",
+11 -1
View File
@@ -184,7 +184,17 @@
"enableYoutubejsPerm": "Lokale Video-Fallback immer erlaube",
"enableYoutubejsTemp": "Nutz eimalig de lokali Video-Fallback",
"youtubeJsFallBack": "Lokale Video-Fallback wird gnutzt",
"premiere": "Video wird verfüegbar sii"
"premiere": "Video wird verfüegbar sii",
"controls": {
"back": "Zrugg",
"quality": "Qualität",
"auto": "Automatisch",
"playbackSpeed": "Widergabegschwindigkeit",
"loop": "Schleife",
"on": "Aa",
"off": "Uus",
"language": "Spraach"
}
},
"subscribe": "Abonniere",
"invidiousLogin": "Bitte meld dich mit dim Invidious-Konto aa",
@@ -0,0 +1,4 @@
{
"enabled": "啟用",
"disabled": "停用"
}
+1 -1
View File
@@ -3,7 +3,7 @@ import os
import re
from datetime import datetime
LATEST_VERSION = "1.12.7"
LATEST_VERSION = "1.12.8"
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")