diff --git a/materialious/android/app/build.gradle b/materialious/android/app/build.gradle index bb9936a1..77197d89 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 172 - versionName "1.12.0" + versionCode 173 + versionName "1.12.1" 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 c03446d4..e1908758 100644 --- a/materialious/electron/materialious.metainfo.xml +++ b/materialious/electron/materialious.metainfo.xml @@ -69,7 +69,11 @@ - + + + https://github.com/Materialious/Materialious/releases/tag/1.12.1 + + https://github.com/Materialious/Materialious/releases/tag/1.12.0 diff --git a/materialious/electron/package.json b/materialious/electron/package.json index 88863bf8..f6d7107e 100644 --- a/materialious/electron/package.json +++ b/materialious/electron/package.json @@ -1,6 +1,6 @@ { "name": "Materialious", - "version": "1.12.0", + "version": "1.12.1", "description": "Modern material design for Invidious.", "author": { "name": "Ward Pearce", diff --git a/materialious/package.json b/materialious/package.json index 725be7eb..9320d3ba 100644 --- a/materialious/package.json +++ b/materialious/package.json @@ -1,6 +1,6 @@ { "name": "materialious", - "version": "1.12.0", + "version": "1.12.1", "private": true, "scripts": { "dev": "vite dev", diff --git a/materialious/src/lib/externalSettings.ts b/materialious/src/lib/externalSettings.ts index a956ee93..dabf20aa 100644 --- a/materialious/src/lib/externalSettings.ts +++ b/materialious/src/lib/externalSettings.ts @@ -1,4 +1,4 @@ -import { page } from '$app/stores'; +import { page } from '$app/state'; import { darkModeStore, deArrowEnabledStore, @@ -232,17 +232,10 @@ const persistedStores: { } ]; -function setStores(toSet: Record) { +function setStores(toSet: Record, overwriteExisting: boolean = false) { persistedStores.forEach((store) => { - let userOverwritten: boolean = false; - try { - userOverwritten = localStorage.getItem(store.name) !== null; - } catch { - // Continue regardless of error - } - const paramValue = toSet[store.name]; - if (typeof paramValue !== 'undefined' && !userOverwritten) { + if (typeof paramValue !== 'undefined' && overwriteExisting) { let value: any; if (store.type === 'array') { @@ -274,9 +267,22 @@ export function loadSettingsFromEnv() { defaultSettingsJson = defaultSettingsJson.slice(0, -1); } + let isInitialLoad = false; + try { + const isInitialLoadStorage = localStorage.getItem('initialLoadState'); + if (isInitialLoadStorage === null) { + isInitialLoad = true; + } else { + localStorage.setItem('initialLoadState', '1'); + } + } catch { + // In an environment where localstorage isn't allowed, treat as initial load. + isInitialLoad = true; + } + try { const defaultSettings = JSON.parse(defaultSettingsJson); - setStores(defaultSettings); + setStores(defaultSettings, isInitialLoad); } catch (error) { console.log(error); } @@ -296,13 +302,11 @@ export function bookmarkletSaveToUrl(): string { } export function bookmarkletLoadFromUrl() { - const currentPage = get(page); - const toSet: Record = {}; - currentPage.url.searchParams.forEach((value, key) => { + page.url.searchParams.forEach((value, key) => { toSet[key] = value; }); - setStores(toSet); + setStores(toSet, true); } diff --git a/update_versions.py b/update_versions.py index 0e6d8478..414c42d9 100644 --- a/update_versions.py +++ b/update_versions.py @@ -3,7 +3,7 @@ import os import re from datetime import datetime -LATEST_VERSION = "1.12.0" +LATEST_VERSION = "1.12.1" 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")