Skip to content

Commit 3bcc870

Browse files
committed
Merge branch 'main' into copilot/create-docusaurus-documentation-site
2 parents 3f50b86 + d72ea02 commit 3bcc870

26 files changed

Lines changed: 157 additions & 67 deletions

File tree

App_Resources/cardwallet/Android/app.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ android {
1010
def splitEnabled = (gradle.startParameter.taskNames.contains("assembleDebug") && project.hasProperty('abiFilters')) || project.hasProperty('splitEnabled');
1111
defaultConfig {
1212
multiDexEnabled false
13-
versionCode 61
14-
versionName "1.10.2"
13+
versionCode 62
14+
versionName "1.10.3"
1515

1616
// if (project.hasProperty('resConfigs')) {
1717
// def resConfigs = project.findProperty('resConfigs')

App_Resources/cardwallet/iOS/Info.plist

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
<plist version="1.0">
44
<dict>
55
<key>CFBundleShortVersionString</key>
6-
<string>1.9.0</string>
6+
<string>1.9.1</string>
77
<key>CFBundleVersion</key>
8-
<string>54</string>
8+
<string>55</string>
99
<key>CFBundleDevelopmentRegion</key>
1010
<string>en</string>
1111
<key>CFBundleDisplayName</key>

App_Resources/documentscanner/Android/app.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ android {
1010
def splitEnabled = (gradle.startParameter.taskNames.contains("assembleDebug") && project.hasProperty('abiFilters')) || project.hasProperty('splitEnabled');
1111
defaultConfig {
1212
multiDexEnabled false
13-
versionCode 140
14-
versionName "1.19.1"
13+
versionCode 141
14+
versionName "1.19.2"
1515

1616
// if (project.hasProperty('resConfigs')) {
1717
// def resConfigs = project.findProperty('resConfigs')

App_Resources/documentscanner/Android/src/main/res/drawable-anydpi-v21/icon_monochrome.xml

Lines changed: 0 additions & 29 deletions
This file was deleted.

App_Resources/documentscanner/iOS/Info.plist

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
<plist version="1.0">
44
<dict>
55
<key>CFBundleShortVersionString</key>
6-
<string>1.15.0</string>
6+
<string>1.15.1</string>
77
<key>CFBundleVersion</key>
8-
<string>74</string>
8+
<string>75</string>
99
<key>CFBundleDevelopmentRegion</key>
1010
<string>en</string>
1111
<key>CFBundleDisplayName</key>

app/components/common/SelectionToolbar.svelte

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
function onLayoutChanged(event: EventData) {
3838
const width = Utils.layout.toDeviceIndependentPixels((event.object as View).getMeasuredWidth());
3939
const nbVisibleButtons = (width - 32) / $actionBarButtonHeight;
40+
DEV_LOG && console.log('onLayoutChanged', width, $actionBarButtonHeight);
4041
if (options.length > nbVisibleButtons) {
4142
visibleOptions = options.slice(0, nbVisibleButtons - 1);
4243
overflowOptions = options.slice(nbVisibleButtons);

app/components/edit/DocumentEdit.svelte

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import { HorizontalPosition, VerticalPosition } from '@nativescript-community/ui-popover';
1010
import { showPopover } from '@nativescript-community/ui-popover/svelte';
1111
import { AndroidActivityBackPressedEventData, Application, Frame, ObservableArray, Page, PageTransition, SharedTransition, View } from '@nativescript/core';
12-
import { debounce } from '@nativescript/core/utils';
12+
import { debounce, throttle } from '@nativescript/core/utils';
1313
import { showError } from '@shared/utils/showError';
1414
import { goBack, showModal } from '@shared/utils/svelte/ui';
1515
import { OCRData, QRCodeData, Quad, getImageSize } from 'plugin-nativeprocessor';
@@ -438,16 +438,25 @@
438438
showError(error);
439439
}
440440
}
441+
442+
const saveBrightnessContrast = debounce(
443+
(brightness: number, contrast: number) => {
444+
document.updatePage(currentIndex, {
445+
brightness,
446+
contrast
447+
});
448+
},
449+
500,
450+
{ leading: false }
451+
);
441452
async function applyBrightnessContrast(brightness: number, contrast: number) {
442453
try {
443454
const current = items.getItem(currentIndex);
444455
current.colorMatrix = null;
445456
current.brightness = brightness;
446457
current.contrast = contrast;
447-
document.updatePage(currentIndex, {
448-
brightness,
449-
contrast
450-
});
458+
items.setItem(currentIndex, current);
459+
saveBrightnessContrast(brightness, contrast);
451460
} catch (error) {
452461
showError(error);
453462
}

app/components/view/CardView.svelte

Lines changed: 52 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
showSnack,
7575
transformPages
7676
} from '~/utils/ui';
77-
import { colors, fontScale, hasCamera, isLandscape, onFontScaleChanged, screenHeightDips, screenWidthDips, windowInset } from '~/variables';
77+
import { colors, fontScale, fonts, hasCamera, isLandscape, onFontScaleChanged, screenHeightDips, screenWidthDips, windowInset } from '~/variables';
7878
import EditNameActionBar from '~/components/common/EditNameActionBar.svelte';
7979
import IconButton from '~/components/common/IconButton.svelte';
8080
import ListItemAutoSize from '~/components/common/ListItemAutoSize.svelte';
@@ -373,7 +373,13 @@
373373
function unselectAll() {
374374
if (items) {
375375
nbSelected = 0;
376-
items.splice(0, items.length, ...items.map((i) => ({ page: i.page, selected: false, index: i.index })));
376+
items.splice(0, items.length, ...items.map((i) => ({ ...i, selected: false })));
377+
}
378+
}
379+
function selectAll() {
380+
if (items) {
381+
items.splice(0, items.length, ...items.map((i) => ({ ...i, selected: true })));
382+
nbSelected = items.length;
377383
}
378384
}
379385
function toggleSelection(item: Item) {
@@ -383,10 +389,22 @@
383389
selectItem(item);
384390
}
385391
}
392+
let inEditMode = false;
393+
function switchEditMode() {
394+
inEditMode = !inEditMode;
395+
collectionView?.nativeElement?.refreshVisibleItems();
396+
}
386397
let longPressTimer: NodeJS.Timeout;
387398
let currentLongPressItem: Item;
388399
let dragStarted = false;
389400
function onItemLongPress(item: Item, event?) {
401+
if (inEditMode) {
402+
startDragging(item, event);
403+
return;
404+
}
405+
if (dragStarted) {
406+
return;
407+
}
390408
if (nbSelected > 0) {
391409
toggleSelection(item);
392410
return;
@@ -404,7 +422,7 @@
404422
toggleSelection(item);
405423
}
406424
currentLongPressItem = null;
407-
}, 400);
425+
}, 200);
408426
}
409427
async function onPan(item: Item, event) {
410428
if (!currentLongPressItem) {
@@ -430,6 +448,17 @@
430448
currentLongPressItem = null;
431449
}
432450
}
451+
async function onTouch(item: Item, event?) {
452+
if (!inEditMode) {
453+
return;
454+
}
455+
switch (event.action) {
456+
case 'down': {
457+
startDragging(item, event);
458+
break;
459+
}
460+
}
461+
}
433462
async function onItemTap(item: Item) {
434463
try {
435464
if (nbSelected > 0) {
@@ -474,7 +503,9 @@
474503
const onAndroidBackButton = (data: AndroidActivityBackPressedEventData) =>
475504
onBackButton(page?.nativeView, () => {
476505
data.cancel = true;
477-
if (nbSelected > 0) {
506+
if (inEditMode) {
507+
switchEditMode();
508+
} else if (nbSelected > 0) {
478509
unselectAll();
479510
} else {
480511
onGoBack();
@@ -762,6 +793,8 @@
762793
// Filter options based on PKPass document
763794
const allOptions = [
764795
{ id: 'rename', name: lc('rename'), icon: 'mdi-rename' },
796+
{ id: 'select_all', name: lc('select_all'), icon: 'mdi-select-all' },
797+
{ id: 'reorder', name: lc('reorder_pages'), icon: 'mdi-reorder-horizontal' },
765798
{ id: 'transform', name: lc('transform_images'), icon: 'mdi-auto-fix' },
766799
{ id: 'ocr', name: lc('ocr_document'), icon: 'mdi-text-recognition' },
767800
{ id: 'delete', name: lc('delete'), icon: 'mdi-delete', color: colorError }
@@ -779,6 +812,9 @@
779812
case 'rename':
780813
editingTitle = true;
781814
break;
815+
case 'select_all':
816+
selectAll();
817+
break;
782818
case 'ocr':
783819
await detectOCR({ documents: [document] });
784820
unselectAll();
@@ -790,6 +826,10 @@
790826
case 'delete':
791827
await deleteDoc();
792828
break;
829+
case 'reorder':
830+
unselectAll();
831+
switchEditMode();
832+
break;
793833
}
794834
}
795835
});
@@ -1203,14 +1243,17 @@
12031243
backgroundColor={getItemBackgroundColor(item)}
12041244
elevation={isEInk ? 0 : 6}
12051245
longPressGestureOptions={(view, tag, rootTag) => ({
1206-
simultaneousHandlers: [rootTag, view['PAN_HANDLER_TAG']]
1246+
simultaneousHandlers: [rootTag, view['PAN_HANDLER_TAG']],
1247+
minDurationMs: 300
12071248
})}
12081249
margin={12}
12091250
panGestureOptions={(view, tag, rootTag) => ({
1251+
simultaneousHandlers: [rootTag, view['LONGPRESS_HANDLER_TAG']],
12101252
minDist: 20
12111253
})}
12121254
rippleColor={colorSurface}
12131255
on:tap={() => onItemTap(item)}
1256+
on:touch={(e) => onTouch(item, e)}
12141257
on:longPress={(e) => onItemLongPress(item, e)}
12151258
on:pan={(e) => onPan(item, e)}>
12161259
<RotableImageView
@@ -1235,6 +1278,7 @@
12351278
verticalTextAlignment="center"
12361279
visibility={item.page.imagePath ? 'hidden' : 'visible'} />
12371280
<SelectedIndicator rowSpan={2} selected={item.selected} />
1281+
<label fontFamily={$fonts.mdi} fontSize={24} padding={10} text="mdi-reorder-horizontal" verticalAlignment="bottom" visibility={inEditMode ? 'visible' : 'hidden'} />
12381282
<PageIndicator horizontalAlignment="right" margin={2} rowSpan={2} scale={$fontScale} text={index + 1} />
12391283
</gridlayout>
12401284
</Template>
@@ -1353,11 +1397,11 @@
13531397
backgroundColor={topBackgroundColor}
13541398
buttonsDefaultVisualState={statusBarStyle}
13551399
colSpan={2}
1356-
forceCanGoBack={nbSelected > 0}
1400+
forceCanGoBack={inEditMode || nbSelected > 0}
13571401
labelsDefaultVisualState={statusBarStyle}
1358-
onGoBack={nbSelected ? unselectAll : null}
1402+
onGoBack={nbSelected ? unselectAll : inEditMode ? switchEditMode : null}
13591403
onTitleTap={() => (editingTitle = true)}
1360-
title={nbSelected ? lc('selected', nbSelected) : document.name}
1404+
title={inEditMode ? lc('reorder_pages') : nbSelected ? lc('selected', nbSelected) : document.name}
13611405
titleProps={{ padding: 0, color: statusBarStyle === 'dark' ? 'white' : 'black' }}>
13621406
<!-- {#if editing}
13631407
<mdbutton class="actionBarButton" defaultVisualState={statusBarStyle} text="mdi-close" variant="text" on:tap={cancelEdit} />

0 commit comments

Comments
 (0)