diff --git a/src/app/pages/setting-record/setting-record.page.ts b/src/app/pages/setting-record/setting-record.page.ts
index 66ebc90..2721471 100644
--- a/src/app/pages/setting-record/setting-record.page.ts
+++ b/src/app/pages/setting-record/setting-record.page.ts
@@ -11,6 +11,7 @@ import { Chooser, ChooserResult } from '@awesome-cordova-plugins/chooser/ngx';
import { ScanRecord } from 'src/app/models/scan-record';
import { Bookmark } from 'src/app/models/bookmark';
import { SocialSharing } from '@awesome-cordova-plugins/social-sharing/ngx';
+import { Haptics, ImpactStyle } from '@capacitor/haptics';
@Component({
selector: 'app-setting-record',
@@ -44,8 +45,10 @@ export class SettingRecordPage {
await this.env.storageSet("history-page-start-segment", this.env.historyPageStartSegment);
}
- async saveScanRecord() {
+ async onScanRecordLoggingChange(ev: any) {
+ this.env.scanRecordLogging = ev ? 'on' : 'off';
await this.env.storageSet("scan-record-logging", this.env.scanRecordLogging);
+ await this.tapHaptic();
}
async saveRecordsLimit() {
@@ -55,6 +58,12 @@ export class SettingRecordPage {
}
}
+ async onShowNumberOfRecordsChange(ev: any) {
+ this.env.showNumberOfRecords = ev ? 'on' : 'off';
+ await this.env.storageSet("showNumberOfRecords", this.env.showNumberOfRecords);
+ await this.tapHaptic();
+ }
+
async onBackup() {
const loading1 = await this.presentLoading(this.translate.instant("ENCRYPTING"));
const backup = {
@@ -302,6 +311,17 @@ export class SettingRecordPage {
return loading;
}
+ async tapHaptic() {
+ if (this.env.vibration === 'on' || this.env.vibration === 'on-haptic') {
+ await Haptics.impact({ style: ImpactStyle.Light })
+ .catch(async err => {
+ if (this.env.debugMode === 'on') {
+ await Toast.show({ text: 'Err when Haptics.impact: ' + JSON.stringify(err), position: "top", duration: "long" })
+ }
+ })
+ }
+ }
+
get isIOS() {
return this.platform.is('ios');
}
diff --git a/src/app/pages/setting-start-page/setting-start-page.page.html b/src/app/pages/setting-start-page/setting-start-page.page.html
index 048b681..f88a0f0 100644
--- a/src/app/pages/setting-start-page/setting-start-page.page.html
+++ b/src/app/pages/setting-start-page/setting-start-page.page.html
@@ -110,28 +110,17 @@
-
-
-
-
-
- {{ 'TURN_ON' | translate }}
-
-
-
-
-
-
-
-
-
-
- {{ 'TURN_OFF' | translate }}
-
-
-
-
-
-
-
+
+
+
+
+ {{ (env.startPageHeader == 'on'? 'TURNED_ON' : 'TURNED_OFF') | translate }}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/pages/setting-start-page/setting-start-page.page.ts b/src/app/pages/setting-start-page/setting-start-page.page.ts
index 676fd52..a18ae9e 100644
--- a/src/app/pages/setting-start-page/setting-start-page.page.ts
+++ b/src/app/pages/setting-start-page/setting-start-page.page.ts
@@ -1,4 +1,6 @@
import { Component } from '@angular/core';
+import { Haptics, ImpactStyle } from '@capacitor/haptics';
+import { Toast } from '@capacitor/toast';
import { EnvService } from 'src/app/services/env.service';
import { fadeIn } from 'src/app/utils/animations';
@@ -18,7 +20,21 @@ export class SettingStartPagePage {
await this.env.storageSet("start-page", this.env.startPage);
}
- async saveStartPageHeader() {
+ async onStartPageHeaderChange(ev: any) {
+ this.env.startPageHeader = ev ? 'on' : 'off';
await this.env.storageSet("start-page-header", this.env.startPageHeader);
+ await this.tapHaptic();
}
+
+ async tapHaptic() {
+ if (this.env.vibration === 'on' || this.env.vibration === 'on-haptic') {
+ await Haptics.impact({ style: ImpactStyle.Light })
+ .catch(async err => {
+ if (this.env.debugMode === 'on') {
+ await Toast.show({ text: 'Err when Haptics.impact: ' + JSON.stringify(err), position: "top", duration: "long" })
+ }
+ })
+ }
+ }
+
}
diff --git a/src/app/pages/tabs/tabs.page.ts b/src/app/pages/tabs/tabs.page.ts
index aae1532..fa32f7a 100644
--- a/src/app/pages/tabs/tabs.page.ts
+++ b/src/app/pages/tabs/tabs.page.ts
@@ -1,6 +1,7 @@
import { Component } from '@angular/core';
import { Router } from '@angular/router';
import { Haptics, ImpactStyle } from '@capacitor/haptics';
+import { SplashScreen } from '@capacitor/splash-screen';
import { Toast } from '@capacitor/toast';
import { AlertController, Platform } from '@ionic/angular';
import { TranslateService } from '@ngx-translate/core';
@@ -59,10 +60,11 @@ export class TabsPage {
}
async ionViewDidEnter() {
+ await SplashScreen.hide()
if (this.env.firstAppLoad) {
this.env.firstAppLoad = false;
- await this.loadPatchNote();
await this.router.navigate([this.env.startPage], { replaceUrl: true });
+ await this.loadPatchNote();
}
}
@@ -79,6 +81,8 @@ export class TabsPage {
if (this.env.notShowUpdateNotes === false) {
this.env.notShowUpdateNotes = true;
await this.showUpdateNotes();
+ const versionWording = this.translate.instant("VERSION_VERSION") as string;
+ await this.presentToast(versionWording.replace("{version}", this.env.appVersionNumber), "short", 'bottom');
}
}
);
diff --git a/src/app/services/env.service.ts b/src/app/services/env.service.ts
index 199ad9b..05c1b25 100644
--- a/src/app/services/env.service.ts
+++ b/src/app/services/env.service.ts
@@ -20,7 +20,7 @@ export declare type LanguageType = 'de' | 'en' | 'fr' | 'it' | 'zh-CN' | 'zh-HK'
})
export class EnvService {
- public appVersionNumber: string = '2.8.0';
+ public appVersionNumber: string = '3.0.0';
public startPage: "/tabs/scan" | "/tabs/generate" | "/tabs/import-image" | "/tabs/history" | "/tabs/setting" = "/tabs/scan";
public historyPageStartSegment: 'history' | 'bookmarks' = 'history';
@@ -32,6 +32,7 @@ export class EnvService {
public selectedColorTheme: 'default' | 'light' | 'dark' | 'black' = 'default';
public scanRecordLogging: 'on' | 'off' = 'on';
public recordsLimit: 30 | 50 | 100 | -1 = -1;
+ public showNumberOfRecords: 'on' | 'off' = 'on';
public autoMaxBrightness: 'on' | 'off' = 'on';
public errorCorrectionLevel: 'L' | 'M' | 'Q' | 'H' = 'M';
public qrCodeLightR: number = 255;
@@ -78,10 +79,10 @@ export class EnvService {
public readonly APP_STORE_URL: string = "https://apps.apple.com/us/app/simple-qr-by-tom-fong/id1621121553";
public readonly GITHUB_RELEASE_URL: string = "https://github.com/tomfong/simple-qr/releases";
public readonly PRIVACY_POLICY: string = "https://www.privacypolicies.com/live/771b1123-99bb-4bfe-815e-1046c0437a0f";
- public readonly AN_PREV_PATCH_NOTE_STORAGE_KEY = "not-show-update-notes-v20700";
- public readonly IOS_PREV_PATCH_NOTE_STORAGE_KEY = "not-show-update-notes-v20700";
- public readonly AN_PATCH_NOTE_STORAGE_KEY = "not-show-update-notes-v20800";
- public readonly IOS_PATCH_NOTE_STORAGE_KEY = "not-show-update-notes-v20800";
+ public readonly AN_PREV_PATCH_NOTE_STORAGE_KEY = "not-show-update-notes-v20800";
+ public readonly IOS_PREV_PATCH_NOTE_STORAGE_KEY = "not-show-update-notes-v20800";
+ public readonly AN_PATCH_NOTE_STORAGE_KEY = "not-show-update-notes-v30000";
+ public readonly IOS_PATCH_NOTE_STORAGE_KEY = "not-show-update-notes-v30000";
private _storage: Storage | null = null;
private _scannedData: string = '';
@@ -267,6 +268,15 @@ export class EnvService {
}
}
);
+ this._storage.get("showNumberOfRecords").then(
+ value => {
+ if (value !== null && value !== undefined) {
+ this.showNumberOfRecords = value;
+ } else {
+ this.showNumberOfRecords = 'on';
+ }
+ }
+ );
this._storage.get("vibration").then(
value => {
if (value !== null && value !== undefined) {
@@ -562,6 +572,7 @@ export class EnvService {
await this.toggleColorTheme();
this.scanRecordLogging = 'on';
this.recordsLimit = -1;
+ this.showNumberOfRecords = 'on';
this.autoMaxBrightness = 'on';
this.errorCorrectionLevel = 'M';
this.qrCodeLightR = 255;
@@ -630,6 +641,9 @@ export class EnvService {
this.recordsLimit = -1;
await this.storageSet("recordsLimit", this.recordsLimit);
+ this.showNumberOfRecords = 'on';
+ await this.storageSet("showNumberOfRecords", this.showNumberOfRecords);
+
this.autoMaxBrightness = 'on';
await this.storageSet("auto-max-brightness", this.autoMaxBrightness);
diff --git a/src/assets/i18n/de.json b/src/assets/i18n/de.json
index da5e110..e256de2 100644
--- a/src/assets/i18n/de.json
+++ b/src/assets/i18n/de.json
@@ -120,7 +120,7 @@
"NOT_PROVIDED": "Nicht vorgesehen",
"NOT_TO_DISCLOSE": "Nicht bekannt geben",
"NO_LIMIT": "Keine Begrenzung",
- "NUMBER_OF_RECORDS": "Anzahl der Aufzeichnungen",
+ "NUMBER_OF_RECORDS": "Anzahl der Datensätze",
"OK": "OK",
"ONLY_DELETE_DATA": "Nur Daten löschen",
"ONLY_RESET_SETTING": "Nur Einstellung zurücksetzen",
@@ -172,6 +172,7 @@
"SHARE": "Teile",
"SHARING": "Teilen",
"SHOW": "Zeige",
+ "SHOW_NUMBER_OR_RECORDS": "Zeige die Anzahl der Datensätze an",
"SHOW_QR_CODE": "Zeige QR Code",
"SIMPLE_QR": "Simple QR",
"STATE": "Staat",
@@ -184,12 +185,15 @@
"TASK_BUTTON_LAYOUT": "Aufgaben-Schaltflächen-Layout",
"TURN_OFF": "Ausschalten",
"TURN_ON": "Anschalten",
+ "TURNED_OFF": "Ausgeschaltet",
+ "TURNED_ON": "Angeschaltet",
"TUTORIAL": "Anleitung",
"UNDO": "Rückgängig",
"UNKNOWN": "Unbekannt",
"UPDATE_SUCCESSFULLY": "Erfolgreich aktualisiert",
"URL": "URL",
"VCARD_CONTACT": "vCard Kontakt",
+ "VERSION_VERSION": "Version {version}",
"VIBRATION": "Vibration",
"VIEWED": "Gesehen",
"VIEW_BOOKMARK": "Lesezeichen ansehen",
@@ -291,7 +295,7 @@
"UPC": "Universeller Produktcode "
},
"UPDATE": {
- "UPDATE_NOTES_ANDROID": "Diese Version bringt Ihnen mehrere Updates und neue Funktionen. Bitte überprüfen Sie GitHub für Details.",
+ "UPDATE_NOTES_ANDROID": "
Diese Version bringt Ihnen mehrere Updates und neue Funktionen. Bitte überprüfen Sie GitHub für Details.
Android-Benutzer können jetzt die Kachel Simple QR im Bereich Schnelleinstellungen für einen schnellen Zugriff aktivieren.
",
"UPDATE_NOTES_IOS": "Diese Version bringt Ihnen mehrere Updates und neue Funktionen. Bitte überprüfen Sie GitHub für Details."
}
}
\ No newline at end of file
diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json
index e92d51b..13e479a 100644
--- a/src/assets/i18n/en.json
+++ b/src/assets/i18n/en.json
@@ -172,6 +172,7 @@
"SHARE": "Share",
"SHARING": "Sharing",
"SHOW": "Show",
+ "SHOW_NUMBER_OR_RECORDS": "Show Number of Records",
"SHOW_QR_CODE": "Show QR Code",
"SIMPLE_QR": "Simple QR",
"STATE": "State",
@@ -184,12 +185,15 @@
"TASK_BUTTON_LAYOUT": "Task Button Layout",
"TURN_OFF": "Turn Off",
"TURN_ON": "Turn On",
+ "TURNED_OFF": "Turned Off",
+ "TURNED_ON": "Turned On",
"TUTORIAL": "Tutorial",
"UNDO": "Undo",
"UNKNOWN": "Unknown",
"UPDATE_SUCCESSFULLY": "Update Successfully",
"URL": "URL",
"VCARD_CONTACT": "vCard Contact",
+ "VERSION_VERSION": "Version {version}",
"VIBRATION": "Vibration",
"VIEWED": "Viewed",
"VIEW_BOOKMARK": "View Bookmark",
@@ -291,7 +295,7 @@
"UPC": "Universal Product Code "
},
"UPDATE": {
- "UPDATE_NOTES_ANDROID": "This release brings you several updates and new features. Please check GitHub for details.",
+ "UPDATE_NOTES_ANDROID": "
This release brings you several updates and new features. Please check GitHub for details.
Android users can now enable the Simple QR tile in the Quick Settings panel for quick access.
",
"UPDATE_NOTES_IOS": "This release brings you several updates and new features. Please check GitHub for details."
}
}
\ No newline at end of file
diff --git a/src/assets/i18n/fr.json b/src/assets/i18n/fr.json
index 91ab312..1492a2a 100644
--- a/src/assets/i18n/fr.json
+++ b/src/assets/i18n/fr.json
@@ -172,6 +172,7 @@
"SHARE": "Partager",
"SHARING": "Partager",
"SHOW": "Afficher",
+ "SHOW_NUMBER_OR_RECORDS": "Afficher le nombre d'enregistrements",
"SHOW_QR_CODE": "Afficher le code QR",
"SIMPLE_QR": "Simple QR",
"STATE": "Etat",
@@ -184,12 +185,15 @@
"TASK_BUTTON_LAYOUT": "Disposition des boutons de tâche",
"TURN_OFF": "Éteindre",
"TURN_ON": "Allumer",
+ "TURNED_OFF": "Désactivé",
+ "TURNED_ON": "Activée",
"TUTORIAL": "Didacticiel",
"UNDO": "Annuler",
"UNKNOWN": "Inconnu",
"UPDATE_SUCCESSFULLY": "Mise à jour réussie",
"URL": "URL",
"VCARD_CONTACT": "Contact vCard",
+ "VERSION_VERSION": "Version {version}",
"VIBRATION": "Vibration",
"VIEWED": "Vu",
"VIEW_BOOKMARK": "Afficher le signet",
@@ -291,7 +295,7 @@
"UPC": "Code produit universel"
},
"UPDATE": {
- "UPDATE_NOTES_ANDROID": "Cette version vous apporte plusieurs mises à jour et nouvelles fonctionnalités. Veuillez consulter GitHub pour plus de détails.",
+ "UPDATE_NOTES_ANDROID": "
Cette version vous apporte plusieurs mises à jour et nouvelles fonctionnalités. Veuillez consulter GitHub pour plus de détails.
Les utilisateurs d'Android peuvent désormais activer la vignette Simple QR dans le panneau Paramètres rapides pour un accès rapide.
",
"UPDATE_NOTES_IOS": "Cette version vous apporte plusieurs mises à jour et nouvelles fonctionnalités. Veuillez consulter GitHub pour plus de détails."
}
}
\ No newline at end of file
diff --git a/src/assets/i18n/it.json b/src/assets/i18n/it.json
index 208b5a8..2ab23f2 100644
--- a/src/assets/i18n/it.json
+++ b/src/assets/i18n/it.json
@@ -172,6 +172,7 @@
"SHARE": "Condividi",
"SHARING": "Condividendo",
"SHOW": "Mostra",
+ "SHOW_NUMBER_OR_RECORDS": "Mostra il numero di record",
"SHOW_QR_CODE": "Mostra il Codice QR",
"SIMPLE_QR": "Simple QR",
"STATE": "Stato",
@@ -184,12 +185,15 @@
"TASK_BUTTON_LAYOUT": "Disposizione Pulsante Operazione",
"TURN_OFF": "Spegni",
"TURN_ON": "Accendi",
+ "TURNED_OFF": "Spento",
+ "TURNED_ON": "Acceso",
"TUTORIAL": "Guida",
"UNDO": "Annulla",
"UNKNOWN": "Sconosciuto",
"UPDATE_SUCCESSFULLY": "Aggiornamento completato con successo",
"URL": "URL",
"VCARD_CONTACT": "Contatto vCard",
+ "VERSION_VERSION": "Versione {version}",
"VIBRATION": "Vibrazione",
"VIEWED": "Visualizzati",
"VIEW_BOOKMARK": "Visualizza segnalibri",
@@ -291,7 +295,7 @@
"UPC": "Codice Prodotto Universale "
},
"UPDATE": {
- "UPDATE_NOTES_ANDROID": "Questa versione offre numerosi aggiornamenti e nuove funzionalità. Si prega di controllare GitHub per i dettagli.",
+ "UPDATE_NOTES_ANDROID": "
Questa versione offre numerosi aggiornamenti e nuove funzionalità. Si prega di controllare GitHub per i dettagli.
Gli utenti Android possono ora abilitare il riquadro Simple QR nel pannello Impostazioni rapide per un rapido accesso.
",
"UPDATE_NOTES_IOS": "Questa versione offre numerosi aggiornamenti e nuove funzionalità. Si prega di controllare GitHub per i dettagli."
}
}
\ No newline at end of file
diff --git a/src/assets/i18n/zh-CN.json b/src/assets/i18n/zh-CN.json
index 9d82bd2..9bc560f 100644
--- a/src/assets/i18n/zh-CN.json
+++ b/src/assets/i18n/zh-CN.json
@@ -172,6 +172,7 @@
"SHARE": "分享",
"SHARING": "正在分享",
"SHOW": "显示",
+ "SHOW_NUMBER_OR_RECORDS": "显示记录数量",
"SHOW_QR_CODE": "显示 QR 码",
"SIMPLE_QR": "简易QR",
"STATE": "州",
@@ -184,12 +185,15 @@
"TASK_BUTTON_LAYOUT": "行动按键布局",
"TURN_OFF": "关闭",
"TURN_ON": "开启",
+ "TURNED_OFF": "已关闭",
+ "TURNED_ON": "已开启",
"TUTORIAL": "教学",
"UNDO": "复原",
"UNKNOWN": "未知",
"UPDATE_SUCCESSFULLY": "更新成功",
"URL": "网址",
"VCARD_CONTACT": "vCard 联络人",
+ "VERSION_VERSION": "版本 {version}",
"VIBRATION": "震动效果",
"VIEWED": "查看",
"VIEW_BOOKMARK": "查看书签",
@@ -291,7 +295,7 @@
"UPC": "通用产品代码"
},
"UPDATE": {
- "UPDATE_NOTES_ANDROID": "此版本为您带来多项更新和新功能,详情请查看 GitHub。",
+ "UPDATE_NOTES_ANDROID": "
此版本为您带来多项更新和新功能,详情请查看 GitHub。
Android 用户现在可以在快速设定面板中加入简易 QR 按键以进行快速启动。
",
"UPDATE_NOTES_IOS": "此版本为您带来多项更新和新功能,详情请查看 GitHub。"
}
}
\ No newline at end of file
diff --git a/src/assets/i18n/zh-HK.json b/src/assets/i18n/zh-HK.json
index 4d286af..9c29b10 100644
--- a/src/assets/i18n/zh-HK.json
+++ b/src/assets/i18n/zh-HK.json
@@ -172,6 +172,7 @@
"SHARE": "分享",
"SHARING": "正在分享",
"SHOW": "顯示",
+ "SHOW_NUMBER_OR_RECORDS": "顯示記錄數量",
"SHOW_QR_CODE": "顯示 QR 碼",
"SIMPLE_QR": "簡易QR",
"STATE": "州",
@@ -184,12 +185,15 @@
"TASK_BUTTON_LAYOUT": "行動按鍵佈局",
"TURN_OFF": "關閉",
"TURN_ON": "開啟",
+ "TURNED_OFF": "已關閉",
+ "TURNED_ON": "已開啟",
"TUTORIAL": "教學",
"UNDO": "還原",
"UNKNOWN": "未知",
"UPDATE_SUCCESSFULLY": "更新成功",
"URL": "網址",
"VCARD_CONTACT": "vCard 聯絡人",
+ "VERSION_VERSION": "版本 {version}",
"VIBRATION": "震動效果",
"VIEWED": "查看",
"VIEW_BOOKMARK": "查看書籤",
@@ -291,7 +295,7 @@
"UPC": "通用產品代碼"
},
"UPDATE": {
- "UPDATE_NOTES_ANDROID": "此版本為您帶來多項更新和新功能,詳情請查看 GitHub。",
+ "UPDATE_NOTES_ANDROID": "
此版本為您帶來多項更新和新功能,詳情請查看 GitHub。
Android 用戶現在可以在快速設定面板中加入簡易 QR 按鍵以進行快速啟動。
",
"UPDATE_NOTES_IOS": "此版本為您帶來多項更新和新功能,詳情請查看 GitHub。"
}
}
\ No newline at end of file
diff --git a/tsconfig.json b/tsconfig.json
index 26fa1e1..e8aced8 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -10,7 +10,7 @@
"experimentalDecorators": true,
"moduleResolution": "node",
"importHelpers": true,
- "target": "es5",
+ "target": "es2020",
"module": "es2020",
"lib": ["es2018", "dom"]
},