Use edge to edge

This commit is contained in:
WardPearce
2026-01-27 20:20:48 +13:00
parent 60fed046a4
commit 1cda6ec9ad
24 changed files with 63 additions and 108 deletions
-3
View File
@@ -1,3 +0,0 @@
# Default ignored files
/shelf/
/workspace.xml
-8
View File
@@ -4,14 +4,6 @@
<selectionStates>
<SelectionState runConfigName="app">
<option name="selectionMode" value="DROPDOWN" />
<DropdownSelection timestamp="2026-01-25T13:45:42.378164664Z">
<Target type="DEFAULT_BOOT">
<handle>
<DeviceId pluginId="LocalEmulator" identifier="path=/home/ward/.android/avd/Pixel_9.avd" />
</handle>
</Target>
</DropdownSelection>
<DialogSelection />
</SelectionState>
</selectionStates>
</component>
+1 -6
View File
@@ -1,9 +1,4 @@
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK" />
</project>
+2 -2
View File
@@ -7,8 +7,8 @@ android {
applicationId "us.materialio.app"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 193
versionName "1.13.9"
versionCode 194
versionName "1.13.10"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
aaptOptions {
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
@@ -9,7 +9,6 @@ android {
apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle"
dependencies {
implementation project(':capacitor-community-safe-area')
implementation project(':capacitor-app')
implementation project(':capacitor-browser')
implementation project(':capacitor-clipboard')
@@ -15,8 +15,7 @@
android:label="@string/title_activity_main"
android:theme="@style/AppTheme.NoActionBarLaunch"
android:launchMode="singleTask"
android:exported="true"
android:windowOptOutEdgeToEdgeEnforcement="true">
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
@@ -70,25 +69,6 @@
android:pathPrefix="/shorts" />
</intent-filter>
</activity>
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" />
</provider>
<service
android:name="us.mediagrid.capacitorjs.plugins.nativeaudio.AudioPlayerService"
android:description="@string/audio_player_service_description"
android:foregroundServiceType="mediaPlayback"
android:exported="true">
<intent-filter>
<action android:name="androidx.media3.session.MediaSessionService"/>
</intent-filter>
</service>
</application>
<!-- Permissions -->
@@ -4,6 +4,7 @@ import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebSettings;
import com.getcapacitor.BridgeActivity;
public class MainActivity extends BridgeActivity {
@@ -20,6 +21,7 @@ public class MainActivity extends BridgeActivity {
WebView webview = getBridge().getWebView();
webview.setOverScrollMode(WebView.OVER_SCROLL_NEVER);
webview.setVerticalScrollBarEnabled(false);
webview.setHorizontalScrollBarEnabled(false);
WebSettings settings = webview.getSettings();
settings.setMediaPlaybackRequiresUserGesture(false);
@@ -2,9 +2,6 @@
include ':capacitor-android'
project(':capacitor-android').projectDir = new File('../node_modules/@capacitor/android/capacitor')
include ':capacitor-community-safe-area'
project(':capacitor-community-safe-area').projectDir = new File('../node_modules/@capacitor-community/safe-area/android')
include ':capacitor-app'
project(':capacitor-app').projectDir = new File('../node_modules/@capacitor/app/android')
+1 -1
View File
@@ -9,7 +9,7 @@
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx1536m
org.gradle.jvmargs=-Xms1G -Xmx1G
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
+1 -4
View File
@@ -6,10 +6,7 @@ const config: CapacitorConfig = {
webDir: 'build',
plugins: {
CapacitorNodeJS: {
nodeDir: 'nodejs-android'
},
SystemBars: {
insetsHandling: 'disable'
nodeDir: 'nodejsAndroid'
}
},
server: {
@@ -92,7 +92,11 @@
<release version="1.13.9" date="2026-1-26">
<release version="1.13.10" date="2026-1-27">
<url>https://github.com/Materialious/Materialious/releases/tag/1.13.10</url>
</release>
<release version="1.13.9" date="2026-1-26">
<url>https://github.com/Materialious/Materialious/releases/tag/1.13.9</url>
</release>
<release version="1.13.8" date="2026-1-22">
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "Materialious",
"version": "1.13.9",
"version": "1.13.10",
"description": "Modern material design for Invidious.",
"author": {
"name": "Ward Pearce",
@@ -45,4 +45,4 @@
"capacitor",
"electron"
]
}
}
+2 -12
View File
@@ -1,16 +1,15 @@
{
"name": "materialious",
"version": "1.13.6",
"version": "1.13.9",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "materialious",
"version": "1.13.6",
"version": "1.13.9",
"hasInstallScript": true,
"dependencies": {
"@capacitor-community/electron": "^5.0.1",
"@capacitor-community/safe-area": "^8.0.1",
"@capacitor/android": "^8.0.0",
"@capacitor/app": "^8.0.0",
"@capacitor/browser": "^8.0.0",
@@ -1712,15 +1711,6 @@
"ora": "^5.4.1"
}
},
"node_modules/@capacitor-community/safe-area": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/@capacitor-community/safe-area/-/safe-area-8.0.1.tgz",
"integrity": "sha512-zVVQ7k94DbOff1mHP8qrZGTJZWyhGZnKHD2eXdcobIoOBFW9CeVphLNZYDCop/DBsHXfv6r8k0/Ac8xMIlwT+A==",
"license": "MIT",
"peerDependencies": {
"@capacitor/core": ">=8.0.0"
}
},
"node_modules/@capacitor/android": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/@capacitor/android/-/android-8.0.0.tgz",
+3 -4
View File
@@ -1,6 +1,6 @@
{
"name": "materialious",
"version": "1.13.9",
"version": "1.13.10",
"private": true,
"scripts": {
"dev": "npm run patch:github && vite dev",
@@ -37,13 +37,12 @@
"svelte-check": "^4.3.3",
"tslib": "^2.7.0",
"typescript": "^5.9.3",
"vite": "^7.3.1",
"typescript-eslint": "^8.53.1"
"typescript-eslint": "^8.53.1",
"vite": "^7.3.1"
},
"type": "module",
"dependencies": {
"@capacitor-community/electron": "^5.0.1",
"@capacitor-community/safe-area": "^8.0.1",
"@capacitor/android": "^8.0.0",
"@capacitor/app": "^8.0.0",
"@capacitor/browser": "^8.0.0",
+17 -16
View File
@@ -1,19 +1,20 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%sveltekit.assets%/logo.svg" />
<meta name="viewport" content="viewport-fit=cover" />
<meta name="description" content="Modern material design for Invidious." />
<meta
name="keywords"
content="invidious,materialious,proxy,youtube,yt,theme,interface,modern"
/>
<meta name="theme-color" content="#141316" />
<title>Materialious</title>
%sveltekit.head%
</head>
<head>
<meta charset="utf-8" />
<link rel="icon" href="%sveltekit.assets%/logo.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="Modern material design for Invidious." />
<meta name="keywords" content="invidious,materialious,proxy,youtube,yt,theme,interface,modern" />
<meta name="theme-color" content="#141316" />
<title>Materialious</title>
%sveltekit.head%
</head>
<body data-sveltekit-preload-data="hover" style="background-color: #141316">
<div style="display: contents">%sveltekit.body%</div>
</body>
</html>
<body data-sveltekit-preload-data="hover" style="background-color: #141316">
<div style="display: contents">%sveltekit.body%</div>
</body>
</html>
+1 -1
View File
@@ -91,7 +91,7 @@ export async function getVideoTYjs(videoId: string): Promise<VideoPlay> {
// https://github.com/LuanRT/googlevideo/issues/42
if (video.streaming_data)
video.streaming_data.adaptive_formats = video.streaming_data.adaptive_formats.filter(
(format) => !format.xtags
(format) => format.xtags !== 'CgcKAnZiEgEx'
);
const adaptiveFormats: AdaptiveFormats[] = [];
@@ -3,7 +3,7 @@
import { getBestThumbnail } from '$lib/images';
import { padTime, videoLength } from '$lib/numbers';
import { type PhasedDescription, type Timestamp } from '$lib/timestamps';
import { SafeArea, SystemBarsStyle, SystemBarsType } from '@capacitor-community/safe-area';
import { SystemBars, SystemBarsStyle, SystemBarType } from '@capacitor/core';
import { Capacitor } from '@capacitor/core';
import { ScreenOrientation, type ScreenOrientationResult } from '@capacitor/screen-orientation';
import { error, type Page } from '@sveltejs/kit';
@@ -264,14 +264,12 @@
if (isFullScreen) {
// Ensure bar color is black while in fullscreen
await SafeArea.setSystemBarsStyle({
style: SystemBarsStyle.Dark
await SystemBars.setStyle({ style: SystemBarsStyle.Light });
await SystemBars.hide({
bar: SystemBarType.NavigationBar
});
await SafeArea.hideSystemBars({
type: SystemBarsType.NavigationBar
});
await SafeArea.hideSystemBars({
type: SystemBarsType.StatusBar
await SystemBars.hide({
bar: SystemBarType.StatusBar
});
} else {
await setStatusBarColor();
+10 -1
View File
@@ -45,7 +45,16 @@ button,
}
nav.top {
padding: 1em 0;
padding-bottom: 1em;
padding-top: calc(var(--safe-area-inset-top) + 1rem) !important;
}
nav.bottom {
padding-bottom: var(--safe-area-inset-bottom) !important;
}
dialog {
padding-top: calc(var(--safe-area-inset-top) + 1rem) !important;
}
main.root {
+7 -12
View File
@@ -1,8 +1,7 @@
import { Capacitor } from '@capacitor/core';
import { Capacitor, SystemBarType } from '@capacitor/core';
import ui from 'beercss';
import { tick } from 'svelte';
import { get } from 'svelte/store';
import { SafeArea, SystemBarsStyle, SystemBarsType } from '@capacitor-community/safe-area';
import { SystemBars, SystemBarsStyle } from '@capacitor/core';
import { darkModeStore, interfaceAmoledTheme } from './store';
export async function getDynamicTheme(mode?: string): Promise<Record<string, string>> {
@@ -20,18 +19,14 @@ export async function getDynamicTheme(mode?: string): Promise<Record<string, str
export async function setStatusBarColor() {
if (Capacitor.getPlatform() !== 'android') return;
await tick();
await SafeArea.setSystemBarsStyle({
await SystemBars.setStyle({
style: get(darkModeStore) ? SystemBarsStyle.Dark : SystemBarsStyle.Light
});
await SafeArea.showSystemBars({
type: SystemBarsType.NavigationBar
await SystemBars.show({
bar: SystemBarType.NavigationBar
});
await SafeArea.showSystemBars({
type: SystemBarsType.StatusBar
await SystemBars.show({
bar: SystemBarType.StatusBar
});
}
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -3,7 +3,7 @@ import os
import re
from datetime import datetime
LATEST_VERSION = "1.13.9"
LATEST_VERSION = "1.13.10"
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")