diff --git a/src/baseTypes.ts b/src/baseTypes.ts index 4c6fafc..ed56298 100644 --- a/src/baseTypes.ts +++ b/src/baseTypes.ts @@ -86,6 +86,7 @@ export interface RemotelySavePluginSettings { lang?: LangTypeAndAuto; logToDB?: boolean; skipSizeLargerThan?: number; + enableStatusBarInfo: boolean; lastSuccessSync?: number; /** diff --git a/src/langs b/src/langs index 58c0bc5..a0c4a6c 160000 --- a/src/langs +++ b/src/langs @@ -1 +1 @@ -Subproject commit 58c0bc5057aee3825bc21b50f2d4b1c95da17b9b +Subproject commit a0c4a6ca6c7e5d5f3b7f1cd28ec13518a5a01c02 diff --git a/src/main.ts b/src/main.ts index 727ce82..2f5b7ad 100644 --- a/src/main.ts +++ b/src/main.ts @@ -6,6 +6,7 @@ import { addIcon, setIcon, FileSystemAdapter, + Platform, } from "obsidian"; import cloneDeep from "lodash/cloneDeep"; import { createElement, RotateCcw, RefreshCcw, FileText } from "lucide"; @@ -85,6 +86,7 @@ const DEFAULT_SETTINGS: RemotelySavePluginSettings = { lang: "auto", logToDB: false, skipSizeLargerThan: -1, + enableStatusBarInfo: true, lastSuccessSync: -1 }; @@ -679,14 +681,18 @@ export default class RemotelySavePlugin extends Plugin { async () => this.syncRun("manual") ); - const statusBarItem = this.addStatusBarItem(); - this.statusBarElement = statusBarItem.createEl("span"); - this.statusBarElement.setAttribute("aria-label-position", "top"); - this.updateLastSuccessSyncMsg(this.settings.lastSuccessSync); - // update statusbar text every 30 seconds - this.registerInterval(window.setInterval(() => { + // Create Status Bar Item (not supported on mobile) + if (!Platform.isMobileApp && this.settings.enableStatusBarInfo === true) { + const statusBarItem = this.addStatusBarItem(); + this.statusBarElement = statusBarItem.createEl("span"); + this.statusBarElement.setAttribute("aria-label-position", "top"); + this.updateLastSuccessSyncMsg(this.settings.lastSuccessSync); - }, 1000*30)); + // update statusbar text every 30 seconds + this.registerInterval(window.setInterval(() => { + this.updateLastSuccessSyncMsg(this.settings.lastSuccessSync); + }, 1000 * 30)); + } this.addCommand({ id: "start-sync", @@ -983,6 +989,8 @@ export default class RemotelySavePlugin extends Plugin { } updateLastSuccessSyncMsg(lastSuccessSyncMillis?: number) { + if (this.statusBarElement === undefined) return; + const t = (x: TransItemType, vars?: any) => { return this.i18n.t(x, vars); }; diff --git a/src/settings.ts b/src/settings.ts index b92a6d0..ca76a4c 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -1597,6 +1597,22 @@ export class RemotelySaveSettingTab extends PluginSettingTab { await this.plugin.saveSettings(); }); }); + + // custom status bar items is not supported on mobile + if (!Platform.isMobileApp) { + new Setting(basicDiv) + .setName(t("settings_enablestatusbar_info")) + .setDesc(t("settings_enablestatusbar_info_desc")) + .addToggle((toggle) => { + toggle + .setValue(this.plugin.settings.enableStatusBarInfo) + .onChange(async (val) => { + this.plugin.settings.enableStatusBarInfo = val; + await this.plugin.saveSettings(); + new Notice(t("settings_enablestatusbar_reloadrequired_notice")); + }); + }); + } ////////////////////////////////////////////////// // below for advanced settings diff --git a/tests/configPersist.test.ts b/tests/configPersist.test.ts index cde0a7c..544eac8 100644 --- a/tests/configPersist.test.ts +++ b/tests/configPersist.test.ts @@ -23,6 +23,7 @@ const DEFAULT_SETTINGS: RemotelySavePluginSettings = { password: "password", serviceType: "s3", currLogLevel: "info", + enableStatusBarInfo: true, }; describe("Config Persist tests", () => {