Skip to content

Commit 844e234

Browse files
Fix/example1 (#556)
* feat: support blur resource (#550) * fix: example * feat: add btc params * chore: update blur screent example * chore: fix lint * chore: release 1.1.11-alpha.2
1 parent 3c9d959 commit 844e234

File tree

21 files changed

+424
-5671
lines changed

21 files changed

+424
-5671
lines changed

packages/connect-examples/electron-example/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "hardware-example",
33
"productName": "HardwareExample",
44
"executableName": "onekey-hardware-example",
5-
"version": "1.1.11",
5+
"version": "1.1.12-alpha.0",
66
"author": "OneKey",
77
"description": "End-to-end encrypted workspaces for teams",
88
"main": "dist/index.js",
@@ -22,7 +22,7 @@
2222
"ts:check": "yarn tsc --noEmit"
2323
},
2424
"dependencies": {
25-
"@onekeyfe/hd-transport-electron": "1.1.11",
25+
"@onekeyfe/hd-transport-electron": "1.1.12-alpha.0",
2626
"@stoprocent/noble": "2.3.4",
2727
"debug": "4.3.4",
2828
"electron-is-dev": "^3.0.1",

packages/connect-examples/expo-example/package.json

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "expo-example",
3-
"version": "1.1.11",
3+
"version": "1.1.12-alpha.0",
44
"scripts": {
55
"start": "cross-env CONNECT_SRC=https://localhost:8087/ yarn expo start --dev-client",
66
"android": "yarn expo run:android",
@@ -19,10 +19,10 @@
1919
"@noble/ed25519": "^2.1.0",
2020
"@noble/hashes": "^1.3.3",
2121
"@noble/secp256k1": "^1.7.1",
22-
"@onekeyfe/hd-ble-sdk": "1.1.11",
23-
"@onekeyfe/hd-common-connect-sdk": "1.1.11",
24-
"@onekeyfe/hd-core": "1.1.11",
25-
"@onekeyfe/hd-web-sdk": "1.1.11",
22+
"@onekeyfe/hd-ble-sdk": "1.1.12-alpha.0",
23+
"@onekeyfe/hd-common-connect-sdk": "1.1.12-alpha.0",
24+
"@onekeyfe/hd-core": "1.1.12-alpha.0",
25+
"@onekeyfe/hd-web-sdk": "1.1.12-alpha.0",
2626
"@onekeyfe/react-native-ble-utils": "^0.1.3",
2727
"@polkadot/util-crypto": "13.1.1",
2828
"@react-native-async-storage/async-storage": "1.21.0",
@@ -77,6 +77,7 @@
7777
"react-native-web": "~0.19.10",
7878
"ripple-keypairs": "^1.1.4",
7979
"rlp": "^3.0.0",
80+
"stackblur-canvas": "^2.7.0",
8081
"stream-browserify": "^3.0.0",
8182
"tamagui": "^1.90.2",
8283
"text-encoding": "^0.7.0",

packages/connect-examples/expo-example/src/components/UploadScreen/index.tsx

Lines changed: 95 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,21 @@ import { Buffer } from 'buffer';
22
import React, { useState, useEffect, useContext } from 'react';
33

44
import { bytesToHex } from '@noble/hashes/utils';
5-
import { Picker } from '@react-native-picker/picker';
65
import * as ImagePicker from 'expo-image-picker';
76
import { Action, manipulateAsync, SaveFormat } from 'expo-image-manipulator';
87

98
import { DeviceUploadResourceParams, getHomeScreenSize, getDeviceType } from '@onekeyfe/hd-core';
109
import { ResourceType } from '@onekeyfe/hd-transport';
11-
import { Image, Label, Stack, View, XStack } from 'tamagui';
10+
import { Image as ImageView, Label, Stack, View, XStack } from 'tamagui';
1211
import { Platform } from 'react-native';
1312
import { useIntl } from 'react-intl';
14-
import { getImageSize, imageToBase64, formatBytes, generateUploadNFTParams } from './nftUtils';
13+
import {
14+
getImageSize,
15+
imageToBase64,
16+
formatBytes,
17+
generateUploadNFTParams,
18+
processImageBlur,
19+
} from './nftUtils';
1520
import HardwareSDKContext from '../../provider/HardwareSDKContext';
1621
import { useCommonParams } from '../../provider/CommonParamsProvider';
1722
import { useDevice } from '../../provider/DeviceProvider';
@@ -24,6 +29,8 @@ interface UploadResourceParams {
2429
resType?: number;
2530
nftMetaData?: string;
2631
fileNameNoExt?: string;
32+
blurRadius?: number;
33+
blurOverlayOpacity?: number;
2734
}
2835

2936
function getUrlExtension(url: string) {
@@ -39,6 +46,8 @@ export const generateUploadResParams = async ({
3946
height,
4047
homeScreenSize,
4148
homeScreenThumbnailSize,
49+
blurRadius,
50+
blurOverlayOpacity,
4251
cb,
4352
}: {
4453
uri: string;
@@ -52,6 +61,8 @@ export const generateUploadResParams = async ({
5261
width: number;
5362
height: number;
5463
};
64+
blurRadius?: number;
65+
blurOverlayOpacity?: number;
5566
cb?: (data: { base64?: string }) => void;
5667
}) => {
5768
const data = await compressHomescreen(
@@ -69,6 +80,12 @@ export const generateUploadResParams = async ({
6980
height
7081
);
7182

83+
const blurData = await processImageBlur({
84+
base64Data: data?.base64 ?? '',
85+
blurRadius: blurRadius ?? 100,
86+
overlayOpacity: blurOverlayOpacity ?? 0.2,
87+
});
88+
7289
cb?.(data as any);
7390

7491
if (!data?.arrayBuffer && !zoomData?.arrayBuffer) return;
@@ -84,6 +101,7 @@ export const generateUploadResParams = async ({
84101
suffix: 'jpeg',
85102
dataHex: bytesToHex(data?.arrayBuffer as Uint8Array),
86103
thumbnailDataHex: bytesToHex(zoomData?.arrayBuffer as Uint8Array),
104+
blurDataHex: blurData.hex,
87105
nftMetaData: '',
88106
fileNameNoExt: undefined,
89107
};
@@ -214,6 +232,8 @@ function UploadScreenComponent() {
214232
height,
215233
homeScreenSize: HomeScreenSize,
216234
homeScreenThumbnailSize: HomeScreenThumbnailSize,
235+
blurRadius: uploadScreenParams?.blurRadius ?? 100,
236+
blurOverlayOpacity: uploadScreenParams?.blurOverlayOpacity ?? 0.2,
217237
cb: data => {
218238
setImage({ uri: base64 } as any);
219239
setPreviewData(data?.base64 ? `data:image/png;base64,${data.base64}` : null);
@@ -275,6 +295,8 @@ function UploadScreenComponent() {
275295
height: image.height ?? 0,
276296
homeScreenSize: HomeScreenSize,
277297
homeScreenThumbnailSize: HomeScreenThumbnailSize,
298+
blurRadius: uploadScreenParams?.blurRadius ?? 100,
299+
blurOverlayOpacity: uploadScreenParams?.blurOverlayOpacity ?? 0.2,
278300
cb: data => {
279301
setPreviewData(data?.base64 ? `data:image/png;base64,${data.base64}` : null);
280302
},
@@ -386,6 +408,40 @@ function UploadScreenComponent() {
386408
}
387409
}}
388410
/>
411+
<CommonInput
412+
type="number"
413+
label="Blur Radius"
414+
value={uploadScreenParams?.blurRadius?.toString() ?? '100'}
415+
placeholder="100"
416+
onChange={v => {
417+
if (!isInputDisabled) {
418+
try {
419+
parseInt(v);
420+
} catch (e) {
421+
alert('Blur Radius must be a number');
422+
return;
423+
}
424+
setUploadScreenParams({ ...uploadScreenParams, blurRadius: parseInt(v) });
425+
}
426+
}}
427+
/>
428+
<CommonInput
429+
type="number"
430+
label="Blur Overlay Opacity"
431+
value={uploadScreenParams?.blurOverlayOpacity?.toString() ?? '0.2'}
432+
placeholder="100"
433+
onChange={v => {
434+
if (!isInputDisabled) {
435+
try {
436+
parseInt(v);
437+
} catch (e) {
438+
alert('Blur Overlay Opacity must be a number');
439+
return;
440+
}
441+
setUploadScreenParams({ ...uploadScreenParams, blurOverlayOpacity: parseInt(v) });
442+
}
443+
}}
444+
/>
389445
<Button onPress={() => handleScreenUpdate('WallPaper')} disabled={isLoading || !image}>
390446
{isLoading ? 'Uploading...' : intl.formatMessage({ id: 'action__upload' })}
391447
</Button>
@@ -421,6 +477,40 @@ function UploadScreenComponent() {
421477
}
422478
}}
423479
/>
480+
<CommonInput
481+
type="number"
482+
label="Blur Radius"
483+
value={uploadScreenParams?.blurRadius?.toString() ?? '100'}
484+
placeholder="100"
485+
onChange={v => {
486+
if (!isInputDisabled) {
487+
try {
488+
parseInt(v);
489+
} catch (e) {
490+
alert('Blur Radius must be a number');
491+
return;
492+
}
493+
setUploadScreenParams({ ...uploadScreenParams, blurRadius: parseInt(v) });
494+
}
495+
}}
496+
/>
497+
<CommonInput
498+
type="number"
499+
label="Blur Overlay Opacity"
500+
value={uploadScreenParams?.blurOverlayOpacity?.toString() ?? '0.2'}
501+
placeholder="100"
502+
onChange={v => {
503+
if (!isInputDisabled) {
504+
try {
505+
parseInt(v);
506+
} catch (e) {
507+
alert('Blur Overlay Opacity must be a number');
508+
return;
509+
}
510+
setUploadScreenParams({ ...uploadScreenParams, blurOverlayOpacity: parseInt(v) });
511+
}
512+
}}
513+
/>
424514
<Button onPress={loadNftData} disabled={isLoading || !nftUrl} marginRight="$2">
425515
{isLoading ? 'Loading...' : 'Load NFT Data'}
426516
</Button>
@@ -434,7 +524,7 @@ function UploadScreenComponent() {
434524
预览
435525
</Label>
436526
{image && (
437-
<Image
527+
<ImageView
438528
height={800}
439529
width={480}
440530
source={{ uri: image.uri }}
@@ -444,7 +534,7 @@ function UploadScreenComponent() {
444534
)}
445535
{previewData && (
446536
// NFT
447-
<Image height={238} width={238} source={{ uri: previewData }} />
537+
<ImageView height={238} width={238} source={{ uri: previewData }} />
448538
// HOME SCREEN
449539
// <Image style={{ height: 800, width: 480 }} source={{ uri: previewData }} />
450540
)}

0 commit comments

Comments
 (0)