Skip to content

Commit 6fa9816

Browse files
committed
support auto uploading AI recognition image as transaction picture
1 parent e3ecadf commit 6fa9816

32 files changed

Lines changed: 196 additions & 65 deletions

pkg/models/user_app_cloud_setting.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ var ALL_ALLOWED_CLOUD_SYNC_APP_SETTING_KEY_TYPES = map[string]UserApplicationClo
3535
"autoGetCurrentGeoLocation": USER_APPLICATION_CLOUD_SETTING_TYPE_BOOLEAN,
3636
"alwaysShowTransactionPicturesInMobileTransactionEditPage": USER_APPLICATION_CLOUD_SETTING_TYPE_BOOLEAN,
3737
"transactionPictureQuality": USER_APPLICATION_CLOUD_SETTING_TYPE_NUMBER,
38+
// AI Image Recognition
39+
"autoUploadTransactionPictureForAIRecognition": USER_APPLICATION_CLOUD_SETTING_TYPE_BOOLEAN,
3840
// Import Transaction Dialog
3941
"rememberLastSelectedFileTypeInImportTransactionDialog": USER_APPLICATION_CLOUD_SETTING_TYPE_BOOLEAN,
4042
"lastSelectedFileTypeInImportTransactionDialog": USER_APPLICATION_CLOUD_SETTING_TYPE_STRING,

src/components/mobile/AIImageRecognitionSheet.vue

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,18 @@ import { generateRandomUUID } from '@/lib/misc.ts';
4949
import { compressJpgImageByQuality } from '@/lib/ui/common.ts';
5050
import logger from '@/lib/logger.ts';
5151
52+
export interface AIImageRecognitionResult {
53+
response: RecognizedReceiptImageResponse;
54+
imageFile: File;
55+
}
56+
5257
defineProps<{
5358
show: boolean;
5459
}>();
5560
5661
const emit = defineEmits<{
5762
(e: 'update:show', value: boolean): void;
58-
(e: 'recognition:change', value: RecognizedReceiptImageResponse): void;
63+
(e: 'recognition:change', value: AIImageRecognitionResult): void;
5964
}>();
6065
6166
const { tt } = useI18n();
@@ -120,6 +125,7 @@ function confirm(): void {
120125
return;
121126
}
122127
128+
const currentImageFile = imageFile.value;
123129
cancelRecognizingUuid.value = generateRandomUUID();
124130
recognizing.value = true;
125131
showCancelableLoading('Recognizing', 'AI can make mistakes. Check important info.', 'Cancel Recognition', cancelRecognize);
@@ -132,7 +138,7 @@ function confirm(): void {
132138
cancelRecognizingUuid.value = undefined;
133139
closeAllDialog();
134140
emit('update:show', false);
135-
emit('recognition:change', response);
141+
emit('recognition:change', { response: response, imageFile: currentImageFile });
136142
}).catch(error => {
137143
if (error.canceled) {
138144
return;

src/core/setting.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ export interface ApplicationSettings extends BaseApplicationSetting {
6060
autoGetCurrentGeoLocation: boolean;
6161
alwaysShowTransactionPicturesInMobileTransactionEditPage: boolean;
6262
transactionPictureQuality: number;
63+
// AI Image Recognition
64+
autoUploadTransactionPictureForAIRecognition: boolean;
6365
// Import Transaction Dialog
6466
rememberLastSelectedFileTypeInImportTransactionDialog: boolean;
6567
lastSelectedFileTypeInImportTransactionDialog: string;
@@ -141,6 +143,8 @@ export const ALL_ALLOWED_CLOUD_SYNC_APP_SETTING_KEY_TYPES: Record<string, UserAp
141143
'autoGetCurrentGeoLocation': UserApplicationCloudSettingType.Boolean,
142144
'alwaysShowTransactionPicturesInMobileTransactionEditPage': UserApplicationCloudSettingType.Boolean,
143145
'transactionPictureQuality': UserApplicationCloudSettingType.Number,
146+
// AI Image Recognition
147+
'autoUploadTransactionPictureForAIRecognition': UserApplicationCloudSettingType.Boolean,
144148
// Import Transaction Dialog
145149
'rememberLastSelectedFileTypeInImportTransactionDialog': UserApplicationCloudSettingType.Boolean,
146150
'lastSelectedFileTypeInImportTransactionDialog': UserApplicationCloudSettingType.String,
@@ -204,6 +208,8 @@ export const DEFAULT_APPLICATION_SETTINGS: ApplicationSettings = {
204208
autoGetCurrentGeoLocation: false,
205209
alwaysShowTransactionPicturesInMobileTransactionEditPage: false,
206210
transactionPictureQuality: ImageUploadQualityType.Default.type,
211+
// AI Image Recognition
212+
autoUploadTransactionPictureForAIRecognition: false,
207213
// Import Transaction Dialog
208214
rememberLastSelectedFileTypeInImportTransactionDialog: true,
209215
lastSelectedFileTypeInImportTransactionDialog: '',

src/locales/de.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2355,6 +2355,7 @@
23552355
"Automatically Add Geolocation": "Geolocation automatisch hinzufügen",
23562356
"Always Show Transaction Pictures": "Transaktionsbilder immer anzeigen",
23572357
"Transaction Picture Upload Quality": "Transaction Picture Upload Quality",
2358+
"Auto Upload AI Recognition Image as Transaction Picture": "Auto Upload AI Recognition Image as Transaction Picture",
23582359
"Import Transaction Dialog": "Transaktionsimport-Dialog",
23592360
"Remember Last Selected File Type": "Zuletzt ausgewählten Dateityp merken",
23602361
"Insights Explorer Page": "Daten-Explorer-Seite",

src/locales/en.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2355,6 +2355,7 @@
23552355
"Automatically Add Geolocation": "Automatically Add Geolocation",
23562356
"Always Show Transaction Pictures": "Always Show Transaction Pictures",
23572357
"Transaction Picture Upload Quality": "Transaction Picture Upload Quality",
2358+
"Auto Upload AI Recognition Image as Transaction Picture": "Auto Upload AI Recognition Image as Transaction Picture",
23582359
"Import Transaction Dialog": "Import Transaction Dialog",
23592360
"Remember Last Selected File Type": "Remember Last Selected File Type",
23602361
"Insights Explorer Page": "Insights Explorer Page",

src/locales/es.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2355,6 +2355,7 @@
23552355
"Automatically Add Geolocation": "Agregar Geolocalización Automáticamente",
23562356
"Always Show Transaction Pictures": "Always Show Transaction Pictures",
23572357
"Transaction Picture Upload Quality": "Transaction Picture Upload Quality",
2358+
"Auto Upload AI Recognition Image as Transaction Picture": "Auto Upload AI Recognition Image as Transaction Picture",
23582359
"Import Transaction Dialog": "Import Transaction Dialog",
23592360
"Remember Last Selected File Type": "Remember Last Selected File Type",
23602361
"Insights Explorer Page": "Insights Explorer Page",

src/locales/fr.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2355,6 +2355,7 @@
23552355
"Automatically Add Geolocation": "Ajouter automatiquement la géolocalisation",
23562356
"Always Show Transaction Pictures": "Toujours afficher les images de transaction",
23572357
"Transaction Picture Upload Quality": "Transaction Picture Upload Quality",
2358+
"Auto Upload AI Recognition Image as Transaction Picture": "Auto Upload AI Recognition Image as Transaction Picture",
23582359
"Import Transaction Dialog": "Import Transaction Dialog",
23592360
"Remember Last Selected File Type": "Remember Last Selected File Type",
23602361
"Insights Explorer Page": "Insights Explorer Page",

src/locales/it.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2355,6 +2355,7 @@
23552355
"Automatically Add Geolocation": "Aggiungi automaticamente geolocalizzazione",
23562356
"Always Show Transaction Pictures": "Always Show Transaction Pictures",
23572357
"Transaction Picture Upload Quality": "Transaction Picture Upload Quality",
2358+
"Auto Upload AI Recognition Image as Transaction Picture": "Auto Upload AI Recognition Image as Transaction Picture",
23582359
"Import Transaction Dialog": "Import Transaction Dialog",
23592360
"Remember Last Selected File Type": "Remember Last Selected File Type",
23602361
"Insights Explorer Page": "Insights Explorer Page",

src/locales/ja.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2355,6 +2355,7 @@
23552355
"Automatically Add Geolocation": "座標を自動的に追加",
23562356
"Always Show Transaction Pictures": "Always Show Transaction Pictures",
23572357
"Transaction Picture Upload Quality": "Transaction Picture Upload Quality",
2358+
"Auto Upload AI Recognition Image as Transaction Picture": "Auto Upload AI Recognition Image as Transaction Picture",
23582359
"Import Transaction Dialog": "Import Transaction Dialog",
23592360
"Remember Last Selected File Type": "Remember Last Selected File Type",
23602361
"Insights Explorer Page": "Insights Explorer Page",

src/locales/kn.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2355,6 +2355,7 @@
23552355
"Automatically Add Geolocation": "ಭೌಗೋಳಿಕ ಸ್ಥಾನವನ್ನು ಸ್ವಯಂ ಸೇರಿಸಿ",
23562356
"Always Show Transaction Pictures": "ವಹಿವಾಟು ಚಿತ್ರಗಳನ್ನು ಯಾವಾಗಲೂ ತೋರಿಸಿ",
23572357
"Transaction Picture Upload Quality": "Transaction Picture Upload Quality",
2358+
"Auto Upload AI Recognition Image as Transaction Picture": "Auto Upload AI Recognition Image as Transaction Picture",
23582359
"Import Transaction Dialog": "Import Transaction Dialog",
23592360
"Remember Last Selected File Type": "Remember Last Selected File Type",
23602361
"Insights Explorer Page": "Insights Explorer Page",

0 commit comments

Comments
 (0)