Compare commits

..

1417 Commits

Author SHA1 Message Date
Neeraj
2e193d3ac0 [auth] Misc fixes & locale improvements (#5432)
## Description

## Tests
2025-03-25 10:43:08 +05:30
Neeraj Gupta
4a1540b63b Bump version 2025-03-25 10:39:38 +05:30
Neeraj Gupta
18b71dbc0c [auth] Increase initial window height 2025-03-25 10:34:49 +05:30
Neeraj Gupta
b3ba9a6aa7 [auth] Change macos min target from 10.14 to 10.15 2025-03-25 10:32:32 +05:30
Neeraj Gupta
e2878ec454 [auth] Enable l10n for Romanian & Hebrew language 2025-03-25 10:25:09 +05:30
Neeraj Gupta
cfebf632dc l10n generated changes 2025-03-25 10:18:34 +05:30
Neeraj Gupta
b97e77a4f8 [auth] Support both Chinese Simplified and Traditional 2025-03-25 10:17:14 +05:30
Neeraj Gupta
9df375b2e9 [auth] Require min ios 13.0 for cuptertino_http 2025-03-25 10:16:01 +05:30
Manav Rathi
e0f9e6f586 [web] Video streaming WIP - Part x/x (#5431) 2025-03-25 10:13:56 +05:30
Manav Rathi
fa32ab55c6 LF 2025-03-25 10:09:30 +05:30
Manav Rathi
fcd6a621e0 +hls.js 2025-03-25 10:01:45 +05:30
Manav Rathi
afea991e16 elsewhere 2025-03-25 09:55:14 +05:30
Manav Rathi
2d245ea8e4 URL 2025-03-25 09:55:14 +05:30
Manav Rathi
f29ed595de More notes 2025-03-25 09:55:13 +05:30
github-actions[bot]
b901e4b210 [auth] New translations (#5330)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-03-25 09:43:55 +05:30
Manav Rathi
17c8d9d372 [desktop] Update icons (#5430)
Also update Electron to pick the latest patch release in the current
series.
2025-03-25 09:16:03 +05:30
Manav Rathi
9319aeee6f Update icons
general note of commands which were needed:

    mkdir build/icon.iconset
    touch build/icon.iconset/icon_512x512@2x.png
    iconutil --convert icns --output build/icon.icns build/icon.iconset
    # general resizing
    sips -Z 48 build/taskbar-icon@3x.png

for the icns while just the above worked, here is fuller script that also uses
the size variants (rom
https://stackoverflow.com/questions/12306223/how-to-manually-create-icns-files-using-iconutil),
the final asset used this.

    mkdir MyIcon.iconset
    sips -z 16 16     Icon1024.png --out MyIcon.iconset/icon_16x16.png
    sips -z 32 32     Icon1024.png --out MyIcon.iconset/icon_16x16@2x.png
    sips -z 32 32     Icon1024.png --out MyIcon.iconset/icon_32x32.png
    sips -z 64 64     Icon1024.png --out MyIcon.iconset/icon_32x32@2x.png
    sips -z 128 128   Icon1024.png --out MyIcon.iconset/icon_128x128.png
    sips -z 256 256   Icon1024.png --out MyIcon.iconset/icon_128x128@2x.png
    sips -z 256 256   Icon1024.png --out MyIcon.iconset/icon_256x256.png
    sips -z 512 512   Icon1024.png --out MyIcon.iconset/icon_256x256@2x.png
    sips -z 512 512   Icon1024.png --out MyIcon.iconset/icon_512x512.png
    cp Icon1024.png MyIcon.iconset/icon_512x512@2x.png
    iconutil -c icns MyIcon.iconset
    rm -R MyIcon.iconset

for the taskbar icons I used this ad-hoc script:

    #!/bin/sh

    set -e

    sips -Z 16 ~/Downloads/Taskbar.png --out build/taskbar-icon.png
    sips -Z 32 ~/Downloads/Taskbar.png --out build/taskbar-icon@2x.png
    sips -Z 48 ~/Downloads/Taskbar.png --out build/taskbar-icon@3x.png

    sips -Z 16 ~/Downloads/Taskbar-Template.png --out build/taskbar-icon-Template.png
    sips -Z 32 ~/Downloads/Taskbar-Template.png --out build/taskbar-icon-Template@2x.png
    sips -Z 48 ~/Downloads/Taskbar-Template.png --out build/taskbar-icon-Template@3x.png
2025-03-25 09:04:04 +05:30
github-actions[bot]
7dfa822b0f [mobile] New translations (#5421)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-03-25 06:39:15 +05:30
antoniohg
edf1fe19e5 [auth][icon] add Pionex custom icon and entry to the icon data (#5394)
## Description
Create a custom icon for Pionex, one of the most popular crypto trading
bot platform
## Tests
Icon change only, no code changes.
2025-03-25 06:37:59 +05:30
mangesh
164df3edef [server] log.Error log.Info (#5425) 2025-03-25 06:36:54 +05:30
Neeraj
bce91b6d38 [mob] Fix npe in featureFlag service (#5429)
## Description

## Tests
2025-03-25 06:36:17 +05:30
Neeraj
7829913c48 [auth][icon] Patient Access (#5413)
## Description
Hi, sincere apologies if there are any issues I’ve created. I’m new to
pull requests. I attach a Patient Access icon for Ente Auth. If
everything goes well I (if it’s okay) will be happy to help in the
future.

Kind regards,
Jack
2025-03-25 06:14:30 +05:30
Neeraj Gupta
ca40eaa377 [mob] Fix npe in featureFlag service 2025-03-25 06:13:18 +05:30
Manav Rathi
67a0ff55b4 Update electron 2025-03-24 19:10:01 +05:30
Manav Rathi
9d87aa2228 [web] Dockerfile accounts fix (#5424)
try_files $uri/ matches the passkeys/ folder in accounts app, causing
nginx to
try loading (e.g.)  http://localhost:3001/passkeys/?xxx instead of
http://localhost:3001/passkeys?xxx

The way Next is currently generating the static renders, we anyways
don't need
the slug/index.html lookup, the only index.html we have is at the root,
rest of
them are of the form slug.html.
2025-03-24 11:56:51 +05:30
Manav Rathi
fe3c3f8a49 [web] Dockerfile accounts fix
try_files $uri/ matches the passkeys/ folder in accounts app, causing nginx to
try loading (e.g.)  http://localhost:3001/passkeys/?xxx instead of
http://localhost:3001/passkeys?xxx

The way Next is currently generating the static renders, we anyways don't need
the slug/index.html lookup, the only index.html we have is at the root, rest of
them are of the form slug.html.
2025-03-24 11:37:50 +05:30
Manav Rathi
c2ba851076 [web] New translations (#5420)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-03-24 10:48:16 +05:30
Crowdin Bot
ba8e8302c7 New Crowdin translations by GitHub Action 2025-03-24 00:37:55 +00:00
Prateek Sunal
f37777885e [auth] Fix drop review copy (#5412) 2025-03-23 00:04:43 +05:30
mngshm
ffdf5960c0 log.Error log.Info 2025-03-23 00:00:25 +05:30
Aman Raj Singh Mourya
bb6b4ba49d minor fix 2025-03-22 23:59:34 +05:30
Jack Roberts
3d3f200168 Add files via upload 2025-03-22 18:13:03 +00:00
Jack Roberts
40649f172a Update custom-icons.json 2025-03-22 18:11:37 +00:00
Aman Raj Singh Mourya
b8f144132b [auth] fix copy 2025-03-22 22:53:57 +05:30
Manav Rathi
4b3cc007aa [docs] Add callout for the importance of museum.yaml (#5406) 2025-03-21 20:37:50 +05:30
Manav Rathi
803d36c915 Add callout 2025-03-21 20:26:04 +05:30
Prateek Sunal
3c789e9758 [mob] remove filler as a title and use years ago instead (#5403)
## Description

Remove filler title and use proper locals.

## Tests
2025-03-21 17:15:29 +05:30
Prateek Sunal
e430d4a47d chore: bump version number 2025-03-21 17:12:48 +05:30
Prateek Sunal
fa88396072 fix: check for blockers inside lock as well 2025-03-21 17:09:10 +05:30
Manav Rathi
f4760187ab [web] Fix viewer close on deletion of last file (#5405) 2025-03-21 17:04:52 +05:30
Prateek Sunal
3644993964 refactor: replace S.load with LanguageService for localization 2025-03-21 17:04:00 +05:30
Prateek Sunal
4bdf879a50 refactor: rename variable 'locale' to 'local' for clarity 2025-03-21 17:02:58 +05:30
Prateek Sunal
6484419839 fix: revert to original like 2025-03-21 17:02:35 +05:30
Prateek Sunal
1440c7e07a chore: remove getTitle 2025-03-21 17:00:43 +05:30
Prateek Sunal
85c899b41d Merge remote-tracking branch 'origin/memories_fillers' into fix-filler-title 2025-03-21 16:59:13 +05:30
Manav Rathi
a4ab3168ad Add note 2025-03-21 16:59:10 +05:30
Manav Rathi
5a524fa5b0 Fix viewer close on deletion of last file 2025-03-21 16:57:05 +05:30
Prateek Sunal
c597c2596c feat(language): integrate LanguageService for localized titles and dates 2025-03-21 16:52:16 +05:30
laurenspriem
916c748479 Clear internal flag in moments 2025-03-21 16:48:12 +05:30
laurenspriem
45ef2b6976 Remove backup on memories widget 2025-03-21 16:46:11 +05:30
laurenspriem
a4141bb296 Fix fillers showing filler when ML disabled 2025-03-21 16:45:56 +05:30
Prateek Sunal
4f6eff1034 fix(memory-widget): remove filler as a title and use years ago instead 2025-03-21 16:38:46 +05:30
Manav Rathi
0ab2e2834a [docs] Add a misc FAQ page (#5402) 2025-03-21 15:07:02 +05:30
Manav Rathi
d84bdb645b Title 2025-03-21 15:04:05 +05:30
Manav Rathi
99bb2b1d98 [docs] Add a misc FAQ page 2025-03-21 15:02:54 +05:30
Vishnu Mohandas
0dcb185744 [mob][photos] v1 🚀 (#5400) 2025-03-21 13:46:49 +05:30
Manav Rathi
12ba72e87c [server] Autogenerate credentials during quickstart (#5395) 2025-03-21 13:40:44 +05:30
ashilkn
350a0159c9 v1 🚀 2025-03-21 13:37:14 +05:30
Manav Rathi
f5f323cf3e Improve UX 2025-03-21 13:35:04 +05:30
Laurens Priem
f493f4d444 [mob][photos] Memory final fix (#5398)
## Description

Last minor fix for memories
2025-03-21 13:27:51 +05:30
Ashil
85cc0af308 [mob][photos] Handle if InheritedWidget is not an ancestor (#5399) 2025-03-21 13:18:23 +05:30
ashilkn
2d88f4f6d7 Use maybeOf instead of .of to avoid null check error if the InheritedWidget is not an ancestor 2025-03-21 13:10:46 +05:30
Manav Rathi
8b52d5583c Mention open port 2025-03-21 13:08:14 +05:30
Manav Rathi
3fdbd8c735 Inline and split 2025-03-21 12:52:48 +05:30
Manav Rathi
dbb2ae79c6 Remove unnecessary forwards
localhost is user's host
2025-03-21 12:28:14 +05:30
Manav Rathi
58ffbc5eb4 Start implementing outline 2025-03-21 12:20:24 +05:30
laurenspriem
1a764779ba Do the same for magic cache 2025-03-21 12:19:30 +05:30
Vishnu Mohandas
7a35558175 [mob] Update changelog (#5397) 2025-03-21 12:18:07 +05:30
vishnukvmd
d7f5ee6039 All green 2025-03-21 12:17:29 +05:30
Manav Rathi
e8cf80bfde Update links 2025-03-21 12:15:48 +05:30
laurenspriem
f03d269a5f Only clear cache if there is cache 2025-03-21 12:13:16 +05:30
Vishnu Mohandas
e286696552 [mob] Update copy for iOS widget (#5396) 2025-03-21 12:13:06 +05:30
vishnukvmd
8142a7460b Update copy for iOS widget 2025-03-21 12:12:29 +05:30
Manav Rathi
2216c2c746 Outline new approach and move doc 2025-03-21 12:06:52 +05:30
Manav Rathi
d5488954b3 creds are autogened 2025-03-21 09:23:21 +05:30
Manav Rathi
a6f9f3565d fix 2025-03-21 08:55:38 +05:30
Manav Rathi
aada6bf415 tr 2025-03-21 08:30:38 +05:30
Manav Rathi
822d74b65b base64url
Test harness:

while true; do gen_jwt_secret | node -e 'const s = require("fs").readFileSync(0, "utf8").trim(); const ls = require("libsodium-wrappers-sumo"); ls.ready.then(() => console.log(s, ls.from_base64(s, 5).length))'; sleep 1; done
2025-03-21 08:23:00 +05:30
Manav Rathi
cfc76b7e14 Disable b64 wrap 2025-03-21 07:38:54 +05:30
Manav Rathi
bb8a25bf63 autogen 2025-03-20 21:52:38 +05:30
Manav Rathi
74eff4d50b Apparently more portable 2025-03-20 21:03:26 +05:30
Manav Rathi
d01fdd966f b check 2025-03-20 20:59:38 +05:30
Manav Rathi
0758c8a623 Outline 2025-03-20 20:47:11 +05:30
Manav Rathi
47e6419e23 Prep 2025-03-20 20:34:50 +05:30
Prateek Sunal
137208f088 [mob][photos] make bottom caption of fullscreen memory better looking (#5391) 2025-03-20 20:09:28 +05:30
Prateek Sunal
e69d466ff2 [mob][photos] refactor home widget (#5389)
## Description

Refactor home widget and separate memory home widget services.

## Tests
2025-03-20 20:06:38 +05:30
ashilkn
ff9473425c Make bottom caption of fullscreen memory better looking 2025-03-20 20:05:29 +05:30
Prateek Sunal
34dd088a9d fix: streamline memory widget initialization by removing login checks and adding blocker validation 2025-03-20 20:03:10 +05:30
Prateek Sunal
92fa3488b4 fix: don't keep updating if show memories is off 2025-03-20 19:59:33 +05:30
Prateek Sunal
a5c9ef207d chore: bump again 2025-03-20 19:51:50 +05:30
Prateek Sunal
4ebbb75ef6 fix: enhance memory widget initialization and logging 2025-03-20 19:50:37 +05:30
Prateek Sunal
b5909ac3b2 fix: don't duplicate complete icon set 2025-03-20 19:50:14 +05:30
Prateek Sunal
ea0c02a662 fix: update iOS class name as well 2025-03-20 19:06:17 +05:30
Prateek Sunal
25e4cae14b fix: update android class name 2025-03-20 18:54:44 +05:30
Prateek Sunal
4611db3983 fix(memory-hw): update copies, auto logout clear behavior, 2025-03-20 18:51:57 +05:30
Prateek Sunal
ca7ff8cd16 refactor(memory-home-widget): streamline memory update logic and improve synchronization handling 2025-03-20 18:26:25 +05:30
Manav Rathi
c872f9177d [server] Add docker compose version check to quickstart script (#5390) 2025-03-20 17:48:40 +05:30
Manav Rathi
b82df80864 mention start_interval in troubleshooting docs 2025-03-20 17:45:58 +05:30
Manav Rathi
c3fe7ab171 HEAD => main 2025-03-20 17:42:17 +05:30
Manav Rathi
f2acf75b4a min ver check 2025-03-20 17:34:01 +05:30
Prateek Sunal
9327238d19 fix(home-widget-service): remove unnecessary ignore call in init method 2025-03-20 17:26:17 +05:30
Prateek Sunal
7342963f96 fix(home-widget-service): correct ignore call in init method 2025-03-20 17:24:14 +05:30
Prateek Sunal
3579d44c78 Merge remote-tracking branch 'origin/main' into final-memory-winget 2025-03-20 17:20:55 +05:30
Prateek Sunal
35f5c7271b refactor(home-widget): use MemoryHomeWidgetService and update related methods 2025-03-20 17:20:49 +05:30
Laurens Priem
6521e09056 [mob][photos] Fix widget infinite load (#5388)
## Description

fix infinite loop issue

## Tests
2025-03-20 17:14:09 +05:30
laurenspriem
aa57c1a827 Fix widget infinite load 2025-03-20 17:11:31 +05:30
Manav Rathi
a0b4315842 docker check 2025-03-20 17:06:42 +05:30
Manav Rathi
4254a54071 [server][web] Quickstart doc cleanup (#5386) 2025-03-20 16:45:54 +05:30
Manav Rathi
df7d49d2cc Update 2025-03-20 16:35:28 +05:30
Manav Rathi
0a33a44752 Update 2025-03-20 16:25:38 +05:30
Vishnu Mohandas
bf52a6923d [mobile] Fix path to icon (#5384) 2025-03-20 16:19:59 +05:30
vishnukvmd
778c72e33b Rename in correct case 2025-03-20 16:18:34 +05:30
vishnukvmd
eb874b8907 Temporary rename 2025-03-20 16:18:16 +05:30
Manav Rathi
c06175cf11 Doc 2025-03-20 16:10:02 +05:30
Vishnu Mohandas
b4a5c0c594 [mob] Update splash image (#5382)
## Tests
- [x] Tested on emulator for both light and dark modes
2025-03-20 14:55:39 +05:30
vishnukvmd
8830bb65a7 Update splash image 2025-03-20 14:39:25 +05:30
Laurens Priem
36bc214497 [mob][photos] Fix memories fresh login issue (#5381)
## Description

Fix memories fresh login issue

## Tests
2025-03-20 14:14:30 +05:30
Laurens Priem
0f08280f2f Merge branch 'main' into memories_login_regression 2025-03-20 14:12:17 +05:30
laurenspriem
292187ee9c Bump for internal release 2025-03-20 14:09:36 +05:30
laurenspriem
ee7fba3c11 Fix memories fresh loging 2025-03-20 14:08:06 +05:30
Manav Rathi
b37c2bc047 Update 2025-03-20 13:58:39 +05:30
laurenspriem
29ef3d4522 Remove redundant lines 2025-03-20 13:55:28 +05:30
Manav Rathi
08d6fa3b6b Rearrange 2025-03-20 13:54:24 +05:30
laurenspriem
0d181361a7 Cleanup 2025-03-20 13:48:00 +05:30
Manav Rathi
f4d4e1ad6b doc 2025-03-20 13:46:26 +05:30
Manav Rathi
d91201a25b [server] Rename hello.sh to quickstart.sh (#5380) 2025-03-20 13:10:56 +05:30
Manav Rathi
fbf0f934fb [server] Rename hello.sh to quickstart.sh 2025-03-20 13:08:09 +05:30
Manav Rathi
5abc106494 [server] Create quickstart hello (#5379) 2025-03-20 12:51:24 +05:30
Manav Rathi
9ffba2fe91 Fancier 2025-03-20 12:45:27 +05:30
Neeraj
4f55310145 [mob] Update change log (#5378)
## Description

## Tests
2025-03-20 12:31:01 +05:30
Neeraj Gupta
ee7f6c3021 update changelog version 2025-03-20 12:27:14 +05:30
Neeraj Gupta
940de19b7d Bump version 2025-03-20 12:24:23 +05:30
Neeraj Gupta
38c17bd813 Change title 2025-03-20 12:23:21 +05:30
Neeraj Gupta
82fb3324a7 Add translation 2025-03-20 12:22:26 +05:30
Manav Rathi
f7a6a5e115 Create quickstart hello 2025-03-20 12:18:50 +05:30
Neeraj Gupta
bdda47656c Extract strings 2025-03-20 12:17:03 +05:30
Neeraj Gupta
cc1b1a70f0 Delete unused strings 2025-03-20 12:11:03 +05:30
Neeraj Gupta
8b22d1e03f Update change log 2025-03-20 11:53:40 +05:30
Manav Rathi
b4d22996c8 [web] Increase yarn install timeout (#5377)
Workaround for the image build failing no the arm64 runners (it works
fine on the amd64 runner):
https://github.com/ente-io/ente/actions/runs/13962703146/job/39086814540
2025-03-20 11:22:14 +05:30
Manav Rathi
cd20b22eae [web] Increase yarn install timeout
Workaround for the image build failing no the arm64 runners (it works fine on
the amd64 runner):
https://github.com/ente-io/ente/actions/runs/13962703146/job/39086814540
2025-03-20 11:20:38 +05:30
Manav Rathi
149fba11f1 [web] Add workflow to publish Docker images (#5376) 2025-03-20 11:06:54 +05:30
Manav Rathi
1da0455b77 Add web variant 2025-03-20 11:03:53 +05:30
Manav Rathi
9222b029b2 Increas hamming distance 2025-03-20 10:54:11 +05:30
Manav Rathi
938e2dcadb Tweak 2025-03-20 10:50:31 +05:30
Manav Rathi
ebf85c15c3 [server] Change server/ghcr => ghcr/server (#5375)
In prep for its new baby sibling, ghcr/web.
2025-03-20 10:47:20 +05:30
Manav Rathi
91494f7823 [server] Change server/ghcr => ghcr/server
In prep for its new baby sibling, ghcr/web.
2025-03-20 10:42:42 +05:30
Manav Rathi
39f7af7932 [server] Add quickstart variant of docker compose - WIP (#5374)
Pending items (should be done shortly):
- Publish and use the web docker image instead of the placeholder
- Add hello.sh
2025-03-20 10:36:40 +05:30
Manav Rathi
960399b0a5 Add web 2025-03-20 10:27:01 +05:30
Manav Rathi
9a93cc121c Rejig 2025-03-20 10:14:42 +05:30
Manav Rathi
6d3cb97ab0 ditto and swap 2025-03-20 09:42:09 +05:30
Manav Rathi
970c1229c4 Use default network 2025-03-20 09:37:53 +05:30
Manav Rathi
f213e9ad8c Outline 2025-03-20 09:33:11 +05:30
Manav Rathi
d943586faf Remove extra volume
This is an appendage from when this compose file was used for a test network,
and not relevant to self hosting, at least not in the starter sample.
2025-03-20 08:04:05 +05:30
Manav Rathi
27fe549e15 Shorten 2025-03-20 08:02:55 +05:30
Vishnu Mohandas
c1d1a3540a [mob][photos] resync memories on widget tap (#5373)
## Description

Resync memories on widget tap.

## Tests
2025-03-20 02:19:53 +05:30
Prateek Sunal
df64413478 fix: improve memory sync logic in HomeWidgetService 2025-03-20 02:15:02 +05:30
Prateek Sunal
2cd31826e7 fix: rename changeMemories & tap behavior fix 2025-03-20 01:54:47 +05:30
Prateek Sunal
a5ef3461d8 [mob][photos] memory widget revamp (#5343)
## Description

Supercharged memory widget with title, sub title and on tap behavior and a nice preview image.

## Tests
2025-03-20 01:08:31 +05:30
Prateek Sunal
97e5b251c1 chore: bump version 2025-03-20 01:06:32 +05:30
Prateek Sunal
fd31cb3433 fix: update preview snapshot 2025-03-20 01:06:07 +05:30
Prateek Sunal
c1b6006f12 fix: update preview image base 64 and remove unwanted text 2025-03-20 00:59:39 +05:30
Prateek Sunal
5d72070890 feat(memories): introduce MemorySeenEvent and update widget subscriptions 2025-03-20 00:33:52 +05:30
Prateek Sunal
4e3bec7ad7 fix(memory-widget: add init method for service and update ios widget 2025-03-20 00:14:29 +05:30
Prateek Sunal
a002b26114 Merge remote-tracking branch 'origin/main' into migrate-things 2025-03-19 23:58:48 +05:30
Prateek Sunal
99e6425408 refactor(home_widget_service): simplify initHomeWidget parameters and improve memory sync logic 2025-03-19 23:58:39 +05:30
Manav Rathi
daae621770 [server] Inline config in compose file, and prune unnecessary ports (#5372) 2025-03-19 21:05:35 +05:30
Manav Rathi
c56801c024 Notes 2025-03-19 20:42:44 +05:30
Manav Rathi
551d099c4a Reduce default ports 2025-03-19 20:35:47 +05:30
Manav Rathi
d615614985 Stop exposing postgres externally entirely
Museum can directly access it via the shared network
2025-03-19 20:29:14 +05:30
Manav Rathi
d80b220ad4 Avoid using default postgres port 2025-03-19 20:25:53 +05:30
Manav Rathi
3916d2b7d8 Prune 2025-03-19 20:21:15 +05:30
Manav Rathi
4cdc72bc29 Move config inline 2025-03-19 20:09:23 +05:30
Manav Rathi
b5e429ebc5 [server] Remove extra container by using a post_start lifecycle hook (#5370) 2025-03-19 19:55:17 +05:30
Manav Rathi
c329b30e49 [server] Remove extra container by using a post_start lifecycle hook 2025-03-19 19:50:55 +05:30
Laurens Priem
0285cd6b8c [mob][photos] Memories minor fixes and changes (#5368)
## Description

Minor fixes and changes

## Tests

Tested in debug mode on my pixel phone.
2025-03-19 19:31:14 +05:30
Manav Rathi
f145e0b424 [server] Inline the minio provision script (#5369)
This reduces a sidecar file that is needed by the Docker compose file
(which is a prerequisite for a future change where we will provide a
zero-build variant that doesn't require cloning the repo).
2025-03-19 19:12:17 +05:30
Manav Rathi
a4bc596b66 Inline 2025-03-19 18:25:41 +05:30
laurenspriem
5637d533ed add todo for later 2025-03-19 18:21:13 +05:30
laurenspriem
f498a986c9 Don't force compute when we have backup cache 2025-03-19 18:06:55 +05:30
Prateek Sunal
97935a5890 fix(memory-widget): this will change everything
sync logic is separated
2025-03-19 17:57:57 +05:30
laurenspriem
c5e7f233a7 Reduce birthday duration 2025-03-19 17:35:58 +05:30
Manav Rathi
675121f243 outline 2025-03-19 17:31:46 +05:30
laurenspriem
543fec4e4e error handling in getMemories 2025-03-19 17:26:41 +05:30
Prateek Sunal
5b3fa5e141 fix(home_widget_service): replace MemoriesService with memoriesCacheService for memory visibility check 2025-03-19 17:15:39 +05:30
Prateek Sunal
0e5bed8053 Merge remote-tracking branch 'origin/memories_qa' into migrate-things 2025-03-19 17:13:44 +05:30
Prateek Sunal
8d7333a223 feat(home_widget_service): add subscription for memories changed event and improve widget initialization logic 2025-03-19 17:13:40 +05:30
Manav Rathi
20b873d266 [web] Make the endpoints configurable without rebuilding the image (#5367)
Sibling of https://github.com/ente-io/ente/pull/5364.

**Tested by**
```sh
docker build -t web-test .

# Uses provided values
docker run -it --rm -p 3000:3000 -p 3090:3002 -e ENTE_API_ORIGIN=http://localhost:8090 -e ENTE_ALBUMS_ORIGIN=http://localhost:3090 web-test

# Uses defaults
docker run -it --rm -p 3000:3000 -p 3002:3002 web-test 
```
2025-03-19 17:09:52 +05:30
Manav Rathi
a80c724d0f Placeholder 2025-03-19 16:50:55 +05:30
laurenspriem
c45e4ad1d1 Prioritize last met over birthday 2025-03-19 16:36:50 +05:30
Prateek Sunal
7201e796fb fix(home_widget_service): update text when clearing widget 2025-03-19 16:29:35 +05:30
Prateek Sunal
2fdb0ccbe4 feat(home-widget): update slideshow preview android 2025-03-19 16:29:11 +05:30
laurenspriem
e05701fce2 Remove old memories service completely 2025-03-19 16:26:44 +05:30
Prateek Sunal
14b2f1aa94 fix(memory-widget): default state text align and padding + default state logic when memories are cached 2025-03-19 16:14:02 +05:30
laurenspriem
533b2193be Remove old memories widget 2025-03-19 16:07:49 +05:30
laurenspriem
603e0bdb28 cosmetic change 2025-03-19 16:07:29 +05:30
laurenspriem
8b0267cce7 Cache fillers if ML disabled 2025-03-19 16:05:05 +05:30
Manav Rathi
dfda91b99b Runtime configurable env vars 2025-03-19 16:04:36 +05:30
Prateek Sunal
43f3d4a5fe fix(slideshow-widget): remove default title and subtitle text 2025-03-19 15:26:34 +05:30
Prateek Sunal
184852295f fix(memories-cache): log warning when memory not found by generatedFileID 2025-03-19 15:20:10 +05:30
Prateek Sunal
38fd244811 fix(memory-widget): onTap widget should redirect to memory page 2025-03-19 15:18:19 +05:30
Prateek Sunal
3024384628 fix(home-widget): update memories check to showAnyMemories 2025-03-19 15:05:30 +05:30
Prateek Sunal
55ec76d5f6 Merge remote-tracking branch 'origin/memories_qa' into migrate-things 2025-03-19 15:05:01 +05:30
Prateek Sunal
2e9517d75f fix(memory-w): add force sync option for widget 2025-03-19 15:01:52 +05:30
laurenspriem
8aacb503c1 Memories widget api attempt 2025-03-19 14:54:46 +05:30
laurenspriem
743205f4c8 Fix duplicates in time memories 2025-03-19 14:54:25 +05:30
laurenspriem
80188cb8ea Copy change 2025-03-19 14:29:29 +05:30
laurenspriem
f21ed45fee Fix shuffle clip memories 2025-03-19 13:24:48 +05:30
Manav Rathi
a28932c319 [web] Don't block page load on malformed feature flags (#5365) 2025-03-19 13:22:21 +05:30
laurenspriem
e6761ac703 Add logs 2025-03-19 13:19:29 +05:30
Manav Rathi
c120cfc74b [web] Don't block page load on malformed feature flags 2025-03-19 13:19:10 +05:30
laurenspriem
6a3b5a7f0e move old memories code 2025-03-19 12:56:55 +05:30
laurenspriem
8308652d17 Move seen memories to end properly 2025-03-19 12:32:22 +05:30
laurenspriem
8e572c39d3 Don't use old memories service for marking seen 2025-03-19 12:18:54 +05:30
laurenspriem
fd40383482 extra null safety check 2025-03-19 11:34:22 +05:30
laurenspriem
b79f72930a Handle deleted files in cache 2025-03-19 11:24:39 +05:30
Neeraj
40f3ed7aad [mob] Fix formatBytes for TB unit (#5352)
## Description

## Tests
2025-03-19 10:45:50 +05:30
Manav Rathi
9c54e3f002 [web] Add web dockerfile (#5364)
References: Various community docker image examples, in particular 

* https://help.ente.io/self-hosting/faq/sharing#dockerfile-example by @
Dylanger on community discord
* https://github.com/DanteMS/ente-web by @DanteMS
* The OG community guide at
https://help.ente.io/self-hosting/guides/external-s3 by @Bramas

Thank you.

In a subsequent PR I'll also add cron jobs to publish this, add docs
etc.

## Tested by

```
docker build -t web-test .
docker run -it --rm -p 3000:3000 -p 3002:3002 -p 3003:3003 web-test 
```
2025-03-19 10:17:40 +05:30
laurenspriem
9e7833bf93 Early stop if no persons 2025-03-19 10:09:55 +05:30
Manav Rathi
0b9242c527 Add web dockerfile 2025-03-19 09:47:23 +05:30
Prateek Sunal
3912f00fb7 chore: bump build 2025-03-18 23:16:02 +05:30
Prateek Sunal
7c58dbf551 fix: only sync when memory change 2025-03-18 23:13:43 +05:30
Prateek Sunal
705c9fbf86 chore: bump number 2025-03-18 21:56:47 +05:30
Prateek Sunal
d004bfa83d Merge remote-tracking branch 'origin/main' into migrate-things 2025-03-18 21:55:55 +05:30
Manav Rathi
64d4c69159 [web] Video streaming WIP - Part 1/x (#5359) 2025-03-18 20:52:22 +05:30
Manav Rathi
f3ac886616 Not realistically happening soon, so avoid a leftover fork 2025-03-18 20:46:04 +05:30
Manav Rathi
4fef527ac2 LF 2025-03-18 20:46:00 +05:30
Manav Rathi
e9344c2ddc example 2025-03-18 20:38:18 +05:30
Vishnu Mohandas
23039eba18 [mob] Update notification icon (#5358)
## Tests
<img width="338" alt="Screenshot 2025-03-18 at 7 56 20 PM"
src="https://github.com/user-attachments/assets/4e8c56ce-95d3-4bc3-a561-b11da4d21111"
/>
2025-03-18 20:35:52 +05:30
Laurens Priem
46c7eb140e [mob][photos] Various memories fixes (#5357)
## Description

## Tests
2025-03-18 20:35:31 +05:30
Manav Rathi
280d29ffda throw on exceptional cases 2025-03-18 20:17:48 +05:30
Manav Rathi
e0843485d5 pl 2025-03-18 20:10:41 +05:30
Manav Rathi
8b427bccad dec 2025-03-18 19:56:54 +05:30
vishnukvmd
e291255838 Update notification icon 2025-03-18 19:55:39 +05:30
Manav Rathi
08594222e0 link 2025-03-18 19:40:33 +05:30
laurenspriem
26f7f85e75 Clear cache debug option 2025-03-18 19:29:16 +05:30
Manav Rathi
4ece954c3a Move 2025-03-18 19:23:23 +05:30
Prateek Sunal
c0b83df2c3 fix: overlay 2025-03-18 19:23:01 +05:30
laurenspriem
a741d4126b Fix persons not showing 2025-03-18 19:16:48 +05:30
Manav Rathi
6ef977be9c Sketch 2025-03-18 19:14:16 +05:30
Prateek Sunal
67ff3c9093 fix(android-widget): remove unnecessary attributes from gradient definition 2025-03-18 18:56:56 +05:30
Prateek Sunal
f21abd5133 feat(widget): android widget with title, subTitle, tap action & fixes for iOS widget 2025-03-18 18:54:28 +05:30
laurenspriem
04ad4a24c8 random clip memories 2025-03-18 18:50:38 +05:30
laurenspriem
86675c66bc Update clip copies 2025-03-18 18:48:03 +05:30
laurenspriem
b7ef4a4adb cleanup 2025-03-18 18:31:59 +05:30
Manav Rathi
78c35e2571 Sketch 2025-03-18 18:26:05 +05:30
laurenspriem
f9d42393a9 memories translations 2025-03-18 18:25:29 +05:30
laurenspriem
fb15ff540a Create titles on main thread 2025-03-18 17:39:38 +05:30
Manav Rathi
8f4f66987c [web] Enum cleanup (towards enabling isolatedDeclarations) (#5355)
Part 2 of https://github.com/ente-io/ente/pull/5353
2025-03-18 16:45:08 +05:30
Manav Rathi
935456bd16 For now 2025-03-18 16:40:07 +05:30
Manav Rathi
2a55215c62 Start enabling 2025-03-18 16:20:42 +05:30
Manav Rathi
16d2539bbf conv 2025-03-18 15:55:05 +05:30
Manav Rathi
2a883e48ca conv 2025-03-18 15:48:51 +05:30
Manav Rathi
96fa0a8472 conv 2025-03-18 15:43:53 +05:30
Manav Rathi
0c00433bec conv 2025-03-18 15:31:56 +05:30
Ashil
a05cf1168f [mob][photos] Use new asset for splash screen (#5354) 2025-03-18 15:22:06 +05:30
Manav Rathi
76360d7100 Tweak logging 2025-03-18 15:15:35 +05:30
Prateek Sunal
91e4ab3e4d fix(memories): sync on iOS 2025-03-18 15:11:12 +05:30
Manav Rathi
a2475c32e9 [web] Enum cleanup (towards enabling isolatedModules) - Part 1 (#5353) 2025-03-18 15:09:44 +05:30
Manav Rathi
7182ce015d conv 2025-03-18 14:57:17 +05:30
Prateek Sunal
dfca616ba5 fix: bg color on tinted mode 2025-03-18 14:49:20 +05:30
Manav Rathi
bad4ae47a4 conv 2025-03-18 14:38:39 +05:30
ashilkn
0d05b9134a Use new asset for splash screen 2025-03-18 14:34:26 +05:30
Manav Rathi
2b784d80c3 conv 2025-03-18 14:32:40 +05:30
Manav Rathi
48eec72bf6 conv UploadResult 2025-03-18 14:26:15 +05:30
Manav Rathi
b065e20d65 conv 2025-03-18 13:58:31 +05:30
Manav Rathi
5e0991aa9c conv 2025-03-18 13:44:09 +05:30
Manav Rathi
05b0e84a2a conv 2025-03-18 13:29:27 +05:30
laurenspriem
4a478e67e3 update clip queries 2025-03-18 13:18:01 +05:30
Manav Rathi
80eb4deece Fix 2025-03-18 13:06:02 +05:30
laurenspriem
614c3e0548 Randonmize person memories pick 2025-03-18 13:00:41 +05:30
Manav Rathi
30da80f058 conv 2025-03-18 13:00:40 +05:30
Neeraj Gupta
582709f4f5 [mob] Fix formatBytes for TB unit 2025-03-18 12:58:13 +05:30
Manav Rathi
62a8b2dc88 conv 2025-03-18 12:48:05 +05:30
laurenspriem
2fa9561c8c Adjusting people clip queries to prevent NSFW 2025-03-18 11:57:55 +05:30
Neeraj
f26a2f6c83 [mob] Avoid redundant event (#5351)
## Description

## Tests
2025-03-18 11:11:56 +05:30
Neeraj Gupta
c145412b9f Avoid redundant event 2025-03-18 11:06:39 +05:30
laurenspriem
d854019897 Better logging of memories update 2025-03-18 10:28:25 +05:30
Manav Rathi
d3d65d26cf [web] Refactor file viewer favorite to match archive code paths (#5350) 2025-03-18 10:20:04 +05:30
Manav Rathi
8c16c41b90 Omit empty collection name row in hidden section 2025-03-18 10:12:16 +05:30
Manav Rathi
58ce181a40 Fin 2025-03-18 09:59:34 +05:30
Manav Rathi
fb7fe05716 trigger 2025-03-18 09:45:36 +05:30
Manav Rathi
9551861ed7 clear 2025-03-18 09:21:47 +05:30
Manav Rathi
fb7d18e749 hook up 2025-03-18 09:14:28 +05:30
Manav Rathi
c3af3fada1 propogate 2025-03-18 08:46:48 +05:30
Manav Rathi
0455f7bd23 ditto wip 2025-03-18 08:26:13 +05:30
Ashil
7057e732d8 [mob][photos] Reupload iOS icon assets with unique names + Remove unused Asset set (#5346) 2025-03-18 05:53:19 +05:30
ashilkn
ecbb0e3ea7 [mob][photos] Remove unused Asset set 2025-03-17 23:11:27 +05:30
ashilkn
74116263a3 [mob][photos] Reupload iOS icon assets with unique names 2025-03-17 22:56:36 +05:30
Ashil
361a73075e [mob][photos] Support for iOS tinted icons + clean up (#5342)
### Different icons (Green, Light, Dark & OG) under different icon
themes (Light, Dark, Automatic & Tinted):


https://github.com/user-attachments/assets/2387cbab-59cc-4b27-a7b7-f57097460553



https://github.com/user-attachments/assets/c7e94283-f787-48de-a174-48b950f8b978



https://github.com/user-attachments/assets/c64f4999-c204-4b6e-a911-d3c7457bf916



https://github.com/user-attachments/assets/9e4ac258-a084-410b-a8c0-60a409366527
2025-03-17 22:41:17 +05:30
Manav Rathi
aa72fc2e39 [web] Gallery reducer nomenclature cleanup (#5345) 2025-03-17 20:47:22 +05:30
Prateek Sunal
f9365016c3 Merge remote-tracking branch 'origin/main' into migrate-things 2025-03-17 20:24:11 +05:30
Prateek Sunal
4ed8c2004a chore: bump things 2025-03-17 20:24:02 +05:30
Prateek Sunal
3424700cfe [mob] feat(memories): make iOS release ready 2025-03-17 20:21:35 +05:30
Manav Rathi
85143b9a24 Rename 2025-03-17 20:18:52 +05:30
Manav Rathi
278c082a38 Update gallery 2025-03-17 20:10:29 +05:30
Manav Rathi
8dee052ebb [web] Gallery reducer nomenclature cleanup 2025-03-17 19:57:28 +05:30
Vishnu Mohandas
c224b5c8f8 docs-updatedfaq (#5336)
## Description

## update faq
2025-03-17 19:50:19 +05:30
Manav Rathi
42edba6680 [web] Outline sync code (#5344) 2025-03-17 18:58:06 +05:30
Manav Rathi
d58af3f88d Upd 2025-03-17 18:48:02 +05:30
Manav Rathi
4c1bdcf3d0 Systematize 2025-03-17 18:37:32 +05:30
Prateek Sunal
2976fd7269 Merge branch 'main' into migrate-things 2025-03-17 18:30:21 +05:30
Manav Rathi
df17ac3c91 Reuse 2025-03-17 18:17:45 +05:30
Manav Rathi
8575bd83ac Also colln 2025-03-17 18:03:24 +05:30
Manav Rathi
be046cd906 Gen 2025-03-17 17:51:14 +05:30
Prateek Sunal
f0d23fe873 [mob] fix(memories): iOS tint, hide when disabled, sync on change, store generatedId 2025-03-17 17:38:13 +05:30
Neeraj
bdd6adcee3 [mob][photos] Minor fixes for memories and shift date (#5341)
## Description

Small fixes for memories and shift date

## Tests
2025-03-17 17:26:45 +05:30
ashilkn
5791bfdf76 [mob][photos] Add iOS tinted asset for OG icon to avoid an edge case where the new tinted icon is coming up instead of the old one 2025-03-17 17:09:24 +05:30
ashilkn
592e6c914b [mob][photos] Update iOS tinted icon asset 2025-03-17 16:59:07 +05:30
ashilkn
7f58b58ea9 [mob][photos] Use 'Single size' config for old app icon on iOS 2025-03-17 16:51:23 +05:30
laurenspriem
8220f5a484 [mob][photos] Less empty space 2025-03-17 16:47:57 +05:30
Neeraj
acfaf79178 [mob] SqlDB mixin class for common operations (#5338)
## Description

## Tests
2025-03-17 16:25:11 +05:30
Manav Rathi
a8cff32d04 [web] New translations (#5340)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-03-17 16:07:47 +05:30
Crowdin Bot
b2f5b58fe9 New Crowdin translations by GitHub Action 2025-03-17 10:35:44 +00:00
Manav Rathi
e36e99fa57 [web] Add an archive action in the file viewer (#5339) 2025-03-17 16:04:59 +05:30
laurenspriem
2aad26b048 [mob][photos] Fix dateformat 2025-03-17 16:01:58 +05:30
Manav Rathi
19f3cc1141 tr 2025-03-17 15:53:14 +05:30
Manav Rathi
89b8e98cd2 Fix 2025-03-17 15:48:20 +05:30
laurenspriem
7a4fa1c2ac [mob][photos] Copy 2025-03-17 15:47:01 +05:30
Manav Rathi
d032df105b Ref 2 2025-03-17 15:38:57 +05:30
laurenspriem
c1cca99973 [mob][photos] Fix you and me memory 2025-03-17 15:31:17 +05:30
Neeraj Gupta
3017f189fd [mob] Rename 2025-03-17 15:29:47 +05:30
ashilkn
71865607b7 [mob][photos] Delete unused Asset set 'AppIcon-dev' from iOS Asset Catalog 2025-03-17 15:29:07 +05:30
ashilkn
20c8d4cefa [mob][photos] Add support for iOS icon themes on the new v1 icons 2025-03-17 15:25:20 +05:30
Neeraj Gupta
109203d331 [mob] Move migrate in common mixin class 2025-03-17 15:23:16 +05:30
laurenspriem
e807747079 [mob][photos] Compute trigger 2025-03-17 15:18:06 +05:30
Manav Rathi
0024b7a400 Ref 2025-03-17 15:14:37 +05:30
Manav Rathi
7f6974697a Align 2025-03-17 15:04:22 +05:30
Neeraj Gupta
632d6119d2 [mob] move 2025-03-17 15:03:42 +05:30
Manav Rathi
ac5fc4b893 Integrate 2025-03-17 14:33:11 +05:30
Jay
f2c8383cb7 docs-updatedfaq 2025-03-17 14:19:36 +05:30
Manav Rathi
76ad97e59e Clear 2025-03-17 14:12:44 +05:30
Manav Rathi
3ad0a260e0 reorient 2025-03-17 14:05:14 +05:30
Manav Rathi
dff8ef8512 redo wip 3 2025-03-17 13:16:13 +05:30
Manav Rathi
2d003d8359 redo wip 2 2025-03-17 13:16:13 +05:30
Manav Rathi
a5e1cd2a5c redo wip 2025-03-17 13:16:13 +05:30
Manav Rathi
57f43a20e3 Part 2025-03-17 13:16:13 +05:30
Manav Rathi
0ec76545c5 Return a new file 2025-03-17 13:16:13 +05:30
Manav Rathi
346cb175b4 Outline 2025-03-17 13:16:12 +05:30
Manav Rathi
efb6656c28 Pick the latest from files 2025-03-17 13:16:12 +05:30
Manav Rathi
1f8fa69f8b Towards new layering 2025-03-17 13:16:12 +05:30
Manav Rathi
400157a46d Use alt 2025-03-17 13:16:12 +05:30
Manav Rathi
a70d2b9c05 Alt 2025-03-17 13:16:12 +05:30
Manav Rathi
0849f6d85c note 2 2025-03-17 13:16:12 +05:30
Manav Rathi
a488e4bb9f Note 1 2025-03-17 13:16:12 +05:30
Manav Rathi
df2678f358 Clear on error 2025-03-17 13:16:12 +05:30
Manav Rathi
f7d5a305b7 Handle more cases 2025-03-17 13:16:12 +05:30
Manav Rathi
0b45e6c3c0 scope 2025-03-17 13:16:12 +05:30
Manav Rathi
8f87d141ad shortcut 2025-03-17 13:16:12 +05:30
Manav Rathi
06e60d60ca Fix 2025-03-17 13:16:12 +05:30
Manav Rathi
c366d7e282 Ref 2025-03-17 13:16:12 +05:30
Manav Rathi
1db7d3aa90 All 3 2025-03-17 13:16:12 +05:30
Manav Rathi
2ba4bce241 vis 1 2025-03-17 13:16:12 +05:30
Manav Rathi
e71379e725 Forward 2025-03-17 13:16:12 +05:30
Manav Rathi
f8e1736254 wip gallery changes 2025-03-17 13:16:12 +05:30
Manav Rathi
5b896125f8 reducer 2 2025-03-17 13:16:12 +05:30
Manav Rathi
f2a3ebf1c5 wip reducer 2025-03-17 13:16:12 +05:30
Manav Rathi
810d9a7acd Sketch 2025-03-17 13:16:12 +05:30
Manav Rathi
a8e06372af sketch 2025-03-17 13:16:12 +05:30
Manav Rathi
4e6e02e300 [desktop] Minor ML tweaks (#5335) 2025-03-17 12:48:55 +05:30
Manav Rathi
accf820978 Tweak positioning 2025-03-17 12:45:07 +05:30
Manav Rathi
71646c4136 log to help debug a customer's support issue 2025-03-17 12:41:09 +05:30
Manav Rathi
7e4e72979f [desktop] Stop force resets on upload of large folders (#5334) 2025-03-17 12:37:30 +05:30
Manav Rathi
20d17ec817 [desktop] Stop force resets 2025-03-17 12:35:22 +05:30
mangesh
546f438b59 [docs] remove unnecessary dep (#5331) 2025-03-17 12:11:53 +05:30
laurenspriem
49b280d2b0 [mob][photos] Fix consistent time format 2025-03-17 11:42:20 +05:30
Manav Rathi
3461710b79 [desktop] Regular dep updates (#5333) 2025-03-17 11:07:58 +05:30
Manav Rathi
9de85946bf [desktop] Regular dep updates 2025-03-17 11:04:24 +05:30
laurenspriem
32a5399c58 [mob][photos] Log faceIDs 2025-03-17 10:55:05 +05:30
Laurens Priem
74b02130a5 Cluster remove copy (#5332)
## Description

- Added delete file option in cluster page (it's already there for named
persons, should be here too)
- Similar copy between cluster and named person for removing file
2025-03-17 10:48:47 +05:30
laurenspriem
c6da46d6fe [mob][photos] Similar copy between cluster and person 2025-03-17 10:41:19 +05:30
laurenspriem
6ad6db84ae [mob][photos] Add delete option for cluster files 2025-03-17 10:38:44 +05:30
mngshm
9825ab2a6f remove unnecessary dep & focus only on docker/compose 2025-03-17 10:21:16 +05:30
Manav Rathi
de567f9c5b [web] New translations (#5328)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-03-17 09:53:13 +05:30
Crowdin Bot
be00a108c6 New Crowdin translations by GitHub Action 2025-03-17 00:37:47 +00:00
Neeraj
2532ebc34e [auth][mob] Fix change-password flow immediately after login (#5320)
## Description

## Tests
2025-03-15 09:35:43 +05:30
Neeraj Gupta
00db0ebf25 [auth] Fix change password flow post login 2025-03-15 09:32:54 +05:30
Neeraj Gupta
f67764f9fe [mob] Fix change password on login->immedidate change password flow 2025-03-15 09:30:50 +05:30
Prateek Sunal
31652347d1 Merge remote-tracking branch 'origin/main' into migrate-things 2025-03-15 01:27:28 +05:30
Prateek Sunal
59f3687c97 fix: new captureFile with thumbnail and notify via toast when updated home widget 2025-03-15 01:27:25 +05:30
Prateek Sunal
1b501025c4 fix: fetch memories (#5319)
## Description

## Tests
2025-03-14 22:24:48 +05:30
Prateek Sunal
60203e7b0b fix: fetch memories 2025-03-14 22:09:50 +05:30
Neeraj
7fe914258e fix: add IconGreen (#5318)
## Description

## Tests
2025-03-14 21:58:45 +05:30
Prateek Sunal
4d37231561 fix: add IconGreen 2025-03-14 21:56:19 +05:30
Neeraj
9a4027de24 [mob] iOS home widget + memories (#5297)
## Description

This PR implements widgets for iOS, bringing memories to your home
screen.

## Tests
2025-03-14 21:49:52 +05:30
Prateek Sunal
b48a0aed42 chore: bump lock 2025-03-14 21:43:07 +05:30
Prateek Sunal
39082c71b9 Merge remote-tracking branch 'origin/main' into home-widget-ios-lesgo 2025-03-14 21:38:10 +05:30
Prateek Sunal
2e7f76bdba chore: push as usual 2025-03-14 21:37:30 +05:30
Neeraj
0ec87cd10f [mob] Fix ios debug build (#5317)
## Description

## Tests
2025-03-14 21:36:06 +05:30
Prateek Sunal
4a58909f03 chore: bump version 2025-03-14 21:35:33 +05:30
Neeraj Gupta
b4a32ff28a [mob] Fix ios debug build 2025-03-14 21:34:30 +05:30
Prateek Sunal
7e3d0952a7 feat: push all 2025-03-14 20:02:51 +05:30
Prateek Sunal
0168118920 Merge remote-tracking branch 'origin/main' into home-widget-ios-lesgo 2025-03-14 19:53:58 +05:30
Neeraj
8819c7ec09 [mob][photos] Memories (#5316)
## Description

## Tests
2025-03-14 19:40:15 +05:30
laurenspriem
d7c3d3d89f [mob][photos] Wait on update 2025-03-14 19:26:40 +05:30
laurenspriem
4dea737f5f [mob][photos] Fix show all activities 2025-03-14 19:26:10 +05:30
Prateek Sunal
36dd02d6f0 Merge remote-tracking branch 'origin/home-widget-ios-lesgo' into home-widget-ios-lesgo 2025-03-14 19:10:25 +05:30
Prateek Sunal
7b1c770705 Merge remote-tracking branch 'origin/home-widget-ios-lesgo' into home-widget-ios-lesgo 2025-03-14 19:09:51 +05:30
Prateek Sunal
8733758504 fix: push changes 2025-03-14 19:09:46 +05:30
Neeraj Gupta
3f476ec770 [mob] Handle empty list 2025-03-14 19:09:41 +05:30
Neeraj Gupta
31c490734b [mob] Fix typo 2025-03-14 18:57:35 +05:30
Prateek Sunal
f5acad963f fix: height and width 2025-03-14 18:53:40 +05:30
laurenspriem
7adebef19e [mob][photos] Resolved todos 2025-03-14 18:51:45 +05:30
Prateek Sunal
f1e477f140 Merge remote-tracking branch 'origin/home-widget-ios-lesgo' into home-widget-ios-lesgo 2025-03-14 18:48:56 +05:30
Prateek Sunal
b3a9ed0105 fix: finalize logic of things 2025-03-14 18:48:38 +05:30
Neeraj Gupta
920e318074 [mob] Fix bad state 2025-03-14 18:45:32 +05:30
laurenspriem
47f76dc40e [mob][photos] Park base locations for now 2025-03-14 17:59:00 +05:30
laurenspriem
ed7b646067 [mob][photos] Remove internal flag 2025-03-14 17:50:29 +05:30
laurenspriem
fd8a324f58 [mob][photos] Show seen memories last 2025-03-14 17:33:47 +05:30
laurenspriem
f05c3c98a7 [mob][photos] Clip memories 2025-03-14 16:49:52 +05:30
Prateek Sunal
35ab57f316 fix: fetch memory instead of favorites now 2025-03-14 16:05:10 +05:30
Prateek Sunal
42a60fcf85 Merge remote-tracking branch 'origin/memories_api_widget' into home-widget-ios-lesgo 2025-03-14 16:03:50 +05:30
Prateek Sunal
732d2fca97 Merge remote-tracking branch 'origin/main' into home-widget-ios-lesgo 2025-03-14 16:03:43 +05:30
laurenspriem
ae2c47f236 [mob][photos] Don't show hidden persons 2025-03-14 14:30:37 +05:30
laurenspriem
883e0f5a52 [mob][photos] Queue to recompute when people are added 2025-03-14 14:28:24 +05:30
laurenspriem
fc79d3d967 [mob][photos] Remove unneeded condition 2025-03-14 14:15:04 +05:30
Vishnu Mohandas
97f1951ba1 Icon for v1 (#5313)
## Description
New icons + icon switcher + splashscreen.

<img
src="https://github.com/user-attachments/assets/b3753ecb-bf50-4dff-b004-7360f0d36cde"
width="222px"/>
<img
src="https://github.com/user-attachments/assets/f57ca067-54aa-471d-bf74-bece72675846"
width="222px"/>

## Tests
- [x] Android
- [x] iOS 
- [x] Circle
- [x] Squircle
- [x] Monochrome
2025-03-14 13:55:45 +05:30
laurenspriem
7aead5fe11 [mob][photos] Remove limit 2025-03-14 13:49:28 +05:30
vishnukvmd
bc75cd460f Merge branch 'main' into icon 2025-03-14 13:40:43 +05:30
vishnukvmd
cdcfb35053 OG monochrome 2025-03-14 13:38:36 +05:30
vishnukvmd
5b0530013e Update monochrome icon 2025-03-14 13:34:45 +05:30
laurenspriem
71399e01f0 [mob][photos] Increase memories refresh frequency 2025-03-14 13:11:02 +05:30
laurenspriem
8245ba0f9b [mob][photos] Remove more loop syntax 2025-03-14 13:03:25 +05:30
laurenspriem
78067230aa [mob][photos] todo 2025-03-14 12:59:53 +05:30
laurenspriem
41365619b5 [mob][photos] Remove unneeded loop syntax 2025-03-14 12:57:17 +05:30
vishnukvmd
c15000dd67 Setup monochrome icon 2025-03-14 12:40:05 +05:30
vishnukvmd
7f795407d8 Generate light mode icon 2025-03-14 12:32:40 +05:30
vishnukvmd
1c44f077ba Generate dark mode icon 2025-03-14 12:32:40 +05:30
vishnukvmd
0f0270a8bd Generate default icon 2025-03-14 12:32:40 +05:30
vishnukvmd
dc2aebbffc Update e 2025-03-14 12:32:40 +05:30
vishnukvmd
91ff3f55a3 Setup monochrome 2025-03-14 12:32:39 +05:30
laurenspriem
eb19d0af97 [mob][photos] Move constants 2025-03-14 12:28:58 +05:30
laurenspriem
e099aa0e0f [mob][photos] Always show month memories 2025-03-14 11:59:28 +05:30
laurenspriem
24f0638975 [mob][photos] standardize titles 2025-03-14 11:41:05 +05:30
laurenspriem
f0328f6563 [mob][photos] Add more people activities 2025-03-14 11:23:22 +05:30
laurenspriem
60afab62b0 [mob][photos] Only recompute when going into moments section 2025-03-14 10:46:13 +05:30
laurenspriem
0e3609542c [mob][photos] Force compute new cache when needed 2025-03-14 10:15:03 +05:30
laurenspriem
5c65f6a30d [mob][photos] Memory calculations in computer 2025-03-14 10:06:49 +05:30
laurenspriem
8e0a5e4419 [mob][photos] Null safety check 2025-03-14 10:05:31 +05:30
laurenspriem
0d99c90d9f [mob][photos] Log calc time for memories update 2025-03-14 09:40:05 +05:30
Prateek Sunal
b57f553d8d Merge remote-tracking branch 'origin/main' into home-widget-ios-lesgo 2025-03-14 04:18:21 +05:30
Prateek Sunal
1394d539f0 feat: a working prototype for iOS 2025-03-14 04:18:12 +05:30
Ashil
16c2358b4d [mob][photos] Ensure that the shared data received through the intent is a photo or video before showing a dialog specific to shared photo/video. (#5310) 2025-03-13 19:04:28 +05:30
ashilkn
18671730c5 [mob][photos] Extract string 2025-03-13 18:47:40 +05:30
ashilkn
79ddde8777 [mob][photos] Remove unused file 2025-03-13 18:44:57 +05:30
ashilkn
0702ee98bc [mob][photos] Ensure that the shared data received through the intent is a photo or video before showing a dialog specific to shared media 2025-03-13 18:36:10 +05:30
laurenspriem
7391602302 [mob][photos] works even if no ML data 2025-03-13 16:19:04 +05:30
laurenspriem
1e96044a51 [mob][photos] Separate data gathering and calculations 2025-03-13 15:59:34 +05:30
ashilkn
b0a1cf0ca1 Merge branch 'main' into icon 2025-03-13 14:54:37 +05:30
Neeraj
4b862f52fc [server] Update from address for family related emails (#5308)
## Description

## Tests
2025-03-13 14:21:37 +05:30
Neeraj Gupta
629d0e69cd [server] Update from address for family related emails 2025-03-13 14:18:57 +05:30
ashilkn
8e220f474c [mob][photos] Make radio buttons tappable in app icon selector 2025-03-13 14:05:38 +05:30
Neeraj
f49cf78b2d [mob] Render image with high filter quality (#5306)
## Description

## Tests
2025-03-13 12:32:59 +05:30
Neeraj Gupta
7ca49bb753 [mob] Render image with high filter quality 2025-03-13 12:15:49 +05:30
vishnukvmd
5526a46434 Add monochrome 2025-03-13 12:07:23 +05:30
laurenspriem
1675cfc388 [mob][photos] Simplify get maps 2025-03-13 11:49:51 +05:30
laurenspriem
05f91d233c [mob][photos] Better safety checking 2025-03-13 11:41:52 +05:30
laurenspriem
217eaaea98 [mob][photos] Fallback if ML is off 2025-03-13 10:43:12 +05:30
Prateek Sunal
5670de7e01 [mob] lint fixes (#5298)
## Description

From 44 issues down to 7 issues for lint. Leftovers are related to
[`isPasswordInput`](2ccd92519b/mobile/lib/ui/components/text_input_widget.dart (L41))
and [`flutter_map`](https://pub.dev/packages/flutter_map) deprecated
params.

<img width="995" alt="image"
src="https://github.com/user-attachments/assets/a1f164bd-6be1-477f-87b2-9a28ab3adfec"
/>


## Tests
2025-03-13 09:49:14 +05:30
Ashil
d62dd4d63a [mob][photos] Update favourite icon in File's app bar (#5304)
## Description


https://github.com/user-attachments/assets/99f0e0cd-d38a-4f7b-ad3e-c75ed43c6d0b
2025-03-13 05:46:51 +05:30
ashilkn
deb458801a [mob][photos] Add haptics when favouriting from file app bar 2025-03-13 01:38:52 +05:30
ashilkn
a616e0b67e [mob][photos] Update file app bar's favourite icon's colors 2025-03-13 01:08:58 +05:30
vishnukvmd
21cc52987c Update docs 2025-03-13 00:00:22 +05:30
vishnukvmd
4009078fb0 Delete unused file 2025-03-12 23:58:56 +05:30
vishnukvmd
b82cbfb025 Sample commit for adding icon 2025-03-12 23:57:52 +05:30
vishnukvmd
40ae8d91c3 Add OG icon 2025-03-12 23:55:17 +05:30
vishnukvmd
8aab6513f2 Fix icons 2025-03-12 23:29:18 +05:30
vishnukvmd
cf3da97a50 Simplify 2025-03-12 23:08:20 +05:30
vishnukvmd
24f2ac2d8b Remove debug 2025-03-12 18:34:40 +05:30
Prateek Sunal
f27807622d fix: update code 2025-03-12 18:29:36 +05:30
ashilkn
7a090910cc Merge branch 'icon_picker_ui' into icon 2025-03-12 18:25:18 +05:30
ashilkn
50add97171 [mob][photos] chore 2025-03-12 18:24:49 +05:30
ashilkn
de7cd585ba [mob][photos] Show available icons in app icon selection screen and get selection working 2025-03-12 17:22:35 +05:30
laurenspriem
9cfd8a7671 [mob][photos] Don't use location tag for trips 2025-03-12 16:42:59 +05:30
Prateek Sunal
ab89b28ccc [mob] chore: remove unused imports 2025-03-12 16:37:52 +05:30
Prateek Sunal
fc7203d2ab [mob] fix: remove unused 2025-03-12 16:36:55 +05:30
vishnukvmd
2f7a6c7fd1 Unbreak flutter run by removing LAUNCHER nodes per flavor 2025-03-12 15:55:06 +05:30
Prateek Sunal
6746c64a66 Merge remote-tracking branch 'origin/main' into home-widget-ios-lesgo 2025-03-12 15:44:26 +05:30
Prateek Sunal
2578dec249 [mob] feat: update slideshow widget code to support iOS 2025-03-12 15:42:12 +05:30
vishnukvmd
185da3fa9a Remove unused flavor 2025-03-12 15:30:26 +05:30
Neeraj
2ccd92519b [auth] remove ubuntu-20.04 runner & more (#5232)
## Description

Remove deprecated ubuntu-20.04 workflow and merge it with the latest.

## Tests
2025-03-12 15:16:52 +05:30
Laurens Priem
b96c350c2e [mob][photos] Bulk edit date (#5131)
## Description

Improved the edit date functionality:
- Bulk edit date
- Shift dates
- New edit date UI more in line with Ente designs

## Design

<img
src="https://github.com/user-attachments/assets/ce20c6f6-5ade-4e1b-8c2f-3dd7e9612fcd"
width="300px">

<img
src="https://github.com/user-attachments/assets/66f3f68b-8557-4859-a5cf-f70f692187c5"
width="300px">

<img
src="https://github.com/user-attachments/assets/973f1ff5-9a54-4ab0-afb7-0cc68d4421d6"
width="300px">

<img
src="https://github.com/user-attachments/assets/906e5106-7264-4c60-aeb6-6f1d1586e9ec"
width="300px">

<img
src="https://github.com/user-attachments/assets/6b786bd5-58d7-4e66-85b0-73f7ef5eb817"
width="300px">

<img
src="https://github.com/user-attachments/assets/458daf34-6047-4a0a-8feb-9683dd2d7374"
width="300px">

<img
src="https://github.com/user-attachments/assets/85da4b34-8e47-40f2-ba56-05fb0818f6e3"
width="300px">


## Tests

Tested in debug mode on my pixel phone.
2025-03-12 15:16:20 +05:30
laurenspriem
0625571fdc [mob][photos] Use existing update mmd method 2025-03-12 15:12:33 +05:30
vishnukvmd
5e2fbf9c7f Remove duplicate entries from launcher, breaking flutter run 2025-03-12 15:07:01 +05:30
vishnukvmd
84f329ea9c Update 2025-03-12 15:07:01 +05:30
ashilkn
f8decd42f1 Merge branch 'icon' into icon_picker_ui 2025-03-12 14:12:37 +05:30
ashilkn
f92b7b3ea8 [mob][photos] Update spalsh screen 2025-03-12 14:02:57 +05:30
Neeraj
70418d70a7 docs-ios backup (#5293)
## Description

## add iOS album backup faq
2025-03-12 13:54:25 +05:30
Manav Rathi
c12335d5fe [web] Make the accountsUrl optional when pk is not set (#5296) 2025-03-12 13:21:26 +05:30
Manav Rathi
a9887cb235 [web] Make the accountsUrl optional when pk is not set 2025-03-12 13:15:49 +05:30
Manav Rathi
f7c47674d1 [web] File viewer code cleanup (#5294)
Cleaning pending leftovers from old viewer.
2025-03-12 12:52:14 +05:30
laurenspriem
2e70eb678d [mob][photos] Unscrew translations 2025-03-12 12:26:49 +05:30
Manav Rathi
c8b07fcae5 FileThumbnail 2025-03-12 12:18:14 +05:30
Jay
6d31ecbe2f docs-ios backup 2025-03-12 12:13:28 +05:30
laurenspriem
8375c54b9b Merge branch 'main' into bulk_edit_date 2025-03-12 12:07:57 +05:30
Neeraj
26c35d997a [mob] Reduce fully gallery reload during upload matching (#5283)
## Description

## Tests
2025-03-12 11:56:06 +05:30
laurenspriem
117e4f3475 [mob][photos] Re-organize 2025-03-12 11:51:51 +05:30
laurenspriem
7f6d4027a5 [mob][photos] Properly update mmd 2025-03-12 11:23:43 +05:30
laurenspriem
faf2f39990 [mob][photos] Forgot earlier commit 2025-03-12 11:23:06 +05:30
Manav Rathi
4312b024f6 cleanup 2025-03-12 10:49:23 +05:30
Manav Rathi
500ecc3966 Prune 2025-03-12 10:34:03 +05:30
Manav Rathi
f92db38ca1 uncontext 2025-03-12 10:28:05 +05:30
Manav Rathi
c07f2f4775 types 2025-03-12 10:21:33 +05:30
Manav Rathi
57a226ed2a Rename 2025-03-12 09:35:43 +05:30
Manav Rathi
367d373c18 Semantic + better layout for long descriptions 2025-03-12 09:14:24 +05:30
Manav Rathi
85d6552943 [web] New translations (#5290)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-03-12 08:39:01 +05:30
Crowdin Bot
56876e4a28 New Crowdin translations by GitHub Action 2025-03-12 03:01:31 +00:00
Manav Rathi
738128a7c5 [web] File viewer translation related cleanup (#5289) 2025-03-12 08:30:38 +05:30
Manav Rathi
eab1d98d2d tr 2025-03-12 08:24:05 +05:30
Manav Rathi
7aa4f5bb16 l 2025-03-12 08:15:08 +05:30
Manav Rathi
27fa57f608 More 2025-03-12 08:05:22 +05:30
Manav Rathi
f135b65d31 sc 2025-03-12 08:02:59 +05:30
Manav Rathi
9b09ebe3f0 fav 2025-03-12 07:58:26 +05:30
Vishnu Mohandas
9e64752677 [auth] Add icon for LinkedIn (#5284)
## Description

Add SVG icon for LinkedIn: https://www.linkedin.com/.

See logo being used here:
https://en.m.wikipedia.org/wiki/File:LinkedIn_icon.svg
2025-03-12 07:55:49 +05:30
Manav Rathi
563d65cc1d tr 2025-03-12 07:09:58 +05:30
Manav Rathi
68132147e7 Reuse 2025-03-12 06:53:50 +05:30
Manav Rathi
6979617d12 Prune 2025-03-12 06:46:07 +05:30
Manav Rathi
c4812abab3 Use 2025-03-12 06:36:48 +05:30
Manav Rathi
f09ef7ae10 pn 2025-03-12 06:35:56 +05:30
Manav Rathi
062bbdfa88 list join 2025-03-12 06:33:04 +05:30
Daniel Tsiang
1f87ef8cb7 [auth] Add icon for LinkedIn 2025-03-11 15:47:15 +00:00
laurenspriem
fc9bac09ef [mob][photos] Remove old code 2025-03-11 19:21:39 +05:30
laurenspriem
5d15905736 [mob][photos] Use in file info too 2025-03-11 19:19:33 +05:30
laurenspriem
39bb4b4400 [mob][photos] Option to not show header 2025-03-11 19:07:04 +05:30
Neeraj
df14f18881 [mob][perf] Improve computation for discover sections by batching lookup (#5282)
## Description
- For 14k files, this reduced the overall time to calculate discovery
section from **1600ms** to **250ms**
- This should also reduce the memory overhead as we have reduce the
number of times we are passing vector to different isolate.

## Tests
2025-03-11 17:43:37 +05:30
Neeraj Gupta
c4d8ddbf26 [mob] add docs 2025-03-11 17:32:50 +05:30
Neeraj Gupta
9132be591d [mob][perf] Avoid db reload on mapping local file to remote file 2025-03-11 17:30:00 +05:30
laurenspriem
30b3af8691 [mob][photos] Extract strings 2025-03-11 17:20:22 +05:30
Neeraj Gupta
2fa555163c [mob] Batch query lookup for discover sections 2025-03-11 16:48:54 +05:30
laurenspriem
890b8a5ac7 [mob][photos] Give option in file selection actions 2025-03-11 16:46:27 +05:30
laurenspriem
07de44b235 [mob][photos] show day of week in picker 2025-03-11 16:40:23 +05:30
Neeraj Gupta
643da1491a [mob] Add support for getting clip results for multiple queries 2025-03-11 15:07:31 +05:30
laurenspriem
c62cde415f [mob][photos] Contain file name 2025-03-11 14:33:24 +05:30
laurenspriem
83404a646e [mob][photos] Align tiles 2025-03-11 14:26:49 +05:30
Prateek Sunal
45c878aa35 Merge remote-tracking branch 'origin/main' into home-widget-ios-lesgo 2025-03-11 13:29:28 +05:30
laurenspriem
54be18dac6 [mob][photos] Align components 2025-03-11 13:17:45 +05:30
laurenspriem
a1c74bb0b2 [mob][photos] newrange fix 2025-03-11 12:51:38 +05:30
Neeraj
3b568bf914 [mob] Refactor local import (#5280)
## Description

## Tests
2025-03-11 12:32:44 +05:30
mangesh
fd325d0be5 [doc] family limits docs (#5268) 2025-03-11 11:39:59 +05:30
Neeraj
8e158677f2 Update family-plans.md 2025-03-11 11:39:44 +05:30
Sven
d8490ea4b1 [auth] Add 2 new icons (MEXC & ICONOMI) (#5271)
Add icons for MEXC and ICONOMI to Ente Auth
2025-03-11 11:38:41 +05:30
Ashil
01e258557c [mob][photo] Show file caption/description in file viewer. (#5279)
## Description

- Tapping on description/caption will open file info.

<img
src="https://github.com/user-attachments/assets/0f9422ec-49bb-43d8-9568-b57748587866"
width="300px">

<img
src="https://github.com/user-attachments/assets/43b704b4-6fc4-44ed-8d7a-97b7d27c90b0"
width="300px">

<img
src="https://github.com/user-attachments/assets/65fca334-14a7-4f01-95c4-46b231687438"
width="300px">

<img
src="https://github.com/user-attachments/assets/8e56cb29-7af6-439e-8627-3badc60aa383"
width="300px">
2025-03-11 11:36:11 +05:30
Bl4ckspell
f9dbf0efea [auth] add luma icon (#5276)
## Description

![Luma](https://github.com/user-attachments/assets/90a404bf-0302-40e9-9653-900dfbfc3a6c)

## Tests
2025-03-11 11:35:37 +05:30
ashilkn
51ef7c60fa [mob][photos] Fix render overlow 2025-03-11 11:21:55 +05:30
Neeraj
600736e70f [auth] Add support for editing number of digits & algorithm (#5190)
## Description
This PR add support to edit the number of digits (between 1 to 10) for
the 2FA codes and also give an option to select algorithms

![image](https://github.com/user-attachments/assets/be4b8c01-0d94-4881-b23d-32e03c14dbeb)
2025-03-11 10:13:31 +05:30
laurenspriem
1977129a68 [mob][photos] am/pm 2025-03-11 10:06:49 +05:30
Manav Rathi
ef3ccbd91b zoom 2025-03-11 09:58:50 +05:30
Manav Rathi
55a68f9d29 tr 2025-03-11 09:54:51 +05:30
Manav Rathi
5918698366 reuse 2025-03-11 09:36:56 +05:30
Manav Rathi
d0b58b75c8 Tweak 2025-03-11 09:32:03 +05:30
Manav Rathi
a72eb78e53 Center 2025-03-11 09:29:18 +05:30
Manav Rathi
8d07b16e09 [web] Misc minor fixes (#5278) 2025-03-11 09:09:18 +05:30
Manav Rathi
caadba3996 Fix empty space
This had been there earlier, had accidentally gotten removed during search bar refactoring
2025-03-11 09:00:24 +05:30
Manav Rathi
427cc9d414 Fix 2025-03-11 08:13:42 +05:30
ashilkn
cfb2e5f1bd [mob][photos] Scaffold app icon selection screen 2025-03-10 22:32:50 +05:30
Manav Rathi
d8995ef375 [web] File viewer code cleanup (#5275) 2025-03-10 21:18:58 +05:30
Manav Rathi
c3831230e0 Move 2025-03-10 21:10:39 +05:30
vishnukvmd
6552562d83 Fix colors 2025-03-10 21:03:45 +05:30
vishnukvmd
226d2b6925 Refactor 2025-03-10 20:55:10 +05:30
vishnukvmd
26e903b1f1 Try new plugin 2025-03-10 20:53:51 +05:30
vishnukvmd
701676beeb Update xml colors 2025-03-10 20:53:46 +05:30
vishnukvmd
fe9c236b71 Try new plugin 2025-03-10 20:53:34 +05:30
vishnukvmd
df20a6185b Fix iOS 2025-03-10 20:53:25 +05:30
Manav Rathi
76d8038899 Let PhotoSwipe show the error 2025-03-10 20:30:45 +05:30
Manav Rathi
ad0169b7e5 cc 2025-03-10 19:56:46 +05:30
Manav Rathi
76887b2205 shared shortcuts 2025-03-10 19:50:39 +05:30
Manav Rathi
7249b25180 F 2025-03-10 19:44:49 +05:30
Prateek Sunal
9c18de33e6 feat: widget on iOS 2025-03-10 19:32:40 +05:30
Manav Rathi
ffd2a55ca0 Retain previous (pre-ps5) behaviour 2025-03-10 19:27:55 +05:30
Manav Rathi
eaf576967b Chrome warnings 2025-03-10 19:24:18 +05:30
Manav Rathi
e6a9ccefe7 ts 2025-03-10 19:01:54 +05:30
Manav Rathi
d0b25b31c8 ts 2025-03-10 18:42:38 +05:30
Manav Rathi
3211e6afe6 Remove the auto hide code, it is too distracting to enable 2025-03-10 18:19:49 +05:30
Manav Rathi
a7cc5e7165 ts 2025-03-10 18:05:43 +05:30
vishnukvmd
8dd1180c85 Update 2025-03-10 18:02:19 +05:30
Manav Rathi
bea32ac7e3 Re 2025-03-10 17:56:10 +05:30
Manav Rathi
3be7f7b55e Inline 2025-03-10 17:47:56 +05:30
Manav Rathi
4a833e0799 Final two 2025-03-10 17:47:56 +05:30
Manav Rathi
10a9ad02f8 Remove no longer needed zi workarounds 2025-03-10 17:47:56 +05:30
vishnukvmd
3dec686458 Update icons 2025-03-10 17:42:40 +05:30
vishnukvmd
ac57a5d90d Update icons 2025-03-10 17:40:00 +05:30
ashilkn
ba79588090 [mob][photos] Fix text colour 2025-03-10 17:38:22 +05:30
ashilkn
3593a8e545 [mob][photos] Open file info bottom sheet when tapped on file description/caption 2025-03-10 17:29:02 +05:30
Manav Rathi
643a6cf413 Trim 2025-03-10 16:38:46 +05:30
ashilkn
dbb14f0a24 [mob][photos] Reflect edited caption/description immidiately on file viewer on changing it in file info bottom sheet 2025-03-10 16:36:31 +05:30
Manav Rathi
cba6676bb5 Empty state 2025-03-10 16:26:25 +05:30
laurenspriem
afb80f2131 [mob][photos] use ente colours everywhere 2025-03-10 16:07:09 +05:30
laurenspriem
7c520655a3 [mob][photos] Add new range UI 2025-03-10 16:02:45 +05:30
Manav Rathi
d43cf1fb86 Fin annotation propagation 2025-03-10 15:54:12 +05:30
Manav Rathi
f02974045b Move 2025-03-10 15:53:54 +05:30
Manav Rathi
20268c236a CL 2025-03-10 15:53:54 +05:30
Manav Rathi
0b7aa97db1 wip re 2025-03-10 15:17:58 +05:30
Manav Rathi
9a39298acd Re 2025-03-10 15:17:58 +05:30
Manav Rathi
36e1e758c5 Re 2025-03-10 15:17:58 +05:30
Manav Rathi
f74f13c7a8 web doesn't need the submodule fetch anymore 2025-03-10 15:17:57 +05:30
laurenspriem
812dffc231 [mob][photos] single file header 2025-03-10 15:16:28 +05:30
laurenspriem
5898aebcf1 [mob][photos] max shift setting 2025-03-10 14:51:53 +05:30
laurenspriem
439664fcca [mob][photos] edit dates logic 2025-03-10 14:42:41 +05:30
laurenspriem
7c8599a370 [mob][photos] confirmation button 2025-03-10 14:30:07 +05:30
Vishnu Mohandas
eb9e61579e [docs] Update README.md (#5270)
Fixes https://github.com/ente-io/ente/issues/5262.
2025-03-10 13:34:22 +05:30
Vishnu Mohandas
300b3c89a3 Update README.md 2025-03-10 13:33:52 +05:30
Laurens Priem
302d2af3d2 ;[mob][photos] Memories iteration for internal users (#5253)
## Description

Some minor iterations:
- Added base locations to location section
- More debugging options in moments section
- Performance logging
- Minor tweaks 

## Tests

Tested in debug mode on my pixel phone.
2025-03-10 13:33:51 +05:30
laurenspriem
3feee66d3a Merge branch 'main' into memories_iteration 2025-03-10 13:31:54 +05:30
ashilkn
b953d6d513 [mob][photos] Clean up 2025-03-10 13:27:04 +05:30
laurenspriem
d88b39ec46 [mob][photos] bump for internal release 2025-03-10 13:26:11 +05:30
ashilkn
145e025eea [mob][photos] Move caption/description inside seek bar's container in media kit player for consistancy of UI across players 2025-03-10 13:22:56 +05:30
ashilkn
13c36d9c40 [mob][photos] Hide/show caption with enabling/disabling full screen 2025-03-10 13:13:52 +05:30
github-actions[bot]
dd807368b2 [auth] New translations (#5266)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-03-10 12:41:36 +05:30
Iiii-I-I-I
0f0790df5f [Auth] Add two custom icons (#5267)
## Description
Add icons for:

* Federal Student Aid ([studentaid.gov](https://studentaid.gov)), rank
557 on [Similarweb](https://www.similarweb.com/website/studentaid.gov/)
* RuneScape Wiki ([runescape.wiki](https://runescape.wiki/)), rank 2,652
on [Similarweb](https://www.similarweb.com/website/runescape.wiki/)
2025-03-10 12:24:38 +05:30
mangesh
9d2e1cd502 [server] Soft error msgs when billing/payment data(config) is not found (#5269)
From discord discussion

the pr makes changes to the error strings which are thrown when
configuration reltaed to payment and billing isn't found. The error
messages are changed so to not scare self hosters while we are aware of
it on the production instance.
2025-03-10 12:24:21 +05:30
mngshm
a640a430bf tweak 2025-03-10 12:08:08 +05:30
mngshm
26cb6ad722 [server] avoid scary error msgs if payment/billing configuration is not found 2025-03-10 11:58:59 +05:30
laurenspriem
340ca6500a [mob][photos] DateTime picker widget 2025-03-10 11:57:03 +05:30
mngshm
b114dd54b9 [doc] family limits docs 2025-03-10 11:28:29 +05:30
ashilkn
b8e3d88575 [mob][photos] Show caption/description in file viewer screen 2025-03-10 11:22:50 +05:30
mangesh
b3d5731731 [docs] replication diagram by @maazy4ever (#5245) 2025-03-10 11:08:34 +05:30
vishnukvmd
04c591a38c Setup icons for Android 2025-03-08 17:49:30 +05:30
vishnukvmd
06c126544d Setup icons for iOS 2025-03-08 17:49:25 +05:30
vishnukvmd
53a45f7cdc Compress dev icon 2025-03-08 17:38:29 +05:30
vishnukvmd
7d664986ac Generate new icons 2025-03-08 17:37:51 +05:30
vishnukvmd
c4c542bc25 Drop dev icon generator 2025-03-08 17:37:44 +05:30
laurenspriem
7ff9031ac0 [mob][photos] Next screen 2025-03-08 14:19:52 +05:30
laurenspriem
0ad3878bbd [mob][photos] stateful widget controlling flow 2025-03-08 13:28:16 +05:30
laurenspriem
013f83cc39 [mob][photos] extract widgets 2025-03-08 13:19:32 +05:30
vishnukvmd
ee6e389fca Setup base icons 2025-03-08 11:37:56 +05:30
vishnukvmd
de252b4ad8 Upgrade icon package 2025-03-08 11:37:52 +05:30
Manav Rathi
84b880d7cf [web] Doesn't require submodules anymore (#5258) 2025-03-07 20:33:53 +05:30
Manav Rathi
3900ee609f Fix clicks on hidden buttons 2025-03-07 20:18:52 +05:30
Manav Rathi
0ee496401a Mention ps 2025-03-07 19:52:23 +05:30
Manav Rathi
511c324bad [web] Submodules required no more 2025-03-07 19:50:06 +05:30
Manav Rathi
51f2868f98 [web] Handle deletion of last slide (#5257)
...in the new file viewer.
2025-03-07 19:45:08 +05:30
Manav Rathi
2a70327153 [web] Handle deletion of last slide 2025-03-07 19:40:11 +05:30
Manav Rathi
f29341ccb2 [web] Ask prettier to not modify objectWrap in translations (#5256)
The crowdin action reverts this otherwise
2025-03-07 19:27:21 +05:30
Manav Rathi
89b35f44c3 Not needed anymore 2025-03-07 19:22:11 +05:30
Manav Rathi
beeafe4aa6 The crowdin action reverts this otherwise 2025-03-07 19:22:11 +05:30
Manav Rathi
4b631aa423 [web] New translations (#5255)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-03-07 19:16:08 +05:30
Crowdin Bot
83729aced4 New Crowdin translations by GitHub Action 2025-03-07 13:44:23 +00:00
Manav Rathi
bbcfa865d1 [web] Dependency updates + prettier's new objectWrap=collapse (#5254) 2025-03-07 19:13:03 +05:30
Manav Rathi
4bf629a44c yarn prettier --write --object-wrap=collapse 2025-03-07 18:54:04 +05:30
Manav Rathi
4e417e9490 LF 2025-03-07 18:44:45 +05:30
Manav Rathi
b6aefd1845 [web] Dependency updates 2025-03-07 18:21:05 +05:30
laurenspriem
a68f1e91c5 [mob][photos] Performance logging 2025-03-07 18:18:58 +05:30
Manav Rathi
a3e8d3c1a3 yarn prettier --write --object-wrap=collapse . 2025-03-07 17:53:58 +05:30
Manav Rathi
15473d80d8 Run linter 2025-03-07 17:47:57 +05:30
Manav Rathi
fa349caf0c [desktop] Dep updates 2025-03-07 17:36:05 +05:30
laurenspriem
920e26255c [mob][photos] Surface calculated persons 2025-03-07 16:49:47 +05:30
Manav Rathi
2a3466da63 [web] Modify the cursor on file viewer thumbnail (#5252) 2025-03-07 16:15:11 +05:30
Manav Rathi
c59da52f71 Modify the cursor on thumbnail 2025-03-07 16:08:34 +05:30
Manav Rathi
aa551463b3 Prefix 2025-03-07 14:38:06 +05:30
laurenspriem
949909631a [mob][photos] don't sort debug memories 2025-03-07 14:09:01 +05:30
laurenspriem
de2b399941 [mob][photos] datepicker for debugging memories 2025-03-07 14:06:58 +05:30
laurenspriem
6685c68c35 [mob][photos] Show ALL memories in moments section [debug] 2025-03-07 13:03:50 +05:30
Manav Rathi
02f1ac4f2f [web] Update PhotoSwipe (Complete) (#5249)
- Swaps our forked version of PhotoSwipe with the latest upstream.
- Many(!) improvements to the file viewer at the same time.

There is a further bunch of cleanup, but that can be done async later.
2025-03-07 11:31:53 +05:30
Manav Rathi
573cc787e5 Prune 2025-03-07 11:24:10 +05:30
Manav Rathi
997b87bd26 Swap fin 2025-03-07 11:15:40 +05:30
Manav Rathi
ef013473fc Swap 2025-03-07 11:07:46 +05:30
Manav Rathi
df96f42a61 Install 2025-03-07 10:35:06 +05:30
Manav Rathi
a144d39a47 Styles 2025-03-07 10:32:21 +05:30
Manav Rathi
70c98b8877 Remove the submodule version of photoswipe 2025-03-07 10:28:42 +05:30
Manav Rathi
2a5f774423 [desktop] Electron minor version update (#5248) 2025-03-07 10:27:19 +05:30
Manav Rathi
4796d8a54a [desktop] Electron minor version update 2025-03-07 10:24:23 +05:30
Manav Rathi
694a8a46dd [web] PhotoSwipe Update - Before switch over (#5247)
Final set of changes, in next PR we swap
2025-03-07 10:20:48 +05:30
Manav Rathi
61809889e9 Revert "Temporary workbench"
This reverts commit 3bb92e10e4.
2025-03-07 10:16:04 +05:30
Manav Rathi
981716fbcb vid shortcuts 2025-03-07 08:59:15 +05:30
Manav Rathi
be25081a73 Loader 2025-03-07 08:48:12 +05:30
Manav Rathi
8e3e741b1a Flip 2025-03-07 08:40:37 +05:30
Manav Rathi
a056cfd154 Start dusting 2025-03-07 07:52:00 +05:30
Manav Rathi
98987326e2 ditto 2025-03-07 07:45:57 +05:30
Manav Rathi
b9de012c28 Better counter behaviour on moving into two lines 2025-03-07 07:15:45 +05:30
Manav Rathi
50adfa7399 Fix error position 2025-03-07 07:04:21 +05:30
Manav Rathi
2d005a7d07 For future us 2025-03-07 06:58:28 +05:30
Manav Rathi
4faf938fbd fav cleanup 2025-03-07 06:57:16 +05:30
Manav Rathi
3bb92e10e4 Temporary workbench
This reverts commit 1eed87e117.
2025-03-07 06:57:16 +05:30
Ashil
9f51c2ddae [mob][photos] Log android version along with device name (#5240)
### Description 

Logging the Android version will make it easier to identify if an issue
is linked to certain Android version(s).
2025-03-07 05:21:41 +05:30
mngshm
2a453ee321 replication diagram by @maazy4ever 2025-03-06 22:04:31 +05:30
Manav Rathi
a48505205e [web] PhotoSwipe update - WIP (#5244) 2025-03-06 20:24:15 +05:30
Manav Rathi
6697cca571 Revert "Temporary workbench"
This reverts commit ae4e189848.
2025-03-06 20:16:47 +05:30
Manav Rathi
bfc0f785bc Top bar mobile 2025-03-06 20:16:47 +05:30
Manav Rathi
f3cc4f6fa0 lp fix if nearby slide 2025-03-06 19:42:44 +05:30
Manav Rathi
781de2b60b Single element 1 2025-03-06 19:37:05 +05:30
Aman Raj Singh Mourya
dfe892b54e [auth] Minor fix 2025-03-06 19:33:48 +05:30
Manav Rathi
fce9c6d01e Focus handle 2025-03-06 19:16:32 +05:30
Manav Rathi
183000526c sp 2025-03-06 19:06:45 +05:30
Manav Rathi
0b50d43d53 Fix vis 2025-03-06 18:47:59 +05:30
Manav Rathi
f48d97112c toggle 2 2025-03-06 18:13:26 +05:30
Manav Rathi
815009da9b across slides 2025-03-06 18:13:26 +05:30
Manav Rathi
e9e0b31b8a Tweak 2025-03-06 18:13:26 +05:30
Manav Rathi
b72f65d44c play 2 2025-03-06 18:13:26 +05:30
Manav Rathi
5649ee7c03 live 1 2025-03-06 18:13:26 +05:30
Manav Rathi
74f301e936 Tweak 2025-03-06 18:13:26 +05:30
Manav Rathi
03df527fb7 live 1 2025-03-06 18:13:26 +05:30
Manav Rathi
6c9887613b mark pending 2025-03-06 18:13:26 +05:30
Manav Rathi
ca7ee5e147 Consistent auto hide with slide changes 2025-03-06 18:13:26 +05:30
Manav Rathi
c8dc9c9f46 ks 2025-03-06 18:13:26 +05:30
Manav Rathi
7eaedfe138 Fixes 2025-03-06 18:13:26 +05:30
Manav Rathi
30b23e6c3b Use closures consistently 2025-03-06 18:13:26 +05:30
Manav Rathi
b578c8f0de help 2025-03-06 18:13:26 +05:30
Manav Rathi
ba95d08cdd kbd fin 2025-03-06 18:13:26 +05:30
Manav Rathi
63faa29cd4 occam 2025-03-06 18:13:25 +05:30
Manav Rathi
27ad9840d0 Reroute so that it works with kbd shortcuts 2025-03-06 18:13:25 +05:30
Manav Rathi
c96f2495ed pseudo focus 2025-03-06 18:13:25 +05:30
Manav Rathi
b1c680cccd wasd fix 2025-03-06 18:13:25 +05:30
Manav Rathi
f487e64569 wasd 2025-03-06 18:13:25 +05:30
Manav Rathi
ae4e189848 Temporary workbench
This reverts commit 1eed87e117.
2025-03-06 18:13:25 +05:30
Manav Rathi
5ab8169cd9 [desktop] Passthrough unknown entity data fields (#5241) 2025-03-06 18:04:57 +05:30
Manav Rathi
f52b6256b5 Update 2025-03-06 18:01:24 +05:30
Manav Rathi
c03f63d2b2 [desktop] Passthrough unknown entity data fields 2025-03-06 17:51:37 +05:30
laurenspriem
e2aea63276 [mob][photos] base locations in locations section 2025-03-06 16:33:41 +05:30
ashilkn
f590a43159 [mob][photos] Log android version along with device name 2025-03-06 16:15:15 +05:30
Neeraj
bc72ec1982 [mob] Refactor permission related logic (#5239)
## Description

## Tests
2025-03-06 16:14:10 +05:30
Neeraj Gupta
7050ba5f22 [mob] Lint fix 2025-03-06 16:07:47 +05:30
Neeraj Gupta
2e2cc7f3e7 Merge remote-tracking branch 'origin/main' into refactor_perm 2025-03-06 15:43:55 +05:30
Neeraj Gupta
2278b1f40e [mob] Refactor 2025-03-06 15:41:37 +05:30
Ashil
fcc249b989 [mob][photos] Properly handle and log error/exception thrown in isolate (#5234) 2025-03-06 15:24:54 +05:30
ashilkn
ff82245293 [mob][photos] Rethrow 2025-03-06 15:08:59 +05:30
Vishnu Mohandas
4bd08f02f8 [docs] Update passkeys.md 2025-03-06 15:08:06 +05:30
Neeraj Gupta
69852e436a refactor 2025-03-06 14:06:42 +05:30
Neeraj Gupta
3fe47dd4c4 [mob] Add permission service 2025-03-06 13:13:12 +05:30
Vishnu Mohandas
9650d3865a [docs] Update (#5237) 2025-03-06 12:40:04 +05:30
vishnukvmd
a4f64a73cb [docs] Update 2025-03-06 12:39:24 +05:30
Ashil
16baa84cf0 [mob][photos] Bump up build number (#5236) 2025-03-06 12:35:38 +05:30
ashilkn
db7f669198 [mob][photos] Bump up build number 2025-03-06 12:04:25 +05:30
ashilkn
5ec52541bf [mob][photos] Pass back any exceptions/errors back to main isolate when thrown from a different isolate when using _getLocalIDsAndFilesFromAssets + catch and log in the main isolate so that its reported on sentry 2025-03-06 01:13:49 +05:30
Manav Rathi
c7326c2efc [web] PhotoSwipe Update - WIP (#5233)
Nearing completion, perhaps the second last WIP PR in this series.
2025-03-05 20:08:56 +05:30
Ashil
904c93cf4e [mob][photos] Fix free up space bug (#5231)
## Description

If free up space fails, now we retry after removing `localIDs` that have
no asset returned by Photo Manager. If it still fails, we re-try after
running
[this](https://github.com/fluttercandies/flutter_photo_manager?tab=readme-ov-file#remove-all-non-exist-entities).

Note: It's not clear if this fixes received bug reports since we haven't
been able to reproduce
[deleteWithIds](https://github.com/fluttercandies/flutter_photo_manager?tab=readme-ov-file#delete-entities)
failing on using the Free up space feature.
2025-03-05 20:04:25 +05:30
Manav Rathi
d98394272e Fix formatting lints 2025-03-05 20:03:10 +05:30
Manav Rathi
1eed87e117 Revert "Temporary workbench"
This reverts commit 8ac9751891.
2025-03-05 20:00:29 +05:30
Manav Rathi
22cd3763b7 delegate 2025-03-05 19:59:03 +05:30
Manav Rathi
a18db13899 simpl 2025-03-05 19:25:42 +05:30
Prateek Sunal
54c8d5851b [auth] fix(workflow): remove soon to be deprecated ubuntu-20.04 workflow and switch source to ente-io of flutter_distributor 2025-03-05 19:23:53 +05:30
Manav Rathi
89d6ddf2c6 backdrop 2025-03-05 19:05:58 +05:30
Manav Rathi
aff27e662a More 2025-03-05 19:02:38 +05:30
Prateek Sunal
cc569eb192 chore: bump build number 2025-03-05 18:45:33 +05:30
ashilkn
8e1d931c1f [mob][photos] Extract string 2025-03-05 18:06:24 +05:30
ashilkn
abe313fff2 [mob][photos] Use better name 2025-03-05 18:03:06 +05:30
Neeraj
20095620c8 [mob][fix] share & description in android (#5229) 2025-03-05 17:57:01 +05:30
ashilkn
ec90db7b7d [mob][photos] Fix merge conflict and merge main 2025-03-05 17:48:15 +05:30
laurenspriem
5ff494320c [mob][photos] trips dont repeat early 2025-03-05 17:43:51 +05:30
ashilkn
bb781e257e [mob][photos] More logging 2025-03-05 17:41:17 +05:30
Prateek Sunal
8902b99ae7 fix: add buffering indicator for media kit player 2025-03-05 17:31:36 +05:30
laurenspriem
d49f9cc054 [mob][photos] Use constants 2025-03-05 17:12:46 +05:30
ashilkn
d5c9eea40f [mob][photos] Try checking for and handling already deleted local IDs during free up space only if freeing up space without it fails
This is to make free up space faster in most cases
2025-03-05 17:05:32 +05:30
laurenspriem
c432125113 [mob][photos] Make base locations more robust 2025-03-05 16:41:12 +05:30
Manav Rathi
4a8b130738 sc4 2025-03-05 16:22:25 +05:30
Manav Rathi
ed76b41392 sc3 2025-03-05 15:17:26 +05:30
Manav Rathi
270158dadc sc 2 2025-03-05 15:04:08 +05:30
Manav Rathi
5ea4f8b897 shortcut 1 2025-03-05 14:47:29 +05:30
Manav Rathi
e12a9aa800 fs 2 2025-03-05 14:08:10 +05:30
Manav Rathi
b4a853acc5 fs 1
Refs
 * https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API
 * https://mdn.github.io/dom-examples/fullscreen-api/index.html
2025-03-05 13:51:36 +05:30
Prateek Sunal
6c748f6c87 chore: bump locks 2025-03-05 13:36:37 +05:30
Prateek Sunal
f36666bd0a fix: show video description in previews for android 2025-03-05 13:36:22 +05:30
Manav Rathi
fb8f7901b1 Impl + shift top bar 2025-03-05 13:35:09 +05:30
Prateek Sunal
32ceac423b fix: share in android 2025-03-05 13:19:04 +05:30
laurenspriem
d25e81282d [mob][photos] Mini refactor 2025-03-05 13:13:22 +05:30
Neeraj
7bbd432294 [mob] Refactor utils (#5228)
## Description

## Tests
2025-03-05 12:59:44 +05:30
laurenspriem
2d30ac4c46 [mob][photos] include import 2025-03-05 12:43:40 +05:30
laurenspriem
49fe5f41e0 [mob][photos] easier debugging 2025-03-05 12:42:49 +05:30
Neeraj Gupta
72ba881e26 [mob] Remove assert 2025-03-05 12:36:25 +05:30
Neeraj Gupta
1c8860d08e Merge remote-tracking branch 'origin/main' into move_refactor 2025-03-05 12:28:44 +05:30
Manav Rathi
731c19d6a9 Notes of what needs to be done 2025-03-05 12:13:39 +05:30
Neeraj Gupta
3ac937a244 move 2025-03-05 12:00:02 +05:30
ashilkn
74ff170672 [mob][photos] Fix merge conflicts and merge main 2025-03-05 11:49:06 +05:30
laurenspriem
2a98ed4815 Merge branch 'main' into bulk_edit_date 2025-03-05 11:48:23 +05:30
Manav Rathi
1897285380 Don't show delete in shared
This functionality has not yet been implemented
2025-03-05 11:46:30 +05:30
Manav Rathi
7d8683640b vid 1 2025-03-05 11:19:12 +05:30
Manav Rathi
81e3593b74 PNG 2025-03-05 11:03:52 +05:30
Manav Rathi
21f87b7cba Different tack 2025-03-05 10:45:34 +05:30
Neeraj
5e4862cc3c [fix] steaming fixes (#5168)
## Description

- Update queuing logic
- Use native_video_player + exoplayer branch to fix artifacts for
android
- Support newer namespace and sdk 35
- Store failures and don't retry them
- Modify how sync file data status is happening i.e. don't remote sync
everytime we need to update previewIds, instead update it locally
- Add bandwidth check before queuing
- Remove rotate metadata parameter


Now the player decision logic is:
- Android: Native video Player for both Stream and original source
- iOS: Media Kit for stream and Native Video Player for Original

The UseMediaKitEvent is still there in case of any error or if user long
presses on that button (android) for original source.

## Tests
2025-03-05 10:43:42 +05:30
Manav Rathi
879f28599c Copy 2 2025-03-05 10:07:40 +05:30
Manav Rathi
11413ee77b Move closer to source 2025-03-05 09:47:30 +05:30
Manav Rathi
bb6c2f1656 Tweak 2025-03-05 08:12:37 +05:30
Manav Rathi
1bc8c44b54 copy 1 2025-03-05 07:56:16 +05:30
Manav Rathi
8f8cdbb13f mh 2025-03-05 07:43:38 +05:30
Manav Rathi
f3a079e734 Prevent rerenders 2025-03-05 07:32:40 +05:30
Manav Rathi
c0b3b4b38e link 2025-03-05 07:25:27 +05:30
Manav Rathi
848ec03827 Route 2025-03-05 07:12:13 +05:30
Manav Rathi
642320b1d9 icons 2 2025-03-05 06:55:57 +05:30
Manav Rathi
6f8f997f93 icons 2025-03-05 06:55:57 +05:30
Manav Rathi
fd13c737aa Download in bar 2025-03-05 06:55:57 +05:30
Manav Rathi
7fc96285f1 route 2025-03-05 06:55:57 +05:30
Manav Rathi
76efe1290c menu 2025-03-05 06:55:57 +05:30
Manav Rathi
3d44700010 Position 2025-03-05 06:55:56 +05:30
Manav Rathi
2541febb53 Download 2025-03-05 06:55:56 +05:30
Manav Rathi
62222b0228 Fix height
356b885778/packages/mui-material/src/MenuItem/MenuItem.js (L147)
2025-03-05 06:55:56 +05:30
Manav Rathi
9072766169 Fix 2025-03-05 06:55:56 +05:30
Manav Rathi
12f5c1db87 Handle singleton album deletes 2025-03-05 06:55:56 +05:30
Manav Rathi
60d3cad540 Also for favs 2025-03-05 06:55:56 +05:30
Manav Rathi
8e9eb79f2b Slightly better 2025-03-05 06:55:56 +05:30
Manav Rathi
ca276ba1fe Fix rerenders on remote sync 2025-03-05 06:55:56 +05:30
Manav Rathi
349ef3263c Workaround 2025-03-05 06:55:56 +05:30
Manav Rathi
7c1dae7c77 Update color 2025-03-05 06:55:56 +05:30
Manav Rathi
4fe12c46aa hov 2025-03-05 06:55:56 +05:30
Manav Rathi
b363e3663f del 2 2025-03-05 06:55:56 +05:30
Manav Rathi
043d3324ca del 1 2025-03-05 06:55:56 +05:30
Manav Rathi
a9540307bf Menu 2 2025-03-05 06:55:56 +05:30
Manav Rathi
35b3dbe650 Menu 1 2025-03-05 06:55:56 +05:30
Manav Rathi
e376bf00e0 Use same opacity throughout 2025-03-05 06:55:56 +05:30
Manav Rathi
fd87d196ac Handle 2025-03-05 06:55:56 +05:30
Manav Rathi
bad8a9c9b8 Rename and pass file 2025-03-05 06:55:56 +05:30
Manav Rathi
9c5adfe7cb Reset cache 2025-03-05 06:55:56 +05:30
Manav Rathi
6676668c86 alt 2025-03-05 06:55:55 +05:30
Manav Rathi
ca24541ea5 Limit text field rows 2025-03-05 06:55:55 +05:30
Manav Rathi
0e32e60dbd Tweak 2025-03-05 06:55:55 +05:30
Manav Rathi
79ac17a742 Vids 2025-03-05 06:55:55 +05:30
Manav Rathi
2490b5ca4f caption fin 2025-03-05 06:55:55 +05:30
Manav Rathi
72aab3f53c cap 2 2025-03-05 06:55:55 +05:30
Manav Rathi
a9def0ccc1 cap 1 2025-03-05 06:55:55 +05:30
Manav Rathi
8ac9751891 Temporary workbench
This reverts commit 2859e02dac.
2025-03-05 06:55:55 +05:30
Vishnu Mohandas
e2dceef8a4 [mob][photos] fix: Allow uploads when link shared from collect photos section (#5225) 2025-03-04 20:04:00 +05:30
Aman Raj Singh Mourya
6083992bfd [mob][photos] fix: Allow uploads when link shared from collect photos 2025-03-04 19:31:45 +05:30
Prateek Sunal
9507c6f882 Merge remote-tracking branch 'origin/main' into stream-queue-fix 2025-03-04 16:33:44 +05:30
Neeraj
e01a2b7d65 [mob] Remove PrimitiveWrapper & simplify FilesDB::insertMultiple (#5222)
## Description

## Tests
2025-03-04 16:27:18 +05:30
Prateek Sunal
5ef1a0d3f7 chore: bump version 2025-03-04 16:11:12 +05:30
Neeraj
9ba2010293 [mob][photos] Video memory (#5211)
## Description
This PR introduces a feature that takes a list of images as input and
generates a video output. Each image is displayed for 2 seconds before
transitioning to the next image with smooth animations (fade, slide,
etc.).
2025-03-04 15:59:03 +05:30
Prateek Sunal
ebab9fd1a0 fix: remove stop code as there is no memory leak now 2025-03-04 15:44:04 +05:30
Aman Raj Singh Mourya
017692d80f [mob][photos] fix: change title to (i) Video Memory to identify its a internal feature 2025-03-04 15:35:43 +05:30
Prateek Sunal
de2bd40401 chore: bump package and add docs to them 2025-03-04 15:35:38 +05:30
Neeraj
50a0af23aa [mob][photos] Home memories [internal] (#5223)
## Description

MVP of new memories, for internal user only.

## Tests

Tested in debug mode on my pixel phone.
2025-03-04 15:24:48 +05:30
laurenspriem
ba6b34be2a [mob][photos] Move models 2025-03-04 15:17:19 +05:30
Prateek Sunal
f41c12cde8 fix: keep r8 enabled 2025-03-04 15:15:41 +05:30
Prateek Sunal
7d9e2eccd6 fix: add info to update to latest verison whenever update is available 2025-03-04 15:13:26 +05:30
laurenspriem
8792167986 [mob][photos] Move clearCache 2025-03-04 15:12:46 +05:30
laurenspriem
dcf6d3a9e1 [mob][photos] Fix title bug 2025-03-04 15:04:31 +05:30
laurenspriem
d9691ac089 [mob][photos] Resolve merge conflixt properly 2025-03-04 15:03:48 +05:30
Prateek Sunal
610c1ffc9f fix: add conflict resolution algorithm as replace 2025-03-04 15:03:42 +05:30
Laurens Priem
35bdacdc56 Merge branch 'main' into home_memories 2025-03-04 14:50:17 +05:30
laurenspriem
2147e13af4 [mob][photos] Fix 2025-03-04 14:45:34 +05:30
Neeraj Gupta
0c722171be move 2025-03-04 14:39:37 +05:30
Prateek Sunal
1f18c65ff6 fix: add other information like objectId and objectSize to previewIds 2025-03-04 14:38:30 +05:30
Prateek Sunal
985d530aef fix: don't make failureFiles a late variable 2025-03-04 14:20:29 +05:30
Aman Raj Singh Mourya
23dc378888 [mob][photos] fix: feature flag 2025-03-04 14:09:39 +05:30
Neeraj Gupta
fd5501882b [mob] Move toast 2025-03-04 13:54:26 +05:30
laurenspriem
b922bacb78 [mob][photos] Move dot product inside MLComputer 2025-03-04 13:45:26 +05:30
Prateek Sunal
33cd46583e fix: only update init if called from correct function 2025-03-04 13:02:16 +05:30
Prateek Sunal
5a2be86524 fix: make uploadedFileID as the primary key 2025-03-04 12:57:30 +05:30
Prateek Sunal
62e55cfd96 Merge remote-tracking branch 'origin/main' into stream-queue-fix 2025-03-04 12:35:32 +05:30
Prateek Sunal
4439d97f31 chore: add doc for appendPreview 2025-03-04 12:20:17 +05:30
laurenspriem
71b7589de3 [mob][photos] method to compare embeddings in MLComputer 2025-03-04 11:40:11 +05:30
Neeraj Gupta
e145da5a8b [mob] move 2025-03-04 11:36:23 +05:30
Neeraj Gupta
3f721abc4d [mob] Simplify batch insert for files 2025-03-04 11:30:13 +05:30
mangesh
7ce9cc7468 [server][self-hosting] clear instructions to tweak compose (#5221) 2025-03-04 11:09:27 +05:30
mngshm
038692ad06 fix KEY_ID & s3 bucket url 2025-03-04 11:07:58 +05:30
mngshm
2dc71143b7 update 2025-03-04 10:45:44 +05:30
mngshm
1eec079a85 update dummy pass in minio provision script 2025-03-04 10:39:33 +05:30
mngshm
1eddf1f75a fix 2025-03-03 19:55:20 +05:30
mngshm
0940b8b3be [server] Instructions to tweak compose 2025-03-03 19:53:59 +05:30
laurenspriem
e459da3908 [mob][photos] Fix 2025-03-03 18:25:03 +05:30
laurenspriem
809fe6ab2c [mob][photos] show internal in UI only 2025-03-03 18:12:09 +05:30
laurenspriem
7b5ed1deaa [mob][photos] Fix correct sort 2025-03-03 18:03:00 +05:30
laurenspriem
d3d5aa5a8b [mob][photos] Fix 2025-03-03 17:54:24 +05:30
Neeraj
5466d80da9 [mobile] New translations (#5213)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2025-03-03 17:37:40 +05:30
Neeraj
52aa997807 [mob] Refactor: reorganize code (#5220)
## Description

## Tests
2025-03-03 17:33:42 +05:30
Neeraj Gupta
73efdbbf4d move 2025-03-03 17:29:03 +05:30
Neeraj Gupta
be6ca79c2d move 2025-03-03 17:21:31 +05:30
Neeraj Gupta
f2550bb253 move constant 2025-03-03 17:04:45 +05:30
Neeraj Gupta
3bf715fd46 [mob] Move 2025-03-03 17:00:50 +05:30
laurenspriem
28c19b8916 [mob][photos] filler memories 2025-03-03 16:18:39 +05:30
Neeraj
b4b5f834f7 [mob] Remove UserRemoteFlagService & switch to flagService (#5219)
## Description

## Tests
2025-03-03 16:15:13 +05:30
Caboose
ee41052eda [auth] BingX & CoinSpot Icons (#5186)
Added BingX & CoinSpot .svg files as well as updated the .JSON file to
include them
2025-03-03 16:13:04 +05:30
Neeraj Gupta
8898ac7060 clean up 2025-03-03 16:10:34 +05:30
Neeraj Gupta
976634f8c7 [mob] Show verification banner after 3 days 2025-03-03 16:08:26 +05:30
Neeraj Gupta
137a5cd772 Switch to flagService for mlConsent 2025-03-03 14:58:54 +05:30
Manav Rathi
631257de3c [web] Match mobile's internal user spec (#5217) 2025-03-03 14:33:43 +05:30
Neeraj Gupta
f556950c07 Remove unused constant 2025-03-03 14:32:38 +05:30
Neeraj Gupta
f8e2714315 [mob] Use flagservice for map consent 2025-03-03 14:30:52 +05:30
Manav Rathi
4b5618e1f2 [web] Match mobile's internal user spec 2025-03-03 14:27:10 +05:30
Neeraj Gupta
e34b70a8f9 [mob] Stop special treatment for @ente.io as internal users 2025-03-03 14:05:36 +05:30
laurenspriem
025fc46022 [mob][photos] constant for day itself duration 2025-03-03 13:40:47 +05:30
Neeraj Gupta
bcf49763e6 [mob] Avoid multiple calls to fetch flags 2025-03-03 13:32:59 +05:30
laurenspriem
a2b0c06a5b [mob][photos] Prettify 2025-03-03 13:31:25 +05:30
Manav Rathi
99b84fe4e7 [infra] Import Grafana conf (#5215) 2025-03-03 12:44:36 +05:30
Aman Raj Singh Mourya
2aa953d5b6 [auth] Minor fixes 2025-03-03 12:26:54 +05:30
Manav Rathi
2d1e6312af [infra] Import Grafana conf 2025-03-03 12:05:47 +05:30
laurenspriem
d8fd5add26 [mob][photos] First bottom sheet 2025-03-03 11:56:38 +05:30
mangesh
0b110ecead [docs] details about replication for self hosters (#5206) 2025-03-03 11:03:52 +05:30
Neeraj
dad6da26fb [auth] New translations (#5214)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2025-03-03 10:52:19 +05:30
Crowdin Bot
1d01b913e1 New Crowdin translations by GitHub Action 2025-03-03 01:17:41 +00:00
Crowdin Bot
f37f1c3703 New Crowdin translations by GitHub Action 2025-03-03 01:05:17 +00:00
Aman Raj Singh Mourya
d49a90c616 [mob][photos] Show video memory option on file selection action 2025-03-02 23:55:23 +05:30
Aman Raj Singh Mourya
0bfb48bde4 [mob][photos] Implemented ffmpeg to create video memory 2025-03-02 23:54:41 +05:30
laurenspriem
751e19abae [mob][photos] Adjust trip time show 2025-03-01 19:02:11 +05:30
laurenspriem
36f90014a2 [mob][photos] People surface logic 2025-03-01 18:50:06 +05:30
mngshm
74051ad6bb Some more details about Replication 2025-03-01 18:40:03 +05:30
Vishnu Mohandas
c66adcb677 [mob] Fix grammar (#5202) 2025-03-01 12:30:49 +05:30
vishnukvmd
c7bc560d53 [mob] Fix grammar 2025-03-01 12:30:27 +05:30
Neeraj
c6ea0f1fd7 [mob] Move model & remove unused file (#5201)
## Description

## Tests
2025-03-01 10:55:51 +05:30
Neeraj Gupta
8516d8364c [mob] Remove unused file 2025-03-01 10:48:03 +05:30
Neeraj Gupta
5b88b2b563 [mob] Move model 2025-03-01 10:43:37 +05:30
Prateek Sunal
2a5ba8480c chore: bump build number 2025-02-28 21:44:14 +05:30
Prateek Sunal
19607d488f Merge remote-tracking branch 'origin/main' into stream-queue-fix 2025-02-28 21:43:57 +05:30
Prateek Sunal
fcbba19129 fix: remove rotate property, add scroll widget in failure or any dialog, seekbar smooth, player ux buttons same position, failure title for preview 2025-02-28 21:43:35 +05:30
Manav Rathi
f402fb3887 [web] PhotoSwipe update - WIP (#5200) 2025-02-28 19:57:51 +05:30
Manav Rathi
7355d99299 Simplify 2025-02-28 19:54:38 +05:30
Manav Rathi
b20de9ed83 Convert deprecated prop 2025-02-28 19:46:18 +05:30
Manav Rathi
2859e02dac Revert "Temporary workbench"
This reverts commit 8e08a0d71d.
2025-02-28 19:40:39 +05:30
Manav Rathi
80859d91b0 schedule update 2025-02-28 19:40:15 +05:30
Manav Rathi
acaf1939e7 edit 2025-02-28 19:23:36 +05:30
Manav Rathi
d7587d12ed vis 2025-02-28 19:04:30 +05:30
Manav Rathi
61779a6ca7 More aria
taken from the basic example in https://mui.com/material-ui/react-menu/
2025-02-28 18:53:34 +05:30
Manav Rathi
02a7024cdc id 2025-02-28 16:57:24 +05:30
Manav Rathi
9d61eaa04d :\ 2025-02-28 16:50:07 +05:30
Manav Rathi
a73e7af704 Don't initialize face DB in non-desktop builds 2025-02-28 16:44:32 +05:30
Manav Rathi
14bfaf97f3 Update deprecated 2025-02-28 16:35:06 +05:30
Manav Rathi
cae5b2ad4d Update deps to pick up new MUI
MenuListProps are (will eventually be) deprecated, but the alternative is only
in the latest release.
2025-02-28 16:32:48 +05:30
Manav Rathi
8050422313 Fix 2025-02-28 16:32:48 +05:30
Neeraj Gupta
4323ae9422 [mob] Move 2025-02-28 16:10:53 +05:30
Manav Rathi
d3cec93c03 type 2025-02-28 16:02:55 +05:30
Manav Rathi
5adac095a6 Anchor 2025-02-28 15:59:35 +05:30
Manav Rathi
dce95ad4f1 more 2025-02-28 15:49:00 +05:30
Manav Rathi
67dc1b77d4 Fix 2025-02-28 15:32:33 +05:30
Manav Rathi
de9cad09c4 sigh 2025-02-28 15:28:43 +05:30
Manav Rathi
df21d20dd0 Workable 2025-02-28 15:23:31 +05:30
laurenspriem
374979894a [mob][photos] Cache path 2025-02-28 15:08:49 +05:30
laurenspriem
49c0e32fff [mob][photos] Fix null issue 2025-02-28 14:46:12 +05:30
Manav Rathi
0f732c0b61 Impl 2025-02-28 14:37:30 +05:30
Prateek Sunal
11a42e7ee3 fix: remove ticks from seekbar & change video source correctly 2025-02-28 14:26:42 +05:30
Neeraj
398f39e2b0 [mob] Clean up deprecated invalidFileIDs (#5199)
## Description

## Tests
2025-02-28 14:25:58 +05:30
laurenspriem
09e65e8d00 [mob][photos] Remove singleton pattern 2025-02-28 14:24:04 +05:30
laurenspriem
103901bbd3 [mob][photos] Fix ordering 2025-02-28 14:15:40 +05:30
Neeraj Gupta
2cdd919c37 [mob] Clean up deprecated invalidFileIDs 2025-02-28 14:14:32 +05:30
Manav Rathi
c1a2f226ef Move 2025-02-28 14:13:34 +05:30
laurenspriem
8e8610beda [mob][photos] More robust caching and models 2025-02-28 14:11:33 +05:30
Manav Rathi
1605f71a54 Fill in 2025-02-28 14:11:32 +05:30
Neeraj
a11ba4d14f [mob] Clean up migration for livePhoto (#5198)
## Description

## Tests
2025-02-28 13:51:23 +05:30
Manav Rathi
eb7f0c0bed Fix extra invalidations 2025-02-28 13:48:53 +05:30
Manav Rathi
ffc1db7369 err 1 2025-02-28 13:35:45 +05:30
Manav Rathi
cea88b91d2 dis 2 2025-02-28 13:24:21 +05:30
Neeraj Gupta
d98fbd6dc5 [mob] Clean up 2025-02-28 13:13:16 +05:30
Manav Rathi
28d412a12b disabled 2025-02-28 13:09:21 +05:30
Neeraj Gupta
9d601a6b4e [mob] Clean up migration for livePhoto 2025-02-28 13:06:38 +05:30
Manav Rathi
b851a30c18 Change both in sync 2025-02-28 12:42:05 +05:30
Manav Rathi
ec11bc7092 Complete 2025-02-28 12:25:35 +05:30
Manav Rathi
093ba4895d d4 2025-02-28 12:22:22 +05:30
Manav Rathi
502507abf5 d3 2025-02-28 11:00:54 +05:30
Manav Rathi
15b49816cc d2 2025-02-28 09:58:46 +05:30
Manav Rathi
15a4e3cd98 wip delegate 2025-02-28 09:20:19 +05:30
Manav Rathi
067e44e10a st 2 2025-02-28 08:48:16 +05:30
Manav Rathi
67206b013b stable ident 2025-02-28 08:31:31 +05:30
Manav Rathi
df86904e6a fav 1 2025-02-28 08:26:10 +05:30
Manav Rathi
66f43a9c9a more 2 2025-02-28 08:08:56 +05:30
Manav Rathi
561b0ea71e more 2025-02-28 06:32:46 +05:30
Manav Rathi
2fbc26c9eb scale 2025-02-28 06:25:32 +05:30
Manav Rathi
b11636bfdf zoom left 2025-02-28 05:59:01 +05:30
Manav Rathi
8e08a0d71d Temporary workbench
Revert "Prep for merge"

This reverts commit e75165d01e.
2025-02-28 05:46:02 +05:30
Aman Raj Singh Mourya
b35cd47c8a [auth] Show advance option only when code setup 2025-02-27 20:35:52 +05:30
Manav Rathi
f49fcd7984 [web] PhotoSwipe update - WIP (#5195) 2025-02-27 18:35:57 +05:30
Manav Rathi
e75165d01e Prep for merge
Revert "Temporary workbench"

This reverts commit 06b84e8067.
2025-02-27 18:28:56 +05:30
Manav Rathi
70abbeebc2 Fix hiding 2025-02-27 18:28:36 +05:30
Manav Rathi
215ed6d6c8 Fix toggle 2025-02-27 17:50:01 +05:30
Manav Rathi
e453f5bf36 icons 2025-02-27 17:34:11 +05:30
Manav Rathi
e87d596b4c fav 1 2025-02-27 17:12:07 +05:30
Prateek Sunal
e9633e48ab fix: separation is the key 2025-02-27 16:57:35 +05:30
Manav Rathi
0bfd355233 Save 2025-02-27 16:51:19 +05:30
Prateek Sunal
cf96c4dc44 chore: bump version 2025-02-27 16:30:24 +05:30
Manav Rathi
0803ef4da6 Btn 2025-02-27 16:07:23 +05:30
Prateek Sunal
daada5e1c8 fix: disable full r8 mode 2025-02-27 15:59:14 +05:30
Vishnu Mohandas
a7ea2859fa [docs] faq (#5161)
## Description

## How to reset my password if I lost it?
2025-02-27 15:54:26 +05:30
Vishnu Mohandas
8336589a22 docs-edit hiding (#5194)
## Description

Removed Hiding is currently only supported in the Ente mobile app, and
items hidden from the mobile app will not be visible in the web and
desktop app.
2025-02-27 15:53:59 +05:30
Jay
074a4d96a6 docs-edit hiding 2025-02-27 15:39:48 +05:30
Manav Rathi
e1d08899a5 Scaffold 2025-02-27 15:39:31 +05:30
Manav Rathi
5576f8379c Fix close animation 2025-02-27 15:31:03 +05:30
Prateek Sunal
42cb7902c6 chore: bump things 2025-02-27 14:51:21 +05:30
Prateek Sunal
11c7d5f0de fix: keep things light 2025-02-27 14:51:12 +05:30
Prateek Sunal
c36cee2ed1 Merge remote-tracking branch 'origin/main' into stream-queue-fix 2025-02-27 14:17:42 +05:30
Prateek Sunal
65614adc1a fix: build it finally 2025-02-27 14:15:42 +05:30
Manav Rathi
b06b8a5794 Manage fi open/close 2025-02-27 13:12:57 +05:30
Manav Rathi
25935f6219 Remaining fi props 2025-02-27 13:07:47 +05:30
Manav Rathi
51effed5a3 Other props 2025-02-27 12:51:21 +05:30
laurenspriem
7cecf84841 [mob][photos] Time as parameter 2025-02-27 12:39:40 +05:30
Manav Rathi
d50391ea13 not async 2025-02-27 12:19:58 +05:30
Manav Rathi
9c6bfaa460 Undo the effects of contentDestroy 2025-02-27 12:15:37 +05:30
Manav Rathi
ee201ff24b use orig 2025-02-27 12:04:37 +05:30
laurenspriem
7e10c077d3 [mob][photos] Logging 2025-02-27 11:51:39 +05:30
laurenspriem
75800f41e4 [mob][photos] Try catch 2025-02-27 11:45:44 +05:30
laurenspriem
7d84ed3e8b [mob][photos] Rename 2025-02-27 11:40:44 +05:30
laurenspriem
d3acd79de6 [mob][photos] Simplify 2025-02-27 11:39:25 +05:30
laurenspriem
89afa9fbc7 [mob][photos] Separate cache model 2025-02-27 11:15:06 +05:30
Manav Rathi
7fc03a71e7 Fix npe 2025-02-27 11:12:04 +05:30
Manav Rathi
06b84e8067 Temporary workbench 2025-02-27 11:01:20 +05:30
Manav Rathi
2919590b05 [desktop] Improve export_status.json writes (#5193) 2025-02-27 09:28:23 +05:30
Manav Rathi
4e6e3e7abf [desktop] Improve export_status.json writes 2025-02-27 09:20:15 +05:30
Aman Raj Singh Mourya
24759a3923 [auth] Refactoring 2025-02-26 23:44:30 +05:30
Aman Raj Singh Mourya
1fba250f74 [auth] Remove log statement 2025-02-26 23:39:04 +05:30
Aman Raj Singh Mourya
8099cbd990 [auth] Minor fixes 2025-02-26 23:32:24 +05:30
Aman Raj Singh Mourya
b1ed3a6302 [auth] Add UI to select algorithm 2025-02-26 23:31:58 +05:30
Aman Raj Singh Mourya
3a955f2b04 [auth] Add support for editing number of digits & algorithm type 2025-02-26 23:31:16 +05:30
ashilkn
9b2af45f16 [mob][photos] Bump up build number 2025-02-26 19:56:43 +05:30
Manav Rathi
8fb463028d [web] Del screen refactoring (#5189) 2025-02-26 19:49:30 +05:30
ashilkn
5307c1fda6 [mob][photos] Bump up build number 2025-02-26 19:48:49 +05:30
ashilkn
f96db9cfd3 Merge branch 'main' into fix_free_up_space_bug 2025-02-26 19:44:31 +05:30
ashilkn
afc8fbf7b2 [mob][photos] If free up space fails the first time, retry after removing non-existing assets (only for android) 2025-02-26 19:41:57 +05:30
Manav Rathi
833b564acc Promise 2025-02-26 18:53:10 +05:30
Manav Rathi
3013709540 Move 2025-02-26 18:49:20 +05:30
Manav Rathi
cba85799f0 del api 2025-02-26 18:48:02 +05:30
Manav Rathi
818fba9435 Prune 2025-02-26 18:40:47 +05:30
Manav Rathi
8ec75834e8 [web] Minor code improvements (towards removing yup) (#5187) 2025-02-26 17:17:00 +05:30
laurenspriem
e32b23409c [mob][photos] fallback on old memories 2025-02-26 17:14:16 +05:30
Manav Rathi
9103d73874 touched 2025-02-26 17:06:01 +05:30
Manav Rathi
504a8bdab6 Use newer 2025-02-26 17:02:26 +05:30
Manav Rathi
1be2286279 Move 2025-02-26 16:52:10 +05:30
Manav Rathi
059275a486 fetch 2025-02-26 16:42:57 +05:30
laurenspriem
c32974cf95 [mob][photos] Log old memories properly 2025-02-26 16:37:27 +05:30
Manav Rathi
5e583da6f0 unyup 2025-02-26 16:29:30 +05:30
Manav Rathi
bb613cd384 validate 2025-02-26 16:23:16 +05:30
Manav Rathi
359bbd2628 Unindent 2025-02-26 16:18:56 +05:30
Manav Rathi
fb869b7f44 [web] New translations (#5185)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-02-26 15:54:59 +05:30
Crowdin Bot
4455a3c793 New Crowdin translations by GitHub Action 2025-02-26 10:23:03 +00:00
Manav Rathi
d781adeba5 [web] Consolidated duplicated translation key (#5184) 2025-02-26 15:52:12 +05:30
Manav Rathi
e7d0977346 [web] Consolidated duplicated translation key 2025-02-26 15:48:11 +05:30
Manav Rathi
488ca1f6d9 [web] New translations (#5183)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-02-26 15:41:40 +05:30
Crowdin Bot
00939ff2b8 New Crowdin translations by GitHub Action 2025-02-26 10:10:18 +00:00
Manav Rathi
69488c2db6 [web] File info code cleanup (#5182) 2025-02-26 15:38:11 +05:30
Manav Rathi
c70fa4391c cap fin 2025-02-26 15:31:48 +05:30
Manav Rathi
26c4481658 cap2 2025-02-26 15:07:02 +05:30
Neeraj
f487565398 [server] Retry for size fetch & parallelize check (#5155)
## Description

## Tests
2025-02-26 15:06:45 +05:30
Manav Rathi
96b9743270 cap1 2025-02-26 14:59:31 +05:30
Neeraj Gupta
42d2136d32 Merge branch 'main' into sizeRetry 2025-02-26 14:54:56 +05:30
Neeraj
21247a892f [server] Read embeddings from different bucket & logging improvements (#5180)
## Description

## Tests
2025-02-26 14:50:28 +05:30
Manav Rathi
33e7ccb9ae Extract 2025-02-26 14:50:16 +05:30
Manav Rathi
a157273b42 Remove spurious error on saving edited file in desktop 2025-02-26 14:50:16 +05:30
Manav Rathi
d0f30a1198 Wider 2025-02-26 14:50:16 +05:30
Manav Rathi
d5987dd882 rework rename dialog 2025-02-26 14:50:16 +05:30
Manav Rathi
1bd44351d9 Unnest 2025-02-26 14:50:16 +05:30
Manav Rathi
930bd4ce2e Unwrap 2025-02-26 14:50:16 +05:30
Manav Rathi
3e527e3c41 Rearrange 2025-02-26 14:50:16 +05:30
Manav Rathi
847e647437 Inline 2025-02-26 14:50:16 +05:30
Manav Rathi
cd3bd1cdbb Move 2025-02-26 14:50:16 +05:30
Manav Rathi
82082e2cbf Move 2025-02-26 14:50:16 +05:30
Manav Rathi
7545047647 abstract 2025-02-26 14:50:16 +05:30
Manav Rathi
1c1fe7f1df Scope 2025-02-26 14:50:16 +05:30
Manav Rathi
cc2be30f53 Scope 2025-02-26 14:50:16 +05:30
Manav Rathi
9fc5483eb8 Shorten 2025-02-26 14:50:16 +05:30
Manav Rathi
3468bdea7b Fix 2025-02-26 14:50:16 +05:30
Manav Rathi
bc23f1dec9 R 2025-02-26 14:50:16 +05:30
Manav Rathi
9327cb114c rejig 2025-02-26 14:50:16 +05:30
Manav Rathi
2fee6e87f9 Use 2025-02-26 14:50:16 +05:30
Manav Rathi
052367cccb Move to base context 2025-02-26 14:50:16 +05:30
Manav Rathi
4afa486c19 R 2025-02-26 14:50:16 +05:30
Manav Rathi
4b03d1bd0c Prune 2025-02-26 14:50:16 +05:30
Manav Rathi
93108c45d8 photosd-next (#5181) 2025-02-26 14:46:43 +05:30
Manav Rathi
3b1ec81db8 photosd-next 2025-02-26 14:45:25 +05:30
Ashil
ebeeb189fd [mob][photos] Handle error + refactoring (#5172) 2025-02-26 14:33:25 +05:30
Neeraj Gupta
98ebf98d17 [server] Bump default worker for filedata replication 2025-02-26 14:32:17 +05:30
Neeraj Gupta
d494bb8d38 [server] doc 2025-02-26 14:25:45 +05:30
Neeraj Gupta
b688706935 [server] Enchance logging for metadata failure 2025-02-26 14:20:28 +05:30
Neeraj Gupta
d0ef4f234d [server] Prefer reading from b5 2025-02-26 14:04:28 +05:30
Manav Rathi
0fa664a4cb photosd-v1.7.10 (#5179) 2025-02-26 14:02:00 +05:30
Neeraj
c2833d11b0 [server] Panic instead of fatal err (#5178) 2025-02-26 14:00:17 +05:30
Manav Rathi
ec594acafc photosd-v1.7.10 2025-02-26 14:00:09 +05:30
Prateek Sunal
8ce9baf920 fix: stop then dispose for now 2025-02-26 13:59:03 +05:30
laurenspriem
1b1c5c0e7b [mob][photos] cleanup init 2025-02-26 13:20:07 +05:30
ashilkn
81124566f2 Merge branch 'main' into fix_free_up_space_bug 2025-02-26 00:36:42 +05:30
Vishnu Mohandas
0d42cc7b68 [server] Swallow file data fetch err (#5177)
## Description

## Tests
2025-02-25 22:46:00 +05:30
Neeraj Gupta
8fb5f44b62 [server] Swallow mldata fetch err 2025-02-25 22:44:05 +05:30
Vishnu Mohandas
908b0d9dc4 [server] Prefer b6 for read (#5176)
## Description

## Tests
2025-02-25 22:31:56 +05:30
Neeraj Gupta
c0086efdbc [server] Prefer b6 for read 2025-02-25 22:30:39 +05:30
Vishnu Mohandas
49101bfddb [server] Add missing bucketId (#5175)
## Description

## Tests
2025-02-25 22:12:00 +05:30
Neeraj Gupta
83b322770d [server] Add missing bucketId 2025-02-25 22:10:36 +05:30
Neeraj
72bcd8e450 [server] Wait for fileData put & fail fetch if more than 5 object fails (#5174)
## Description

## Tests
2025-02-25 21:41:45 +05:30
ashilkn
1e05c9d701 [mob][photos] Log stacktrace 2025-02-25 18:56:39 +05:30
laurenspriem
fdf4a3d336 [mob][photos] Unify all caching in cache service only 2025-02-25 17:15:45 +05:30
ashilkn
e61d212ad0 [mob][photos] Handle errors/exceptions in getThumbnailFileOfPerson 2025-02-25 17:13:09 +05:30
Prateek Sunal
837d2bbf77 fix: failure previewed case and fire bus event 2025-02-25 17:06:11 +05:30
Prateek Sunal
f7f5e924aa fix: add new table for stream upload errors 2025-02-25 16:25:24 +05:30
Neeraj Gupta
1eed650812 [server] Return custom errors 2025-02-25 15:47:41 +05:30
Neeraj Gupta
b62f82c81e Minor fix 2025-02-25 15:42:00 +05:30
Andrés Ignacio Torres
7b6fe4a9d7 [auth] Add custom icons for No-IP, Prey Project, Workflowy + extra name for Nintendo Account (#5127)
## Description

Added three new custom icons:

- No-IP
- Prey Project
- Workflowy

Additionally add one more alternate name for the Nintendo custom icon:
Nintendo Account.

These are a few of the services I noticed had no icons after migrating
my 2FA codes to Ente.

## Tests

Icon change only, no code changes.
2025-02-25 15:41:10 +05:30
Neeraj
38d207d28e [mob] Check lock before reporting file & limit retry for network errors (#5171)
## Description
This should significantly reduce the instances of
- Duplicate file uploads
- File replacement instances
## Tests
2025-02-25 15:37:44 +05:30
Prateek Sunal
05cec775aa chore: bump version 2025-02-25 15:29:25 +05:30
Prateek Sunal
19073951c8 fix: shuffle deck 2025-02-25 15:29:12 +05:30
Prateek Sunal
0b56575939 fix: add more proguard rules 2025-02-25 15:27:36 +05:30
Prateek Sunal
e9c6ad39f7 Merge remote-tracking branch 'origin/main' into stream-queue-fix 2025-02-25 15:05:28 +05:30
Prateek Sunal
655bbd36da chore: bump version code 2025-02-25 15:04:38 +05:30
Prateek Sunal
d1a5e94886 fix: aspect ratio resolution 2025-02-25 15:04:26 +05:30
Neeraj Gupta
840fc3c061 [mob] Check lock again before reporting file 2025-02-25 15:02:44 +05:30
laurenspriem
a5cb78bf95 [mob][photos] memories cache first iteration 2025-02-25 14:48:25 +05:30
Prateek Sunal
5659b93555 fix: add code to append preview 2025-02-25 14:48:24 +05:30
ashilkn
f772a48bc0 Merge branch 'main' into person_linking_improvements 2025-02-25 14:43:31 +05:30
Prateek Sunal
fc429d88c5 chore: add proguard rules 2025-02-25 14:43:31 +05:30
ashilkn
55015f4a62 Merge branch 'main' into person_linking_improvements 2025-02-25 13:37:42 +05:30
Neeraj Gupta
2ff97c29ff [mob] Limit retry to noStatusCode 2025-02-25 13:36:25 +05:30
Neeraj Gupta
1c94807c36 [mob] generated strings 2025-02-25 13:27:59 +05:30
Manav Rathi
e009151667 [web] Fix rendering of files without extension (#5170)
Fixes: https://github.com/ente-io/ente/issues/5125
2025-02-25 13:23:16 +05:30
Manav Rathi
4a03e34a20 [web] Fix rendering of files without extension
Fixes: https://github.com/ente-io/ente/issues/5125
2025-02-25 13:18:53 +05:30
Manav Rathi
6aa6b667e3 [web] Minor code reorg (#5169) 2025-02-25 12:57:46 +05:30
Prateek Sunal
99a579f7f3 fix: revert to some original code 2025-02-25 12:03:19 +05:30
Prateek Sunal
5c64a1a5e5 Merge remote-tracking branch 'origin/main' into stream-queue-fix 2025-02-25 11:53:48 +05:30
Neeraj
3c902bc1c1 [mobile] New translations (#5007)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2025-02-25 11:53:26 +05:30
Neeraj
0fb8ccc029 [mob] Clean up (#5165)
## Description

## Tests
2025-02-25 11:53:13 +05:30
Crowdin Bot
ba000c2304 New Crowdin translations by GitHub Action 2025-02-25 06:21:48 +00:00
Prateek Sunal
d9f15dad45 Merge remote-tracking branch 'origin/main' into stream-queue-fix 2025-02-25 11:42:03 +05:30
mangesh
07fac1a354 [server] don't allow setting storageLimit for INVITED users (#5167) 2025-02-25 11:27:41 +05:30
mngshm
3ae65e1de9 [server] don't allow setting storageLimit for INVITED users 2025-02-25 11:16:22 +05:30
Manav Rathi
62471dad3e Move 2025-02-25 10:58:30 +05:30
Neeraj Gupta
19ea1ad1f4 [mob] Clean up 2025-02-25 10:56:42 +05:30
Manav Rathi
2ece083d4d Rename 2025-02-25 10:49:12 +05:30
laurenspriem
53d71de31f [mob][photos] More central flag 2025-02-25 10:38:41 +05:30
Neeraj
3cf627a290 [server] Add index on file_data(user_id,updated_at) (#5164)
## Description

## Tests
2025-02-25 09:47:12 +05:30
Neeraj Gupta
792353bb9e [server] Add index on file_data(user_id,updated_at) 2025-02-25 09:34:26 +05:30
Manav Rathi
b0c17fee6d [web] Prevent extra submission of 2fa when a request is in progress (#5162) 2025-02-24 21:21:36 +05:30
Manav Rathi
4db25b1b8f Fix error handling 2025-02-24 20:58:37 +05:30
Manav Rathi
d0c93338fa await route changes 2025-02-24 20:48:02 +05:30
Manav Rathi
af89a2202c Cleanup 2025-02-24 20:47:22 +05:30
Manav Rathi
6208531902 Fix the double submit bug 2025-02-24 20:34:16 +05:30
Manav Rathi
47539e93f9 Simplify 2025-02-24 20:32:23 +05:30
Manav Rathi
15d77b7551 Use correct error 2025-02-24 20:25:22 +05:30
Manav Rathi
841de87a33 Combine 2025-02-24 20:23:04 +05:30
Manav Rathi
25ba019a57 Vis 2025-02-24 20:07:55 +05:30
Manav Rathi
1c8a796bec Reduce indent 2025-02-24 20:01:28 +05:30
Manav Rathi
277c7e452a Cleanup 2025-02-24 19:49:37 +05:30
Manav Rathi
9ab110c4c3 Vis 2025-02-24 19:39:29 +05:30
Manav Rathi
7420eb5a66 Vis 2025-02-24 19:35:36 +05:30
Manav Rathi
37775b9ee5 Conv 2025-02-24 19:29:14 +05:30
Manav Rathi
7d5205d57d Conv 2025-02-24 19:27:21 +05:30
Manav Rathi
16246d8d58 Conv 2025-02-24 19:24:37 +05:30
Manav Rathi
4442b3af28 Inline 2025-02-24 19:12:04 +05:30
mangesh
b67a33fcaf Create Tailscale.md (#5140)
ente photos with tailscale
2025-02-24 19:06:41 +05:30
Manav Rathi
989708cf58 Use 2025-02-24 19:05:11 +05:30
mngshm
425954257b add missing sidebar link 2025-02-24 19:04:52 +05:30
Manav Rathi
7725b14935 Conv 2025-02-24 18:50:26 +05:30
mngshm
58fe69638e Community 2025-02-24 18:49:15 +05:30
Manav Rathi
290ae40296 Conv 2025-02-24 18:42:22 +05:30
Manav Rathi
ebc310d742 z 2025-02-24 18:38:55 +05:30
Manav Rathi
28d04f7725 Inline 2025-02-24 18:36:06 +05:30
Jay
3c90b0dfca docs-faq 2025-02-24 17:21:05 +05:30
Manav Rathi
8de3619cf1 [desktop] Reattempt indexing if needed (#5160) 2025-02-24 17:20:09 +05:30
Manav Rathi
8036aae292 [desktop] Reattempt indexing if needed 2025-02-24 17:13:22 +05:30
Prateek Sunal
87555194fe chore: bump lock files 2025-02-24 16:43:33 +05:30
ashilkn
6c67f11cc0 Merge branch 'main' into person_linking_improvements 2025-02-24 16:37:14 +05:30
Neeraj Gupta
b9573c057e [server] Use cached result for canUpload 2025-02-24 16:34:57 +05:30
Vishnu Mohandas
490a7221e7 [docs] Update (#5157) 2025-02-24 16:20:50 +05:30
vishnukvmd
1b98f782f1 Update 2025-02-24 16:19:54 +05:30
Vishnu Mohandas
a46a64e386 [docs] Update (#5156) 2025-02-24 16:03:54 +05:30
vishnukvmd
492ea61bb7 Update 2025-02-24 16:03:28 +05:30
Neeraj Gupta
54d2813329 [server] Parallize size fetch for file & thumb 2025-02-24 15:59:11 +05:30
Prateek Sunal
7175e1d43a fix: don't show media kit button for preview 2025-02-24 15:47:15 +05:30
Prateek Sunal
8237229823 fix: loop behavior media kit 2025-02-24 15:46:13 +05:30
Prateek Sunal
a36958503d fix: smooth native video player experience 2025-02-24 15:34:25 +05:30
Neeraj Gupta
19efbad336 [server] Add retry for sizeOf fetch 2025-02-24 15:21:34 +05:30
Neeraj
9447f1c767 [server] Remove embeddings handler (#5154)
## Description

## Tests
2025-02-24 15:11:47 +05:30
Neeraj Gupta
76b2a73f9a clean up 2025-02-24 15:00:33 +05:30
Neeraj Gupta
4bbe1ae0d2 [server] Remove embeddings handler 2025-02-24 14:49:21 +05:30
Manav Rathi
b15b707600 [server] Limit support while fetching collections (#5148)
## Description
This endpoint let's us add limit which fetching collections.

## Tests
2025-02-24 14:18:44 +05:30
Neeraj
454363d772 [server] Minor refactor (#5152)
## Description
Moving few methods related to collection_files in diff file.
## Tests
2025-02-24 14:08:28 +05:30
Vishnu Mohandas
196fa2c8a4 [docs] Update (#5153)
## Description

## Tests
2025-02-24 14:05:34 +05:30
vishnukvmd
4c3ca8a565 Update 2025-02-24 14:05:02 +05:30
Neeraj Gupta
15aea42b96 [server] Minor refactor 2025-02-24 14:04:39 +05:30
Vishnu Mohandas
29c7f587f6 [docs] Update (#5151) 2025-02-24 13:55:36 +05:30
vishnukvmd
5f0bb21491 Update 2025-02-24 13:54:59 +05:30
Vishnu Mohandas
c882ce0f98 [docs] Update (#5149) 2025-02-24 13:07:25 +05:30
vishnukvmd
02dde7f6a2 Update 2025-02-24 13:07:04 +05:30
Neeraj Gupta
d268e1f309 Fix 2025-02-24 12:39:55 +05:30
Neeraj Gupta
245e78ac42 [server] Limit support while fetching collections 2025-02-24 12:29:20 +05:30
Neeraj
fa55bd88a2 [auth] New translations (#5144)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2025-02-24 11:13:56 +05:30
Neeraj
11538236c0 [auth] Upgrade dio (#5137)
## Description
Upgrade dio 5.4.0 -> 5.8.0+1
2025-02-24 11:12:56 +05:30
Manav Rathi
09996f77ea [web] [desktop] Enable Japanese translations (#5146) 2025-02-24 10:26:38 +05:30
Manav Rathi
3f512bc959 lf 2025-02-24 10:08:16 +05:30
Manav Rathi
8b0990bd6c [web] [desktop] Enable Japanese translations 2025-02-24 09:58:52 +05:30
Manav Rathi
70ff886252 [web] New translations (#5143)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-02-24 09:46:57 +05:30
Crowdin Bot
4314d42ab4 New Crowdin translations by GitHub Action 2025-02-24 01:17:26 +00:00
Crowdin Bot
8abe6957d7 New Crowdin translations by GitHub Action 2025-02-24 00:35:43 +00:00
frost
e0dd39dd95 Update Tailscale.md 2025-02-23 13:11:58 +05:00
Prateek Sunal
386554ac70 fix: don't check for preview if video streaming is disabled 2025-02-23 05:33:02 +05:30
Prateek Sunal
e99bc335d9 chore: bump deps 2025-02-23 05:32:46 +05:30
frost
48f6071f5c Create Tailscale.md
This is ente photos setup running with tailscale
2025-02-22 20:50:49 +05:00
Aman Raj Singh Mourya
d6ec6809c2 [auth] Use native dio adapter 2025-02-22 00:53:16 +05:30
Aman Raj Singh Mourya
8fe9b9571a [auth] Upgrade dio 2025-02-22 00:49:22 +05:30
Aman Raj Singh Mourya
d667cc4f98 [auth] Set cronetHttpNoPlay=true while building apk for droid 2025-02-22 00:48:53 +05:30
Aman Raj Singh Mourya
34a672fb7c [mob][photos] Initial setup for Video-memory 2025-02-21 23:10:27 +05:30
Prateek Sunal
8a5cc0c221 feat: push all changes 2025-02-21 20:55:52 +05:30
ashilkn
5e6860f2cd [mob][photos] Avoid localIDs of non-existant assets from being passed to photo_manager's deleteWithIds() when using free up space feature to avoid complete failure of free up space operation 2025-02-21 20:04:12 +05:30
Prateek Sunal
10e675a81c chore: bump pod file 2025-02-21 17:53:04 +05:30
Prateek Sunal
98b890aa99 Merge remote-tracking branch 'origin/main' into stream-queue-fix 2025-02-21 17:52:21 +05:30
Prateek Sunal
0d7f87381a chore: down version 2025-02-21 17:51:11 +05:30
Prateek Sunal
d50171bf7f fix: android sdk 35 2025-02-21 17:50:44 +05:30
Manav Rathi
5806eb6e60 [web] Update storage card when family member's storage limit is configured (#5135)
Sibling of https://github.com/ente-io/ente/pull/5123
2025-02-21 17:42:21 +05:30
Prateek Sunal
64712e5600 chore: bump version again 2025-02-21 17:37:35 +05:30
Prateek Sunal
8a615c34ef fix: for media kit android 2025-02-21 17:37:22 +05:30
Prateek Sunal
8b94304754 feat: add stream switched event 2025-02-21 17:30:00 +05:30
Manav Rathi
8830deb619 [web] Update storage card when family member's storage limit is configured
Sibling of https://github.com/ente-io/ente/pull/5123
2025-02-21 17:22:54 +05:30
laurenspriem
9da79dc99a [mob][photos] Don't show others in spotlight 2025-02-21 16:59:43 +05:30
Manav Rathi
5e32e975df [web] New translations (#5134)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-02-21 16:54:41 +05:30
Crowdin Bot
8633dabd92 New Crowdin translations by GitHub Action 2025-02-21 11:22:42 +00:00
Manav Rathi
c256f0a8c4 [web] Misc cleanup (#5133) 2025-02-21 16:52:01 +05:30
Manav Rathi
b150bbe15e Rename 2025-02-21 16:40:51 +05:30
Manav Rathi
7f69fa5d65 Reorder 2025-02-21 16:36:50 +05:30
Manav Rathi
3968dd93e9 R 2025-02-21 16:34:09 +05:30
Manav Rathi
557bdd142b R 2025-02-21 16:32:29 +05:30
Manav Rathi
b89da99c96 Rename 2025-02-21 16:29:54 +05:30
Manav Rathi
e79050a3b6 ann2 2025-02-21 16:28:42 +05:30
Manav Rathi
5e4707b695 ann 2025-02-21 16:28:42 +05:30
Manav Rathi
fd0c2866a2 Doc 2025-02-21 16:28:42 +05:30
Manav Rathi
69eee661d1 Prop 2025-02-21 16:28:42 +05:30
Prateek Sunal
b09e911f18 fix: bump native video player 2025-02-21 16:25:52 +05:30
Manav Rathi
c78578fce5 [web] Speed up file selection for libraries with 100k+ files (#5132)
(Drastically!)
2025-02-21 16:15:51 +05:30
Manav Rathi
a0f103be9b Fix 2025-02-21 16:05:15 +05:30
Manav Rathi
04ede4326a Cleanup scaffolding 2025-02-21 15:59:57 +05:30
Manav Rathi
7cb9bc3eb7 Reduce some duplication 2025-02-21 15:53:29 +05:30
Manav Rathi
488402156f take 1 2025-02-21 15:45:46 +05:30
Manav Rathi
e80e602786 bespoke 1 2025-02-21 15:38:59 +05:30
laurenspriem
78a7ae7c5f [mob][photos] photo selection of people memories 2025-02-21 15:28:52 +05:30
Manav Rathi
5d553afea7 Rearrange 2025-02-21 15:28:29 +05:30
Neeraj
9a25356abf [mob] Update storage card when family member's storage limit is configured (#5123)
## Description

## Tests
2025-02-21 15:15:35 +05:30
Neeraj Gupta
5625733429 Merge remote-tracking branch 'origin/main' into family_limits 2025-02-21 14:59:18 +05:30
Prateek Sunal
61bb3ce16b fix: is preview player setting 2025-02-21 14:55:50 +05:30
Manav Rathi
d2dd08391a Investigate speeding up the checkbox action too 2025-02-21 14:47:37 +05:30
Neeraj Gupta
9d06db2b6b [mob] Fix free storage calculation for mob upload 2025-02-21 14:44:50 +05:30
Neeraj Gupta
80049b11ba [mob] Handle null result 2025-02-21 14:42:59 +05:30
Manav Rathi
28160b04b9 Clean 2025-02-21 14:22:47 +05:30
Manav Rathi
02441239d5 fast 4 2025-02-21 14:11:11 +05:30
Prateek Sunal
2688ca446e chore: bump version 2025-02-21 14:09:53 +05:30
Prateek Sunal
80e86f6f65 fix: update queuing logic 2025-02-21 14:08:48 +05:30
Manav Rathi
760b50b417 fast 3 2025-02-21 14:08:20 +05:30
Manav Rathi
d118e0e63e fast 1 2025-02-21 14:07:07 +05:30
Manav Rathi
49f9caac90 wip speed up 2025-02-21 14:05:38 +05:30
Prateek Sunal
ea875730dd [mob] streaming patches (#5122)
## Description

Quality of Life fixes:
- [x] Queue fixes
- [x] Android Impeller fix
- [x] No video_player_media_kit proxy, just using media_kit directory

Quality of Dev fixes:
- [x] Use master branch of media_kit
- [x] extract common functions from native player and media kit for
seconds to duration.
2025-02-21 13:34:01 +05:30
Neeraj
e3b03db06f [server] Clean up old logic for collection diff (#5130)
## Description
We still have some traffic from old mobile client v0.7.xx that is making
call to the v1 endpoint.
## Tests
2025-02-21 13:25:14 +05:30
Neeraj Gupta
b030c4e182 [server] Clean up old logic for collection diff 2025-02-21 13:22:45 +05:30
Manav Rathi
1a39846d25 Swap 2025-02-21 13:05:16 +05:30
Manav Rathi
e44020f93a Swap 2025-02-21 13:02:58 +05:30
Neeraj
435621496c [server] Move refactor (#5129)
## Description
Just grouping various actions inside different file to improve
readability
## Tests
2025-02-21 12:52:18 +05:30
Manav Rathi
8379162716 Fix 2025-02-21 12:51:21 +05:30
Manav Rathi
e8d9f4f6cf Conv 2025-02-21 12:45:12 +05:30
laurenspriem
bfe39be07e [mob][photos] Update clip query 2025-02-21 12:43:44 +05:30
Manav Rathi
6724527c27 Another 2025-02-21 12:35:11 +05:30
Neeraj Gupta
6b65a974b5 [server] Refactor 2025-02-21 12:28:11 +05:30
Manav Rathi
1b90fa93ee Use 2025-02-21 12:20:12 +05:30
Neeraj Gupta
f907303c8b [server] move files 2025-02-21 12:08:16 +05:30
Manav Rathi
4317f819d8 mod 2025-02-21 12:07:31 +05:30
Manav Rathi
587da41f53 Dup 2025-02-21 11:56:23 +05:30
Manav Rathi
3214031a0c Reuse 2025-02-21 11:56:23 +05:30
Manav Rathi
0b1eee6c8e select all by date is the culprit
for 100k
t0: 291.615234375 ms
t1: 4.695068359375 ms
t2: 5.75 ms
t3: 5.9921875 ms
t4: 0.014892578125 ms
t5: 0.794921875 ms
t6: 0.0029296875 ms
2025-02-21 10:54:25 +05:30
Neeraj
7c679cd38b [auth] Add Custom Icons (ButterflyMX / FreeTaxUSA) (#5116)
## Description
New Icons: ButterFlyMX / FreeTaxUSA
2025-02-21 09:13:03 +05:30
Francis Geronimo
3669b6be09 Rename Butterflymx.svg to butterflymx.svg 2025-02-20 09:45:01 -07:00
Manav Rathi
88b0ecf472 [web] Trim the gallery context (#5124)
Code restructuring, no functional changes
2025-02-20 19:04:46 +05:30
Manav Rathi
ee2f03adca Fix 2025-02-20 18:56:48 +05:30
Manav Rathi
3e6c253a24 Uncontext 2025-02-20 18:45:17 +05:30
ashilkn
708b17cef3 [mob][photos] Resolve merge conflicts and merge main 2025-02-20 18:35:40 +05:30
Manav Rathi
776b7488d3 Fin 2025-02-20 18:27:03 +05:30
Manav Rathi
371377d4d1 R 2025-02-20 18:16:26 +05:30
Manav Rathi
aad42b3c00 del 2 2025-02-20 18:10:00 +05:30
Manav Rathi
9ce0b43bfe del 1 2025-02-20 18:05:19 +05:30
Manav Rathi
f5ea565aa8 Combine visually single section 2025-02-20 17:57:25 +05:30
Manav Rathi
d41e177b3c ex 2025-02-20 17:53:00 +05:30
Manav Rathi
bc742f20e1 Use 3 2025-02-20 17:42:00 +05:30
Neeraj Gupta
898658f0ef [mob] Show memberLimit and usage when familyMember limit is set 2025-02-20 17:39:21 +05:30
ashilkn
1746db0d44 [mob][photos] Gracefully handle no avatar of recent file for face in UI where every getThumbnailFileOfPerson is used 2025-02-20 17:38:37 +05:30
Prateek Sunal
7743a4af98 chore: move date related utils to date_time_util.dart 2025-02-20 17:35:07 +05:30
Prateek Sunal
d2764fe7e1 chore: delete redundant files 2025-02-20 17:33:13 +05:30
Manav Rathi
35601956d2 Use 2025-02-20 17:30:28 +05:30
ashilkn
af676e6107 [mob][photos] Refactor 2025-02-20 17:20:41 +05:30
Manav Rathi
bc699b8f37 sys 2025-02-20 17:16:39 +05:30
ashilkn
11c75dc5c8 [mob][photos] Log info 2025-02-20 16:58:27 +05:30
Prateek Sunal
82df23a3b2 fix: bump build number 2025-02-20 15:24:09 +05:30
Prateek Sunal
00028e3a10 fix: queue addition logic 2025-02-20 15:23:53 +05:30
Prateek Sunal
c5dab37dfa feat: use media kit directly for preview, instead of video_player proxy 2025-02-20 15:23:31 +05:30
Neeraj
d20615002c [sever] Minor fixes in modify-storage endpoint (#5121)
## Description

## Tests
2025-02-20 14:39:05 +05:30
Neeraj Gupta
b44f844513 [server] Remove null resp 2025-02-20 14:27:18 +05:30
Neeraj Gupta
09d390bd38 [server] Return on err 2025-02-20 14:26:10 +05:30
Manav Rathi
e439e4a5f7 [web] Show an activity indicator when the user is selecting files/folders/drag-drop (#5119)
When selecting 100k+ files, the browser doesn't get back to us for
seconds, so let the user know something's happening.

> During this I found that the dd library is also doing some synchronous
processing of its own the further delays the callback, but there is
still a base delay anyways even when directly using the HTML inputs
elements.
2025-02-20 14:20:43 +05:30
Manav Rathi
3147800486 Fin 2025-02-20 14:11:40 +05:30
Natoshi
0a7984a0d2 [auth] Add Gate.io icon (#5107)
Add new icon to ente auth (gateio.svg)
and Add Gate.io icon to custom-icons.json
2025-02-20 14:01:21 +05:30
Manav Rathi
189a3ebc40 Take 1 2025-02-20 13:58:29 +05:30
Prateek Sunal
c37deecb96 chore: extract out some functions 2025-02-20 13:55:37 +05:30
Prateek Sunal
d2a4634f02 fix: callbacks 2025-02-20 13:55:22 +05:30
Manav Rathi
c0eeb7dd2f Maybe 2025-02-20 13:53:43 +05:30
Manav Rathi
4f271887fc dd 2025-02-20 13:50:42 +05:30
Manav Rathi
f46f063beb Disable backdrop clicks 2025-02-20 13:17:04 +05:30
Prateek Sunal
2275a47438 chore: bump deps changes 2025-02-20 13:14:47 +05:30
Prateek Sunal
80ab0a308f chore: bump locks 2025-02-20 13:14:32 +05:30
Prateek Sunal
ddb867d21f fix: correct sources 2025-02-20 13:14:21 +05:30
Prateek Sunal
c63cf362b6 Merge remote-tracking branch 'origin/main' into streaming-patched 2025-02-20 13:12:57 +05:30
Manav Rathi
270a628478 Use 2025-02-20 13:09:53 +05:30
Prateek Sunal
3f358b9511 fix: run preview creation after sync fd status 2025-02-20 13:08:56 +05:30
Manav Rathi
b5f850b3be Activity indicator 2025-02-20 13:06:37 +05:30
Manav Rathi
77d16e275d Also mark selection 2025-02-20 12:46:54 +05:30
Neeraj
098a4526ad [mob] Share only image for live photos (#5118)
## Description

## Tests
2025-02-20 12:08:49 +05:30
Manav Rathi
957c333cf3 Use the same enum throughout 2025-02-20 12:08:44 +05:30
Neeraj Gupta
c480dd71f1 [mob] Parse family member storage limit 2025-02-20 12:06:22 +05:30
Neeraj Gupta
101a9d4b5d [mob] Share only image for live photos 2025-02-20 12:00:27 +05:30
Manav Rathi
e3ef1e4628 Move 2025-02-20 11:51:53 +05:30
Manav Rathi
fd133d4023 Attach cancel callback 2025-02-20 11:42:30 +05:30
Neeraj
cdfdc83083 [mob] streaming feedbacks resolved (#5112)
## Description

This PR deals with following:

- [x] Android Artifacts fixes
- [x] Queuing Fixes
- [x] Document functions better
- [x] Make UX similar to native video player
- [x] Check for seekbar changes


## Tests
2025-02-20 11:36:39 +05:30
laurenspriem
512cf3b395 [mob][photos] More activities 2025-02-20 11:26:32 +05:30
Manav Rathi
8618babc11 Attempt to intercept cancellation 2025-02-20 11:20:54 +05:30
laurenspriem
87f2957e19 [mob][photos] Lower threshold 2025-02-20 11:20:12 +05:30
laurenspriem
f4d73e683c [mob][photos] Fix lastTimeWith 2025-02-20 11:14:43 +05:30
laurenspriem
cac846f0e2 [mob][photos] Change surfacing order 2025-02-20 11:12:56 +05:30
Manav Rathi
ca28a3c595 Also 2025-02-20 11:05:57 +05:30
Manav Rathi
5eba06a269 Sublimate 2025-02-20 11:02:12 +05:30
Manav Rathi
91017969b3 Transplant 2025-02-20 10:49:42 +05:30
laurenspriem
58c10ad204 [mob][photos] Increase activity threshold 2025-02-20 10:31:28 +05:30
laurenspriem
321d3d6031 [mob][photos] Small fix 2025-02-20 10:24:32 +05:30
laurenspriem
41e5cf03e4 [mob][photos] Increase activity threshold 2025-02-20 10:08:55 +05:30
laurenspriem
22b91a164b [mob][photos] Sign that smart memories are for internal users only 2025-02-20 10:08:33 +05:30
laurenspriem
4e6b86118f [mob][photos] Comment 2025-02-20 09:14:54 +05:30
laurenspriem
e222d091d8 [mob][photos] Extra check against me for lastTimeMemory 2025-02-20 09:14:16 +05:30
Francis Geronimo
d25e37e2ad New Icons
ButterFlyMX
FreeTaxUSA
2025-02-19 17:33:13 -07:00
Prateek Sunal
7b902a607a chore: bump version 2025-02-19 20:37:11 +05:30
Prateek Sunal
68bc6fac38 chore: bump locks 2025-02-19 20:36:38 +05:30
Prateek Sunal
82fdae9253 fix: seek bar & buffering 2025-02-19 20:36:30 +05:30
Manav Rathi
d78ffced78 [desktop] Improve error bifurcation during ML indexing (#5113) 2025-02-19 19:24:52 +05:30
laurenspriem
664c40064d [mob][photos] people memories MVP 2025-02-19 19:07:46 +05:30
Manav Rathi
7035d3ca90 Use 2025-02-19 19:02:42 +05:30
Manav Rathi
8920462b54 wrap 2025-02-19 18:59:59 +05:30
Manav Rathi
56f9f2a028 wrap 2025-02-19 18:58:00 +05:30
Prateek Sunal
94a77b7df1 chore: update lock files 2025-02-19 18:35:41 +05:30
Prateek Sunal
7fc42bed64 fix: add playbackCallback to hideStuff properly 2025-02-19 18:32:47 +05:30
Manav Rathi
8eb34503ac net 1 2025-02-19 18:32:25 +05:30
Prateek Sunal
2fe6df5d21 fix: sync previewIds after enabling streaming 2025-02-19 18:31:57 +05:30
Manav Rathi
d59d3c3b07 grandfather 2025-02-19 17:40:43 +05:30
Prateek Sunal
503c2506aa fix: put remote files at last, get file after updating status as compressing, 2025-02-19 15:21:38 +05:30
Prateek Sunal
e44405b46f feat: document more, better code 2025-02-19 14:54:18 +05:30
Prateek Sunal
cdaeec0e8e fix: skip errors in checking file for preview creation 2025-02-19 14:17:09 +05:30
Prateek Sunal
29671aa154 fix: use media kit in android too 2025-02-19 12:28:44 +05:30
Manav Rathi
370299d433 [desktop] Improve ML worker logging (#5111) 2025-02-19 12:14:33 +05:30
Manav Rathi
38d42c67fb Log in other workers too 2025-02-19 12:08:40 +05:30
Manav Rathi
802ad184d2 Log at top level to cover unknown scenarios too 2025-02-19 12:06:02 +05:30
Manav Rathi
55cff6f174 log ww unhandled 2025-02-19 11:41:31 +05:30
Manav Rathi
e5448685ca Tweak 2025-02-19 10:52:32 +05:30
Manav Rathi
bde8a17cb4 Tweak 2025-02-19 10:39:24 +05:30
Manav Rathi
fc3200af73 [desktop] Fix NaN% ML status for empty account (#5110) 2025-02-19 10:35:51 +05:30
Manav Rathi
d21ea0a5a6 Fix NaN% for empty account 2025-02-19 10:31:34 +05:30
Manav Rathi
a1fda786f5 Fix look (paper now has a default shadow) 2025-02-19 10:30:33 +05:30
Manav Rathi
bc0980eb8d [web] Code reorg (#5109)
Intermezzo between the photoswipe changes.
2025-02-19 10:08:46 +05:30
Manav Rathi
2cfc5d9c59 Unused 2025-02-19 09:58:25 +05:30
Manav Rathi
682710a8a8 Remove unneeded ignore
We no longer have any source in public
2025-02-19 09:56:42 +05:30
Manav Rathi
ed50e5a36c pkg json cleanup 2025-02-19 09:51:58 +05:30
Manav Rathi
f31a6f2401 Move 2025-02-19 09:51:58 +05:30
Manav Rathi
239f08b516 Fixes 2025-02-19 09:32:23 +05:30
Manav Rathi
8544f5e109 Fixes 2025-02-19 09:30:40 +05:30
Manav Rathi
1eaaafb8df Ditto 2025-02-19 08:58:25 +05:30
Manav Rathi
149196e7dd Rename 2025-02-19 08:45:38 +05:30
Manav Rathi
38a31b7492 5s 2025-02-19 08:41:56 +05:30
Manav Rathi
b14ad92b91 Improvements 2025-02-19 08:41:56 +05:30
Manav Rathi
872455cce2 [web] Use upstream PhotoSwipe - Part x/x (#5108)
- Error handling 
- Exif handling (partial)
2025-02-18 20:25:05 +05:30
Manav Rathi
65a5248338 Revert "Revert "Mainlineable""
This reverts commit d398838742.
2025-02-18 20:17:50 +05:30
Manav Rathi
fcf06cff57 Cleanup 2025-02-18 20:17:03 +05:30
Manav Rathi
13752654cd Retain original image URL 2025-02-18 19:59:56 +05:30
Manav Rathi
d5e8777e0d Take 1 2025-02-18 19:47:06 +05:30
Manav Rathi
7de2a47c51 Sketch 2025-02-18 19:23:13 +05:30
Manav Rathi
20bc84ca96 Doc 2025-02-18 18:24:47 +05:30
laurenspriem
844f969f1c [mob][photos] people memory model 2025-02-18 17:00:28 +05:30
Manav Rathi
fd7c25029e Restructure 2025-02-18 16:52:39 +05:30
Manav Rathi
764add95c8 EP 1 2025-02-18 16:30:15 +05:30
Prateek Sunal
8c3fc0a879 [mob] remove internal user flag for media kit (#5106)
## Description

Remove internal user flag for media kit

## Tests
2025-02-18 15:11:55 +05:30
Prateek Sunal
37c467eb86 fix: remove internal user flag 2025-02-18 15:09:52 +05:30
Manav Rathi
931d7c8513 Close 2025-02-18 15:03:58 +05:30
Manav Rathi
132962b92f Exclusive 2025-02-18 14:48:51 +05:30
Manav Rathi
a5c4d9cc18 ff 2025-02-18 14:40:25 +05:30
Neeraj
39c31779a4 [mob] Lint fixes (#5103)
## Description

* Modified the analysis file and disabled all rules except
use_super_key.

Ran automatic fix command
❯ dart fix --apply

This also removed redundant cast warning. As the changes seemed
harmless, decided to keep them.

## Tests
2025-02-18 14:19:35 +05:30
Neeraj
d09613a946 [mob] video editor fixes (#5091)
## Description

Previously video editor was giving subpar quality videos, this fixes it
and also re-encodes videos using libx264 mp4 format.

This will also increase the time to process the edited video.

## Tests
2025-02-18 14:17:15 +05:30
Prateek Sunal
88e50982b2 [mob] streaming queue fixes (#5105)
## Description

## Tests
2025-02-18 14:16:57 +05:30
Prateek Sunal
ce5a8f0457 fix: logic for queuing and item removal 2025-02-18 14:09:39 +05:30
Neeraj Gupta
8c81a377c0 Lint fixes 2025-02-18 14:08:10 +05:30
Neeraj Gupta
a0025ab09b [mob] Lint fixes 2025-02-18 13:48:28 +05:30
Manav Rathi
324c156ea1 Use last best instead of thumbnail 2025-02-18 13:43:23 +05:30
Manav Rathi
4b87c9f3ac Thumb errs 2025-02-18 13:36:19 +05:30
Neeraj
dfda0c2c32 [mob] Extract ente_crypto plugin (#5102)
## Description

## Tests
2025-02-18 13:27:29 +05:30
Neeraj Gupta
c1a53bdfce Fix lint issues 2025-02-18 13:24:15 +05:30
laurenspriem
8ff8a0f0d2 [mob][photos] Don't use computer anywhere (yet) 2025-02-18 13:21:34 +05:30
Neeraj Gupta
0c8dc3af95 [mob] Extract ente_crypto plugin 2025-02-18 13:19:09 +05:30
Manav Rathi
b3100f098b Reset failures 2025-02-18 12:50:09 +05:30
Prateek Sunal
0e157a4e33 fix: still check 10mb preview limit 2025-02-18 12:19:16 +05:30
laurenspriem
22e2d5edd9 [mob][photos] Init locale 2025-02-18 12:18:50 +05:30
Prateek Sunal
04a5372f6e Merge branch 'main' into bumpversion 2025-02-18 11:47:52 +05:30
laurenspriem
0774d53efc [mob][photos] Cleanup duplicate code 2025-02-18 11:25:59 +05:30
laurenspriem
d41f1da48d [mob][photos] Add bulk edit date option 2025-02-18 11:24:08 +05:30
Manav Rathi
f47837f550 fin visually 2025-02-18 11:21:34 +05:30
Manav Rathi
1af8d7481d err 4 2025-02-18 11:09:39 +05:30
Manav Rathi
af91adeb72 err 3 2025-02-18 10:53:16 +05:30
Neeraj
8fd90651b1 [auth] Delete unused code (#5094)
## Description

## Tests
2025-02-18 10:31:47 +05:30
Edoardo Mileto
c3da41eee2 Create a custom icon for Deloitte (#5096)
## Description
followed [this
guide](https://github.com/ente-io/ente/blob/main/auth/docs/adding-icons.md)
2025-02-18 10:31:04 +05:30
Neeraj Gupta
ac94dccb90 remove oversize icon 2025-02-18 10:26:17 +05:30
Manav Rathi
89881975f2 err 2 2025-02-18 10:22:48 +05:30
Manav Rathi
e715d582ac err 1 2025-02-18 09:54:07 +05:30
Manav Rathi
808c611a92 Docs 2025-02-18 09:25:53 +05:30
Manav Rathi
fe5146ead8 Singleton => module 2025-02-18 09:15:25 +05:30
Manav Rathi
d398838742 Revert "Mainlineable"
This reverts commit 6ccca2114e.
2025-02-18 09:02:11 +05:30
Manav Rathi
717dc0996f [web] Use upstream PhotoSwipe (WIP) (#5097)
Continue https://github.com/ente-io/ente/pull/5066
2025-02-17 19:47:00 +05:30
Manav Rathi
00db3c0335 sp 2025-02-17 19:42:40 +05:30
Manav Rathi
6ccca2114e Mainlineable 2025-02-17 19:38:03 +05:30
Manav Rathi
0e3708ffdc LP resume 2025-02-17 19:38:03 +05:30
Manav Rathi
36e7dae2ee Simplify 2025-02-17 19:30:48 +05:30
Manav Rathi
9d76d93254 Integrate 2025-02-17 19:16:03 +05:30
Prateek Sunal
aab4bff6ff bump version 2025-02-17 18:54:20 +05:30
Manav Rathi
12a96b68ba wip ds 2025-02-17 18:39:27 +05:30
Manav Rathi
a851caf78f Another ARIA workaround 2025-02-17 17:11:14 +05:30
Neeraj Gupta
4bbac0ca66 [auth] Delete unused code 2025-02-17 17:08:22 +05:30
laurenspriem
9298e22c5c [mob][photos] cache clip embedding 2025-02-17 17:02:38 +05:30
laurenspriem
8de380d4cf [mob][photos] Clear memories seenTime after a while 2025-02-17 16:51:48 +05:30
laurenspriem
d874882866 [mob][photos] Use seen times 2025-02-17 16:49:39 +05:30
Manav Rathi
bb2bbb5655 Workaround for an aria issue...
...somewhere (In something we're doing? In PS? In Chrome? In ARIA?)
2025-02-17 16:32:13 +05:30
Neeraj Gupta
d36934ec0d remove 2025-02-17 16:27:50 +05:30
Neeraj Gupta
f922df304e [mob] Refactor 2025-02-17 16:27:50 +05:30
Manav Rathi
f6d949db38 wrap 2025-02-17 16:09:18 +05:30
Manav Rathi
e937027667 Title gets used as ariaLabel 2025-02-17 16:04:51 +05:30
Manav Rathi
84aeb79412 Move out icons 2025-02-17 15:44:05 +05:30
Manav Rathi
6140f35e69 Move 2025-02-17 15:27:39 +05:30
Manav Rathi
0eba6b9c98 Move 2025-02-17 15:07:30 +05:30
Manav Rathi
fe86075868 Namespace 2025-02-17 14:54:11 +05:30
laurenspriem
78ca393760 [mob][photos] cache methods 2025-02-17 14:47:50 +05:30
Manav Rathi
e9d63dfea9 zi 2025-02-17 14:39:49 +05:30
Manav Rathi
1c322a9c62 Modal 2025-02-17 14:11:16 +05:30
Manav Rathi
dc0450b155 Modal 2025-02-17 14:05:55 +05:30
Manav Rathi
8e90541d87 Fix path for lps 2025-02-17 13:57:25 +05:30
Prateek Sunal
8df04b2363 fix: convert the edited video to mp4 with x264 2025-02-17 13:50:03 +05:30
Manav Rathi
43c0d8a6ad Revert "Revert "Workbench""
This reverts commit 20fea517ce.
2025-02-17 13:42:38 +05:30
laurenspriem
19976136ab [mob][photos] todo 2025-02-17 12:25:59 +05:30
laurenspriem
5fd18807cc [mob][photos] Clean up search service 2025-02-17 11:58:44 +05:30
laurenspriem
1fe6987acf [mob][photos] Move to home gallery 2025-02-17 11:39:13 +05:30
Neeraj Gupta
7e91152431 [mob] Bump version v0.9.98+999 2025-02-14 19:35:51 +05:30
Neeraj
27e906421a [mob] Remove internal flag (#5071)
## Description

## Tests
2025-02-14 19:35:11 +05:30
laurenspriem
e13b88881e [mob][photos] Separate memory types 2025-02-14 13:10:28 +05:30
laurenspriem
9f06de3889 [mob][photos] enum 2025-02-13 15:16:58 +05:30
ashilkn
fae8200920 [mob][photos] Bump up to v0.9.97 2025-02-12 21:22:43 +05:30
Ashil
dc9292b280 [mob][photos] Join link confirmation dialog (#5046) 2025-02-12 21:21:27 +05:30
Ashil
cf43bd6698 [mobile][photos] Fix: show account owner's email in 'Link email' screen if it's not assigned to any person yet (#5045) 2025-02-12 21:19:57 +05:30
1332 changed files with 43482 additions and 25070 deletions

View File

@@ -40,7 +40,7 @@ jobs:
- name: Build PlayStore AAB
run: |
flutter build appbundle --release --flavor playstore --dart-define=app.flavor=playstore
flutter build appbundle --dart-define=cronetHttpNoPlay=true --release --flavor playstore
env:
SIGNING_KEY_PATH: "/home/runner/work/_temp/keystore/ente_auth_key.jks"
SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }}

View File

@@ -32,8 +32,8 @@ env:
FLUTTER_VERSION: "3.24.3"
jobs:
build-ubuntu:
runs-on: ubuntu-20.04
build-linux-latest:
runs-on: ubuntu-latest
defaults:
run:
@@ -68,7 +68,7 @@ jobs:
- name: Build independent APK
run: |
flutter build apk --release --flavor independent --dart-define=app.flavor=independent
flutter build apk --dart-define=cronetHttpNoPlay=true --release --flavor independent
mv build/app/outputs/flutter-apk/app-independent-release.apk artifacts/ente-${{ github.ref_name }}.apk
env:
SIGNING_KEY_PATH: "/home/runner/work/_temp/keystore/ente_auth_key.jks"
@@ -90,22 +90,31 @@ jobs:
- name: Install dependencies for desktop build
run: |
sudo apt-get update -y
sudo apt-get install -y libsecret-1-dev libsodium-dev libfuse2 ninja-build libgtk-3-dev dpkg-dev pkg-config libsqlite3-dev locate appindicator3-0.1 libappindicator3-dev libffi-dev libtiff5
sudo apt-get install -y libsecret-1-dev libsodium-dev libfuse2 ninja-build libgtk-3-dev dpkg-dev pkg-config rpm patchelf libsqlite3-dev locate libayatana-appindicator3-dev libffi-dev libtiff6 xz-utils libarchive-tools libcurl4-openssl-dev
sudo updatedb --localpaths='/usr/lib/x86_64-linux-gnu'
- name: Install appimagetool
run: |
wget -O appimagetool "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage"
chmod +x appimagetool
mv appimagetool /usr/local/bin/
- name: Build desktop app
run: |
flutter config --enable-linux-desktop
# dart pub global activate flutter_distributor
dart pub global activate --source git https://github.com/prateekmedia/flutter_distributor --git-ref develop --git-path packages/flutter_distributor
dart pub global activate --source git https://github.com/ente-io/flutter_distributor_fork --git-ref develop --git-path packages/flutter_distributor
# RPM
flutter_distributor package --platform=linux --targets=rpm --skip-clean
mv dist/**/*-*-linux.rpm artifacts/ente-${{ github.ref_name }}-x86_64.rpm
# APPIMAGE
flutter_distributor package --platform=linux --targets=appimage --skip-clean
mv dist/**/*-*-linux.AppImage artifacts/ente-${{ github.ref_name }}-x86_64.AppImage
# DEB
flutter_distributor package --platform=linux --targets=deb --skip-clean
mv dist/**/*-*-linux.deb artifacts/ente-${{ github.ref_name }}-x86_64.deb
env:
LIBSODIUM_USE_PKGCONFIG: 1
- name: Generate checksums and push to artifacts
run: |
sha256sum artifacts/ente-* > artifacts/sha256sum-apk-deb
- name: Generate checksums
run: sha256sum artifacts/ente-* >> artifacts/sha256sum-rpm-appimage
- name: Create a draft GitHub release
uses: ncipollo/release-action@v1
@@ -125,67 +134,6 @@ jobs:
releaseFiles: auth/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
track: internal
build-fedora-etc:
runs-on: ubuntu-latest
defaults:
run:
working-directory: auth
steps:
- name: Checkout code and submodules
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Flutter ${{ env.FLUTTER_VERSION }}
uses: subosito/flutter-action@v2
with:
channel: "stable"
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
- name: Create artifacts directory
run: mkdir artifacts
- name: Install dependencies for desktop build
run: |
sudo apt-get update -y
sudo apt-get install -y libsecret-1-dev libsodium-dev libfuse2 ninja-build libgtk-3-dev dpkg-dev pkg-config rpm patchelf libsqlite3-dev locate libayatana-appindicator3-dev libffi-dev libtiff6 xz-utils libarchive-tools libcurl4-openssl-dev
sudo updatedb --localpaths='/usr/lib/x86_64-linux-gnu'
- name: Install appimagetool
run: |
wget -O appimagetool "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage"
chmod +x appimagetool
mv appimagetool /usr/local/bin/
- name: Build desktop app
run: |
flutter config --enable-linux-desktop
# dart pub global activate flutter_distributor
dart pub global activate --source git https://github.com/prateekmedia/flutter_distributor --git-ref develop --git-path packages/flutter_distributor
# Run below command if it is a beta or nightly
if [[ ${{ github.ref }} =~ beta|nightly ]]; then
flutter_distributor package --platform=linux --targets=pacman --skip-clean
mv dist/**/*-*-linux.pacman artifacts/ente-${{ github.ref_name }}-x86_64.pacman
fi
flutter_distributor package --platform=linux --targets=rpm --skip-clean
mv dist/**/*-*-linux.rpm artifacts/ente-${{ github.ref_name }}-x86_64.rpm
flutter_distributor package --platform=linux --targets=appimage --skip-clean
mv dist/**/*-*-linux.AppImage artifacts/ente-${{ github.ref_name }}-x86_64.AppImage
- name: Generate checksums
run: sha256sum artifacts/ente-* >> artifacts/sha256sum-rpm-appimage
- name: Create a draft GitHub release
uses: ncipollo/release-action@v1
with:
artifacts: "auth/artifacts/*"
draft: true
allowUpdates: true
updateOnlyUnreleased: true
build-windows:
runs-on: windows-latest
@@ -213,7 +161,7 @@ jobs:
run: |
flutter config --enable-windows-desktop
# dart pub global activate flutter_distributor
dart pub global activate --source git https://github.com/prateekmedia/flutter_distributor --git-ref develop --git-path packages/flutter_distributor
dart pub global activate --source git https://github.com/ente-io/flutter_distributor_fork --git-ref develop --git-path packages/flutter_distributor
make innoinstall
flutter_distributor package --platform=windows --targets=exe --skip-clean
mv dist/**/*-windows-setup.exe artifacts/ente-${{ github.ref_name }}-installer.exe

View File

@@ -36,6 +36,6 @@ jobs:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Update branch server/ghcr to point to source commit
- name: Update branch ghcr/server to point to source commit
run: |
git push -f origin HEAD:refs/heads/server/ghcr
git push -f origin HEAD:refs/heads/ghcr/server

View File

@@ -26,8 +26,6 @@ jobs:
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4

View File

@@ -26,8 +26,6 @@ jobs:
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4

View File

@@ -34,7 +34,6 @@ jobs:
uses: actions/checkout@v4
with:
ref: ${{ steps.select-branch.outputs.branch }}
submodules: recursive
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4

View File

@@ -30,8 +30,6 @@ jobs:
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4

34
.github/workflows/web-publish-ghcr.yml vendored Normal file
View File

@@ -0,0 +1,34 @@
name: "Publish ghcr (web)"
on:
# Run automatically every Wednesday, at 07:00 UTC.
schedule:
- cron: '0 7 * * 3'
# Run manually if needed to publish out of schedule.
workflow_dispatch:
jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build and push
uses: mr-smithers-excellent/docker-build-push@v6
with:
dockerfile: web/Dockerfile
directory: web
# Resultant package name will be ghcr.io/ente-io/web
image: web
registry: ghcr.io
enableBuildKit: true
multiPlatform: true
platform: linux/amd64,linux/arm64
tags: ${{ github.sha }}, latest
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Update branch ghcr/web to point to source commit
run: |
git push -f origin HEAD:refs/heads/ghcr/web

4
.gitmodules vendored
View File

@@ -9,7 +9,3 @@
[submodule "auth/assets/simple-icons"]
path = auth/assets/simple-icons
url = https://github.com/simple-icons/simple-icons.git
[submodule "web/apps/photos/thirdparty/photoswipe"]
path = web/apps/photos/thirdparty/photoswipe
url = https://github.com/ente-io/PhotoSwipe.git
branch = single-thread

View File

@@ -95,8 +95,8 @@ please see our [support guide](SUPPORT.md).
<img src=".github/assets/ente-ducky.png" width=200 alt="Ente's Mascot, Ducky,
inviting people to Ente's source code repository" />
Please visit our [community page](https://ente.io/community) for all the ways to
connect with the community.
Please visit the [community section](https://ente.io/about#community) for all the ways to
connect with our community.
[![Discord](https://img.shields.io/discord/948937918347608085?style=for-the-badge&logo=Discord&logoColor=white&label=Discord)](https://discord.gg/z2YVKkycX3)
[![Ente's Blog RSS](https://img.shields.io/badge/blog-rss-F88900?style=for-the-badge&logo=rss&logoColor=white)](https://ente.io/blog/rss.xml)

View File

@@ -208,6 +208,10 @@
{
"title": "Bugzilla"
},
{
"title": "ButterflyMX",
"slug": "butterflymx"
},
{
"title": "Bybit"
},
@@ -306,6 +310,9 @@
{
"title": "Discourse"
},
{
"title": "Deloitte"
},
{
"title": "DMarket"
},
@@ -372,6 +379,14 @@
{
"title": "Fastmail"
},
{
"title": "Federal Student Aid",
"slug": "federal_student_aid",
"altNames": [
"FSA",
"FAFSA"
]
},
{
"title": "Fidelity",
"slug": "fidelity",
@@ -393,9 +408,17 @@
{
"title": "ForUsAll"
},
{
"title": "FreeTaxUSA",
"slug": "freetaxusa"
},
{
"title": "G2A"
},
{
"title": "Gate.io",
"slug": "gateio.svg"
},
{
"title": "GitHub"
},
@@ -468,6 +491,9 @@
"title": "IceDrive",
"slug": "ice_drive"
},
{
"title": "ICONOMI"
},
{
"title": "ID.me",
"slug": "id_me"
@@ -578,6 +604,11 @@
{
"title": "Letterboxd"
},
{
"title": "LinkedIn",
"slug": "linkedin",
"hex": "2596be"
},
{
"title": "Linux.Do",
"slug": "linux_do",
@@ -599,6 +630,14 @@
"title": "Login.gov",
"slug": "login_gov"
},
{
"title": "Luma",
"slug": "luma",
"altNames": [
"luma",
"lu.ma"
]
},
{
"title": "Marketplace.tf",
"slug": "marketplacedottf"
@@ -628,6 +667,9 @@
"MercadoLivre"
]
},
{
"title": "MEXC"
},
{
"title": "microsoft"
},
@@ -734,7 +776,8 @@
{
"title": "nintendo",
"altNames": [
"任天堂"
"任天堂",
"Nintendo Account"
]
},
{
@@ -751,6 +794,15 @@
{
"title": "Notesnook"
},
{
"title": "NoIp",
"slug": "noip",
"altNames": [
"No IP",
"No-IP",
"noip.com"
]
},
{
"title": "Notion"
},
@@ -790,6 +842,10 @@
{
"title": "Parsec"
},
{
"title": "Patient Access",
"slug": "patient_access"
},
{
"title": "PayPal"
},
@@ -815,6 +871,10 @@
{
"title": "Pingvin Share"
},
{
"title": "Pionex",
"slug": "pionex"
},
{
"title": "Plutus",
"hex": "DEC685"
@@ -836,6 +896,13 @@
"PostScanMail"
]
},
{
"title": "Prey Project",
"slug": "prey_project",
"altNames": [
"PreyProject"
]
},
{
"title": "Privacy Guides",
"slug": "privacyguides"
@@ -920,6 +987,10 @@
{
"title": "RuneMate"
},
{
"title": "RuneScape Wiki",
"slug": "runescape_wiki"
},
{
"title": "Rust Language Forum",
"slug": "rust_language_forum",
@@ -1169,6 +1240,9 @@
{
"title": "Wolvesville"
},
{
"title": "Workflowy"
},
{
"title": "WorkOS",
"altNames": [
@@ -1210,6 +1284,12 @@
},
{
"title": "Zoom"
},
{
"title": "BingX"
},
{
"title": "CoinSpot"
}
]
}

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><svg id="a" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 150 150"><defs><style>.e{fill:#2a54ff;}.f{fill:url(#d);}.g{fill:none;}</style><linearGradient id="d" x1="17.68" y1="116.45" x2="132.14" y2="32.11" gradientTransform="matrix(1, 0, 0, 1, 0, 0)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#2a54ff"/><stop offset=".52" stop-color="#2143cb"/><stop offset="1" stop-color="#2a54ff"/></linearGradient></defs><g id="b"><path id="c" class="g" d="M0,0H150V150H0V0Z"/></g><path class="f" d="M140.2,22.33c-25.18-.09-49.79,10.83-66.63,29.47-6.06,6.27-10.1,13.95-14.96,21.06-11.64,15.93-29.81,25.14-49.5,25.13h0v28.65h0c25.17,.1,49.78-10.86,66.63-29.5,6.03-6.27,10.13-13.94,14.96-21.06,11.64-15.91,29.81-25.12,49.5-25.11V22.33h0Z"/><path class="e" d="M140.2,97.99c-19.68,0-37.86-9.2-49.5-25.11-4.81-7.12-8.92-14.78-14.94-21.06C58.95,33.18,34.3,22.24,9.13,22.35h0v28.65h0c21.8-.11,42.05,11.62,53.01,30.46,3.22,5.62,7.06,10.9,11.45,15.74,16.83,18.63,41.46,29.59,66.63,29.5l-.02-28.7h0Z"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="462px" height="404px" viewBox="0 0 462 404" version="1.1">
<defs>
<linearGradient id="linear0" gradientUnits="userSpaceOnUse" x1="464.529999" y1="-2595.189941" x2="1224.150024" y2="-2986.919922" gradientTransform="matrix(0.249968,0,0,-0.249968,150.980393,-561.725816)">
<stop offset="0" style="stop-color:rgb(100%,92.156863%,18.039216%);stop-opacity:1;"/>
<stop offset="0.92" style="stop-color:rgb(99.607843%,56.470591%,18.82353%);stop-opacity:1;"/>
</linearGradient>
<linearGradient id="linear1" gradientUnits="userSpaceOnUse" x1="-580.880005" y1="-2987.179932" x2="121.110001" y2="-2623.179932" gradientTransform="matrix(0.249968,0,0,-0.249968,150.980393,-561.725816)">
<stop offset="0.06" style="stop-color:rgb(0%,40.784314%,89.803922%);stop-opacity:1;"/>
<stop offset="1" style="stop-color:rgb(3.921569%,85.09804%,100%);stop-opacity:1;"/>
</linearGradient>
<linearGradient id="linear2" gradientUnits="userSpaceOnUse" x1="1063.689941" y1="-3644.949951" x2="436.269989" y2="-3207.530029" gradientTransform="matrix(0.249968,0,0,-0.249968,150.980393,-561.725816)">
<stop offset="0" style="stop-color:rgb(93.725491%,3.921569%,21.176471%);stop-opacity:1;"/>
<stop offset="1" style="stop-color:rgb(100%,59.215689%,54.11765%);stop-opacity:1;"/>
</linearGradient>
<linearGradient id="linear3" gradientUnits="userSpaceOnUse" x1="-389.76001" y1="-3622.02002" x2="266.369995" y2="-3164.639893" gradientTransform="matrix(0.249968,0,0,-0.249968,150.980393,-561.725816)">
<stop offset="0" style="stop-color:rgb(47.450981%,7.843138%,93.725491%);stop-opacity:1;"/>
<stop offset="1" style="stop-color:rgb(85.882354%,41.176471%,100%);stop-opacity:1;"/>
</linearGradient>
</defs>
<g id="surface1">
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear0);" d="M 437.566406 160.457031 C 437.566406 192.628906 411.488281 218.730469 379.324219 218.730469 L 239.71875 218.730469 C 239.71875 116.257812 317.625 31.976562 417.445312 21.886719 C 428.53125 20.769531 437.585938 29.886719 437.585938 41.027344 Z M 437.566406 160.457031 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear1);" d="M 24.640625 160.457031 C 24.640625 192.628906 50.722656 218.730469 82.882812 218.730469 L 222.492188 218.730469 C 222.492188 116.257812 144.589844 31.976562 44.777344 21.886719 C 33.695312 20.769531 24.640625 29.886719 24.640625 41.027344 Z M 24.640625 160.457031 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear2);" d="M 269.425781 338.792969 C 249.960938 308.039062 239.65625 272.375 239.71875 235.976562 L 381.667969 235.976562 C 412.507812 235.976562 437.574219 260.675781 437.574219 291.0625 C 437.566406 380.972656 317.730469 415.246094 269.425781 338.792969 Z M 269.425781 338.792969 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear3);" d="M 192.78125 338.792969 C 212.25 308.039062 222.554688 272.375 222.492188 235.976562 L 80.546875 235.976562 C 49.707031 235.976562 24.640625 260.675781 24.640625 291.0625 C 24.640625 380.972656 144.480469 415.246094 192.78125 338.792969 Z M 192.78125 338.792969 "/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -0,0 +1,130 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 27.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 30 30" style="enable-background:new 0 0 30 30;" xml:space="preserve">
<style type="text/css">
.st0{fill:#C5C8CA;}
.st1{fill:#9DA4A8;}
.st2{fill:#B7BBBD;}
.st3{fill:#CBCFD1;}
.st4{fill:#BBBFC2;}
.st5{fill:#CACDCE;}
.st6{fill:#BFC3C5;}
.st7{fill:#BCC0C2;}
.st8{fill:#BDC1C4;}
.st9{fill:#C7CACC;}
.st10{fill:url(#SVGID_1_);}
.st11{fill:#FFFFFF;}
.st12{fill:#B8BCBF;}
.st13{fill:#C4C7C9;}
.st14{fill:#C1C5C7;}
.st15{fill:url(#SVGID_00000003093454306001190100000011813141018663887528_);}
.st16{fill:url(#SVGID_00000017503418065689336600000007511615486600436881_);}
.st17{fill:url(#SVGID_00000057845154053127761930000017803385842445649033_);}
.st18{fill:url(#SVGID_00000156571711195124538550000006687723982713171592_);}
.st19{fill:#DF3030;}
.st20{fill:url(#SVGID_00000001636660173574603980000008731795684331757470_);}
.st21{fill:#17181C;}
.st22{fill:url(#SVGID_00000180343933242210086490000003762167186865041053_);}
.st23{fill:url(#SVGID_00000015338415700440354440000005681408021599925436_);}
</style>
<g>
<path class="st0" d="M14.4,29.5c0.1,0,0.1,0,0.2,0c0.1,0,0.2,0,0.2,0H14.4z"/>
<path class="st1" d="M15.3,29.5h0.1c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0,0,0L15.3,29.5
C15.2,29.5,15.3,29.5,15.3,29.5z"/>
<path class="st2" d="M15.3,29.5L15.3,29.5l-0.2,0C15.2,29.5,15.2,29.5,15.3,29.5z"/>
<path class="st3" d="M15.5,29.5L15.5,29.5L15.5,29.5L15.5,29.5L15.5,29.5z"/>
<path class="st0" d="M14.1,29.5c0.1,0,0.1,0,0.2,0H14.1z"/>
<path class="st4" d="M13.9,29.5C13.9,29.5,14,29.5,13.9,29.5c0.1,0,0.1,0,0.2,0H13.9z"/>
<path class="st5" d="M13.6,29.5C13.6,29.5,13.6,29.5,13.6,29.5c0.1,0,0.1,0,0.1,0H13.6z"/>
<path class="st6" d="M13.7,29.5C13.8,29.5,13.8,29.5,13.7,29.5c0.1,0,0.1,0,0.1,0H13.7z"/>
<path class="st7" d="M13.3,29.4C13.3,29.4,13.3,29.4,13.3,29.4C13.4,29.4,13.4,29.4,13.3,29.4L13.3,29.4z"/>
<path class="st8" d="M13.4,29.5C13.4,29.4,13.5,29.4,13.4,29.5C13.5,29.4,13.5,29.4,13.4,29.5L13.4,29.5z"/>
<path class="st8" d="M13.1,29.4C13.1,29.4,13.1,29.4,13.1,29.4C13.1,29.4,13.1,29.4,13.1,29.4L13.1,29.4z"/>
<path class="st9" d="M13.2,29.4C13.2,29.4,13.2,29.4,13.2,29.4C13.2,29.4,13.2,29.4,13.2,29.4C13.2,29.4,13.2,29.4,13.2,29.4
C13.3,29.4,13.3,29.4,13.2,29.4L13.2,29.4z"/>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="21.8812" y1="-88.078" x2="8.2545" y2="-104.6955" gradientTransform="matrix(1 0 0 -1 0 -81.48)">
<stop offset="0" style="stop-color:#020037"/>
<stop offset="1" style="stop-color:#050F62"/>
</linearGradient>
<path class="st10" d="M15,0.4C11.1,0.4,7.5,2,4.7,4.7C2,7.4,0.5,11.1,0.5,15c0,1.7,0.3,3.4,0.9,5.1c0.3,0,0.5,0,0.8,0
c2.9,0,5.8,0.9,8.2,2.6c2.4,1.7,4.2,4.1,5.1,6.9c3.8-0.1,7.4-1.7,10-4.4c2.6-2.7,4.1-6.4,4.1-10.1c0-3.9-1.5-7.6-4.3-10.3
C22.6,2,18.9,0.4,15,0.4"/>
<path class="st11" d="M20.7,22.5C20.7,22.5,20.7,22.5,20.7,22.5L20.7,22.5c0,0.4,0.1,0.8,0.3,1c0.2,0.2,0.6,0.3,1,0.3c0,0,0,0,0,0
c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0,0,0l0,0c-0.4,0-0.7,0.1-1,0.3c-0.2,0.2-0.3,0.6-0.3,1c0,0,0,0,0,0c0,0,0,0,0,0
c0,0,0,0,0,0c0,0,0,0,0,0h0l0,0c0-0.4-0.1-0.7-0.3-1c-0.2-0.2-0.6-0.3-1-0.3c0,0,0,0,0,0l0,0c0,0,0,0,0,0s0,0,0,0c0,0,0,0,0,0
c0,0,0,0,0,0c0.4,0,0.7-0.1,1-0.3S20.7,22.9,20.7,22.5C20.7,22.5,20.7,22.5,20.7,22.5C20.7,22.5,20.7,22.5,20.7,22.5z"/>
<path class="st11" d="M6.9,15.5C6.9,15.5,6.9,15.5,6.9,15.5L6.9,15.5c0,0.4,0.1,0.8,0.3,1c0.2,0.2,0.6,0.3,1,0.3c0,0,0,0,0,0
c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0,0,0l0,0c-0.4,0-0.7,0.1-1,0.3c-0.2,0.2-0.3,0.6-0.3,1c0,0,0,0,0,0c0,0,0,0,0,0
c0,0,0,0,0,0c0,0,0,0,0,0h0l0,0c0-0.4-0.1-0.7-0.3-1c-0.2-0.2-0.6-0.3-1-0.3c0,0,0,0,0,0l0,0c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0,0,0
c0,0,0,0,0,0c0.4,0,0.7-0.1,1-0.3C6.8,16.2,6.9,15.9,6.9,15.5C6.9,15.5,6.9,15.5,6.9,15.5C6.9,15.5,6.9,15.5,6.9,15.5z"/>
<path class="st11" d="M10.6,4.1L10.6,4.1C10.7,4.1,10.7,4.1,10.6,4.1c0,0.3,0.1,0.5,0.3,0.7c0.2,0.2,0.4,0.3,0.7,0.2h0v0l0,0l0,0
l0,0l0,0c-0.3,0-0.5,0.1-0.7,0.2c-0.2,0.2-0.3,0.4-0.2,0.7l0,0l0,0l0,0l0,0h0v0c0-0.3-0.1-0.5-0.2-0.7C10.2,5.1,10,5,9.7,5.1h0v0v0
h0C10,5,10.2,5,10.4,4.8C10.6,4.6,10.7,4.3,10.6,4.1C10.6,4.1,10.6,4.1,10.6,4.1C10.6,4.1,10.6,4.1,10.6,4.1z"/>
<path class="st12" d="M12.8,29.4C12.8,29.4,12.8,29.4,12.8,29.4C12.8,29.4,12.8,29.4,12.8,29.4C12.8,29.4,12.8,29.4,12.8,29.4
C12.8,29.4,12.8,29.4,12.8,29.4L12.8,29.4z"/>
<path class="st13" d="M13,29.4C13,29.4,13,29.4,13,29.4C13,29.4,13,29.4,13,29.4L13,29.4z"/>
<path class="st14" d="M12.9,29.4C12.9,29.4,12.9,29.4,12.9,29.4C12.9,29.4,12.9,29.4,12.9,29.4L12.9,29.4z"/>
<linearGradient id="SVGID_00000173122186048074043340000017421439166240502921_" gradientUnits="userSpaceOnUse" x1="19.2457" y1="-89.3156" x2="22.9553" y2="-91.7188" gradientTransform="matrix(1 0 0 -1 0 -81.48)">
<stop offset="0" style="stop-color:#E5E5E5"/>
<stop offset="1" style="stop-color:#B7B8C1"/>
</linearGradient>
<path style="fill:url(#SVGID_00000173122186048074043340000017421439166240502921_);" d="M21.8,1.2c-1.4,0.7-3,1.9-4.4,4.2
c-2.5,3.9-3.2,7.4-3.2,7.4L16,14l0.3,0.2l1.9,1.2c0,0,2.9-2,5.4-5.9c1.5-2.3,2-4.3,2-5.8c-0.8-0.1-1.5-0.4-2.2-0.8
C22.8,2.5,22.2,1.9,21.8,1.2z"/>
<linearGradient id="SVGID_00000127763695479642710240000017533313096818365313_" gradientUnits="userSpaceOnUse" x1="21.2378" y1="-99.9826" x2="19.0472" y2="-97.8815" gradientTransform="matrix(1 0 0 -1 0 -81.48)">
<stop offset="0" style="stop-color:#EC4F4F"/>
<stop offset="1" style="stop-color:#A91919"/>
</linearGradient>
<path style="fill:url(#SVGID_00000127763695479642710240000017533313096818365313_);" d="M20.8,16.8c0.9-1.4,0.3-3.2,0-3.8
c-0.7,0.8-1.5,1.5-2.3,2.1c0.1,0.4,0.3,0.8,0.3,1.2c0,0.1,0,0.2-0.1,0.3c-0.4,0.6-0.8,1.3-1.1,2c-0.1,0.1-0.1,0.2-0.1,0.3
c-0.1,0.2-0.1,0.3,0,0.5c0,0.3,0.2,0.5,0.3,0.8c0,0,0.1,0.1,0.1,0.1c0.1,0,0.1,0.1,0.2,0.1s0.1,0,0.2-0.1c0.1-0.1,0.3-0.2,0.4-0.4
C19.5,19,19.8,18.5,20.8,16.8z"/>
<linearGradient id="SVGID_00000060717637781723915790000002744012061535479481_" gradientUnits="userSpaceOnUse" x1="11.3158" y1="-99.2586" x2="14.8122" y2="-101.5237" gradientTransform="matrix(1 0 0 -1 0 -81.48)">
<stop offset="0" style="stop-color:#F2A518"/>
<stop offset="1" style="stop-color:#F4E23E"/>
</linearGradient>
<path style="fill:url(#SVGID_00000060717637781723915790000002744012061535479481_);" d="M15.1,15.7l-1.7-1.1c-2,3.1-3.3,7-2.4,7.5
c0.9,0.6,3.9-2.2,5.9-5.3L15.1,15.7z"/>
<linearGradient id="SVGID_00000070084874335106853820000008402293642909580433_" gradientUnits="userSpaceOnUse" x1="-4386.2534" y1="747.6443" x2="-4497.9517" y2="769.0099" gradientTransform="matrix(1 0 0 -1 0 -81.48)">
<stop offset="0" style="stop-color:#EC4F4F"/>
<stop offset="1" style="stop-color:#A91919"/>
</linearGradient>
<path style="fill:url(#SVGID_00000070084874335106853820000008402293642909580433_);" d="M15.2,9.5c-0.7-0.1-2.5,0.1-3.4,1.5
c-1.1,1.6-1.5,2.1-2,3.2c-0.1,0.2-0.1,0.3-0.2,0.5c0,0.1,0,0.1,0,0.2C9.6,15,9.7,15,9.7,15c0,0,0.1,0,0.2,0.1c0.3,0.1,0.6,0,0.8,0
c0.2,0,0.3-0.1,0.4-0.2c0.1-0.1,0.2-0.2,0.3-0.3c0.5-0.6,0.9-1.2,1.3-1.8c0.1-0.1,0.2-0.2,0.3-0.2c0.4-0.1,0.8-0.1,1.2-0.2l0,0
C14.5,11.4,14.8,10.4,15.2,9.5z"/>
<path class="st19" d="M25,0.6c-0.2-0.1-1.5-0.2-3.2,0.7c0.4,0.7,1,1.2,1.6,1.7c0.7,0.4,1.4,0.7,2.2,0.8C25.7,1.9,25.1,0.7,25,0.6z"
/>
<path class="st19" d="M18.4,15.5L14,12.7c-0.1,0-0.1,0-0.2,0l-0.9,1.4c0,0.1,0,0.1,0,0.2l4.4,2.8c0.1,0,0.1,0,0.2,0l0.9-1.4
C18.4,15.6,18.4,15.6,18.4,15.5z"/>
<linearGradient id="SVGID_00000044894753735506851200000013592864944465274029_" gradientUnits="userSpaceOnUse" x1="14.9436" y1="-95.9217" x2="16.3716" y2="-96.8468" gradientTransform="matrix(1 0 0 -1 0 -81.48)">
<stop offset="0" style="stop-color:#B71E1E"/>
<stop offset="0.44" style="stop-color:#DF3030"/>
<stop offset="1" style="stop-color:#C51D1D"/>
</linearGradient>
<path style="fill:url(#SVGID_00000044894753735506851200000013592864944465274029_);" d="M17.8,11.6c-0.4-0.2-2.1,1.6-3.2,3.3
c-0.8,1.2-1.4,3-1.1,3.2c0.4,0.2,1.7-1,2.5-2.3C17.1,14.2,18.1,11.9,17.8,11.6z"/>
<path class="st21" d="M21.2,8.6c1.3,0,2.3-1,2.3-2.3s-1-2.3-2.3-2.3c-1.3,0-2.3,1-2.3,2.3S20,8.6,21.2,8.6z"/>
<linearGradient id="SVGID_00000090987122570624474440000002432161440392897685_" gradientUnits="userSpaceOnUse" x1="20.068" y1="-87.0655" x2="22.3556" y2="-88.5473" gradientTransform="matrix(1 0 0 -1 0 -81.48)">
<stop offset="0" style="stop-color:#CED1EC"/>
<stop offset="1" style="stop-color:#FFFFFF"/>
</linearGradient>
<path style="fill:url(#SVGID_00000090987122570624474440000002432161440392897685_);" d="M21.2,7.7c0.8,0,1.4-0.6,1.4-1.4
S22,5,21.2,5c-0.8,0-1.4,0.6-1.4,1.4S20.5,7.7,21.2,7.7z"/>
<linearGradient id="SVGID_00000044151119195171880090000016489263670362291109_" gradientUnits="userSpaceOnUse" x1="14.4192" y1="-110.4727" x2="2.0973" y2="-101.7197" gradientTransform="matrix(1 0 0 -1 0 -81.48)">
<stop offset="0" style="stop-color:#B7B7BD"/>
<stop offset="0.68" style="stop-color:#EFEFEF"/>
</linearGradient>
<path style="fill:url(#SVGID_00000044151119195171880090000016489263670362291109_);" d="M2.1,20c-0.3,0-0.5,0-0.8,0
c1,2.8,2.9,5.2,5.3,6.9s5.3,2.6,8.3,2.6c0.1,0,0.3,0,0.4,0c-0.9-2.8-2.7-5.2-5.1-6.9C7.9,20.9,5.1,20,2.1,20z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,15 @@
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1545 1333" width="1545" height="1333">
<title>Deloitte-svg</title>
<style>
.s0 { fill: #86bc24 }
.s1 { fill: #0f0b0b }
</style>
<g id="layer1">
<g id="g3359">
<g id="g3371">
<path id="path3356" class="s0" d="m1354.4 1332.5c-105.1 0-190-84.8-190-189.6 0-104.9 84.9-189.6 190-189.6 105 0 189.9 84.7 189.9 189.6 0 104.8-84.9 189.6-189.9 189.6z"/>
<path id="path3360" fill-rule="evenodd" class="s1" d="m1089.4 628.2q0 328.2-176.7 505.8-176.8 177.6-497.1 177.6h-414.9v-1311.1h443.9q308.8 0 476.8 161.4c112 107.6 168 263 168 466.3zm-359.7 12.5q0-180.1-69.7-267.2c-46.6-58-117.1-87-211.9-87h-100.9v734.5h77.2c105.3 0 182.5-31.2 231.6-93.8 49.1-62.4 73.7-157.9 73.7-286.5z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 785 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8.9 KiB

View File

@@ -0,0 +1 @@
<svg clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" viewBox="0 0 560 400" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(2.51518 0 0 2.51518 30 162.272)"><path d="m136.108 5.893 6.356 23.513h-4.7l-1.218-5.334h-6.587l-1.284 5.334h-4.545l6.52-23.513h5.468zm-2.833 4.107-2.436 10.242h4.806zm-65.8 1.7c2.02 0 3.508.522 4.463 1.563s1.432 2.674 1.432 4.9v11.263h-3.95v-1.9c-.505.746-1.114 1.323-1.828 1.73-.706.405-1.508.615-2.322.61-1.405 0-2.502-.45-3.294-1.35s-1.176-2.182-1.176-3.786c0-1.734.577-3.1 1.73-4.1s2.804-1.586 4.956-1.762l1.78-.132v-1.02c0-1.03-.153-1.788-.462-2.27s-.8-.725-1.482-.725c-.615 0-1.086.187-1.415.56s-.56.966-.7 1.78l-3.887-.33c.264-1.713.9-2.98 1.9-3.804s2.427-1.235 4.25-1.235zm1.78 9.78-1.317.132c-.988.088-1.752.373-2.3.856s-.808 1.13-.808 1.943c0 .724.153 1.28.463 1.662s.756.577 1.35.577c.748.022 1.459-.331 1.894-.939.472-.626.708-1.476.708-2.553v-1.68zm-25.26-9.78c2.064 0 3.617.714 4.66 2.14s1.563 3.535 1.563 6.323v1.68h-8.825c.044 3.338.9 5.005 2.536 5.005.66 0 1.152-.202 1.482-.608s.548-1.092.66-2.06h4.084c-.177 1.888-.797 3.322-1.86 4.298s-2.542 1.465-4.43 1.465c-2.282 0-3.972-.73-5.07-2.2s-1.647-3.716-1.647-6.768c0-3.03.58-5.334 1.745-6.915s2.869-2.36 5.107-2.36zm-.133 3.03c-.8 0-1.372.346-1.744 1.038s-.604 1.84-.7 3.442h4.676c0-1.56-.18-2.695-.544-3.4s-.927-1.07-1.696-1.07zm-14.29-3.03c2.064 0 3.617.714 4.66 2.14s1.563 3.535 1.563 6.323v1.68h-8.825c.044 3.338.9 5.005 2.536 5.005.66 0 1.152-.202 1.482-.608s.55-1.092.66-2.06h4.084c-.177 1.888-.797 3.322-1.86 4.298s-2.542 1.465-4.43 1.465c-2.282 0-3.972-.73-5.07-2.2s-1.647-3.716-1.647-6.768c0-3.03.58-5.334 1.745-6.915s2.867-2.37 5.105-2.37zm-.133 3.03c-.8 0-1.372.346-1.744 1.038s-.604 1.84-.7 3.442h4.676c0-1.56-.18-2.695-.544-3.4s-.927-1.07-1.696-1.07zm-29.439-8.8v23.513h4.645v-9.55h7.3v-4.15h-7.3v-5.665h7.837v-4.148zm13.7 23.477v-17.2h4.215v2.306c.46-.834 1-1.477 1.647-1.927s1.305-.675 2-.675c.352 0 .747.054 1.185.165l-.493 3.952c-.33-.087-.757-.132-1.285-.132-.792-.018-1.554.306-2.09.89-.56.594-.84 1.33-.84 2.206v10.406h-4.339zm39.813 0v-19.364h-5.335v-4.15h15.315v4.15h-5.336v19.365zm30.792 0-2.832-5.665-2.7 5.665h-4.28l4.84-8.727-4.545-8.464h4.6l2.47 5.204 2.536-5.204h4.282l-4.676 8.234 4.908 8.957zm17.652-23.514h4.644v15.083c0 2.92-.68 5.155-2.04 6.702s-3.328 2.322-5.897 2.322-4.533-.773-5.896-2.322-2.04-3.78-2.04-6.702v-15.083h4.644v15.413c0 1.537.27 2.68.807 3.424s1.366 1.12 2.486 1.12 1.948-.373 2.487-1.12.807-1.887.807-3.424v-15.413zm12.118 13.14c-1.865-.548-3.237-1.377-4.116-2.486s-1.318-2.564-1.318-4.364c0-2.085.682-3.754 2.042-5.005s3.163-1.878 5.4-1.878c2.13 0 3.788.538 4.973 1.614s1.93 2.733 2.24 4.972l-4.414.594c-.22-1.23-.548-2.103-.987-2.62s-1.087-.774-1.943-.774-1.515.247-1.977.74-.7 1.224-.7 2.2c0 .813.175 1.444.527 1.894s.955.806 1.812 1.07l2.503.8c1.338.418 2.415.94 3.227 1.564.783.594 1.397 1.384 1.78 2.29.376.9.56 1.977.56 3.228 0 2.196-.675 3.936-2.025 5.22s-3.179 1.908-5.507 1.908c-4.897 0-7.5-2.547-7.84-7.64h4.612c.1 1.34.422 2.316.938 2.93s1.3.922 2.355.922c.9 0 1.597-.27 2.1-.807s.74-1.312.74-2.322c0-.9-.203-1.614-.6-2.14s-1.048-.92-1.926-1.185l-2.438-.724z" fill="#212f63"/><path d="m140.638 5.893 1.207 4.25h49.07v-4.25zm2.7 9.463 1.213 4.25 46.373-.007v-4.25zm2.79 9.802 1.208 4.25h43.6v-4.25z" fill="#bf2032"/><path d="m195.992 2.462h.33c.364 0 .546-.143.546-.432.005-.113-.036-.223-.115-.304-.076-.076-.212-.115-.406-.115h-.354v.85zm-.52 1.295v-2.577h.964c.27 0 .502.06.698.183s.29.336.29.64c0 .153-.042.294-.126.425s-.2.223-.343.273l.584 1.053h-.584l-.444-.89h-.52v.89h-.52zm.913.774c.255.001.508-.049.743-.147.232-.097.433-.234.6-.412.174-.185.31-.402.4-.64.1-.265.15-.547.147-.831.002-.28-.048-.558-.147-.819-.098-.25-.23-.465-.4-.648-.169-.181-.374-.326-.601-.425-.234-.1-.48-.153-.743-.153-.257-.002-.512.05-.748.153-.224.099-.426.244-.591.425-.169.191-.302.41-.394.648-.097.25-.145.522-.145.82-.004.284.046.565.145.831.098.25.23.462.394.64s.363.316.59.412c.237.1.491.15.748.147zm0 .47c-.318.003-.634-.06-.927-.184-.288-.122-.538-.293-.754-.514-.221-.227-.396-.494-.515-.787-.127-.304-.19-.643-.19-1.015s.062-.71.19-1.016c.12-.293.295-.56.515-.787.215-.22.471-.394.754-.514.288-.123.596-.184.927-.184.32-.002.637.061.933.184.293.123.545.293.76.514s.388.483.515.787.2.643.2 1.016-.063.71-.2 1.015-.298.568-.515.787-.468.392-.76.514c-.295.124-.613.186-.933.184z" fill="#212f63"/></g></svg>

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns:xodm="http://www.corel.com/coreldraw/odm/2003" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" viewBox="0 0 2500 2500" style="enable-background:new 0 0 2500 2500;" xml:space="preserve">
<style type="text/css">
.st0{fill:none;}
.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#2354E6;}
.st2{fill-rule:evenodd;clip-rule:evenodd;fill:#17E6A1;}
</style>
<g id="Layer_x0020_1">
<rect y="0" class="st0" width="2500" height="2500"></rect>
<g id="_2500576017504">
<path id="Fill-3" class="st1" d="M1250,1937.5c-379.7,0-687.5-307.8-687.5-687.5c0-379.7,307.8-687.5,687.5-687.5V0 C559.6,0,0,559.6,0,1250c0,690.3,559.6,1250,1250,1250c690.3,0,1250-559.6,1250-1250h-562.5 C1937.5,1629.7,1629.7,1937.5,1250,1937.5z"></path>
<polygon id="Fill-4" class="st2" points="1250,1250 1937.5,1250 1937.5,562.5 1250,562.5 "></polygon>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 965 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 35 30" version="1.1" style="zoom: 16;" visibility="visible"><g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" visibility="visible"><g id="Group-8"><g id="Group-7" fill="#3A79F2"><rect id="Rectangle-Copy-20" x="9" y="0" width="6" height="30" rx="3"></rect><rect id="Rectangle-Copy-21" x="27" y="12" width="6" height="9" rx="3"></rect><rect id="Rectangle-Copy-22" x="18" y="12" width="6" height="18" rx="3" visibility="visible"></rect><rect id="Rectangle-Copy-23" x="0" y="21" width="6" height="9" rx="3" visibility="visible"></rect><circle id="Oval-Copy-13" cx="21" cy="6" r="3" visibility="visible"></circle></g></g></g></svg>

After

Width:  |  Height:  |  Size: 750 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" ?><svg height="72" viewBox="0 0 72 72" width="72" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="M8,72 L64,72 C68.418278,72 72,68.418278 72,64 L72,8 C72,3.581722 68.418278,-8.11624501e-16 64,0 L8,0 C3.581722,8.11624501e-16 -5.41083001e-16,3.581722 0,8 L0,64 C5.41083001e-16,68.418278 3.581722,72 8,72 Z" fill="#007EBB"/><path d="M62,62 L51.315625,62 L51.315625,43.8021149 C51.315625,38.8127542 49.4197917,36.0245323 45.4707031,36.0245323 C41.1746094,36.0245323 38.9300781,38.9261103 38.9300781,43.8021149 L38.9300781,62 L28.6333333,62 L28.6333333,27.3333333 L38.9300781,27.3333333 L38.9300781,32.0029283 C38.9300781,32.0029283 42.0260417,26.2742151 49.3825521,26.2742151 C56.7356771,26.2742151 62,30.7644705 62,40.051212 L62,62 Z M16.349349,22.7940133 C12.8420573,22.7940133 10,19.9296567 10,16.3970067 C10,12.8643566 12.8420573,10 16.349349,10 C19.8566406,10 22.6970052,12.8643566 22.6970052,16.3970067 C22.6970052,19.9296567 19.8566406,22.7940133 16.349349,22.7940133 Z M11.0325521,62 L21.769401,62 L21.769401,27.3333333 L11.0325521,27.3333333 L11.0325521,62 Z" fill="#FFF"/></g></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 724 264">
<path
d="M38.53 260.65H.43V27.86h38.1zm86.46 2.77c-42.25 0-66.48-22.96-66.48-63V89.33h38.1v108.28c0 23.61 8.7 32.39 32.12 32.39 30.35 0 42.73-14.54 42.73-50.17v-90.5h38.1v171.33h-36.54v-29.91c-4.99 22.98-27.12 32.67-48.03 32.67zm347.2-2.77H434.4V149.87c0-22.5-7.01-30.87-25.88-30.87-24.28 0-37.11 14.45-37.11 41.79v99.86h-37.79V149.87c0-21.93-7.23-30.87-24.94-30.87-31.59 0-38.05 32.96-38.05 41.79v99.86h-38.1V89.33h36.54v29.96c6.49-21.02 27.02-33.71 47.72-33.71 20.69 0 38.09 7.9 45.64 33.71 10.13-26.76 28.35-33.71 50.15-33.71 37.88 0 59.61 18.88 59.61 51.81v123.26h0zm76.65 2.77c-52.62 0-61.55-33.45-61.55-50.52 0-20.1 8.83-38.21 27.93-45.55 8.41-3.11 16.52-5.43 24.84-7.1 7.33-1.47 18.64-3.03 26.91-4.17l2.73-.38c14.38-2 29.67-9.21 29.67-18.62 0-16-20.51-18.39-32.74-18.39-13.87 0-23.64 3.57-27.53 10.05-3.49 6.46-3.73 7.97-4.62 13.6l-.62 4.43h-38.1l.68-5.61c1.35-11.14 3.41-19.03 6.48-24.83 10.54-20.39 31.77-30.75 63.08-30.75 26.11 0 44.63 8.23 53.26 15.94 5.31 4.6 9.1 9.84 11.89 16.46 5.84 12.36 6.32 20.63 6.32 29.4v86.43c0 8.07.78 14.97 2.31 20.5l1.76 6.35h-38.91l-.7-4.19c-.5-2.96-.67-19.75-.88-26.23-8.99 23.61-28.27 33.18-52.21 33.18zm50.53-93.72c-7.97 6.11-20.47 9.6-38.62 13.23-31.27 5.78-36.54 13.06-36.54 27.22 0 12.5 10.63 20.26 27.75 20.26 33.23 0 47.41-15.48 47.41-51.77v-8.94zm124.2-105.51C688.46 64.19 660 35.73 660 .62c0 35.11-28.46 63.57-63.57 63.57h0c35.11 0 63.57 28.46 63.57 63.57h0c0-35.11 28.46-63.57 63.57-63.57z" />
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns:xodm="http://www.corel.com/coreldraw/odm/2003" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" viewBox="0 450 2500 1650" style="enable-background:new 0 0 2500 2500;" xml:space="preserve">
<rect y="250" width="2500" height="1650" style="fill:none;"></rect>
<g id="_2500406570000">
<path d="M2459.7,1566.6l-540.6-937.7c-118.5-195.5-407.5-197.5-521.9,8.3l-567.6,975.2c-106,178.8,25,403.3,237.1,403.3H2204C2418.1,2015.7,2578.2,1784.9,2459.7,1566.6z" style="fill:#3156AA;"></path>
<path d="M1680,1639.4l-33.3-58.2c-31.2-54.1-99.8-170.5-99.8-170.5l-457.4-794.3C971,439.7,690.3,425.1,571.8,647.6L39.5,1568.7c-110.2,193.4,20.8,444.9,259.9,447h1131.1h482.4h286.9C1906.7,2017.8,1813.1,1866,1680,1639.4L1680,1639.4z" style="fill:#1972E2;"></path>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="703.637" y1="1211.6566" x2="1935.647" y2="727.2267" gradientTransform="matrix(1 0 0 -1 0 2497.8899)">
<stop offset="0" style="stop-color:#264CA2;stop-opacity:0;"></stop>
<stop offset="1" style="stop-color:#234588;"></stop>
</linearGradient>
<path d="M1680.1,1639.4l-33.3-58.2c-31.2-54.1-99.8-170.5-99.8-170.5l-295.3-519.8l-424.2,723.6c-106,178.8,25,403.4,237,403.4h363.9h482.4h289C1904.6,2015.7,1813.1,1866,1680.1,1639.4L1680.1,1639.4z" style="fill:url(#SVGID_1_);"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1,22 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" width="100%" viewBox="0 0 200 200" enable-background="new 0 0 200 200" xml:space="preserve">
<path fill="#E9EAE8" opacity="1.000000" stroke="none" d=" M1.000001,121.000000 C1.000000,107.979103 1.000000,94.958214 1.330396,81.781845 C2.105629,80.808945 2.781408,80.039177 2.961370,79.167091 C6.970184,59.740398 16.508305,43.142090 30.377947,29.382053 C43.761433,16.104332 59.986267,7.182058 78.573097,2.942371 C79.482437,2.734949 80.195526,1.667158 81.000000,1.000001 C94.020897,1.000000 107.041786,1.000000 120.216652,1.335631 C126.713715,3.778750 133.179947,5.577904 139.376389,8.052591 C156.703827,14.972685 171.012131,25.956200 181.986893,41.089684 C190.099167,52.275986 196.134094,64.470306 199.117294,78.069069 C199.211044,78.496483 200.348892,78.694855 201.000000,79.000000 C201.000000,93.354225 201.000000,107.708458 200.669632,122.218155 C199.894424,123.189087 199.220856,123.956680 199.038727,124.827095 C195.802597,140.292557 188.666824,153.987869 178.511795,165.781891 C164.123367,182.492554 146.476486,194.499832 124.422401,199.082748 C123.840591,199.203659 123.469414,200.338181 123.000000,201.000000 C108.645775,201.000000 94.291542,201.000000 79.781174,200.674042 C78.977226,199.905136 78.385597,199.219894 77.673386,199.054794 C61.298405,195.258774 46.725803,187.667160 34.294682,176.602264 C18.003170,162.101318 7.102591,144.135208 2.914476,122.432388 C2.802733,121.853340 1.661271,121.473000 1.000001,121.000000 M162.957382,65.141830 C157.650208,70.691360 152.343033,76.240898 146.301605,81.755386 C145.732269,82.047028 145.042847,82.218056 144.611099,82.647896 C132.762451,94.444138 120.925987,106.252800 109.147583,118.119026 C108.427895,118.844093 108.202583,120.059868 107.093681,121.126122 C94.730469,133.412537 82.367249,145.698959 69.317253,158.025375 C62.966175,164.528809 56.615101,171.032227 49.973309,177.833344 C51.968117,178.908905 53.966496,179.986389 56.373127,181.619629 C60.931099,183.466125 65.489067,185.312622 70.530418,187.664200 C78.728378,189.429962 86.926338,191.195740 96.041878,193.048172 C135.589554,194.037872 165.346161,177.209564 183.339188,142.206635 C198.044006,113.600494 197.050034,84.312935 180.956207,55.283768 C179.868546,53.520458 178.780869,51.757149 177.222046,49.229988 C172.345459,54.885849 167.967255,59.963684 162.957382,65.141830 M108.466240,57.866222 C108.959000,57.471405 109.451752,57.076591 110.380226,56.193321 C112.081604,54.903320 113.950760,53.783173 115.456879,52.295490 C124.572472,43.291451 133.611420,34.209698 142.658142,25.136135 C143.883804,23.906826 145.009445,22.577780 146.408920,21.045849 C134.481003,14.180294 122.154709,10.443705 109.110474,9.413567 C92.088882,8.069327 75.690033,10.494845 59.889217,19.071775 C52.575058,24.411427 45.260902,29.751078 37.284908,35.186230 C4.630878,65.629463 1.719374,115.370926 21.645718,146.481766 C27.512495,140.245255 33.273243,134.121445 39.623917,127.697594 C47.726917,119.475052 55.829922,111.252510 64.624794,103.006409 C66.467079,100.992920 68.309372,98.979439 70.717163,96.651299 C82.356544,85.062904 94.022423,73.500809 105.590721,61.841888 C106.646294,60.778049 107.076263,59.093464 107.883652,57.776287 C107.883652,57.776287 107.786400,57.842323 108.466240,57.866222 z"/>
<path fill="#ffffff" opacity="1.000000" stroke="none" d=" M80.531342,1.000001 C80.195526,1.667158 79.482437,2.734949 78.573097,2.942371 C59.986267,7.182058 43.761433,16.104332 30.377947,29.382053 C16.508305,43.142090 6.970184,59.740398 2.961370,79.167091 C2.781408,80.039177 2.105629,80.808945 1.330396,81.313187 C1.000000,54.406445 1.000000,27.812887 1.000000,1.000000 C27.353823,1.000000 53.708252,1.000000 80.531342,1.000001 z"/>
<path fill="#ffffff" opacity="1.000000" stroke="none" d=" M201.000000,78.531342 C200.348892,78.694855 199.211044,78.496483 199.117294,78.069069 C196.134094,64.470306 190.099167,52.275986 181.986893,41.089684 C171.012131,25.956200 156.703827,14.972685 139.376389,8.052591 C133.179947,5.577904 126.713715,3.778750 120.685310,1.335631 C147.592621,1.000000 174.185257,1.000000 201.000000,1.000000 C201.000000,26.687134 201.000000,52.374908 201.000000,78.531342 z"/>
<path fill="#ffffff" opacity="1.000000" stroke="none" d=" M1.000001,121.468658 C1.661271,121.473000 2.802733,121.853340 2.914476,122.432388 C7.102591,144.135208 18.003170,162.101318 34.294682,176.602264 C46.725803,187.667160 61.298405,195.258774 77.673386,199.054794 C78.385597,199.219894 78.977226,199.905136 79.312515,200.674042 C53.072189,201.000000 27.144375,201.000000 1.000000,201.000000 C1.000000,174.646164 1.000000,148.291748 1.000001,121.468658 z"/>
<path fill="#ffffff" opacity="1.000000" stroke="none" d=" M123.468658,201.000000 C123.469414,200.338181 123.840591,199.203659 124.422401,199.082748 C146.476486,194.499832 164.123367,182.492554 178.511795,165.781891 C188.666824,153.987869 195.802597,140.292557 199.038727,124.827095 C199.220856,123.956680 199.894424,123.189087 200.669632,122.686813 C201.000000,148.926880 201.000000,174.853760 201.000000,201.000000 C175.312851,201.000000 149.625092,201.000000 123.468658,201.000000 z"/>
<path fill="#90BF02" opacity="1.000000" stroke="none" d=" M70.151657,96.965950 C68.309372,98.979439 66.467079,100.992920 64.276588,102.547241 C63.928383,86.369431 63.928383,70.650787 63.928383,54.871948 C55.257160,54.871948 47.224957,54.871948 39.033997,54.871948 C39.033997,79.516510 39.033997,103.757080 39.033997,127.997643 C33.273243,134.121445 27.512495,140.245255 21.645718,146.481766 C1.719374,115.370926 4.630878,65.629463 37.719608,35.462364 C39.135883,36.852516 39.984581,38.130096 41.121098,39.053391 C47.414471,44.166069 58.368134,43.270470 63.330196,37.318970 C67.946770,31.781837 66.780022,24.056263 60.570244,19.044075 C75.690033,10.494845 92.088882,8.069327 109.110474,9.413567 C122.154709,10.443705 134.481003,14.180294 146.408920,21.045849 C145.009445,22.577780 143.883804,23.906826 142.658142,25.136135 C133.611420,34.209698 124.572472,43.291451 115.456879,52.295490 C113.950760,53.783173 112.081604,54.903320 109.848991,56.507885 C108.807304,57.162407 108.296852,57.502369 107.786400,57.842323 C107.786400,57.842323 107.883652,57.776287 107.499512,57.814442 C103.123413,60.609695 99.131447,63.366795 95.061790,66.177551 C94.532784,62.603703 94.002762,59.023003 93.451675,55.299969 C85.547775,55.299969 77.881607,55.299969 70.151657,55.299969 C70.151657,69.433502 70.151657,83.199722 70.151657,96.965950 z"/>
<path fill="#90BE02" opacity="1.000000" stroke="none" d=" M181.064896,55.965897 C197.050034,84.312935 198.044006,113.600494 183.339188,142.206635 C165.346161,177.209564 135.589554,194.037872 95.558487,192.539490 C95.011642,175.365601 94.948189,158.700363 94.957329,141.656860 C95.029930,139.761459 95.029930,138.244339 95.029930,136.217133 C96.400269,137.088867 97.162216,137.573578 98.053833,138.371689 C101.904762,140.815338 105.425377,143.476242 109.385910,144.973618 C120.098732,149.023911 131.263062,149.217529 142.344849,146.892456 C159.790939,143.232071 172.455902,133.383316 177.684326,116.021088 C182.850937,98.864090 180.467819,82.760155 167.840240,68.827202 C167.809296,68.599007 167.711411,68.148964 168.030243,67.993683 C172.587692,63.880894 176.826294,59.923397 181.064896,55.965897 z"/>
<path fill="#FFFFFF" opacity="1.000000" stroke="none" d=" M39.328957,127.847618 C39.033997,103.757080 39.033997,79.516510 39.033997,54.871948 C47.224957,54.871948 55.257160,54.871948 63.928383,54.871948 C63.928383,70.650787 63.928383,86.369431 63.930653,102.559021 C55.829922,111.252510 47.726917,119.475052 39.328957,127.847618 z"/>
<path fill="#FFFFFF" opacity="1.000000" stroke="none" d=" M94.884727,142.035141 C94.948189,158.700363 95.011642,175.365601 95.099701,192.496170 C86.926338,191.195740 78.728378,189.429962 70.271156,186.931229 C69.954536,179.802521 69.897171,173.406799 69.921326,166.764832 C70.056465,166.354218 70.110100,166.189819 70.436935,165.848373 C78.768333,157.792603 86.826530,149.913879 94.884727,142.035141 z"/>
<path fill="#FFFFFE" opacity="1.000000" stroke="none" d=" M70.434410,96.808624 C70.151657,83.199722 70.151657,69.433502 70.151657,55.299969 C77.881607,55.299969 85.547775,55.299969 93.451675,55.299969 C94.002762,59.023003 94.532784,62.603703 95.061790,66.177551 C99.131447,63.366795 103.123413,60.609695 107.456062,57.774864 C107.076263,59.093464 106.646294,60.778049 105.590721,61.841888 C94.022423,73.500809 82.356544,85.062904 70.434410,96.808624 z"/>
<path fill="#FEFEFD" opacity="1.000000" stroke="none" d=" M60.229729,19.057926 C66.780022,24.056263 67.946770,31.781837 63.330196,37.318970 C58.368134,43.270470 47.414471,44.166069 41.121098,39.053391 C39.984581,38.130096 39.135883,36.852516 38.050526,35.414612 C45.260902,29.751078 52.575058,24.411427 60.229729,19.057926 z"/>
<path fill="#E5E5E4" opacity="1.000000" stroke="none" d=" M94.957329,141.656860 C86.826530,149.913879 78.768333,157.792603 70.368210,165.406586 C70.018867,162.756363 70.011452,160.370865 70.004036,157.985382 C82.367249,145.698959 94.730469,133.412537 107.756348,121.164223 C109.639374,121.798706 110.859749,122.395088 112.115219,123.158279 C112.150314,123.325104 112.155739,123.666389 112.012955,123.992271 C107.221497,128.898193 102.572823,133.478241 97.924149,138.058289 C97.162216,137.573578 96.400269,137.088867 95.029930,136.217133 C95.029930,138.244339 95.029930,139.761459 94.957329,141.656860 z"/>
<path fill="#81AB00" opacity="1.000000" stroke="none" d=" M112.080116,122.991463 C110.859749,122.395088 109.639374,121.798706 108.083130,121.124825 C108.202583,120.059868 108.427895,118.844093 109.147583,118.119026 C120.925987,106.252800 132.762451,94.444138 144.611099,82.647896 C145.042847,82.218056 145.732269,82.047028 146.827606,82.054634 C148.247528,83.549278 149.141449,84.744675 149.880432,86.239487 C138.292679,98.049911 126.875618,109.576714 115.395844,121.040718 C114.517334,121.918007 113.195747,122.351624 112.080116,122.991463 z"/>
<path fill="#90BE03" opacity="1.000000" stroke="none" d=" M69.839813,167.011063 C69.897171,173.406799 69.954536,179.802521 70.029465,186.678680 C65.489067,185.312622 60.931099,183.466125 56.322063,181.041183 C60.793938,175.978851 65.316872,171.494949 69.839813,167.011063 z"/>
<path fill="#82AC01" opacity="1.000000" stroke="none" d=" M69.921326,166.764832 C65.316872,171.494949 60.793938,175.978851 56.117935,180.763306 C53.966496,179.986389 51.968117,178.908905 49.973309,177.833344 C56.615101,171.032227 62.966175,164.528809 69.660645,158.005371 C70.011452,160.370865 70.018867,162.756363 70.095001,165.583633 C70.110100,166.189819 70.056465,166.354218 69.921326,166.764832 z"/>
<path fill="#E3E4E0" opacity="1.000000" stroke="none" d=" M150.035370,85.940079 C149.141449,84.744675 148.247528,83.549278 147.194733,82.072159 C152.343033,76.240898 157.650208,70.691360 163.580933,65.209869 C165.373459,66.234924 166.542435,67.191940 167.711411,68.148964 C167.711411,68.148964 167.809296,68.599007 167.557053,68.983429 C161.830566,74.973953 156.356323,80.580055 150.670471,86.124481 C150.458832,86.062805 150.035370,85.940079 150.035370,85.940079 z"/>
<path fill="#82AC02" opacity="1.000000" stroke="none" d=" M168.030243,67.993683 C166.542435,67.191940 165.373459,66.234924 163.896759,65.159714 C167.967255,59.963684 172.345459,54.885849 177.222046,49.229988 C178.780869,51.757149 179.868546,53.520458 181.010559,55.624832 C176.826294,59.923397 172.587692,63.880894 168.030243,67.993683 z"/>
<path fill="#FFFFFE" opacity="1.000000" stroke="none" d=" M108.126320,57.854275 C108.296852,57.502369 108.807304,57.162407 109.631134,56.752113 C109.451752,57.076591 108.959000,57.471405 108.126320,57.854275 z"/>
<path fill="#FEFEFC" opacity="1.000000" stroke="none" d=" M150.882095,86.186157 C156.356323,80.580055 161.830566,74.973953 167.587982,69.211624 C180.467819,82.760155 182.850937,98.864090 177.684326,116.021088 C172.455902,133.383316 159.790939,143.232071 142.344849,146.892456 C131.263062,149.217529 120.098732,149.023911 109.385910,144.973618 C105.425377,143.476242 101.904762,140.815338 98.053833,138.371689 C102.572823,133.478241 107.221497,128.898193 112.397583,124.067833 C114.508804,124.310890 116.064545,124.938728 117.680908,125.276192 C129.675720,127.780441 140.746811,126.206741 149.044968,116.391853 C156.985992,106.999374 156.451813,96.634232 150.882095,86.186157 z"/>
<path fill="#90BF02" opacity="1.000000" stroke="none" d=" M150.670471,86.124481 C156.451813,96.634232 156.985992,106.999374 149.044968,116.391853 C140.746811,126.206741 129.675720,127.780441 117.680908,125.276192 C116.064545,124.938728 114.508804,124.310890 112.540359,123.741951 C112.155739,123.666389 112.150314,123.325104 112.115219,123.158279 C113.195747,122.351624 114.517334,121.918007 115.395844,121.040718 C126.875618,109.576714 138.292679,98.049911 149.880432,86.239487 C150.035370,85.940079 150.458832,86.062805 150.670471,86.124481 z"/>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 33 KiB

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<rect id="Artboard1" x="0" y="0" width="512" height="512" style="fill:none;"/>
<g id="Artboard11" serif:id="Artboard1">
<g transform="matrix(2.44447,0,0,2.44447,256,256)">
<g transform="matrix(1,0,0,1,-94.85,-84.1)">
<clipPath id="_clip1">
<rect x="0" y="0" width="189.7" height="168.2"/>
</clipPath>
<g clip-path="url(#_clip1)">
<g transform="matrix(1,0,0,1,-0.61524,-0.898391)">
<path d="M173.9,17.6C152.361,-3.884 116.993,-3.929 95.4,17.5C116.63,38.944 116.585,74.011 95.3,95.4C93.1,97.6 90.3,98.7 88.6,101.1C81.3,111.4 88.5,117.8 97.1,126.6L113.6,143.6C118.2,148.1 119,151.1 120.7,149.6L174,96.3C184.431,85.887 190.299,71.739 190.299,57C190.299,42.212 184.392,28.021 173.9,17.6Z" style="fill:url(#_Linear2);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,-0.61524,-0.898391)">
<path d="M95.6,17.1C85.167,6.707 71.026,0.865 56.3,0.865C25.752,0.865 0.615,26.002 0.615,56.55C0.615,71.35 6.515,85.555 17,96L43.2,69.8L43.1,69.7C39.759,66.235 37.89,61.604 37.89,56.79C37.89,46.586 46.286,38.19 56.49,38.19C61.304,38.19 65.935,40.059 69.4,43.4L69.5,43.5L95.1,18L95.8,17.3L95.6,17.1Z" style="fill:url(#_Linear3);fill-rule:nonzero;"/>
</g>
<g transform="matrix(1,0,0,1,-0.61524,-0.898391)">
<path d="M88.9,116.3C85.228,112.435 85.318,106.257 89.1,102.5C89.241,102.337 89.41,102.202 89.6,102.1C92.944,99.141 96.022,95.895 98.8,92.4C116.335,71.396 116.037,40.462 98.1,19.8C97.3,18.9 96.4,18 95.7,17.3L69.5,43.4C72.841,46.865 74.71,51.496 74.71,56.31C74.71,66.514 66.314,74.91 56.11,74.91C51.296,74.91 46.665,73.041 43.2,69.7L17,96L86.4,165.3C91.479,170.365 99.821,170.365 104.9,165.3L121.4,148.8" style="fill:rgb(50,50,93);fill-rule:nonzero;"/>
</g>
</g>
</g>
</g>
</g>
<defs>
<linearGradient id="_Linear2" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(125.407,10.9269,-10.9269,125.407,103.088,88.1467)"><stop offset="0" style="stop-color:rgb(211,54,138);stop-opacity:1"/><stop offset="0.28" style="stop-color:rgb(221,76,126);stop-opacity:1"/><stop offset="0.68" style="stop-color:rgb(234,92,123);stop-opacity:1"/><stop offset="1" style="stop-color:rgb(255,117,117);stop-opacity:1"/></linearGradient>
<linearGradient id="_Linear3" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(92.07,6.44,-6.44,92.07,1.06,45.85)"><stop offset="0" style="stop-color:rgb(3,142,245);stop-opacity:1"/><stop offset="0.17" style="stop-color:rgb(3,142,245);stop-opacity:1"/><stop offset="0.38" style="stop-color:rgb(69,112,252);stop-opacity:1"/><stop offset="1" style="stop-color:rgb(72,105,253);stop-opacity:1"/></linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -0,0 +1 @@
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 719 165"><defs><style>.cls-1{fill:#ff7028;}.cls-2{fill:url(#linear-gradient);}.cls-3{fill:url(#linear-gradient-2);}.cls-4{fill:url(#linear-gradient-3);}.cls-5{opacity:0.6;}.cls-6{fill:url(#linear-gradient-4);}.cls-7{fill:url(#linear-gradient-5);}.cls-8{fill:none;}</style><linearGradient id="linear-gradient" x1="62.83" y1="375.51" x2="211.47" y2="375.51" gradientTransform="matrix(1, 0, 0, -1, 0, 752)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ff7028"/><stop offset="1" stop-color="#ffcd4d"/></linearGradient><linearGradient id="linear-gradient-2" x1="183.61" y1="411.83" x2="-4.86" y2="411.83" xlink:href="#linear-gradient"/><linearGradient id="linear-gradient-3" x1="130.7" y1="356.24" x2="14.99" y2="356.24" xlink:href="#linear-gradient"/><linearGradient id="linear-gradient-4" x1="60.26" y1="347.69" x2="92.91" y2="347.69" gradientTransform="matrix(1, 0, 0, -1, 0, 752)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#c44100"/><stop offset="1" stop-color="#c84300" stop-opacity="0"/></linearGradient><linearGradient id="linear-gradient-5" x1="229.03" y1="414.54" x2="52.03" y2="362.3" xlink:href="#linear-gradient"/></defs><title>pionexlogo-freelogovectors.net</title><path class="cls-1" d="M238.72,331.52H192.09V433.2h28.85V406.62h17.78c27.84,0,45.33-14.38,45.33-37.48S266.56,331.52,238.72,331.52ZM237,384h-16V354.18h16c11.95,0,17.93,5.52,17.93,15S248.92,384,237,384Z" transform="translate(-15 -293)"/><path class="cls-1" d="M311.36,345.76c10.2,0,16.9-6.39,16.9-15.11,0-8.28-6.7-14.23-16.9-14.23s-16.91,6.39-16.91,14.67S301.16,345.76,311.36,345.76ZM297.51,433.2H325.2V354.47H297.51Z" transform="translate(-15 -293)"/><path class="cls-1" d="M382.84,434.51c26.09,0,44.59-17,44.59-40.82s-18.5-40.52-44.59-40.52c-25.8,0-44.6,16.84-44.6,40.52S357,434.51,382.84,434.51Zm0-21.94c-9.33,0-16.61-6.82-16.61-18.88s7.28-18.59,16.61-18.59,16.61,6.68,16.61,18.59S392.31,412.57,382.84,412.57Z" transform="translate(-15 -293)"/><path class="cls-1" d="M491.71,353.17c-9.91,0-18.8,3.34-25.07,9.87v-8.57H440.26V433.2H468V395.14c0-13.07,6.85-18.59,15.74-18.59,8,0,13,4.79,13,16.12V433.2h27.69v-45C524.35,363.77,510.21,353.17,491.71,353.17Z" transform="translate(-15 -293)"/><path class="cls-1" d="M623.61,394c0-26-18.94-40.81-42.26-40.81-24.92,0-43.43,16.84-43.43,40.52s18.22,40.82,46.34,40.82c15,0,26.09-4.36,33.67-12.79l-14.58-15.1c-5.39,4.65-10.49,6.82-18.21,6.82-10.2,0-17-4.64-19.39-12.63h57.42C623.32,398.63,623.61,396,623.61,394Zm-42.12-21.21c8.6,0,14.72,5.23,16.18,13.51H565.32C566.92,378,572.9,372.77,581.49,372.77Z" transform="translate(-15 -293)"/><path class="cls-1" d="M716,433.2l-30.17-40.38L715,354.47H685.69l-14.58,19.9-14-19.9H625.94l29.14,39.37-30,39.36h30l15.16-20.63,14.14,20.63Z" transform="translate(-15 -293)"/><path class="cls-2" d="M67.42,373.41a28.79,28.79,0,0,1,25.32-15.08h72.59A36.33,36.33,0,0,1,129,394.65H55.91Z" transform="translate(-15 -293)"/><path class="cls-3" d="M67.42,343.25a28.79,28.79,0,0,0,25.32,15.08h72.59A36.33,36.33,0,0,0,129,322H55.91Z" transform="translate(-15 -293)"/><path class="cls-4" d="M64.8,378.12a37.81,37.81,0,0,1,33.25-19.8H124.7L92.83,417.17a30.6,30.6,0,0,1-26.9,16H35Z" transform="translate(-15 -293)"/><g class="cls-5"><path class="cls-6" d="M94.55,413.91c-12-17-31.55-19.1-38.77-19.2H105Z" transform="translate(-15 -293)"/></g><path class="cls-7" d="M92.7,358.34a28.81,28.81,0,0,0-25.35,15.1L55.91,394.65H105l19.67-36.31Z" transform="translate(-15 -293)"/><rect class="cls-8" width="719" height="165"/></svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -0,0 +1 @@
<svg enable-background="new 0 0 512 512" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><path d="m256.024 29.736-80.851 46.679 53.892 31.112 26.887-15.556 27.017 15.548 53.881-31.119z" fill="#3c77b9"/><path d="m256.036 512 202.079-116.681-.006-124.454-53.912 31.115.019 62.224-148.204 85.569-148.221-85.586-.005-62.221-53.871-31.102v124.442z" fill="#3c77b9"/><path d="m215.607 301.986-53.91 31.117 94.318 54.433 94.288-54.443-53.879-31.118 188.657-108.927-.041-62.184 26.96-15.564-.021-77.759-229.045 132.233-26.929-15.554-26.949 15.554-229.056-132.222v77.789l26.98 15.574-.01 62.153z" fill="#1f2938"/></svg>

After

Width:  |  Height:  |  Size: 643 B

View File

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" width="35" height="35" viewBox="0 0 35 35">
<g fill="#438ab5" fill-rule="evenodd" transform="translate(4 1)">
<path d="M11.7311354 23.0557769L9.91249858 23.0557769 8.79846449 26.6069057 6.97030597 23 6.79891611 23 4.98027925 26.6347942 3.85672349 23.0557769 2 23.0557769 4.54228294 29.9814077 4.75175943 30 6.86556772 25.9189907 9.00794098 30 9.22693914 29.9814077 11.7311354 23.0557769zM14.3322795 29.8698539L14.3322795 23.0557769 12.7135975 23.0557769 12.7135975 29.8698539 14.3322795 29.8698539zM22.2084227 29.8698539L19.1900568 26.3001328 22.0560762 23.0557769 20.1422227 23.0557769 17.6951564 26.0212483 17.6951564 23.0557769 16.0764744 23.0557769 16.0764744 29.8698539 17.6951564 29.8698539 17.6951564 26.6812749 20.2564826 29.8698539 22.2084227 29.8698539zM25 29.8698539L25 23.0557769 23.381318 23.0557769 23.381318 29.8698539 25 29.8698539zM24.4742178 8.98009586L24.4742178 5.59616787C24.4732494 5.5136357 24.4163953 5.44228159 24.3362569 5.42252065 23.0272354 5.11977548 21.7162784 4.97854841 20.4033857 4.99883944 18.3648587 5.0303453 15.6405277 6.73541461 15.8150159 9.26543298 15.9313414 10.9521119 16.9379659 12.3146739 18.8348893 13.3531189 21.1050121 14.6587079 22.1112168 16.0505228 21.8535034 17.5285637 21.4669332 19.7456249 19.4833026 20.2699349 18.2011186 20.9636596 19.8933668 21.0568854 21.1108284 20.9541788 21.8535034 20.6555398 23.5576643 19.970275 24.621281 18.4776117 24.8765595 17.2814785 25.5814 13.9788769 23.0921699 12.4640398 21.8535034 11.6272857 20.6148368 10.7905315 18.5555838 9.39712448 18.5555838 8.2423436 18.5555838 7.08756273 19.0354769 6.19945178 20.606059 5.98878728 22.2560942 5.76746561 23.8084838 6.80552306 24.0666162 8.65926511 24.1000214 8.89915966 24.2358886 9.00610324 24.4742178 8.98009586z"/>
<path d="M12.1896778,5.73473633 C12.2458703,5.76929923 12.2836806,5.79287044 12.3031088,5.80544997 C13.8305405,6.79444234 14.5459886,7.96859313 14.4494531,9.32790236 C14.3458984,10.7860487 13.4278718,12.1833682 11.6953731,13.5198609 C11.995423,13.6024263 13.0716006,15.2517434 14.923906,18.4678119 C15.9400176,19.5870375 17.2645126,20.0440386 18.8973912,19.8388151 C17.7166822,20.6938532 16.5941307,21.0918329 15.5297368,21.032754 C13.9331458,20.9441357 12.5153495,20.0153267 11.6953731,18.9752651 C10.8753968,17.9352035 9.17647457,14.3916396 8.02078511,13.3656207 C9.24887971,13.3176267 10.0712516,13.0717507 10.4879009,12.6279929 C11.0163711,12.0651387 11.4324817,11.1727564 11.3052905,9.86386602 C11.242381,9.21648063 10.8576813,8.46000935 10.2600254,7.66096138 C10.1677374,7.53757512 10.1984144,7.42387917 10.3520565,7.31987355 C10.8366434,7.01067102 11.3224095,6.50739801 11.8093549,5.81005452 L11.8102004,5.81066099 C11.8971472,5.68944809 12.0629706,5.65600737 12.1900999,5.73404867 Z"/>
<path d="M5.46922112,0 C5.93751334,0 6.45488645,0.251926659 6.49405028,0.821037745 C6.52015951,1.20044514 6.40971704,1.46961432 6.16272288,1.62854529 L6.36548563,4.50160863 L9.73880697,4.59010439 C9.80515586,4.59184498 9.86880672,4.61673544 9.91873596,4.66046503 L10.8936611,5.51433494 C11.0118247,5.61782632 11.0237189,5.79751318 10.9202275,5.91567678 C10.9171724,5.91916507 10.9140324,5.92257811 10.9108103,5.92591286 L10.3160188,6.541511 C10.2118589,6.64931459 10.0419078,6.65776756 9.92756462,6.56083181 L9.4018415,6.11514401 L9.4018415,6.11514401 L7.33749093,6.11514401 C6.98986751,6.27375711 6.78712075,6.48688034 6.72925065,6.75451369 C6.67138054,7.02214704 6.66841118,9.38843602 6.72034254,13.8533806 C6.72034254,15.5011837 6.88214839,17.3116009 7.20576008,19.2846324 L5.58460752,21.9888272 L3.70958016,19.2846324 C4.08537518,17.1566151 4.27327269,15.282922 4.27327269,13.6635531 L3.43377358,12.9035744 L4.28218079,12.0252455 C4.31100967,8.71955904 4.31100967,6.96264844 4.28218079,6.75451369 C4.23893746,6.44231156 4.03865152,6.30830705 3.71848826,6.11514401 L1.69132923,6.11514401 L1.15474102,6.5615377 C1.03891569,6.65789407 0.868043682,6.64720638 0.765127903,6.53716821 L0.191996049,5.92437216 C0.0855950374,5.81060756 0.0905023165,5.63241981 0.203003442,5.52468375 L1.09677655,4.66876709 C1.14782548,4.61988037 1.2152487,4.59175365 1.28590527,4.58986886 L4.5946007,4.50160863 L4.5946007,4.50160863 L4.76223107,1.62854529 C4.55067524,1.43081789 4.44489732,1.16164871 4.44489732,0.821037745 C4.44489732,0.310121294 5.0009289,0 5.46922112,0 Z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@@ -0,0 +1,8 @@
<svg width="34" height="34" viewBox="0 0 34 34" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6.625 2.77295H30.3256C31.8396 2.77295 33.0669 3.99814 33.0669 5.5095C33.0669 7.02087 31.8396 8.24604 30.3256 8.24604H6.625V2.77295Z" fill="#B2CADB"/>
<path d="M12.4502 14.5747H30.3256C31.8396 14.5747 33.0669 15.7999 33.0669 17.3113C33.0669 18.8226 31.8396 20.0478 30.3256 20.0478H12.4502V14.5747Z" fill="#B2CADB"/>
<path d="M6.625 26.376H30.3256C31.8396 26.376 33.0669 27.6012 33.0669 29.1125C33.0669 30.6239 31.8396 31.8491 30.3256 31.8491H6.625V26.376Z" fill="#B2CADB"/>
<path d="M4.74009 10.2417C7.35797 10.2417 9.48018 8.12317 9.48018 5.50979C9.48018 2.8964 7.35797 0.777832 4.74009 0.777832C2.12221 0.777832 0 2.8964 0 5.50979C0 8.12317 2.12221 10.2417 4.74009 10.2417Z" fill="#47525B"/>
<path d="M13.4208 22.043C16.0387 22.043 18.1609 19.9244 18.1609 17.3111C18.1609 14.6977 16.0387 12.5791 13.4208 12.5791C10.8029 12.5791 8.68066 14.6977 8.68066 17.3111C8.68066 19.9244 10.8029 22.043 13.4208 22.043Z" fill="#47525B"/>
<path d="M4.74009 33.8448C7.35797 33.8448 9.48018 31.7262 9.48018 29.1128C9.48018 26.4994 7.35797 24.3809 4.74009 24.3809C2.12221 24.3809 0 26.4994 0 29.1128C0 31.7262 2.12221 33.8448 4.74009 33.8448Z" fill="#47525B"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1,5 +1,5 @@
# Uncomment this line to define a global platform for your project
platform :ios, '12.0'
platform :ios, '13.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

View File

@@ -4,6 +4,9 @@ PODS:
- connectivity_plus (0.0.1):
- Flutter
- FlutterMacOS
- cupertino_http (0.0.1):
- Flutter
- FlutterMacOS
- device_info_plus (0.0.1):
- Flutter
- DKImagePickerController/Core (4.3.9):
@@ -71,6 +74,8 @@ PODS:
- move_to_background (0.0.1):
- Flutter
- MTBBarcodeScanner (5.0.11)
- objective_c (0.0.1):
- Flutter
- OrderedSet (6.0.3)
- package_info_plus (0.4.5):
- Flutter
@@ -82,9 +87,9 @@ PODS:
- qr_code_scanner (0.2.0):
- Flutter
- MTBBarcodeScanner
- SDWebImage (5.20.0):
- SDWebImage/Core (= 5.20.0)
- SDWebImage/Core (5.20.0)
- SDWebImage (5.21.0):
- SDWebImage/Core (= 5.21.0)
- SDWebImage/Core (5.21.0)
- Sentry/HybridSDK (8.36.0)
- sentry_flutter (8.9.0):
- Flutter
@@ -126,6 +131,7 @@ PODS:
DEPENDENCIES:
- app_links (from `.symlinks/plugins/app_links/ios`)
- connectivity_plus (from `.symlinks/plugins/connectivity_plus/darwin`)
- cupertino_http (from `.symlinks/plugins/cupertino_http/darwin`)
- device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
- file_picker (from `.symlinks/plugins/file_picker/ios`)
- file_saver (from `.symlinks/plugins/file_saver/ios`)
@@ -140,6 +146,7 @@ DEPENDENCIES:
- fluttertoast (from `.symlinks/plugins/fluttertoast/ios`)
- local_auth_darwin (from `.symlinks/plugins/local_auth_darwin/darwin`)
- move_to_background (from `.symlinks/plugins/move_to_background/ios`)
- objective_c (from `.symlinks/plugins/objective_c/ios`)
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
- privacy_screen (from `.symlinks/plugins/privacy_screen/ios`)
@@ -169,6 +176,8 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/app_links/ios"
connectivity_plus:
:path: ".symlinks/plugins/connectivity_plus/darwin"
cupertino_http:
:path: ".symlinks/plugins/cupertino_http/darwin"
device_info_plus:
:path: ".symlinks/plugins/device_info_plus/ios"
file_picker:
@@ -197,6 +206,8 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/local_auth_darwin/darwin"
move_to_background:
:path: ".symlinks/plugins/move_to_background/ios"
objective_c:
:path: ".symlinks/plugins/objective_c/ios"
package_info_plus:
:path: ".symlinks/plugins/package_info_plus/ios"
path_provider_foundation:
@@ -223,6 +234,7 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
app_links: e7a6750a915a9e161c58d91bc610e8cd1d4d0ad0
connectivity_plus: ddd7f30999e1faaef5967c23d5b6d503d10434db
cupertino_http: 947a233f40cfea55167a49f2facc18434ea117ba
device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6
DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c
DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60
@@ -240,12 +252,13 @@ SPEC CHECKSUMS:
local_auth_darwin: 66e40372f1c29f383a314c738c7446e2f7fdadc3
move_to_background: 39a5b79b26d577b0372cbe8a8c55e7aa9fcd3a2d
MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb
objective_c: 77e887b5ba1827970907e10e832eec1683f3431d
OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94
package_info_plus: 58f0028419748fad15bf008b270aaa8e54380b1c
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
privacy_screen: 1a131c052ceb3c3659934b003b0d397c2381a24e
qr_code_scanner: bb67d64904c3b9658ada8c402e8b4d406d5d796e
SDWebImage: 73c6079366fea25fa4bb9640d5fb58f0893facd8
SDWebImage: f84b0feeb08d2d11e6a9b843cb06d75ebf5b8868
Sentry: f8374b5415bc38dfb5645941b3ae31230fbeae57
sentry_flutter: 0eb93e5279eb41e2392212afe1ccd2fecb4f8cbe
share_plus: 8875f4f2500512ea181eef553c3e27dba5135aad
@@ -258,6 +271,6 @@ SPEC CHECKSUMS:
Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e
url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe
PODFILE CHECKSUM: b4e3a7eabb03395b66e81fc061789f61526ee6bb
PODFILE CHECKSUM: 78f002751f1a8f65042b8da97902ba4124271c5a
COCOAPODS: 1.16.2

View File

@@ -366,6 +366,7 @@
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "Ente Auth";
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -440,6 +441,7 @@
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "Ente Auth";
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -608,6 +610,7 @@
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "Ente Auth";
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -682,6 +685,7 @@
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "Ente Auth";
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -850,6 +854,7 @@
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "Ente Auth";
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",

View File

@@ -8,6 +8,7 @@ import 'package:ente_auth/utils/package_info_util.dart';
import 'package:ente_auth/utils/platform_util.dart';
import 'package:fk_user_agent/fk_user_agent.dart';
import 'package:flutter/foundation.dart';
import 'package:native_dio_adapter/native_dio_adapter.dart';
import 'package:uuid/uuid.dart';
int kConnectTimeout = 15000;
@@ -50,6 +51,10 @@ class Network {
},
),
);
_dio.httpClientAdapter = NativeAdapter();
_enteDio.httpClientAdapter = NativeAdapter();
_setupInterceptors(endpoint);
Bus.instance.on<EndpointUpdatedEvent>().listen((event) {

View File

@@ -1,3 +0,0 @@
import 'package:ente_auth/events/event.dart';
class OpenedSettingsEvent extends Event {}

View File

@@ -1,17 +0,0 @@
import 'dart:typed_data';
import "package:json_annotation/json_annotation.dart";
class Uint8ListConverter implements JsonConverter<Uint8List, List<int>> {
const Uint8ListConverter();
@override
Uint8List fromJson(List<int>? json) {
return json == null ? Uint8List(0) : Uint8List.fromList(json);
}
@override
List<int> toJson(Uint8List object) {
return object.toList();
}
}

View File

@@ -482,7 +482,6 @@
"importFailureDescNew": "تعذر إعراب الملف المنتقى.",
"duplicateCodes": "رموز مكررة",
"noDuplicates": "✨ لا تكرارات",
"youveNoDuplicateCodesThatCanBeCleared": "ليس لديك رموز مكررة يمكن مسحها",
"deselectAll": "ألغِ تحديد الكل",
"selectAll": "حدد الكل",
"deleteDuplicates": "احذف التكرار"

View File

@@ -54,10 +54,26 @@
"viewLogsAction": "Паглядзець журнал",
"preparingLogsTitle": "Падрыхтоўка журнала...",
"emailLogsTitle": "Адправіць журнал па электроннай пошце",
"exportLogsAction": "Экспартаваць журнал",
"reportABug": "Паведаміць пра памылку",
"reportBug": "Паведаміць пра памылку",
"contactSupport": "Звярнуцца ў службу падтрымкі",
"blog": "Блог",
"verifyPassword": "Праверыць пароль",
"pleaseWait": "Пачакайце...",
"generatingEncryptionKeysTitle": "Генерацыя ключоў шыфравання...",
"recreatePassword": "Стварыць пароль паўторна",
"useRecoveryKey": "Выкарыстоўваць ключ аднаўлення",
"incorrectPasswordTitle": "Няправільны пароль",
"welcomeBack": "З вяртаннем!",
"changePassword": "Змяніць пароль",
"data": "Даныя",
"importCodes": "Імпартаваць коды",
"passwordEmptyError": "Пароль не можа быць пустым",
"importFromApp": "Імпартаваць коды з {appName}",
"exportCodes": "Экспартаваць коды",
"importLabel": "Імпарт",
"selectFile": "Выбраць файл",
"yes": "Так",
"no": "Не",
"email": "Электронная пошта",

View File

@@ -504,5 +504,11 @@
"deselectAll": "Демаркиране на всички",
"selectAll": "Избиране на всички",
"deleteDuplicates": "Изтриване на дубликатите",
"plainHTML": "Обикновен HTML"
"plainHTML": "Обикновен HTML",
"tellUsWhatYouThink": "Кажете ни какво мислите",
"supportEnte": "Подкрепете <bold-green>ente</bold-green>",
"giveUsAStarOnGithub": "Дайте ни звезда в GitHub",
"free5GB": "5GB безплатни в <bold-green>ente</bold-green> Photos",
"freeStorageOffer": "10% отстъпка в <bold-green>ente</bold-green> Photos",
"freeStorageOfferDescription": "Използвайте промокод „AUTH“, за да получите 10% отстъпка през първата година"
}

View File

@@ -499,14 +499,12 @@
"appLockOfflineModeWarning": "Has triat procedir sense còpies de seguretat. Si oblides el bloqueig de l'aplicació, no podràs accedir a les teves dades.",
"duplicateCodes": "Codis duplicats",
"noDuplicates": "✨ Sense duplicats",
"youveNoDuplicateCodesThatCanBeCleared": "No teniu codis duplicats que es puguin esborrar",
"deduplicateCodes": "Desduplica codis",
"deselectAll": "Desselecciona-ho tot",
"selectAll": "Seleccionar-ho tot",
"deleteDuplicates": "Elimina duplicats",
"plainHTML": "HTML pla",
"tellUsWhatYouThink": "Digueu-nos què us sembla",
"dropReview": "Deixa una ressenya a l'App/Play Store",
"supportEnte": "Donar suport a <bold-green>ente</bold-green>",
"giveUsAStarOnGithub": "Dona'ns una estrella a Github",
"free5GB": "5 GB gratuïts a <bold-green>ente</bold-green> Photos",

View File

@@ -495,7 +495,6 @@
"appLockOfflineModeWarning": "Zvolili jste si pokračování bez zálohování. Pokud zapomenete heslo do aplikace, přístup k datům bude uzamčen.",
"duplicateCodes": "Duplikovat kódy",
"noDuplicates": "✨ Žádné duplikáty",
"youveNoDuplicateCodesThatCanBeCleared": "Nemáte žádné duplicitní kódy k odstranění",
"deduplicateCodes": "Deduplikovat kódy",
"deselectAll": "Zrušit výběr všech položek",
"selectAll": "Vybrat vše",

View File

@@ -147,6 +147,8 @@
"leaveFamily": "Familie verlassen",
"leaveFamilyMessage": "Sind Sie sicher, dass Sie den Familien-Plan verlassen wollen?",
"inFamilyPlanMessage": "Sie haben einen Familien-Plan!",
"hintForMobile": "Lange drücken, um den Code zu bearbeiten oder zu entfernen.",
"hintForDesktop": "Klicken Sie mit der rechten Maustaste auf einen Code zum Bearbeiten oder Entfernen.",
"scan": "Scannen",
"scanACode": "Scan einen Code",
"verify": "Überprüfen Sie",
@@ -156,6 +158,7 @@
"twoFactorAuthTitle": "Zwei-Faktor-Authentifizierung",
"passkeyAuthTitle": "Passkey Authentifizierung",
"verifyPasskey": "Passkey verifizieren",
"loginWithTOTP": "Mit TOTP anmelden",
"recoverAccount": "Konto wiederherstellen",
"enterRecoveryKeyHint": "Geben Sie Ihren Wiederherstellungsschlüssel ein",
"recover": "Wiederherstellen",
@@ -258,6 +261,8 @@
"yesLogout": "Ja ausloggen",
"exit": "Schließen",
"theme": "Theme",
"lightTheme": "Hell",
"darkTheme": "Dunkel",
"systemTheme": "System",
"verifyingRecoveryKey": "Verifiziere Wiederherstellungsschlüssel...",
"recoveryKeyVerified": "Wiederherstellungsschlüssel verifiziert",
@@ -330,6 +335,9 @@
}
},
"manualSort": "Benutzerdefiniert",
"editOrder": "Reihenfolge bearbeiten",
"mostFrequentlyUsed": "Häufig verwendet",
"mostRecentlyUsed": "Zuletzt verwendet",
"activeSessions": "Aktive Sitzungen",
"somethingWentWrongPleaseTryAgain": "Ein Fehler ist aufgetreten, bitte versuche es erneut",
"thisWillLogYouOutOfThisDevice": "Dadurch wirst du von diesem Gerät abgemeldet!",
@@ -449,6 +457,9 @@
"customEndpoint": "Mit {endpoint} verbunden",
"pinText": "Anpinnen",
"unpinText": "Lösen",
"pinnedCodeMessage": "{code} wurde angepinnt",
"unpinnedCodeMessage": "{code} wird nicht weiter angepinnt",
"pinned": "Angeheftet",
"tags": "Tags",
"createNewTag": "Neuen Tag erstellen",
"tag": "Tag",
@@ -484,8 +495,20 @@
"importFailureDescNew": "Die ausgewählte Datei konnte nicht verarbeitet werden.",
"appLockNotEnabled": "App-Sperre nicht aktiviert",
"appLockNotEnabledDescription": "Bitte aktivieren Sie die App-Sperre über Security > App-Sperre",
"authToViewPasskey": "Bitte authentifizieren, um deinen Passkey zu sehen",
"duplicateCodes": "Doppelte Codes",
"noDuplicates": "✨ Keine Duplikate",
"youveNoDuplicateCodesThatCanBeCleared": "Du hast keine doppelten Codes, die bereinigt werden können",
"deselectAll": "Alle abwählen",
"selectAll": "Alles auswählen"
"selectAll": "Alles auswählen",
"deleteDuplicates": "Duplikate löschen",
"plainHTML": "Reines HTML",
"tellUsWhatYouThink": "Sagen Sie uns, was Sie denken",
"dropReviewAndroid": "Hinterlasse eine Rezension im Google Play Store",
"supportEnte": "Support <bold-green>ente</bold-green>",
"giveUsAStarOnGithub": "Gib uns einen Stern auf Github",
"free5GB": "5GB kostenlos auf <bold-green>ente</bold-green> Photos",
"loginWithAuthAccount": "Mit Ihrem Auth Account anmelden",
"freeStorageOffer": "10% Rabatt für <bold-green>ente</bold-green> Photos",
"freeStorageOfferDescription": "Verwende den Code \"AUTH\", um 10% im 1. Jahr zu sparen"
}

View File

@@ -499,14 +499,15 @@
"appLockOfflineModeWarning": "You have chosen to proceed without backups. If you forget your applock, you will be locked out from accessing your data.",
"duplicateCodes": "Duplicate codes",
"noDuplicates": "✨ No duplicates",
"youveNoDuplicateCodesThatCanBeCleared": "You've no duplicate codes that can be cleared",
"youveNoDuplicateCodesThatCanBeCleared": "You don't have any duplicate codes that can be cleared",
"deduplicateCodes": "Deduplicate codes",
"deselectAll": "Deselect all",
"selectAll": "Select all",
"deleteDuplicates": "Delete duplicates",
"plainHTML": "Plain HTML",
"tellUsWhatYouThink": "Tell us what you think",
"dropReview": "Drop a review on the App/Play Store",
"dropReviewiOS": "Drop a review on the App Store",
"dropReviewAndroid": "Drop a review on the Play Store",
"supportEnte": "Support <bold-green>ente</bold-green>",
"giveUsAStarOnGithub": "Give us a star on Github",
"free5GB": "5GB free on <bold-green>ente</bold-green> Photos",

View File

@@ -506,10 +506,10 @@
"deleteDuplicates": "Eliminar duplicados",
"plainHTML": "HTML plano",
"tellUsWhatYouThink": "Cuéntanos cuál es su opinión",
"dropReview": "Danos una reseña en la App/Play Store",
"supportEnte": "Apoya a <bold-green>ente</bold-green>",
"giveUsAStarOnGithub": "Danos una estrella en GitHub",
"free5GB": "5 GB gratis en <bold-green>ente</bold-green> Fotos",
"loginWithAuthAccount": "Inicia sesión con tu cuenta de Auth",
"freeStorageOffer": "10% de descuento en <bold-green>ente</bold-green> fotos",
"freeStorageOfferDescription": "Usa el cupón \"AUTH\" para obtener un 10% de descuento en el primer año"
}

View File

@@ -499,14 +499,12 @@
"appLockOfflineModeWarning": "Vous avez choisi de fonctionner sans sauvegardes. Si vous oubliez votre outil Applock, vous serez bloqué dans l'accès à vos données.",
"duplicateCodes": "Codes dupliqués",
"noDuplicates": "✨ Pas de doublons",
"youveNoDuplicateCodesThatCanBeCleared": "Vous n'avez aucun code en doublon pouvant être supprimé",
"deduplicateCodes": "Codes dédupliqués",
"deselectAll": "Tout désélectionner",
"selectAll": "Tout sélectionner",
"deleteDuplicates": "Supprimer les doublons",
"plainHTML": "HTML Pur",
"tellUsWhatYouThink": "Dites-nous ce que vous pensez",
"dropReview": "Déposez un avis sur l'App/Play Store",
"supportEnte": "Soutenir <bold-green>Ente</bold-green>",
"giveUsAStarOnGithub": "Donnez-nous une étoile sur Github",
"free5GB": "5 Go gratuits sur <bold-green>Ente</bold-green> Photos",

View File

@@ -6,12 +6,15 @@
"@counterAppBarTitle": {
"description": "Text shown in the AppBar of the Counter Page"
},
"onBoardingBody": "अपने 2FA कोड का सुरक्षित रूप से बैकअप लें",
"onBoardingGetStarted": "प्रारंभ करें",
"setupFirstAccount": "अपना पहला अकाउंट सेटअप करें",
"importScanQrCode": "एक QR कोड स्कैन करें",
"qrCode": "QR कोड",
"importEnterSetupKey": "",
"importAccountPageTitle": "अकाउंट विवरण डालें",
"secretCanNotBeEmpty": "सीक्रेट खाली नहीं हो सकता है",
"bothIssuerAndAccountCanNotBeEmpty": "दोनों इश्यूअर और अकाउंट ख़ाली नहीं हो सकते है",
"incorrectDetails": "ग़लत विवरण",
"pleaseVerifyDetails": "कृपया विवरण सत्यापित करें और पुनः प्रयास करें",
"codeIssuerHint": "ज़ारीकर्ता",
@@ -32,18 +35,24 @@
},
"codeAccountHint": "अकाउंट (you@domain.com)",
"codeTagHint": "टैग",
"accountKeyType": "की का प्रकार",
"sessionExpired": "सत्र की अवधि समाप्त",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
},
"pleaseLoginAgain": "कृपया फिर से लॉगिन करें",
"loggingOut": "लॉग आउट हो रहा है...",
"timeBasedKeyType": "समय आधारित (TOTP)",
"counterBasedKeyType": "काउंटर आधारित (HOTP)",
"saveAction": "सेव करें",
"nextTotpTitle": "अगला",
"deleteCodeTitle": "कोड डिलीट करें?",
"deleteCodeMessage": "क्या आप वाकई इस कोड को हटाना चाहते हैं? इस क्रिया को वापस नहीं किया जा सकता",
"trashCode": "?",
"trashCodeMessage": "क्या आप वाकई {account} के लिए कोड नष्ट करना चाहते हैं?",
"trash": "नष्ट करें",
"viewLogsAction": "लॉग देखें",
"sendLogsDescription": "यह आपकी समस्या को सुलझाने में हमारी सहायता के लिए लॉग भेजेगा। हालाँकि हम यह सुनिश्चित करने के लिए सावधानी बरतते हैं कि संवेदनशील जानकारी लॉग न हो, हम आपको इन लॉग को साझा करने से पहले देखने के लिए प्रोत्साहित करते हैं।",
"preparingLogsTitle": "लॉग तैयार किये जा रहे हैं...",
"emailLogsTitle": "लॉग ईमेल करें",
"emailLogsMessage": "कृपया {email} पर लॉग ईमेल करें",
@@ -57,6 +66,7 @@
"copyEmailAction": "ईमेल कॉपी करें",
"exportLogsAction": "लॉग एक्सपोर्ट करें",
"reportABug": "बग रिपोर्ट करें",
"crashAndErrorReporting": "क्रैश एवं त्रुटि रिपोर्टिंग",
"reportBug": "बग रिपोर्ट करें",
"emailUsMessage": "कृपया हमें {email} पर ईमेल करें",
"@emailUsMessage": {
@@ -69,14 +79,37 @@
"contactSupport": "सपोर्ट टीम से संपर्क करें",
"rateUsOnStore": "हमें {storeName} पर रेट करें",
"blog": "ब्लॉग",
"merchandise": "मर्चेंडाइज़",
"verifyPassword": "पासवर्ड सत्यापित करें",
"pleaseWait": "कृपया प्रतीक्षा करें...",
"generatingEncryptionKeysTitle": "एन्क्रिप्शन कुंजियाँ उत्पन्न हो रही हैं...",
"recreatePassword": "पासवर्ड दोबारा बनाएं",
"recreatePasswordMessage": "वर्तमान डिवाइस आपके पासवर्ड को सत्यापित करने के लिए पर्याप्त शक्तिशाली नहीं है, इसलिए हमें इसे सभी डिवाइसों के साथ काम करने वाले तरीके से एक बार पुन: उत्पन्न करने की आवश्यकता है। \n\nकृपया अपनी पुनर्प्राप्ति कुंजी का उपयोग करके लॉगिन करें और अपना पासवर्ड पुनः बनाएं (यदि आप चाहें तो उसी का दोबारा उपयोग कर सकते हैं)।",
"useRecoveryKey": "रिकवरी कुंजी का उपयोग करें",
"incorrectPasswordTitle": "ग़लत पासवर्ड",
"welcomeBack": "आपका पुनः स्वागत है!",
"emailAlreadyRegistered": "ईमेल पहले से ही पंजीकृत है।",
"emailNotRegistered": "ईमेल पंजीकृत नहीं है।",
"madeWithLoveAtPrefix": " ❤️ से बनाया गया ",
"supportDevs": "हमें समर्थन देने के लिए <bold-green>ente</bold-green> की सदस्यता लें",
"supportDiscount": "पहले साल 10% छूट पाने के लिए कूपन कोड \"AUTH\" का उपयोग करें",
"changeEmail": "ईमेल बदलें",
"changePassword": "पासवर्ड बदलें",
"data": "डेटा",
"importCodes": "कोड आयात करें",
"importTypePlainText": "साधारण टेक्स्ट",
"importTypeEnteEncrypted": "Ente द्वारा एनक्रिप्टेड टेक्स्ट",
"passwordForDecryptingExport": "डीक्रिप्ट करने के लिए पासवर्ड",
"passwordEmptyError": "पासवर्ड रिक्त नहीं हो सकता है",
"importFromApp": "{appName} से कोड इंपोर्ट करें",
"importGoogleAuthGuide": "ट्रांसफर अकाउंट्स\" विकल्प का उपयोग करके अपने खातों को Google प्रमाणक से एक क्यूआर कोड में निर्यात करें। फिर किसी अन्य डिवाइस का उपयोग करके QR कोड को स्कैन करें।\n\nटिप: क्यूआर कोड की तस्वीर लेने के लिए आप अपने लैपटॉप के वेबकैम का उपयोग कर सकते हैं।",
"importSelectJsonFile": "JSON फाइल चुनें",
"importSelectAppExport": "{appName} की निर्यात फ़ाइल का चयन करें",
"importEnteEncGuide": "Ente से निर्यात की गई एन्क्रिप्टेड JSON फ़ाइल का चयन करें",
"importRaivoGuide": "Raivo की सेटिंग्स में \"एक्सपोर्ट ओटीपी टू जिप आर्काइव\" विकल्प का उपयोग करें।\n\nज़िप फ़ाइल निकालें और JSON फ़ाइल आयात करें।",
"importBitwardenGuide": "बिटवर्डन टूल्स के भीतर \"एक्सपोर्ट वॉल्ट\" विकल्प का उपयोग करें और अनएन्क्रिप्टेड JSON फ़ाइल आयात करें।",
"importAegisGuide": "Aegis की सेटिंग्स में \"एक्सपोर्ट द वॉल्ट\" विकल्प का उपयोग करें।\n\nयदि आपकी वॉल्ट एन्क्रिप्टेड है, तो आपको वॉल्ट को डिक्रिप्ट करने के लिए वॉल्ट पासवर्ड दर्ज करना होगा।",
"import2FasGuide": "2FAS में \"सेटिंग्स->बैकअप-एक्सपोर्ट\" विकल्प का उपयोग करें।\n\nयदि आपका बैकअप एन्क्रिप्टेड है, तो आपको बैकअप को डिक्रिप्ट करने के लिए पासवर्ड दर्ज करना होगा",
"importLabel": "इंपोर्ट",
"selectFile": "फ़ाइल का चयन करें",
"emailVerificationToggle": "ईमेल सत्यापन",

View File

@@ -499,14 +499,12 @@
"appLockOfflineModeWarning": "Úgy döntött, hogy biztonsági mentés nélkül folytatja. Ha elfelejti az alkalmazászárat, akkor nem férhet hozzá adataihoz.",
"duplicateCodes": "Ismétlődő kódok",
"noDuplicates": "✨Nincs ismétlődés",
"youveNoDuplicateCodesThatCanBeCleared": "Nincsenek ismétlődő kódjai, amelyeket törölni lehetne",
"deduplicateCodes": "Ismétlődő kódok",
"deselectAll": "Összes kijelölés megszüntetése",
"selectAll": "Összes kijelölése",
"deleteDuplicates": "Ismétlődések törlése",
"plainHTML": "Sima HTML kód",
"tellUsWhatYouThink": "Mondja el mit gondol",
"dropReview": "Írjon véleményt az App/Play Store-ban",
"supportEnte": "Támogassa <bold-green>ente <bold-green>",
"giveUsAStarOnGithub": "Adj nekünk egy csillagot a Githubon",
"free5GB": "5GB ingyen <bold-green>ente <bold-green> Photos",

View File

@@ -497,7 +497,6 @@
"appLockOfflineModeWarning": "Anda telah memilih untuk mengunci aplikasi tanpa cadangan apa pun. Jika Anda lupa kode Pengunci Apl Anda, Anda tidak akan dapat mengakses data-data Anda.",
"duplicateCodes": "Kode duplikat",
"noDuplicates": "✨ Tak ada duplikat",
"youveNoDuplicateCodesThatCanBeCleared": "Kamu tidak memiliki kode duplikat yang dapat dihapus",
"deduplicateCodes": "Hapus kode duplikat",
"deselectAll": "Batalkan semua pilihan",
"selectAll": "Pilih semua",

View File

@@ -504,5 +504,14 @@
"deselectAll": "Deselezionare tutti",
"selectAll": "Seleziona tutti",
"deleteDuplicates": "Elimina i duplicati",
"plainHTML": "HTML semplice"
"plainHTML": "HTML semplice",
"tellUsWhatYouThink": "Dicci cosa ne pensi",
"dropReviewiOS": "Lascia una recensione sull'App Store",
"dropReviewAndroid": "Lascia una recensione sul Play Store",
"supportEnte": "Supporta <bold-green>ente</bold-green>",
"giveUsAStarOnGithub": "Dacci una stella su Github",
"free5GB": "5GB gratis su <bold-green>ente</bold-green> Foto",
"loginWithAuthAccount": "Accedi con il tuo account Auth",
"freeStorageOffer": "10% di sconto su <bold-green>ente</bold-green> Foto",
"freeStorageOfferDescription": "Utilizzare il codice \"AUTH\" per ottenere il 10% di sconto al primo anno"
}

View File

@@ -506,7 +506,6 @@
"deleteDuplicates": "重複を削除",
"plainHTML": "Plain HTML",
"tellUsWhatYouThink": "ご意見をお聞かせください",
"dropReview": "App/Playストアにレビューを投稿する",
"supportEnte": "<bold-green>ente</bold-green>をサポートする",
"giveUsAStarOnGithub": "Githubで星をつける",
"free5GB": "<bold-green>ente</bold-green>フォトで5GB無料",

View File

@@ -499,7 +499,6 @@
"appLockOfflineModeWarning": "백업 없이 진행하는 것을 선택하셨습니다. App 잠금 방법을 잊어버리신 경우, 데이터에 접근하실 수 없게 됩니다.",
"duplicateCodes": "중복된 코드",
"noDuplicates": "✨ 중복 없음",
"youveNoDuplicateCodesThatCanBeCleared": "지울 수 있는 중복 코드가 없습니다",
"deduplicateCodes": "중복된 코드 제거",
"deselectAll": "모두 선택 해제",
"selectAll": "모두 선택",

View File

@@ -505,5 +505,10 @@
"selectAll": "Pasirinkti viską",
"deleteDuplicates": "Ištrinti dublikatus",
"plainHTML": "Grynasis HTML",
"tellUsWhatYouThink": "Pasakykite mums, ką manote",
"giveUsAStarOnGithub": "Suteikite mums žvaigždutę platformoje „Github“",
"free5GB": "5 GB nemokami programai „<bold-green>ente</bold-green>“ nuotraukos",
"loginWithAuthAccount": "Prisijungti su jūsų „Auth“ paskyra",
"freeStorageOffer": "10 % nuolaida programai „<bold-green>ente</bold-green>“ nuotraukos",
"freeStorageOfferDescription": "Naudokite kodą „AUTH“, kad gautumėte 10 % nuolaida pirmiesiems metams. "
}

View File

@@ -0,0 +1,69 @@
{
"account": "Konts",
"unlock": "Atbloķēt",
"codeSecretKeyHint": "Slepenā atslēga",
"notes": "Piezīmes",
"codeAccountHint": "Konts (jūs@domēns.lv)",
"codeTagHint": "Birka",
"saveAction": "Saglabāt",
"selectFile": "Atlasīt failu",
"ok": "Labi",
"cancel": "Atcelt",
"yes": "Jā",
"no": "Nē",
"email": "E-pasts",
"support": "Atbalsts",
"settings": "Iestatījumi",
"delete": "Dzēst",
"enterYourPasswordHint": "Ievadiet savu paroli",
"enterEmailHint": "Ievadiet savu e-pasta adresi",
"invalidEmailTitle": "Nederīga e-pasta adrese",
"invalidEmailMessage": "Lūdzu ievadiet derīgu e-pasta adresi.",
"deleteAccount": "Dzēst kontu",
"noDeleteAccountAction": "Nē, dzēst kontu",
"createNewAccount": "Izveidot jaunu kontu",
"weakStrength": "Vāja",
"strongStrength": "Spēcīga",
"moderateStrength": "Vidēji spēcīga",
"confirmPassword": "Apstiprināt paroli",
"close": "Aizvērt",
"selectLanguage": "Atlasīt valodu",
"language": "Valoda",
"security": "Drošība",
"search": "Meklēt",
"restore": "Atjaunot",
"error": "Kļūda",
"saveKey": "Saglabāt atslēgu",
"save": "Saglabāt",
"createAccount": "Izveidot kontu",
"password": "Parole",
"encryption": "Šifrēšana",
"howItWorks": "Kā tas darbojas",
"exit": "Iziet",
"invalidKey": "Nederīga atslēga",
"downloadUpdate": "Lejupielādēt",
"updateAvailable": "Pieejams atjauninājums",
"update": "Atjaunināt",
"warning": "Brīdinājums",
"thisDevice": "Šī ierīce",
"thisEmailIsAlreadyInUse": "Šis e-pasts jau tiek izmantots",
"emailChangedTo": "E-pasts nomainīts uz {newEmail}",
"enterPassword": "Ievadiet paroli",
"encrypted": "Šifrēts",
"confirmAccountDeleteTitle": "Apstiprināt konta dzēšanu",
"androidCancelButton": "Atcelt",
"@androidCancelButton": {
"description": "Message showed on a button that the user can click to leave the current dialog. It is used on Android side. Maximum 30 characters."
},
"noInternetConnection": "Nav interneta savienojums",
"developerSettings": "Izstrādātāja iestatījumi",
"pinText": "Piespraust",
"unpinText": "Atspraust",
"tags": "Birkas",
"createNewTag": "Izveidot jaunu birku",
"tag": "Birka",
"create": "Izveidot",
"editTag": "Rediģēt birku",
"deleteTagTitle": "Dzēst birku?",
"hideContent": "Slēpt saturu"
}

View File

@@ -1,4 +1,7 @@
{
"account": "അക്കൗണ്ട്",
"unlock": "അൺലോക്ക്",
"qrCode": "QR കോഡ്",
"blog": "ബ്ലോഗ്",
"verifyPassword": "പാസ്‌വേഡ് സ്ഥിരീകരിക്കുക",
"recreatePassword": "പാസ്‌വേഡ് പുനഃസൃഷ്ടിക്കുക",

View File

@@ -506,7 +506,6 @@
"deleteDuplicates": "Dubbelen verwijderen",
"plainHTML": "Alleen HTML",
"tellUsWhatYouThink": "Vertel ons wat je vindt",
"dropReview": "Laat een beoordeling achter in de App/Play Store",
"supportEnte": "Steun <bold-green>ente</bold-green>",
"giveUsAStarOnGithub": "Geef ons een ster op Github",
"free5GB": "5GB gratis op <bold-green>ente</bold-green> Photos",

View File

@@ -499,14 +499,15 @@
"appLockOfflineModeWarning": "Wybrano kontynuowanie bez kopii zapasowych. Jeśli zapomnisz blokady aplikacji, utracisz dostęp do swoich danych.",
"duplicateCodes": "Zduplikowane kody",
"noDuplicates": "✨ Brak duplikatów",
"youveNoDuplicateCodesThatCanBeCleared": "Nie masz duplikatów kodów, które mogą być wyczyszczone",
"youveNoDuplicateCodesThatCanBeCleared": "Nie masz żadnych duplikatów kodów do usunięcia",
"deduplicateCodes": "Deduplikuj kody",
"deselectAll": "Odznacz wszystko",
"selectAll": "Zaznacz wszystko",
"deleteDuplicates": "Usuń duplikaty",
"plainHTML": "Zwykły HTML",
"tellUsWhatYouThink": "Wyraź swoją opinię",
"dropReview": "Napisz recenzję w App Store/Play Store",
"dropReviewiOS": "Napisz recenzję w App Store",
"dropReviewAndroid": "Napisz recenzję w Play Store",
"supportEnte": "Wesprzyj <bold-green>ente</bold-green>",
"giveUsAStarOnGithub": "Daj nam gwiazdkę na Githubie",
"free5GB": "5 GB za darmo na zdjęcia <bold-green>ente</bold-green>",

View File

@@ -499,14 +499,15 @@
"appLockOfflineModeWarning": "Você prosseguiu sem cópias de segurança. Caso, se esqueça de seu aplicativo de bloqueio, você não poderá mais acessar seus dados.",
"duplicateCodes": "Duplicar códigos",
"noDuplicates": "✨ Sem duplicados",
"youveNoDuplicateCodesThatCanBeCleared": "Você não possui códigos duplicados para limpar",
"youveNoDuplicateCodesThatCanBeCleared": "Você não possui códigos duplicados que possam ser excluídos",
"deduplicateCodes": "Desduplicar códigos",
"deselectAll": "Deselecionar tudo",
"selectAll": "Selecionar tudo",
"deleteDuplicates": "Excluir duplicados",
"plainHTML": "HTML simples",
"tellUsWhatYouThink": "Diga-nos o que pensa",
"dropReview": "Deixe uma avaliação na App/Play Store",
"dropReviewiOS": "Deixe uma avaliação na App Store",
"dropReviewAndroid": "Deixe uma avaliação na Play Store",
"supportEnte": "Apoie o <bold-green>ente.io</bold-green>",
"giveUsAStarOnGithub": "Dê-nos uma estrela no Github",
"free5GB": "5GB grátis no <bold-green>ente</bold-green> Photos",

View File

@@ -493,5 +493,10 @@
"duplicateCodes": "Дублировать коды",
"noDuplicates": "✨ Дубликатов нет",
"selectAll": "Выбрать все",
"plainHTML": "Обычный HTML"
"plainHTML": "Обычный HTML",
"tellUsWhatYouThink": "Расскажите нам, что вы думаете",
"free5GB": "5GB бесплатно на <bold-green>ente</bold-green> фото",
"loginWithAuthAccount": "Войти с помощью учетной записи Auth",
"freeStorageOffer": "Скидка 10% на <bold-green>ente</bold-green> фото",
"freeStorageOfferDescription": "Используйте код \"AUTH\", чтобы получить скидку 10% в первый год"
}

View File

@@ -88,6 +88,8 @@
"useRecoveryKey": "Uporabi ključ za obnovo",
"incorrectPasswordTitle": "Nepravilno geslo",
"welcomeBack": "Dobrodošli nazaj!",
"emailAlreadyRegistered": "E-poštni naslov je že registriran.",
"emailNotRegistered": "E-poštni naslov ni registriran.",
"madeWithLoveAtPrefix": "ustvarjeno s ❤pri ",
"supportDevs": "Naročite se na <bold-green>ente</bold-green>, da nas podprete",
"supportDiscount": "Uporabite kupon \"AUTH\" za 10% popusta za prvo leto",
@@ -156,6 +158,7 @@
"twoFactorAuthTitle": "Dvojno preverjanja pristnosti",
"passkeyAuthTitle": "Potrditev ključa za dostop (passkey)",
"verifyPasskey": "Potrdite ključ za dostop (passkey)",
"loginWithTOTP": "Prijava z TOTP",
"recoverAccount": "Obnovi račun",
"enterRecoveryKeyHint": "Vnesite vaš ključ za obnovitev",
"recover": "Obnovi",
@@ -257,6 +260,10 @@
"areYouSureYouWantToLogout": "Ali ste prepričani, da se želite odjaviti?",
"yesLogout": "Ja, odjavi se",
"exit": "Izhod",
"theme": "Tema",
"lightTheme": "Svetla",
"darkTheme": "Temna",
"systemTheme": "Sistemska",
"verifyingRecoveryKey": "Preverjanje ključa za obnovitev",
"recoveryKeyVerified": "Ključ za obnovitev preverjen",
"recoveryKeySuccessBody": "Odlično! Vaš ključ za obnovitev je veljaven. Hvala za preverjanje.\n\nNe pozabite shraniti varnostno kopijo obnovitvenega ključa.",
@@ -327,6 +334,8 @@
}
}
},
"manualSort": "Po meri",
"editOrder": "Uredi vrstni red",
"mostFrequentlyUsed": "Pogosto uporabljeni",
"mostRecentlyUsed": "Nedavno uporabljeno",
"activeSessions": "Aktivne seje",
@@ -448,6 +457,8 @@
"customEndpoint": "Povezano na {endpoint}",
"pinText": "Pripni",
"unpinText": "Odpni",
"pinnedCodeMessage": "{code} je bila pripeta",
"unpinnedCodeMessage": "{code} je bila odpeta",
"pinned": "Pripeto",
"tags": "Oznake",
"createNewTag": "Ustvari novo oznako",
@@ -485,5 +496,20 @@
"appLockNotEnabled": "Zaklepanje aplikacije ni omogočeno",
"appLockNotEnabledDescription": "Prosimo, omogočite zaklepanje aplikacije v Nastavitve > Zaklepanje Aplikacije (Security > App Lock)",
"authToViewPasskey": "Da vidite passkey, se overite",
"appLockOfflineModeWarning": "Odločili ste se, da boste nadaljevali brez varnostnih kopij. Če boste pozabili geslo za odklepanje aplikacije, bo dostop do vaših podatkov onemogočen."
"appLockOfflineModeWarning": "Odločili ste se, da boste nadaljevali brez varnostnih kopij. Če boste pozabili geslo za odklepanje aplikacije, bo dostop do vaših podatkov onemogočen.",
"duplicateCodes": "Podvojene kode",
"noDuplicates": "✨ Ni duplikatov",
"youveNoDuplicateCodesThatCanBeCleared": "Nimate nobenih podvojenih kod, ki bi jih bilo mogoče izbrisati",
"deduplicateCodes": "Dedupliciraj kode",
"deselectAll": "Prekliči celoten izbor",
"selectAll": "Izberi vse",
"deleteDuplicates": "Izbriši dvojnike",
"plainHTML": "Navadni HTML",
"tellUsWhatYouThink": "Povejte nam kaj mislite",
"supportEnte": "Podpiraj <bold-green>ente</bold-green>",
"giveUsAStarOnGithub": "Dajte nam zvezdico na Githubu",
"free5GB": "5 GB zastonj na <bold-green>ente</bold-green> fotografije",
"loginWithAuthAccount": "Prijavite se s svojim Auth računom",
"freeStorageOffer": "10 % popust na <bold-green>ente</bold-green> fotografije",
"freeStorageOfferDescription": "Uporabite kupon \"AUTH\" za 10% popusta za prvo leto"
}

View File

@@ -267,11 +267,14 @@
"verifyingRecoveryKey": "Verifierar återställningsnyckel...",
"recoveryKeyVerified": "Återställningsnyckel verifierad",
"recoveryKeySuccessBody": "Grymt! Din återställningsnyckel är giltig. Tack för att du verifierade.\n\nKom ihåg att hålla din återställningsnyckel säker med backups.",
"invalidRecoveryKey": "Återställningsnyckeln du angav är inte giltig. Kontrollera att den innehåller 24 ord och kontrollera stavningen av varje ord.\n\nOm du har angett en äldre återställningskod, se till att den är 64 tecken lång, och kontrollera var och en av bokstäverna.",
"recreatePasswordTitle": "Återskapa lösenord",
"recreatePasswordBody": "Denna enhet är inte tillräckligt kraftfull för att verifiera ditt lösenord, men vi kan återskapa det på ett sätt som fungerar med alla enheter.\n\nLogga in med din återställningsnyckel och återskapa ditt lösenord (du kan använda samma igen om du vill).",
"invalidKey": "Ogiltig nyckel",
"tryAgain": "Försök igen",
"viewRecoveryKey": "Visa återställningsnyckel",
"confirmRecoveryKey": "Bekräfta återställningsnyckel",
"recoveryKeyVerifyReason": "Din återställningsnyckel är det enda sättet att återställa dina foton om du glömmer ditt lösenord. Du hittar din återställningsnyckel i Inställningar > Säkerhet.\n\nAnge din återställningsnyckel här för att verifiera att du har sparat den ordentligt.",
"confirmYourRecoveryKey": "Bekräfta din återställningsnyckel",
"confirm": "Bekräfta",
"emailYourLogs": "Maila dina loggar",
@@ -279,6 +282,10 @@
"copyEmailAddress": "Kopiera e-postadress",
"exportLogs": "Exportera loggar",
"enterYourRecoveryKey": "Ange din återställningsnyckel",
"tempErrorContactSupportIfPersists": "Det ser ut som om något gick fel. Försök igen efter en stund. Om felet kvarstår, vänligen kontakta vår support.",
"networkHostLookUpErr": "Det gick inte att ansluta till Ente, kontrollera dina nätverksinställningar och kontakta supporten om felet kvarstår.",
"networkConnectionRefusedErr": "Det gick inte att ansluta till Ente, försök igen om en stund. Om felet kvarstår, vänligen kontakta support.",
"itLooksLikeSomethingWentWrongPleaseRetryAfterSome": "Det ser ut som om något gick fel. Försök igen efter en stund. Om felet kvarstår, vänligen kontakta vår support.",
"about": "Om",
"weAreOpenSource": "Vi är öppen källkod!",
"privacy": "Sekretess",
@@ -292,6 +299,7 @@
"checking": "Kontrollerar ...",
"youAreOnTheLatestVersion": "Du är på den senaste versionen",
"warning": "Varning",
"exportWarningDesc": "Den exporterade filen innehåller känslig information. Förvara den på ett säkert sätt.",
"iUnderStand": "Jag förstår",
"@iUnderStand": {
"description": "Text for the button to confirm the user understands the warning"
@@ -309,30 +317,49 @@
}
},
"sorry": "Tyvärr",
"importFailureDesc": "Det gick inte att tolka den valda filen.\nSkriv till support@ente.io om du behöver hjälp!",
"pendingSyncs": "Varning",
"pendingSyncsWarningBody": "En del av dina koder har inte säkerhetskopierats.\n\nSe till att du har en säkerhetskopia för dessa koder innan du loggar ut.",
"checkInboxAndSpamFolder": "Vänligen kontrollera din inkorg (och skräppost) för att slutföra verifieringen",
"tapToEnterCode": "Tryck för att ange kod",
"resendEmail": "Skicka e-post igen",
"weHaveSendEmailTo": "Vi har skickat ett mail till <green>{email}</green>",
"@weHaveSendEmailTo": {
"description": "Text to indicate that we have sent a mail to the user",
"placeholders": {
"email": {
"description": "The email address of the user",
"type": "String",
"example": "example@ente.io"
}
}
},
"manualSort": "Anpassad",
"editOrder": "Redigera ordning",
"mostFrequentlyUsed": "Ofta använd",
"mostRecentlyUsed": "Senast använd",
"activeSessions": "Aktiva sessioner",
"somethingWentWrongPleaseTryAgain": "Något gick fel, vänligen försök igen",
"thisWillLogYouOutOfThisDevice": "Detta kommer att logga ut dig från den här enheten!",
"thisWillLogYouOutOfTheFollowingDevice": "Detta kommer att logga ut dig från följande enhet:",
"terminateSession": "Avsluta session?",
"terminate": "Avsluta",
"thisDevice": "Den här enheten",
"toResetVerifyEmail": "För att återställa ditt lösenord måste du först bekräfta din e-postadress.",
"thisEmailIsAlreadyInUse": "Denna e-postadress används redan",
"verificationFailedPleaseTryAgain": "Verifiering misslyckades, vänligen försök igen",
"yourVerificationCodeHasExpired": "Din verifieringskod har upphört att gälla",
"incorrectCode": "Felaktig kod",
"sorryTheCodeYouveEnteredIsIncorrect": "Tyvärr, den kod som du har angett är felaktig",
"emailChangedTo": "E-post ändrad till {newEmail}",
"authenticationFailedPleaseTryAgain": "Autentisering misslyckades, vänligen försök igen",
"authenticationSuccessful": "Autentisering lyckades!",
"twofactorAuthenticationSuccessfullyReset": "Tvåfaktorsautentisering återställd",
"incorrectRecoveryKey": "Felaktig återställningsnyckel",
"theRecoveryKeyYouEnteredIsIncorrect": "Återställningsnyckeln du angav är felaktig",
"enterPassword": "Ange lösenord",
"selectExportFormat": "Välj exportformat",
"exportDialogDesc": "Krypterad export skyddas av ett lösenord som du väljer.",
"encrypted": "Krypterad",
"plainText": "Enkel text",
"passwordToEncryptExport": "Lösenord för att kryptera export",
@@ -340,9 +367,11 @@
"useOffline": "Använd utan säkerhetskopior",
"signInToBackup": "Logga in för att säkerhetskopiera dina koder",
"singIn": "Logga in",
"sigInBackupReminder": "Vänligen exportera dina koder för att säkerställa att du har en säkerhetskopia som du kan återställa från.",
"showLargeIcons": "Visa stora ikoner",
"compactMode": "Kompakt läge",
"shouldHideCode": "Dölj koder",
"doubleTapToViewHiddenCode": "Du kan dubbeltrycka på en post för att visa koden",
"focusOnSearchBar": "Fokusera på sök vid appstart",
"minimizeAppOnCopy": "Minimera appen vid kopiering",
"editCodeAuthMessage": "Autentisera för att redigera kod",
@@ -451,7 +480,6 @@
"appLockOfflineModeWarning": "Du har valt att fortsätta utan säkerhetskopior. Om du glömmer ditt applås, kommer du att bli utelåst från att komma åt dina data.",
"duplicateCodes": "Dubblettkoder",
"noDuplicates": "✨ Inga dubbletter",
"youveNoDuplicateCodesThatCanBeCleared": "Du har inga dubblettkoder som kan rensas bort",
"deduplicateCodes": "Deduplicera koder",
"deselectAll": "Avmarkera alla",
"selectAll": "Markera alla",

View File

@@ -499,7 +499,6 @@
"appLockOfflineModeWarning": "Yedekleme olmadan devam etmeyi seçtiniz. Eğer uygulama parolanızı unutursanız, verilerinize erişiminiz engellenir.",
"duplicateCodes": "Yinelenen kodlar",
"noDuplicates": "✨ Yinelenen yok",
"youveNoDuplicateCodesThatCanBeCleared": "Temizlenebilecek yinelenen kodunuz yok",
"deduplicateCodes": "Kodları tekilleştir",
"deselectAll": "Tümünün seçimini kaldır",
"selectAll": "Tümünü seç",

View File

@@ -497,7 +497,6 @@
"appLockOfflineModeWarning": "Ви обрали продовжити без резервних копій. Якщо ви забудете свій пароль, доступ до ваших даних буде заблоковано.",
"duplicateCodes": "Дублікати кодів",
"noDuplicates": "✨ Немає дублікатів",
"youveNoDuplicateCodesThatCanBeCleared": "У вас немає дублікатів кодів, які можна очистити",
"deduplicateCodes": "Дедуплікувати коди",
"deselectAll": "Зняти виділення",
"selectAll": "Вибрати все",

View File

@@ -499,10 +499,17 @@
"appLockOfflineModeWarning": "Bạn đã chọn tiếp tục mà không có bản sao lưu. Nếu bạn quên khóa ứng dụng, bạn sẽ bị khóa khỏi việc truy cập dữ liệu của mình.",
"duplicateCodes": "Mã trùng lặp",
"noDuplicates": "✨ Không có trùng lặp",
"youveNoDuplicateCodesThatCanBeCleared": "Bạn không có mã trùng lặp nào có thể được xóa",
"youveNoDuplicateCodesThatCanBeCleared": "Bạn không có mã nào bị trùng để xóa",
"deduplicateCodes": "Loại bỏ mã trùng lặp",
"deselectAll": "Bỏ chọn tất cả",
"selectAll": "Chọn tất cả",
"deleteDuplicates": "Xóa trùng lặp",
"plainHTML": "HTML thuần"
"plainHTML": "HTML thuần",
"tellUsWhatYouThink": "Hãy cho chúng tôi biết bạn nghĩ gì",
"supportEnte": "Hỗ trợ <bold-green>ente</bold-green>",
"giveUsAStarOnGithub": "Cho chúng tôi ngôi sao trên Github",
"free5GB": "Miễn phí 5GB cho <bold-green>ente</bold-green> Hình ảnh",
"loginWithAuthAccount": "Đăng nhập bằng tài khoản Ente Auth",
"freeStorageOffer": "Giảm giá 10% cho <bold-green>ente</bold-green> Hình ảnh",
"freeStorageOfferDescription": "Sử dụng mã giảm giá \"AUTH\" để được giảm 10% trong năm đầu tiên"
}

View File

@@ -499,7 +499,6 @@
"appLockOfflineModeWarning": "您已选择继续而不备份。如果您忘记了应用锁,您将无法访问数据。",
"duplicateCodes": "重复代码",
"noDuplicates": "✨ 没有重复",
"youveNoDuplicateCodesThatCanBeCleared": "您没有可清除的重复代码",
"deduplicateCodes": "删除重复代码",
"deselectAll": "取消全选",
"selectAll": "全选",

View File

@@ -0,0 +1,517 @@
{
"account": "账户",
"unlock": "解锁",
"recoveryKey": "恢复密钥",
"counterAppBarTitle": "计数器",
"@counterAppBarTitle": {
"description": "Text shown in the AppBar of the Counter Page"
},
"onBoardingBody": "妥善保管您的两步验证码",
"onBoardingGetStarted": "开始",
"setupFirstAccount": "设置您的第一个账户",
"importScanQrCode": "扫描二维码",
"qrCode": "二维码",
"importEnterSetupKey": "输入设置密钥",
"importAccountPageTitle": "输入账户详细信息",
"secretCanNotBeEmpty": "密码不能为空",
"bothIssuerAndAccountCanNotBeEmpty": "发行人和账户均不能为空",
"incorrectDetails": "详细信息不正确",
"pleaseVerifyDetails": "请验证详细信息并重试",
"codeIssuerHint": "发行人",
"codeSecretKeyHint": "密钥",
"secret": "密钥",
"all": "全部",
"notes": "备注",
"notesLengthLimit": "备注最多可以包含 {count} 个字符",
"@notesLengthLimit": {
"description": "Text to indicate the maximum number of characters allowed for notes",
"placeholders": {
"count": {
"description": "The maximum number of characters allowed for notes",
"type": "int",
"example": "100"
}
}
},
"codeAccountHint": "账户 (you@domain.com)",
"codeTagHint": "标签",
"accountKeyType": "密钥类型",
"sessionExpired": "会话已过期",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
},
"pleaseLoginAgain": "请重新登录",
"loggingOut": "正在登出...",
"timeBasedKeyType": "基于时间 (TOTP)",
"counterBasedKeyType": "基于计数器 (HOTP)",
"saveAction": "保存",
"nextTotpTitle": "下一个",
"deleteCodeTitle": "要删除代码吗?",
"deleteCodeMessage": "您确定要删除此代码吗?此操作不可逆。",
"trashCode": "要删除代码吗?",
"trashCodeMessage": "您确定要删除 {account} 的代码吗?",
"trash": "删除",
"viewLogsAction": "查看日志",
"sendLogsDescription": "这将发送日志以帮助我们调试您的问题。虽然我们采取预防措施确保不记录敏感信息,但我们建议您在共享这些日志之前先查看它们。",
"preparingLogsTitle": "正在准备日志...",
"emailLogsTitle": "电子邮件日志",
"emailLogsMessage": "请将日志发送至 {email}",
"@emailLogsMessage": {
"placeholders": {
"email": {
"type": "String"
}
}
},
"copyEmailAction": "复制电子邮件",
"exportLogsAction": "导出日志",
"reportABug": "报告错误",
"crashAndErrorReporting": "崩溃和错误报告",
"reportBug": "报告错误",
"emailUsMessage": "请给我们发送电子邮件至 {email}",
"@emailUsMessage": {
"placeholders": {
"email": {
"type": "String"
}
}
},
"contactSupport": "联系支持",
"rateUsOnStore": "在 {storeName} 上给我们评分",
"blog": "博客",
"merchandise": "商品",
"verifyPassword": "验证密码",
"pleaseWait": "请稍候...",
"generatingEncryptionKeysTitle": "正在生成加密密钥...",
"recreatePassword": "重新创建密码",
"recreatePasswordMessage": "当前设备的功能不足以验证您的密码,因此我们需要以一种适用于所有设备的方式重新生成一次密码。\n\n请使用您的恢复密钥登录并重新生成您的密码如果您愿意可以再次使用相同的密码。",
"useRecoveryKey": "使用恢复密钥",
"incorrectPasswordTitle": "密码错误",
"welcomeBack": "欢迎回来!",
"emailAlreadyRegistered": "电子邮件地址已被注册。",
"emailNotRegistered": "电子邮件地址未注册。",
"madeWithLoveAtPrefix": "用❤️制作 ",
"supportDevs": "订阅 <bold-green>ente</bold-green> 以支持我们",
"supportDiscount": "使用优惠码“AUTH”可享受首年 10% 折扣",
"changeEmail": "修改邮箱",
"changePassword": "修改密码",
"data": "数据",
"importCodes": "导入代码",
"importTypePlainText": "纯文本",
"importTypeEnteEncrypted": "Ente 加密导出",
"passwordForDecryptingExport": "用来解密导出的密码",
"passwordEmptyError": "密码不能为空",
"importFromApp": "从 {appName} 导入代码",
"importGoogleAuthGuide": "使用“转移账户”选项将您的账户从 Google Authenticator 导出到二维码。然后使用另一台设备扫描二维码。\n\n提示您可以使用笔记本电脑的摄像头拍摄二维码的照片。",
"importSelectJsonFile": "选择 JSON 文件",
"importSelectAppExport": "选择 {appName} 的导出文件",
"importEnteEncGuide": "选择从 Ente 导出的 JSON 加密文件",
"importRaivoGuide": "使用 Raivo 设置中的“将 OTP 导出到 Zip 存档”选项。\n\n解压 zip 文件并导入 JSON 文件。",
"importBitwardenGuide": "使用 Bitwarden 工具中的“导出密码库”选项并导入未加密的 JSON 文件。",
"importAegisGuide": "使用 Aegis 设置中的“导出密码库”选项。\n\n如果您的密码库已加密则需要输入密码库密码才能解密密码库。",
"import2FasGuide": "使用 2FAS 中的“设置 -> 备份 -> 导出”选项。\n\n如果您的备份已加密则需要输入密码来解密备份",
"importLastpassGuide": "使用 Lastpass Authenticator 设置中的“转移账户”选项,然后按“将账户导出到文件”。导入下载的 JSON。",
"exportCodes": "导出代码",
"importLabel": "导入",
"importInstruction": "请选择一个包含以下格式的代码列表的文件",
"importCodeDelimiterInfo": "代码可以用逗号或换行符分隔",
"selectFile": "选择文件",
"emailVerificationToggle": "电子邮件验证",
"emailVerificationEnableWarning": "为避免被锁在您的账户之外,请在启用电子邮件验证之前确保在 Ente Auth 之外存储电子邮件两步验证的副本。",
"authToChangeEmailVerificationSetting": "请进行身份验证以更改电子邮件验证",
"authenticateGeneric": "请验证",
"authToViewYourRecoveryKey": "请验证以查看您的恢复密钥",
"authToChangeYourEmail": "请验证以更改您的电子邮件",
"authToChangeYourPassword": "请验证以更改密码",
"authToViewSecrets": "请进行身份验证以查看您的密钥",
"authToInitiateSignIn": "请进行身份验证以启动登录进行备份。",
"ok": "确定",
"cancel": "取消",
"yes": "是",
"no": "否",
"email": "电子邮件地址",
"support": "支持",
"general": "通用",
"settings": "设置",
"copied": "已复制",
"pleaseTryAgain": "请重试",
"existingUser": "已注册用户",
"newUser": "初来 Ente",
"delete": "删除",
"enterYourPasswordHint": "输入您的密码",
"forgotPassword": "忘记密码",
"oops": "哎呀",
"suggestFeatures": "建议新功能",
"faq": "常见问题",
"somethingWentWrongMessage": "出了点问题,请重试",
"leaveFamily": "离开家庭",
"leaveFamilyMessage": "您确定要离开家庭计划吗?",
"inFamilyPlanMessage": "你在一个家庭计划中!",
"hintForMobile": "长按代码即可编辑或删除。",
"hintForDesktop": "右键单击代码即可编辑或删除。",
"scan": "扫描",
"scanACode": "扫描代码",
"verify": "验证",
"verifyEmail": "验证电子邮件",
"enterCodeHint": "从你的身份验证器应用中\n输入6位数字代码",
"lostDeviceTitle": "丢失了设备吗?",
"twoFactorAuthTitle": "两步验证",
"passkeyAuthTitle": "通行密钥验证",
"verifyPasskey": "验证通行密钥",
"loginWithTOTP": "使用 TOTP 登录",
"recoverAccount": "恢复账户",
"enterRecoveryKeyHint": "输入您的恢复密钥",
"recover": "恢复",
"contactSupportViaEmailMessage": "请从您注册的电子邮件地址拖放一封邮件到 {email}",
"@contactSupportViaEmailMessage": {
"placeholders": {
"email": {
"type": "String"
}
}
},
"invalidQRCode": "二维码无效",
"noRecoveryKeyTitle": "没有恢复密钥吗?",
"enterEmailHint": "请输入您的电子邮件地址",
"invalidEmailTitle": "无效的电子邮件地址",
"invalidEmailMessage": "请输入一个有效的电子邮件地址。",
"deleteAccount": "删除账户",
"deleteAccountQuery": "我们很抱歉看到您离开。您面临一些问题?",
"yesSendFeedbackAction": "是,发送反馈",
"noDeleteAccountAction": "否,删除账户",
"initiateAccountDeleteTitle": "请进行身份验证以启动账户删除",
"sendEmail": "发送电子邮件",
"createNewAccount": "创建新账号",
"weakStrength": "弱",
"strongStrength": "强",
"moderateStrength": "中",
"confirmPassword": "请确认密码",
"close": "关闭",
"oopsSomethingWentWrong": "哎呀,出了点问题。",
"selectLanguage": "选择语言",
"language": "语言",
"social": "社交媒体",
"security": "安全",
"lockscreen": "锁屏",
"authToChangeLockscreenSetting": "请验证以更改锁屏设置",
"deviceLockEnablePreSteps": "要启用设备锁,请在系统设置中设置设备密码或屏幕锁。",
"viewActiveSessions": "查看活动会话",
"authToViewYourActiveSessions": "请验证以查看您的活动会话",
"searchHint": "搜索...",
"search": "搜索",
"sorryUnableToGenCode": "对不起,无法为 {issuerName} 生成代码",
"noResult": "无结果",
"addCode": "添加代码",
"scanAQrCode": "扫描二维码",
"enterDetailsManually": "手动输入详细信息",
"edit": "编辑",
"share": "分享",
"shareCodes": "分享代码",
"shareCodesDuration": "选择您要分享代码的期限。",
"restore": "恢复",
"copiedToClipboard": "已复制到剪贴板",
"copiedNextToClipboard": "已将下一个代码复制到剪贴板",
"error": "错误",
"recoveryKeyCopiedToClipboard": "恢复密钥已复制到剪贴板",
"recoveryKeyOnForgotPassword": "如果您忘记了密码,恢复数据的唯一方法就是使用此密钥。",
"recoveryKeySaveDescription": "我们不会存储此密钥请将此24个单词密钥保存在一个安全的地方。",
"doThisLater": "稍后再做",
"saveKey": "保存密钥",
"save": "保存",
"send": "发送",
"saveOrSendDescription": "您想将其保存到您的内置存储(默认情况下为“下载”文件夹)还是将其发送到其他应用程序?",
"saveOnlyDescription": "您想将其保存到您的内置存储中(默认情况下为“下载”文件夹)吗?",
"back": "返回",
"createAccount": "创建账户",
"passwordStrength": "密码强度: {passwordStrengthValue}",
"@passwordStrength": {
"description": "Text to indicate the password strength",
"placeholders": {
"passwordStrengthValue": {
"description": "The strength of the password as a string",
"type": "String",
"example": "Weak or Moderate or Strong"
}
},
"message": "Password Strength: {passwordStrengthText}"
},
"password": "密码",
"signUpTerms": "我同意 <u-terms>服务条款</u-terms> 和 <u-policy>隐私政策</u-policy>",
"privacyPolicyTitle": "隐私政策",
"termsOfServicesTitle": "服务条款",
"encryption": "加密",
"setPasswordTitle": "设置密码",
"changePasswordTitle": "修改密码",
"resetPasswordTitle": "重置密码",
"encryptionKeys": "加密密钥",
"passwordWarning": "我们不储存这个密码,所以如果忘记, <underline>我们不能解密您的数据</underline>",
"enterPasswordToEncrypt": "输入我们可以用来加密您的数据的密码",
"enterNewPasswordToEncrypt": "输入我们可以用来加密您的数据的新密码",
"passwordChangedSuccessfully": "密码修改成功",
"generatingEncryptionKeys": "正在生成加密密钥...",
"continueLabel": "继续",
"insecureDevice": "设备不安全",
"sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": "抱歉,我们无法在此设备上生成安全密钥。\n\n请使用其他设备注册。",
"howItWorks": "工作原理",
"ackPasswordLostWarning": "我明白,如果我丢失密码,我可能会丢失我的数据,因为我的数据是 <underline>端到端加密的</underline>。",
"loginTerms": "点击登录后,我同意 <u-terms>服务条款</u-terms> 和 <u-policy>隐私政策</u-policy>",
"logInLabel": "登录",
"logout": "登出",
"areYouSureYouWantToLogout": "您确定要登出吗?",
"yesLogout": "是的,登出",
"exit": "退出",
"theme": "主题",
"lightTheme": "浅色",
"darkTheme": "深色",
"systemTheme": "系统",
"verifyingRecoveryKey": "正在验证恢复密钥...",
"recoveryKeyVerified": "恢复密钥已验证",
"recoveryKeySuccessBody": "太棒了! 您的恢复密钥是有效的。 感谢您的验证。\n\n请记住要安全备份您的恢复密钥。",
"invalidRecoveryKey": "您输入的恢复密钥无效。请确保它包含24个单词并检查每个单词的拼写。\n\n如果您输入了旧的恢复码请确保它长度为64个字符并检查其中每个字符。",
"recreatePasswordTitle": "重新创建密码",
"recreatePasswordBody": "当前设备的功能不足以验证您的密码,但我们可以以适用于所有设备的方式重新生成。\n\n请使用您的恢复密钥登录并重新生成您的密码如果您愿意可以再次使用相同的密码。",
"invalidKey": "密钥无效",
"tryAgain": "请再试一次",
"viewRecoveryKey": "查看恢复密钥",
"confirmRecoveryKey": "确认恢复密钥",
"recoveryKeyVerifyReason": "如果您忘记了您的密码,您的恢复密钥是恢复您的照片的唯一途径。 您可以在“设置 > 账户”中找到您的恢复密钥。\n\n请在此输入您的恢复密钥以确认您已经正确地保存了它。",
"confirmYourRecoveryKey": "确认您的恢复密钥",
"confirm": "确认",
"emailYourLogs": "通过电子邮件发送您的日志",
"pleaseSendTheLogsTo": "请将日志发送至 \n{toEmail}",
"copyEmailAddress": "复制电子邮件地址",
"exportLogs": "导出日志",
"enterYourRecoveryKey": "输入您的恢复密钥",
"tempErrorContactSupportIfPersists": "看起来出了点问题。 请稍后重试。 如果错误仍然存在,请联系我们的支持团队。",
"networkHostLookUpErr": "无法连接到 Ente请检查您的网络设置如果错误仍然存请联系支持。",
"networkConnectionRefusedErr": "无法连接到 Ente请稍后重试。如果错误仍然存请联系支持人员。",
"itLooksLikeSomethingWentWrongPleaseRetryAfterSome": "看起来出了点问题。 请稍后重试。 如果错误仍然存在,请联系我们的支持团队。",
"about": "关于",
"weAreOpenSource": "我们是开源的!",
"privacy": "隐私",
"terms": "条款",
"checkForUpdates": "检查更新",
"checkStatus": "检查状态",
"downloadUpdate": "下载",
"criticalUpdateAvailable": "有重要更新可用",
"updateAvailable": "有可用的更新",
"update": "更新",
"checking": "正在检查...",
"youAreOnTheLatestVersion": "当前为最新版本",
"warning": "警告",
"exportWarningDesc": "导出的文件包含敏感信息。请安全存储。",
"iUnderStand": "了解",
"@iUnderStand": {
"description": "Text for the button to confirm the user understands the warning"
},
"authToExportCodes": "请验证以导出您的代码",
"importSuccessTitle": "耶!",
"importSuccessDesc": "您已导入了 {count} 个代码!",
"@importSuccessDesc": {
"placeholders": {
"count": {
"description": "The number of codes imported",
"type": "int",
"example": "1"
}
}
},
"sorry": "抱歉",
"importFailureDesc": "无法解析所选文件。\n如果您需要帮助请发邮件给 support@ente.io",
"pendingSyncs": "警告",
"pendingSyncsWarningBody": "您的一些代码尚未备份。\n\n请确保您在登出之前备份这些代码。",
"checkInboxAndSpamFolder": "请检查您的收件箱 (或者是在您的“垃圾邮件”列表内) 以完成验证",
"tapToEnterCode": "点击以输入代码",
"resendEmail": "重新发送电子邮件",
"weHaveSendEmailTo": "我们已经发送邮件到 <green>{email}</green>",
"@weHaveSendEmailTo": {
"description": "Text to indicate that we have sent a mail to the user",
"placeholders": {
"email": {
"description": "The email address of the user",
"type": "String",
"example": "example@ente.io"
}
}
},
"manualSort": "自定义",
"editOrder": "编辑顺序",
"mostFrequentlyUsed": "经常使用",
"mostRecentlyUsed": "最近使用",
"activeSessions": "已登录的设备",
"somethingWentWrongPleaseTryAgain": "出了点问题,请重试",
"thisWillLogYouOutOfThisDevice": "这将使您登出该设备!",
"thisWillLogYouOutOfTheFollowingDevice": "这将使您登出以下设备:",
"terminateSession": "是否终止会话?",
"terminate": "终止",
"thisDevice": "此设备",
"toResetVerifyEmail": "要重置您的密码,请先验证您的电子邮件。",
"thisEmailIsAlreadyInUse": "该电子邮件已被使用",
"verificationFailedPleaseTryAgain": "验证失败,请再试一次",
"yourVerificationCodeHasExpired": "您的验证码已过期",
"incorrectCode": "验证码错误",
"sorryTheCodeYouveEnteredIsIncorrect": "抱歉,您输入的验证码不正确",
"emailChangedTo": "电子邮件已更改为 {newEmail}",
"authenticationFailedPleaseTryAgain": "认证失败,请重试",
"authenticationSuccessful": "认证成功!",
"twofactorAuthenticationSuccessfullyReset": "两步验证已成功重置",
"incorrectRecoveryKey": "恢复密钥不正确",
"theRecoveryKeyYouEnteredIsIncorrect": "您输入的恢复密钥不正确",
"enterPassword": "输入密码",
"selectExportFormat": "选择导出格式",
"exportDialogDesc": "加密导出将由您选择的密码保护。",
"encrypted": "已加密",
"plainText": "纯文本",
"passwordToEncryptExport": "用来加密导出的密码",
"export": "导出",
"useOffline": "无需备份即可使用",
"signInToBackup": "登录以备份您的代码",
"singIn": "登录",
"sigInBackupReminder": "请导出您的代码以确保您有可以恢复的备份。",
"offlineModeWarning": "您已选择在不进行备份的情况下继续操作。请手动备份以确保您的代码安全。",
"showLargeIcons": "显示大图标",
"compactMode": "紧凑模式",
"shouldHideCode": "隐藏代码",
"doubleTapToViewHiddenCode": "您可以双击条目来查看代码",
"focusOnSearchBar": "应用启动后聚焦搜索",
"confirmUpdatingkey": "您确定要更新此密钥吗?",
"minimizeAppOnCopy": "复制时最小化应用",
"editCodeAuthMessage": "编辑代码需要身份验证",
"deleteCodeAuthMessage": "删除代码需要身份验证",
"showQRAuthMessage": "显示二维码需要身份验证",
"confirmAccountDeleteTitle": "确认删除账户",
"confirmAccountDeleteMessage": "如果您使用其他 Ente 应用程序,该账户将会与其他应用程序链接。\n\n在所有 Ente 应用程序中,您上传的数据将被安排用于删除,并且您的账户将被永久删除。",
"androidBiometricHint": "验证身份",
"@androidBiometricHint": {
"description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters."
},
"androidBiometricNotRecognized": "未能识别,请重试。",
"@androidBiometricNotRecognized": {
"description": "Message to let the user know that authentication was failed. It is used on Android side. Maximum 60 characters."
},
"androidBiometricSuccess": "成功",
"@androidBiometricSuccess": {
"description": "Message to let the user know that authentication was successful. It is used on Android side. Maximum 60 characters."
},
"androidCancelButton": "取消",
"@androidCancelButton": {
"description": "Message showed on a button that the user can click to leave the current dialog. It is used on Android side. Maximum 30 characters."
},
"androidSignInTitle": "需要进行身份验证",
"@androidSignInTitle": {
"description": "Message showed as a title in a dialog which indicates the user that they need to scan biometric to continue. It is used on Android side. Maximum 60 characters."
},
"androidBiometricRequiredTitle": "需要进行生物识别认证",
"@androidBiometricRequiredTitle": {
"description": "Message showed as a title in a dialog which indicates the user has not set up biometric authentication on their device. It is used on Android side. Maximum 60 characters."
},
"androidDeviceCredentialsRequiredTitle": "需要设备凭据",
"@androidDeviceCredentialsRequiredTitle": {
"description": "Message showed as a title in a dialog which indicates the user has not set up credentials authentication on their device. It is used on Android side. Maximum 60 characters."
},
"androidDeviceCredentialsSetupDescription": "需要设备凭据",
"@androidDeviceCredentialsSetupDescription": {
"description": "Message advising the user to go to the settings and configure device credentials on their device. It shows in a dialog on Android side."
},
"goToSettings": "前往设置",
"@goToSettings": {
"description": "Message showed on a button that the user can click to go to settings pages from the current dialog. It is used on both Android and iOS side. Maximum 30 characters."
},
"androidGoToSettingsDescription": "您的设备上未设置生物识别身份验证。转到“设置 > 安全”以添加生物识别身份验证。",
"@androidGoToSettingsDescription": {
"description": "Message advising the user to go to the settings and configure biometric on their device. It shows in a dialog on Android side."
},
"iOSLockOut": "生物识别身份验证已禁用。请锁定并解锁屏幕以启用该功能。",
"@iOSLockOut": {
"description": "Message advising the user to re-enable biometrics on their device. It shows in a dialog on iOS side."
},
"iOSGoToSettingsDescription": "您的设备上未设置生物识别身份验证。请在您的手机上启用 触控 ID 或 面容 ID。",
"@iOSGoToSettingsDescription": {
"description": "Message advising the user to go to the settings and configure Biometrics for their device. It shows in a dialog on iOS side."
},
"iOSOkButton": "好",
"@iOSOkButton": {
"description": "Message showed on a button that the user can click to leave the current dialog. It is used on iOS side. Maximum 30 characters."
},
"noInternetConnection": "无互联网连接",
"pleaseCheckYourInternetConnectionAndTryAgain": "请检查您的互联网连接,然后重试。",
"signOutFromOtherDevices": "从其他设备登出",
"signOutOtherBody": "如果您认为有人可能知道您的密码,您可以强制所有其他使用您账户的设备登出。",
"signOutOtherDevices": "登出其他设备",
"doNotSignOut": "不要登出",
"hearUsWhereTitle": "您是怎么知道 Ente 的?(可选)",
"hearUsExplanation": "我们不跟踪应用程序安装情况。如果您告诉我们您是在哪里找到我们的,将会有所帮助!",
"recoveryKeySaved": "恢复密钥已保存在下载文件夹中!",
"waitingForBrowserRequest": "正在等待浏览器请求...",
"waitingForVerification": "等待验证...",
"passkey": "通行密钥",
"passKeyPendingVerification": "仍需验证",
"loginSessionExpired": "会话已过期",
"loginSessionExpiredDetails": "您的会话已过期。请重新登录。",
"developerSettingsWarning": "您确定要修改开发者设置吗?",
"developerSettings": "开发者设置",
"serverEndpoint": "服务器端点",
"invalidEndpoint": "端点无效",
"invalidEndpointMessage": "抱歉,您输入的端点无效。请输入有效的端点,然后重试。",
"endpointUpdatedMessage": "端点更新成功",
"customEndpoint": "已连接至 {endpoint}",
"pinText": "置顶",
"unpinText": "取消置顶",
"pinnedCodeMessage": "{code} 已被置顶",
"unpinnedCodeMessage": "{code} 已被取消置顶",
"pinned": "已置顶",
"tags": "标签",
"createNewTag": "创建新标签",
"tag": "标签",
"create": "创建",
"editTag": "编辑标签",
"deleteTagTitle": "要删除标签吗?",
"deleteTagMessage": "您确定要删除此标签吗?此操作是不可逆的。",
"somethingWentWrongParsingCode": "我们无法解析 {x} 代码。",
"updateNotAvailable": "更新不可用",
"viewRawCodes": "查看原始代码",
"rawCodes": "原始代码",
"rawCodeData": "原始代码数据",
"appLock": "应用锁",
"noSystemLockFound": "未找到系统锁",
"toEnableAppLockPleaseSetupDevicePasscodeOrScreen": "要启用应用锁,请在系统设置中设置设备密码或屏幕锁定。",
"autoLock": "自动锁定",
"immediately": "立即",
"reEnterPassword": "再次输入密码",
"reEnterPin": "再次输入 PIN 码",
"next": "下一步",
"tooManyIncorrectAttempts": "错误的尝试次数过多",
"tapToUnlock": "点击解锁",
"setNewPassword": "设置新密码",
"deviceLock": "设备锁",
"hideContent": "隐藏内容",
"hideContentDescriptionAndroid": "在应用切换器中隐藏应用内容并禁用屏幕截图",
"hideContentDescriptioniOS": "在应用切换器中隐藏应用内容",
"autoLockFeatureDescription": "应用程序进入后台后锁定的时间",
"appLockDescription": "在设备的默认锁定屏幕和带有 PIN 或密码的自定义锁定屏幕之间进行选择。",
"pinLock": "Pin 锁定",
"enterPin": "输入 PIN 码",
"setNewPin": "设置新 PIN 码",
"importFailureDescNew": "无法解析选定的文件。",
"appLockNotEnabled": "应用锁未启用",
"appLockNotEnabledDescription": "请从“安全”>“应用锁”启用应用锁",
"authToViewPasskey": "请验证身份以查看通行密钥",
"appLockOfflineModeWarning": "您已选择继续而不备份。如果您忘记了应用锁,您将无法访问数据。",
"duplicateCodes": "重复代码",
"noDuplicates": "✨ 没有重复",
"youveNoDuplicateCodesThatCanBeCleared": "您没有可清除的重复代码",
"deduplicateCodes": "删除重复代码",
"deselectAll": "取消全选",
"selectAll": "全选",
"deleteDuplicates": "删除重复项",
"plainHTML": "Plain HTML",
"tellUsWhatYouThink": "告诉我们您的想法",
"dropReviewiOS": "在 App Store 上发表评测",
"dropReviewAndroid": "在 Play 商店上发表评测",
"supportEnte": "支持 <bold-green>ente</bold-green>",
"giveUsAStarOnGithub": "在 Github 上给我们一个星标",
"free5GB": "<bold-green>ente</bold-green> Photos 上 5GB 可用空间",
"loginWithAuthAccount": "使用您的认证账户登录",
"freeStorageOffer": "购买 <bold-green>ente</bold-green> Photos 可享受 10% 优惠",
"freeStorageOfferDescription": "使用优惠码“AUTH”可享受首年 10% 折扣"
}

View File

@@ -0,0 +1,515 @@
{
"account": "帳戶",
"unlock": "解鎖",
"recoveryKey": "復原密鑰",
"counterAppBarTitle": "計數器",
"@counterAppBarTitle": {
"description": "Text shown in the AppBar of the Counter Page"
},
"onBoardingBody": "妥善保管您的雙重驗證碼",
"onBoardingGetStarted": "開始",
"setupFirstAccount": "設定您的第一個帳戶",
"importScanQrCode": "掃描 QR 碼",
"qrCode": "QR 碼",
"importEnterSetupKey": "輸入設定金鑰",
"importAccountPageTitle": "輸入帳戶詳細資訊",
"secretCanNotBeEmpty": "密碼不能為空",
"bothIssuerAndAccountCanNotBeEmpty": "發行方和帳戶均不能為空",
"incorrectDetails": "詳細資訊不正確",
"pleaseVerifyDetails": "請確認詳細資訊並重試",
"codeIssuerHint": "發行方",
"codeSecretKeyHint": "金鑰",
"secret": "金鑰",
"all": "所有",
"notes": "備註",
"notesLengthLimit": "備註最多可以包含 {count} 個字元",
"@notesLengthLimit": {
"description": "Text to indicate the maximum number of characters allowed for notes",
"placeholders": {
"count": {
"description": "The maximum number of characters allowed for notes",
"type": "int",
"example": "100"
}
}
},
"codeAccountHint": "帳戶 (you@domain.com)",
"codeTagHint": "標籤",
"accountKeyType": "金鑰類型",
"sessionExpired": "工作階段已過期",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
},
"pleaseLoginAgain": "請重新登錄",
"loggingOut": "正在登出...",
"timeBasedKeyType": "基於時間 (TOTP)",
"counterBasedKeyType": "基於計數器 (HOTP)",
"saveAction": "儲存",
"nextTotpTitle": "下一個",
"deleteCodeTitle": "要刪除程式碼嗎?",
"deleteCodeMessage": "您確定要刪除此程式碼嗎?此操作不可逆。",
"trashCode": "要刪除程式碼嗎?",
"trashCodeMessage": "您確定要刪除 {account} 的程式碼嗎?",
"trash": "刪除",
"viewLogsAction": "查看日誌",
"sendLogsDescription": "這將傳送日誌以幫助我們偵錯您的問題。雖然我們採取預防措施確保不記錄敏感資訊,但我們建議您在共享這些日誌之前先查看它們。",
"preparingLogsTitle": "正在準備日誌...",
"emailLogsTitle": "電子郵件日誌",
"emailLogsMessage": "請將日誌傳送至 {email}",
"@emailLogsMessage": {
"placeholders": {
"email": {
"type": "String"
}
}
},
"copyEmailAction": "複製電子郵件",
"exportLogsAction": "匯出日誌",
"reportABug": "報告錯誤",
"crashAndErrorReporting": "當機和錯誤報告",
"reportBug": "報告錯誤",
"emailUsMessage": "請給我們傳送電子郵件至 {email}",
"@emailUsMessage": {
"placeholders": {
"email": {
"type": "String"
}
}
},
"contactSupport": "聯絡支援",
"rateUsOnStore": "在 {storeName} 上給我們評分",
"blog": "部落格",
"merchandise": "商品",
"verifyPassword": "驗證密碼",
"pleaseWait": "請稍候...",
"generatingEncryptionKeysTitle": "正在產生加密金鑰...",
"recreatePassword": "重新建立密碼",
"recreatePasswordMessage": "目前裝置的功能不足以驗證您的密碼,因此我們需要以一種適用於所有裝置的方式重新產生一次密碼。\n\n請使用您的復原密鑰登錄並重新產生您的密碼如果您願意可以再次使用相同的密碼。",
"useRecoveryKey": "使用復原密鑰",
"incorrectPasswordTitle": "密碼錯誤",
"welcomeBack": "歡迎回來!",
"emailAlreadyRegistered": "電子郵件地址已被註冊。",
"emailNotRegistered": "電子郵件地址未註冊。",
"madeWithLoveAtPrefix": "用❤️製作 ",
"supportDevs": "訂閱 <bold-green>ente</bold-green> 以支援我們",
"supportDiscount": "使用優惠碼“AUTH”可享受首年 10% 折扣",
"changeEmail": "修改信箱",
"changePassword": "修改密碼",
"data": "資料",
"importCodes": "匯入程式碼",
"importTypePlainText": "純文字",
"importTypeEnteEncrypted": "Ente 加密匯出",
"passwordForDecryptingExport": "用來解密匯出的密碼",
"passwordEmptyError": "密碼不能為空",
"importFromApp": "從 {appName} 匯入程式碼",
"importGoogleAuthGuide": "使用“轉移帳戶”選項將您的帳戶從 Google Authenticator 匯出到QR 碼。然後使用另一台裝置掃描 QR 碼。\n\n提示您可以使用筆記型電腦的攝影機拍攝QR 碼的照片。",
"importSelectJsonFile": "選擇 JSON 檔案",
"importSelectAppExport": "選擇 {appName} 的匯出檔案",
"importEnteEncGuide": "選擇從 Ente 匯出的 JSON 加密檔案",
"importRaivoGuide": "使用 Raivo 設定中的“將 OTP 匯出到 Zip 存檔”選項。\n\n解壓 zip 檔案並匯入 JSON 檔案。",
"importBitwardenGuide": "使用 Bitwarden 工具中的“匯出密碼庫”選項並匯入未加密的 JSON 檔案。",
"importAegisGuide": "使用 Aegis 設定中的“匯出密碼庫”選項。\n\n如果您的密碼庫已加密則需要輸入密碼庫密碼才能解密密碼庫。",
"import2FasGuide": "使用 2FAS 中的“設定 -> 備份 -> 匯出”選項。\n\n如果您的備份已加密則需要輸入密碼來解密備份",
"importLastpassGuide": "使用 Lastpass Authenticator 設定中的“轉移帳戶”選項,然後按“將帳戶匯出到檔案”。匯入下載的 JSON。",
"exportCodes": "匯出程式碼",
"importLabel": "匯入",
"importInstruction": "請選擇一個包含以下格式的程式碼列表的檔案",
"importCodeDelimiterInfo": "程式碼可以用逗號或分行符號分隔",
"selectFile": "選擇檔案",
"emailVerificationToggle": "電子郵件驗證",
"emailVerificationEnableWarning": "為避免被鎖在您的帳戶之外,請在啟用電子郵件驗證之前確保在 Ente Auth 之外儲存電子郵件二步驟驗證的副本。",
"authToChangeEmailVerificationSetting": "請進行身份驗證以更改電子郵件驗證",
"authenticateGeneric": "請確認",
"authToViewYourRecoveryKey": "請確認以查看您的復原密鑰",
"authToChangeYourEmail": "請確認以更改您的電子郵件",
"authToChangeYourPassword": "請確認以更改密碼",
"authToViewSecrets": "請進行身份驗證以查看您的金鑰",
"authToInitiateSignIn": "請進行身份驗證以啟動登錄進行備份。",
"ok": "確定",
"cancel": "取消",
"yes": "是",
"no": "否",
"email": "電子郵件地址",
"support": "支援",
"general": "一般",
"settings": "設定",
"copied": "已複製",
"pleaseTryAgain": "請重試",
"existingUser": "已註冊使用者",
"newUser": "初來 Ente",
"delete": "刪除",
"enterYourPasswordHint": "輸入您的密碼",
"forgotPassword": "忘記密碼",
"oops": "哎呀",
"suggestFeatures": "建議新功能",
"faq": "常見問題",
"somethingWentWrongMessage": "出了點問題,請重試",
"leaveFamily": "離開家庭",
"leaveFamilyMessage": "您確定要離開家庭計畫嗎?",
"inFamilyPlanMessage": "你在一個家庭計畫中!",
"hintForMobile": "長按程式碼即可編輯或刪除。",
"hintForDesktop": "右鍵點選程式碼即可編輯或刪除。",
"scan": "掃描",
"scanACode": "掃描程式碼",
"verify": "驗證",
"verifyEmail": "驗證電子郵件",
"enterCodeHint": "從你的身份驗證器APP中\n輸入6位數字程式碼",
"lostDeviceTitle": "遺失了裝置嗎?",
"twoFactorAuthTitle": "二步驟驗證",
"passkeyAuthTitle": "通行金鑰驗證",
"verifyPasskey": "驗證通行金鑰",
"loginWithTOTP": "使用 TOTP 登錄",
"recoverAccount": "恢復帳戶",
"enterRecoveryKeyHint": "輸入您的復原密鑰",
"recover": "恢復",
"contactSupportViaEmailMessage": "請從您註冊的電子郵件地址拖放一封郵件到 {email}",
"@contactSupportViaEmailMessage": {
"placeholders": {
"email": {
"type": "String"
}
}
},
"invalidQRCode": "QR 碼無效",
"noRecoveryKeyTitle": "沒有復原密鑰嗎?",
"enterEmailHint": "請輸入您的電子郵件地址",
"invalidEmailTitle": "無效的電子郵件地址",
"invalidEmailMessage": "請輸入一個有效的電子郵件地址。",
"deleteAccount": "刪除帳戶",
"deleteAccountQuery": "我們很抱歉看到您要刪除帳戶。您似乎面臨著一些問題?",
"yesSendFeedbackAction": "是,傳送回饋",
"noDeleteAccountAction": "否,刪除帳戶",
"initiateAccountDeleteTitle": "請進行身份驗證以啟動帳戶刪除",
"sendEmail": "傳送電子郵件",
"createNewAccount": "建立新帳號",
"weakStrength": "弱",
"strongStrength": "強",
"moderateStrength": "中",
"confirmPassword": "請確認密碼",
"close": "關閉",
"oopsSomethingWentWrong": "哎呀,出了點問題。",
"selectLanguage": "選擇語言",
"language": "語言",
"social": "社交媒體",
"security": "安全",
"lockscreen": "鎖定螢幕",
"authToChangeLockscreenSetting": "請確認以更改鎖定螢幕設定",
"deviceLockEnablePreSteps": "要啟用裝置鎖,請在系統設定中設定裝置密碼或螢幕鎖。",
"viewActiveSessions": "查看活動工作階段",
"authToViewYourActiveSessions": "請確認以查看您的活動工作階段",
"searchHint": "搜尋...",
"search": "搜尋",
"sorryUnableToGenCode": "對不起,無法為 {issuerName} 產生程式碼",
"noResult": "無結果",
"addCode": "加入程式碼",
"scanAQrCode": "掃描 QR 碼",
"enterDetailsManually": "手動輸入詳細資訊",
"edit": "編輯",
"share": "分享",
"shareCodes": "分享程式碼",
"shareCodesDuration": "選擇您要分享程式碼的期限。",
"restore": "恢復",
"copiedToClipboard": "已複製到剪貼簿",
"copiedNextToClipboard": "已將下一個程式碼複製到剪貼簿",
"error": "錯誤",
"recoveryKeyCopiedToClipboard": "復原密鑰已複製到剪貼簿",
"recoveryKeyOnForgotPassword": "如果您忘記了密碼,恢復資料的唯一方法就是使用此金鑰。",
"recoveryKeySaveDescription": "我們不會儲存此金鑰請將此24個單詞金鑰儲存在一個安全的地方。",
"doThisLater": "稍後再做",
"saveKey": "儲存金鑰",
"save": "儲存",
"send": "傳送",
"saveOrSendDescription": "您想將其儲存到您的內建儲存預設情況下為“下載”資料夾還是將其傳送到其他APP",
"saveOnlyDescription": "您想將其儲存到您的內建儲存中(預設情況下為“下載”資料夾)嗎?",
"back": "返回",
"createAccount": "建立帳戶",
"passwordStrength": "密碼強度: {passwordStrengthValue}",
"@passwordStrength": {
"description": "Text to indicate the password strength",
"placeholders": {
"passwordStrengthValue": {
"description": "The strength of the password as a string",
"type": "String",
"example": "Weak or Moderate or Strong"
}
},
"message": "Password Strength: {passwordStrengthText}"
},
"password": "密碼",
"signUpTerms": "我同意 <u-terms>服務條款</u-terms> 和 <u-policy>隱私政策</u-policy>",
"privacyPolicyTitle": "隱私政策",
"termsOfServicesTitle": "服務條款",
"encryption": "加密",
"setPasswordTitle": "設定密碼",
"changePasswordTitle": "修改密碼",
"resetPasswordTitle": "重設密碼",
"encryptionKeys": "加密金鑰",
"passwordWarning": "我們不會儲存這個密碼,所以如果忘記, <underline>我們無法解密您的資料</underline>",
"enterPasswordToEncrypt": "輸入我們可以用來加密您的資料的密碼",
"enterNewPasswordToEncrypt": "輸入我們可以用來加密您的資料的新密碼",
"passwordChangedSuccessfully": "密碼修改成功",
"generatingEncryptionKeys": "正在產生加密金鑰...",
"continueLabel": "繼續",
"insecureDevice": "裝置不安全",
"sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": "抱歉,我們無法在此裝置上產生安全金鑰。\n\n請使用其他裝置註冊。",
"howItWorks": "工作原理",
"ackPasswordLostWarning": "我明白,如果我遺失密碼,我可能會遺失我的資料,因為我的資料是 <underline>端到端加密的</underline>。",
"loginTerms": "點選登錄後,我同意 <u-terms>服務條款</u-terms> 和 <u-policy>隱私政策</u-policy>",
"logInLabel": "登錄",
"logout": "登出",
"areYouSureYouWantToLogout": "您確定要登出嗎?",
"yesLogout": "是的,登出",
"exit": "退出",
"theme": "主題",
"lightTheme": "淺色",
"darkTheme": "深色",
"systemTheme": "系統",
"verifyingRecoveryKey": "正在驗證復原密鑰...",
"recoveryKeyVerified": "復原密鑰已驗證",
"recoveryKeySuccessBody": "太棒了! 您的復原密鑰是有效的。 感謝您的驗證。\n\n請記住要安全備份您的復原密鑰。",
"invalidRecoveryKey": "您輸入的復原密鑰無效。請確保它包含24個單詞並檢查每個單詞的拼寫。\n\n如果您輸入了舊的恢復碼請確保它長度為64個字元並檢查其中每個字元。",
"recreatePasswordTitle": "重新建立密碼",
"recreatePasswordBody": "目前裝置的功能不足以驗證您的密碼,但我們可以以適用於所有裝置的方式重新產生。\n\n請使用您的復原密鑰登錄並重新產生您的密碼如果您願意可以再次使用相同的密碼。",
"invalidKey": "金鑰無效",
"tryAgain": "請再試一次",
"viewRecoveryKey": "查看復原密鑰",
"confirmRecoveryKey": "確認復原密鑰",
"recoveryKeyVerifyReason": "如果您忘記了您的密碼,您的復原密鑰是恢復您的照片的唯一途徑。 您可以在“設定 > 帳戶”中找到您的復原密鑰。\n\n請在此輸入您的復原密鑰以確認您已經正確地儲存了它。",
"confirmYourRecoveryKey": "確認您的復原密鑰",
"confirm": "確認",
"emailYourLogs": "通過電子郵件傳送您的日誌",
"pleaseSendTheLogsTo": "請將日誌傳送至 \n{toEmail}",
"copyEmailAddress": "複製電子郵件地址",
"exportLogs": "匯出日誌",
"enterYourRecoveryKey": "輸入您的復原密鑰",
"tempErrorContactSupportIfPersists": "看起來出了點問題。 請稍後重試。 如果錯誤仍然存在,請聯絡我們的支援團隊。",
"networkHostLookUpErr": "無法連接到 Ente請檢查您的網路設定如果錯誤仍然存請聯絡支援。",
"networkConnectionRefusedErr": "無法連接到 Ente請稍後重試。如果錯誤仍然存請聯絡支援人員。",
"itLooksLikeSomethingWentWrongPleaseRetryAfterSome": "看起來出了點問題。 請稍後重試。 如果錯誤仍然存在,請聯絡我們的支援團隊。",
"about": "關於",
"weAreOpenSource": "我們是開放原始碼的!",
"privacy": "隱私",
"terms": "條款",
"checkForUpdates": "檢查更新",
"checkStatus": "檢查狀態",
"downloadUpdate": "下載",
"criticalUpdateAvailable": "有重要更新可用",
"updateAvailable": "有可用的更新",
"update": "更新",
"checking": "正在檢查...",
"youAreOnTheLatestVersion": "目前為最新版本",
"warning": "警告",
"exportWarningDesc": "匯出的檔案包含敏感資訊。請安全儲存。",
"iUnderStand": "瞭解",
"@iUnderStand": {
"description": "Text for the button to confirm the user understands the warning"
},
"authToExportCodes": "請確認以匯出您的程式碼",
"importSuccessTitle": "耶!",
"importSuccessDesc": "您已匯入了 {count} 個程式碼!",
"@importSuccessDesc": {
"placeholders": {
"count": {
"description": "The number of codes imported",
"type": "int",
"example": "1"
}
}
},
"sorry": "抱歉",
"importFailureDesc": "無法解析所選檔案。\n如果您需要幫助請發郵件給 support@ente.io",
"pendingSyncs": "警告",
"pendingSyncsWarningBody": "您的一些程式碼尚未備份。\n\n請確保您在登出之前備份這些程式碼。",
"checkInboxAndSpamFolder": "請檢查您的收件箱 (或者是在您的“垃圾郵件”列表內) 以完成驗證",
"tapToEnterCode": "點選以輸入程式碼",
"resendEmail": "重新傳送電子郵件",
"weHaveSendEmailTo": "我們已經傳送郵件到 <green>{email}</green>",
"@weHaveSendEmailTo": {
"description": "Text to indicate that we have sent a mail to the user",
"placeholders": {
"email": {
"description": "The email address of the user",
"type": "String",
"example": "example@ente.io"
}
}
},
"manualSort": "自訂",
"editOrder": "編輯順序",
"mostFrequentlyUsed": "經常使用",
"mostRecentlyUsed": "最近使用",
"activeSessions": "已登錄的裝置",
"somethingWentWrongPleaseTryAgain": "出了點問題,請重試",
"thisWillLogYouOutOfThisDevice": "這將使您登出該裝置!",
"thisWillLogYouOutOfTheFollowingDevice": "這將使您登出以下裝置:",
"terminateSession": "是否終止工作階段?",
"terminate": "終止",
"thisDevice": "此裝置",
"toResetVerifyEmail": "要重設您的密碼,請先驗證您的電子郵件。",
"thisEmailIsAlreadyInUse": "該電子郵件已被使用",
"verificationFailedPleaseTryAgain": "驗證失敗,請再試一次",
"yourVerificationCodeHasExpired": "您的驗證碼已過期",
"incorrectCode": "驗證碼錯誤",
"sorryTheCodeYouveEnteredIsIncorrect": "抱歉,您輸入的驗證碼不正確",
"emailChangedTo": "電子郵件已更改為 {newEmail}",
"authenticationFailedPleaseTryAgain": "認證失敗,請重試",
"authenticationSuccessful": "認證成功!",
"twofactorAuthenticationSuccessfullyReset": "二步驟驗證已成功重設",
"incorrectRecoveryKey": "復原密鑰不正確",
"theRecoveryKeyYouEnteredIsIncorrect": "您輸入的復原密鑰不正確",
"enterPassword": "輸入密碼",
"selectExportFormat": "選擇匯出格式",
"exportDialogDesc": "加密匯出將由您選擇的密碼保護。",
"encrypted": "已加密",
"plainText": "純文字",
"passwordToEncryptExport": "用來加密匯出的密碼",
"export": "匯出",
"useOffline": "無需備份即可使用",
"signInToBackup": "登錄以備份您的程式碼",
"singIn": "登錄",
"sigInBackupReminder": "請匯出您的程式碼以確保您有可以恢復的備份。",
"offlineModeWarning": "您已選擇在不進行備份的情況下繼續操作。請手動備份以確保您的程式碼安全。",
"showLargeIcons": "顯示大圖示",
"compactMode": "緊湊模式",
"shouldHideCode": "隱藏程式碼",
"doubleTapToViewHiddenCode": "您可以連按兩下條目來查看程式碼",
"focusOnSearchBar": "APP啟動後聚焦搜尋",
"confirmUpdatingkey": "您確定要更新此金鑰嗎?",
"minimizeAppOnCopy": "複製時最小化APP",
"editCodeAuthMessage": "編輯程式碼需要身份驗證",
"deleteCodeAuthMessage": "刪除程式碼需要身份驗證",
"showQRAuthMessage": "顯示QR 碼需要身份驗證",
"confirmAccountDeleteTitle": "確認刪除帳戶",
"confirmAccountDeleteMessage": "如果您使用其他 Ente APP該帳戶將會與其他APP連結。\n\n在所有 Ente APP中您上傳的資料將被安排用於刪除並且您的帳戶將被永久刪除。",
"androidBiometricHint": "驗證身份",
"@androidBiometricHint": {
"description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters."
},
"androidBiometricNotRecognized": "未能辨識,請重試。",
"@androidBiometricNotRecognized": {
"description": "Message to let the user know that authentication was failed. It is used on Android side. Maximum 60 characters."
},
"androidBiometricSuccess": "成功",
"@androidBiometricSuccess": {
"description": "Message to let the user know that authentication was successful. It is used on Android side. Maximum 60 characters."
},
"androidCancelButton": "取消",
"@androidCancelButton": {
"description": "Message showed on a button that the user can click to leave the current dialog. It is used on Android side. Maximum 30 characters."
},
"androidSignInTitle": "需要進行身份驗證",
"@androidSignInTitle": {
"description": "Message showed as a title in a dialog which indicates the user that they need to scan biometric to continue. It is used on Android side. Maximum 60 characters."
},
"androidBiometricRequiredTitle": "需要進行生物辨識認證",
"@androidBiometricRequiredTitle": {
"description": "Message showed as a title in a dialog which indicates the user has not set up biometric authentication on their device. It is used on Android side. Maximum 60 characters."
},
"androidDeviceCredentialsRequiredTitle": "需要裝置憑據",
"@androidDeviceCredentialsRequiredTitle": {
"description": "Message showed as a title in a dialog which indicates the user has not set up credentials authentication on their device. It is used on Android side. Maximum 60 characters."
},
"androidDeviceCredentialsSetupDescription": "需要裝置憑據",
"@androidDeviceCredentialsSetupDescription": {
"description": "Message advising the user to go to the settings and configure device credentials on their device. It shows in a dialog on Android side."
},
"goToSettings": "前往設定",
"@goToSettings": {
"description": "Message showed on a button that the user can click to go to settings pages from the current dialog. It is used on both Android and iOS side. Maximum 30 characters."
},
"androidGoToSettingsDescription": "您的裝置上未設定生物辨識身份驗證。轉到“設定 > 安全”以加入生物辨識身份驗證。",
"@androidGoToSettingsDescription": {
"description": "Message advising the user to go to the settings and configure biometric on their device. It shows in a dialog on Android side."
},
"iOSLockOut": "生物辨識身份驗證已停用。請鎖定並解鎖螢幕以啟用該功能。",
"@iOSLockOut": {
"description": "Message advising the user to re-enable biometrics on their device. It shows in a dialog on iOS side."
},
"iOSGoToSettingsDescription": "您的裝置上未設定生物辨識身份驗證。請在您的手機上啟用 觸控 ID 或 面容 ID。",
"@iOSGoToSettingsDescription": {
"description": "Message advising the user to go to the settings and configure Biometrics for their device. It shows in a dialog on iOS side."
},
"iOSOkButton": "好",
"@iOSOkButton": {
"description": "Message showed on a button that the user can click to leave the current dialog. It is used on iOS side. Maximum 30 characters."
},
"noInternetConnection": "無網際網路連接",
"pleaseCheckYourInternetConnectionAndTryAgain": "請檢查您的網際網路連接,然後重試。",
"signOutFromOtherDevices": "從其他裝置登出",
"signOutOtherBody": "如果您認為有人可能知道您的密碼,您可以強制所有其他使用您帳戶的裝置登出。",
"signOutOtherDevices": "登出其他裝置",
"doNotSignOut": "不要登出",
"hearUsWhereTitle": "您是怎麼知道 Ente 的?(可選)",
"hearUsExplanation": "我們不跟蹤APP安裝情況。如果您告訴我們您是在哪裡找到我們的將會有所幫助",
"recoveryKeySaved": "復原密鑰已儲存在下載資料夾中!",
"waitingForBrowserRequest": "正在等待瀏覽器請求...",
"waitingForVerification": "等待驗證...",
"passkey": "通行金鑰",
"passKeyPendingVerification": "仍需驗證",
"loginSessionExpired": "工作階段已過期",
"loginSessionExpiredDetails": "您的工作階段已過期。請重新登錄。",
"developerSettingsWarning": "您確定要修改開發者設定嗎?",
"developerSettings": "開發者設定",
"serverEndpoint": "伺服器端點",
"invalidEndpoint": "端點無效",
"invalidEndpointMessage": "抱歉,您輸入的端點無效。請輸入有效的端點,然後重試。",
"endpointUpdatedMessage": "端點更新成功",
"customEndpoint": "已連接至 {endpoint}",
"pinText": "置頂",
"unpinText": "取消置頂",
"pinnedCodeMessage": "{code} 已被置頂",
"unpinnedCodeMessage": "{code} 已被取消置頂",
"pinned": "已置頂",
"tags": "標籤",
"createNewTag": "建立新標籤",
"tag": "標籤",
"create": "建立",
"editTag": "編輯標籤",
"deleteTagTitle": "要刪除標籤嗎?",
"deleteTagMessage": "您確定要刪除此標籤嗎?此操作是不可逆的。",
"somethingWentWrongParsingCode": "我們無法解析 {x} 程式碼。",
"updateNotAvailable": "更新不可用",
"viewRawCodes": "查看原始程式碼",
"rawCodes": "原始程式碼",
"rawCodeData": "原始程式碼資料",
"appLock": "APP鎖",
"noSystemLockFound": "未找到系統鎖",
"toEnableAppLockPleaseSetupDevicePasscodeOrScreen": "要啟用APP鎖請在系統設定中設定裝置密碼或螢幕鎖定。",
"autoLock": "自動鎖定",
"immediately": "立即",
"reEnterPassword": "再次輸入密碼",
"reEnterPin": "再次輸入 PIN 碼",
"next": "下一步",
"tooManyIncorrectAttempts": "錯誤的嘗試次數過多",
"tapToUnlock": "點選解鎖",
"setNewPassword": "設定新密碼",
"deviceLock": "裝置鎖",
"hideContent": "隱藏內容",
"hideContentDescriptionAndroid": "在APP切換器中隱藏APP內容並停用螢幕截圖",
"hideContentDescriptioniOS": "在APP切換器中隱藏APP內容",
"autoLockFeatureDescription": "APP進入後台後鎖定的時間",
"appLockDescription": "在裝置的預設鎖定螢幕和帶有 PIN 或密碼的自訂鎖定螢幕之間進行選擇。",
"pinLock": "Pin 鎖定",
"enterPin": "輸入 PIN 碼",
"setNewPin": "設定新 PIN 碼",
"importFailureDescNew": "無法解析選定的檔案。",
"appLockNotEnabled": "APP鎖未啟用",
"appLockNotEnabledDescription": "請從“安全”>“APP鎖”啟用APP鎖",
"authToViewPasskey": "請確認身份以查看通行金鑰",
"appLockOfflineModeWarning": "您已選擇繼續而不備份。如果您忘記了APP鎖您將無法訪問資料。",
"duplicateCodes": "重複程式碼",
"noDuplicates": "✨ 沒有重複",
"youveNoDuplicateCodesThatCanBeCleared": "你沒有任何可清除的重複代碼",
"deduplicateCodes": "刪除重複程式碼",
"deselectAll": "取消全選",
"selectAll": "全選",
"deleteDuplicates": "刪除重複項",
"plainHTML": "Plain HTML",
"tellUsWhatYouThink": "告訴我們您的想法",
"supportEnte": "支援 <bold-green>ente</bold-green>",
"giveUsAStarOnGithub": "在 Github 上給我們一個星標",
"free5GB": "<bold-green>ente</bold-green> Photos 上 5GB 可用空間",
"loginWithAuthAccount": "使用您的認證帳戶登錄",
"freeStorageOffer": "購買 <bold-green>ente</bold-green> Photos 可享受 10% 優惠",
"freeStorageOfferDescription": "使用優惠碼“AUTH”可享受首年 10% 折扣"
}

View File

@@ -15,6 +15,7 @@ const List<Locale> appSupportedLocales = <Locale>[
Locale('es', 'ES'),
Locale('fa'),
Locale('fr'),
Locale('he'),
Locale('hu'),
Locale('id'),
Locale('it'),
@@ -25,6 +26,7 @@ const List<Locale> appSupportedLocales = <Locale>[
Locale('pl'),
Locale('pt'),
Locale('pt', 'BR'),
Locale('ro'),
Locale('ru'),
Locale('sl'),
Locale('sk'),
@@ -32,6 +34,7 @@ const List<Locale> appSupportedLocales = <Locale>[
Locale('uk'),
Locale('vi'),
Locale("zh", "CN"),
Locale("zh", "TW"),
];
Locale? autoDetectedLocale;

View File

@@ -112,8 +112,9 @@ class Code {
String issuer,
String secret,
CodeDisplay? display,
int digits,
) {
int digits, {
Algorithm algorithm = Algorithm.sha1,
}) {
final String encodedIssuer = Uri.encodeQueryComponent(issuer);
return Code(
account,
@@ -121,10 +122,10 @@ class Code {
digits,
defaultPeriod,
secret,
Algorithm.sha1,
algorithm,
type,
0,
"otpauth://${type.name}/$issuer:$account?algorithm=SHA1&digits=$digits&issuer=$encodedIssuer&period=30&secret=$secret",
"otpauth://${type.name}/$issuer:$account?algorithm=${algorithm.name.toUpperCase()}&digits=$digits&issuer=$encodedIssuer&period=30&secret=$secret",
display: display ?? CodeDisplay(),
);
}

View File

@@ -1,73 +0,0 @@
import 'dart:convert';
const visibilityVisible = 0;
const visibilityArchive = 1;
const magicKeyVisibility = 'visibility';
const pubMagicKeyEditedTime = 'editedTime';
const pubMagicKeyEditedName = 'editedName';
class MagicMetadata {
// 0 -> visible
// 1 -> archived
// 2 -> hidden etc?
int visibility;
MagicMetadata({required this.visibility});
factory MagicMetadata.fromEncodedJson(String encodedJson) =>
MagicMetadata.fromJson(jsonDecode(encodedJson));
factory MagicMetadata.fromJson(dynamic json) => MagicMetadata.fromMap(json);
static fromMap(Map<String, dynamic>? map) {
if (map == null) return null;
return MagicMetadata(
visibility: map[magicKeyVisibility] ?? visibilityVisible,
);
}
}
class PubMagicMetadata {
int? editedTime;
String? editedName;
PubMagicMetadata({this.editedTime, this.editedName});
factory PubMagicMetadata.fromEncodedJson(String encodedJson) =>
PubMagicMetadata.fromJson(jsonDecode(encodedJson));
factory PubMagicMetadata.fromJson(dynamic json) =>
PubMagicMetadata.fromMap(json);
static fromMap(Map<String, dynamic>? map) {
if (map == null) return null;
return PubMagicMetadata(
editedTime: map[pubMagicKeyEditedTime],
editedName: map[pubMagicKeyEditedName],
);
}
}
class CollectionMagicMetadata {
// 0 -> visible
// 1 -> archived
// 2 -> hidden etc?
int visibility;
CollectionMagicMetadata({required this.visibility});
factory CollectionMagicMetadata.fromEncodedJson(String encodedJson) =>
CollectionMagicMetadata.fromJson(jsonDecode(encodedJson));
factory CollectionMagicMetadata.fromJson(dynamic json) =>
CollectionMagicMetadata.fromMap(json);
static fromMap(Map<String, dynamic>? map) {
if (map == null) return null;
return CollectionMagicMetadata(
visibility: map[magicKeyVisibility] ?? visibilityVisible,
);
}
}

View File

@@ -1,6 +0,0 @@
class PublicKey {
final String email;
final String publicKey;
PublicKey(this.email, this.publicKey);
}

View File

@@ -13,6 +13,7 @@ import 'package:ente_auth/onboarding/view/common/field_label.dart';
import 'package:ente_auth/onboarding/view/common/tag_chip.dart';
import 'package:ente_auth/store/code_display_store.dart';
import 'package:ente_auth/theme/ente_theme.dart';
import 'package:ente_auth/ui/algorithm_selector_widget.dart';
import 'package:ente_auth/ui/components/buttons/button_widget.dart';
import 'package:ente_auth/ui/components/custom_icon_widget.dart';
import 'package:ente_auth/ui/components/models/button_result.dart';
@@ -38,10 +39,12 @@ class _SetupEnterSecretKeyPageState extends State<SetupEnterSecretKeyPage> {
final Logger _logger = Logger('_SetupEnterSecretKeyPageState');
final int _notesLimit = 500;
final int _otherTextLimit = 200;
final int defaultDigits = 6;
late TextEditingController _issuerController;
late TextEditingController _accountController;
late TextEditingController _secretController;
late TextEditingController _notesController;
late TextEditingController _digitsController;
late bool _secretKeyObscured;
late List<String> selectedTags = [...?widget.code?.display.tags];
List<String> allTags = [];
@@ -49,6 +52,7 @@ class _SetupEnterSecretKeyPageState extends State<SetupEnterSecretKeyPage> {
bool isCustomIcon = false;
String _customIconID = "";
late IconType _iconSrc;
late Algorithm _algorithm;
@override
void initState() {
@@ -65,6 +69,12 @@ class _SetupEnterSecretKeyPageState extends State<SetupEnterSecretKeyPage> {
_notesController = TextEditingController(
text: widget.code?.display.note,
);
_digitsController = TextEditingController(
text: widget.code != null
? widget.code!.digits.toString()
: defaultDigits.toString(),
);
_secretKeyObscured = widget.code != null;
_loadTags();
_streamSubscription = Bus.instance.on<CodesUpdatedEvent>().listen((event) {
@@ -101,6 +111,8 @@ class _SetupEnterSecretKeyPageState extends State<SetupEnterSecretKeyPage> {
? IconType.simpleIcon
: IconType.customIcon;
_algorithm = widget.code == null ? Algorithm.sha1 : widget.code!.algorithm;
super.initState();
}
@@ -121,6 +133,7 @@ class _SetupEnterSecretKeyPageState extends State<SetupEnterSecretKeyPage> {
_issuerController.dispose();
_accountController.dispose();
_notesController.dispose();
_digitsController.dispose();
super.dispose();
}
@@ -268,6 +281,79 @@ class _SetupEnterSecretKeyPageState extends State<SetupEnterSecretKeyPage> {
],
),
const SizedBox(height: 12),
widget.code == null
? Theme(
data: Theme.of(context).copyWith(
splashColor: Colors.transparent,
highlightColor: Colors.transparent,
hoverColor: Colors.transparent,
),
child: ExpansionTile(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8.0),
),
collapsedShape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8.0),
),
collapsedBackgroundColor: Colors.transparent,
tilePadding: EdgeInsets.zero,
title: Text(
"Advanced",
style: getEnteTextTheme(context).small,
),
children: <Widget>[
Row(
children: [
const FieldLabel("Digits"),
Expanded(
child: TextFormField(
keyboardType: TextInputType.number,
// The validator receives the text that the user has entered.
validator: (value) {
if (value == null || value.isEmpty) {
return "Please enter a number";
}
final intValue = int.tryParse(value);
if (intValue == null) {
return "Only integers are allowed";
}
if (intValue < 1 || intValue > 10) {
return "OTP digits must be between 1 and 10";
}
return null;
},
maxLines: 1,
decoration: const InputDecoration(
contentPadding: EdgeInsets.symmetric(
vertical: 12.0,
),
),
style: getEnteTextTheme(context).small,
controller: _digitsController,
),
),
],
),
const SizedBox(height: 22),
Row(
children: [
const FieldLabel("Algorithm"),
AlgorithmSelectorWidget(
currentAlgorithm: _algorithm,
onSelected: (newAlgorithm) async {
setState(() {
_algorithm = newAlgorithm;
});
},
),
],
),
const SizedBox(height: 12),
],
),
)
: const SizedBox.shrink(),
const SizedBox(height: 12),
Wrap(
spacing: 12,
alignment: WrapAlignment.start,
@@ -322,12 +408,29 @@ class _SetupEnterSecretKeyPageState extends State<SetupEnterSecretKeyPage> {
padding: const EdgeInsets.symmetric(vertical: 8),
),
onPressed: () async {
final digits =
int.tryParse(_digitsController.text.trim());
if (digits != null && (digits < 1 || digits > 10)) {
String message = "Digits must be between 1 and 10";
_showIncorrectDetailsDialog(
context,
message: message,
);
return;
}
if ((_accountController.text.trim().isEmpty &&
_issuerController.text.trim().isEmpty) ||
_secretController.text.trim().isEmpty) {
_secretController.text.trim().isEmpty ||
_digitsController.text.trim().isEmpty ||
digits == null) {
String message;
if (_secretController.text.trim().isEmpty) {
message = context.l10n.secretCanNotBeEmpty;
} else if (_digitsController.text.isEmpty) {
message = "Digits cannot be empty";
} else if (digits == null) {
message = "Digits is not a integer";
} else {
message =
context.l10n.bothIssuerAndAccountCanNotBeEmpty;
@@ -358,6 +461,8 @@ class _SetupEnterSecretKeyPageState extends State<SetupEnterSecretKeyPage> {
final issuer = _issuerController.text.trim();
final secret = _secretController.text.trim().replaceAll(' ', '');
final notes = _notesController.text.trim();
final digits = int.tryParse(_digitsController.text.trim());
final isStreamCode = issuer.toLowerCase() == "steam" ||
issuer.toLowerCase().contains('steampowered.com');
final CodeDisplay display =
@@ -398,14 +503,18 @@ class _SetupEnterSecretKeyPageState extends State<SetupEnterSecretKeyPage> {
issuer,
secret,
display,
isStreamCode ? Code.steamDigits : Code.defaultDigits,
isStreamCode ? Code.steamDigits : digits!,
algorithm: _algorithm,
)
: widget.code!.copyWith(
account: account,
issuer: issuer,
secret: secret,
display: display,
algorithm: _algorithm,
digits: digits!,
);
// Verify the validity of the code
getOTP(newCode);
Navigator.of(context).pop(newCode);

View File

@@ -1,23 +0,0 @@
import 'package:ente_auth/core/configuration.dart';
import 'package:flutter/foundation.dart';
class FeatureFlagService {
FeatureFlagService._privateConstructor();
static final FeatureFlagService instance =
FeatureFlagService._privateConstructor();
static final _internalUserIDs = const String.fromEnvironment(
"internal_user_ids",
defaultValue: "1,2,3,4,191,125,1580559962388044,1580559962392434,10000025",
).split(",").map((element) {
return int.parse(element);
}).toSet();
bool isInternalUserOrDebugBuild() {
final String? email = Configuration.instance.getEmail();
final userID = Configuration.instance.getUserID();
return (email != null && email.endsWith("@ente.io")) ||
_internalUserIDs.contains(userID) ||
kDebugMode;
}
}

View File

@@ -350,6 +350,7 @@ class UserService {
userPassword,
_config.getKeyAttributes()!,
);
_config.resetVolatilePassword();
page = const HomePage();
} else {
throw Exception("unexpected response during passkey verification");

View File

@@ -6,8 +6,8 @@ import 'package:shared_preferences/shared_preferences.dart';
import 'package:window_manager/window_manager.dart';
class WindowListenerService {
static const double minWindowHeight = 600.0;
static const double minWindowWidth = 800.0;
static const double initialWindowHeight = 1200.0;
static const double initialWindowWidth = 800.0;
static const double maxWindowHeight = 8192.0;
static const double maxWindowWidth = 8192.0;
late SharedPreferences _preferences;
@@ -23,9 +23,9 @@ class WindowListenerService {
Size getWindowSize() {
final double windowWidth =
_preferences.getDouble('windowWidth') ?? minWindowWidth;
_preferences.getDouble('windowWidth') ?? initialWindowWidth;
final double windowHeight =
_preferences.getDouble('windowHeight') ?? minWindowHeight;
_preferences.getDouble('windowHeight') ?? initialWindowHeight;
final w = windowWidth.clamp(200.0, maxWindowWidth);
final h = windowHeight.clamp(400.0, maxWindowHeight);
return Size(w, h);

View File

@@ -1,14 +0,0 @@
import 'package:shared_preferences/shared_preferences.dart';
class UserStore {
UserStore._privateConstructor();
// ignore: unused_field
late SharedPreferences _preferences;
static final UserStore instance = UserStore._privateConstructor();
Future<void> init() async {
_preferences = await SharedPreferences.getInstance();
}
}

View File

@@ -113,7 +113,7 @@ class _LoginPasswordVerificationPageState
);
} else {
_logger.severe('API failure during SRP login', e, s);
if (e.type == DioExceptionType.unknown) {
if (e.type == DioExceptionType.connectionError) {
await _showContactSupportDialog(
context,
context.l10n.noInternetConnection,

View File

@@ -0,0 +1,72 @@
import 'package:ente_auth/models/code.dart';
import 'package:ente_auth/theme/ente_theme.dart';
import 'package:flutter/material.dart';
class AlgorithmSelectorWidget extends StatelessWidget {
final Algorithm currentAlgorithm;
final void Function(Algorithm) onSelected;
const AlgorithmSelectorWidget({
super.key,
required this.currentAlgorithm,
required this.onSelected,
});
@override
Widget build(BuildContext context) {
Text algorithmOptionText(Algorithm algorithm) {
return Text(
algorithm.name.toUpperCase(),
style: getEnteTextTheme(context).small,
);
}
return GestureDetector(
onTapDown: (TapDownDetails details) async {
final int? selectedValue = await showMenu<int>(
context: context,
position: RelativeRect.fromLTRB(
details.globalPosition.dx,
details.globalPosition.dy,
details.globalPosition.dx,
details.globalPosition.dy + 300,
),
items: List.generate(Algorithm.values.length, (index) {
return PopupMenuItem(
value: index,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
algorithmOptionText(Algorithm.values[index]),
if (Algorithm.values[index] == currentAlgorithm)
Icon(
Icons.check,
color: Theme.of(context).iconTheme.color,
),
],
),
);
}),
);
if (selectedValue != null) {
onSelected(Algorithm.values[selectedValue]);
}
},
child: Container(
padding: const EdgeInsets.only(bottom: 4),
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(color: Theme.of(context).dividerColor),
),
),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
algorithmOptionText(currentAlgorithm),
const SizedBox(width: 8),
const Icon(Icons.arrow_drop_down),
],
),
),
);
}
}

View File

@@ -1,25 +0,0 @@
import 'package:flutter/material.dart';
class BottomShadowWidget extends StatelessWidget {
final double offsetDy;
final Color? shadowColor;
const BottomShadowWidget({this.offsetDy = 28, this.shadowColor, super.key});
@override
Widget build(BuildContext context) {
return Container(
height: 8,
decoration: BoxDecoration(
color: Colors.transparent,
boxShadow: [
BoxShadow(
color: shadowColor ?? Theme.of(context).colorScheme.surface,
spreadRadius: 42,
blurRadius: 42,
offset: Offset(0, offsetDy), // changes position of shadow
),
],
),
);
}
}

View File

@@ -1,49 +0,0 @@
import 'package:ente_auth/ente_theme_data.dart';
import 'package:flutter/material.dart';
class LinearProgressDialog extends StatefulWidget {
final String message;
const LinearProgressDialog(this.message, {super.key});
@override
LinearProgressDialogState createState() => LinearProgressDialogState();
}
class LinearProgressDialogState extends State<LinearProgressDialog> {
double? _progress;
@override
void initState() {
_progress = 0;
super.initState();
}
void setProgress(double progress) {
setState(() {
_progress = progress;
});
}
@override
Widget build(BuildContext context) {
return PopScope(
canPop: false,
child: AlertDialog(
title: Text(
widget.message,
style: const TextStyle(
fontSize: 16,
),
textAlign: TextAlign.center,
),
content: LinearProgressIndicator(
value: _progress,
valueColor: AlwaysStoppedAnimation<Color>(
Theme.of(context).colorScheme.alternativeColor,
),
),
),
);
}
}

View File

@@ -1,98 +0,0 @@
import 'package:ente_auth/utils/dialog_util.dart';
import 'package:flutter/material.dart';
class RenameDialog extends StatefulWidget {
final String name;
final String type;
final int maxLength;
const RenameDialog(this.name, this.type, {super.key, this.maxLength = 100});
@override
State<RenameDialog> createState() => _RenameDialogState();
}
class _RenameDialogState extends State<RenameDialog> {
String? _newName;
@override
void initState() {
super.initState();
_newName = widget.name;
}
@override
Widget build(BuildContext context) {
return AlertDialog(
title: const Text("Enter a new name"),
content: SingleChildScrollView(
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
TextFormField(
decoration: InputDecoration(
hintText: '${widget.type} name',
hintStyle: const TextStyle(
color: Colors.white30,
),
contentPadding: const EdgeInsets.all(12),
),
onChanged: (value) {
setState(() {
_newName = value;
});
},
autocorrect: false,
keyboardType: TextInputType.text,
initialValue: _newName,
autofocus: true,
),
],
),
),
actions: [
TextButton(
child: const Text(
"Cancel",
style: TextStyle(
color: Colors.redAccent,
),
),
onPressed: () {
Navigator.of(context).pop(null);
},
),
TextButton(
child: Text(
"Rename",
style: TextStyle(
color: Theme.of(context).colorScheme.onSurface,
),
),
onPressed: () {
if (_newName!.trim().isEmpty) {
showErrorDialog(
context,
"Empty name",
"${widget.type} name cannot be empty",
);
return;
}
if (_newName!.trim().length > widget.maxLength) {
showErrorDialog(
context,
"Name too large",
"${widget.type} name should be less than ${widget.maxLength} characters",
);
return;
}
Navigator.of(context).pop(_newName!.trim());
},
),
],
);
}
}

View File

@@ -1,41 +0,0 @@
import 'package:ente_auth/core/event_bus.dart';
import 'package:ente_auth/events/opened_settings_event.dart';
import 'package:flutter/material.dart';
class HomeHeaderWidget extends StatefulWidget {
final Widget centerWidget;
const HomeHeaderWidget({required this.centerWidget, super.key});
@override
State<HomeHeaderWidget> createState() => _HomeHeaderWidgetState();
}
class _HomeHeaderWidgetState extends State<HomeHeaderWidget> {
@override
Widget build(BuildContext context) {
final hasNotch = View.of(context).viewPadding.top > 65;
return Padding(
padding: EdgeInsets.fromLTRB(4, hasNotch ? 4 : 8, 4, 4),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
IconButton(
visualDensity: const VisualDensity(horizontal: -2, vertical: -2),
onPressed: () {
Scaffold.of(context).openDrawer();
Bus.instance.fire(OpenedSettingsEvent());
},
splashColor: Colors.transparent,
icon: const Icon(
Icons.menu_outlined,
),
),
AnimatedSwitcher(
duration: const Duration(milliseconds: 250),
child: widget.centerWidget,
),
],
),
);
}
}

View File

@@ -1,69 +0,0 @@
import 'package:ente_auth/l10n/l10n.dart';
import 'package:ente_auth/services/user_service.dart';
import 'package:ente_auth/theme/ente_theme.dart';
import 'package:ente_auth/ui/account/delete_account_page.dart';
import 'package:ente_auth/ui/components/captioned_text_widget.dart';
import 'package:ente_auth/ui/components/expandable_menu_item_widget.dart';
import 'package:ente_auth/ui/components/menu_item_widget.dart';
import 'package:ente_auth/ui/settings/common_settings.dart';
import 'package:ente_auth/utils/dialog_util.dart';
import 'package:ente_auth/utils/navigation_util.dart';
import 'package:flutter/material.dart';
class DangerSectionWidget extends StatelessWidget {
const DangerSectionWidget({super.key});
@override
Widget build(BuildContext context) {
return ExpandableMenuItemWidget(
title: context.l10n.exit,
selectionOptionsWidget: _getSectionOptions(context),
leadingIcon: Icons.logout_outlined,
);
}
Widget _getSectionOptions(BuildContext context) {
return Column(
children: [
sectionOptionSpacing,
MenuItemWidget(
captionedTextWidget: CaptionedTextWidget(
title: context.l10n.logout,
),
pressedColor: getEnteColorScheme(context).fillFaint,
trailingIcon: Icons.chevron_right_outlined,
trailingIconIsMuted: true,
onTap: () async {
_onLogoutTapped(context);
},
),
sectionOptionSpacing,
MenuItemWidget(
captionedTextWidget: CaptionedTextWidget(
title: context.l10n.deleteAccount,
),
pressedColor: getEnteColorScheme(context).fillFaint,
trailingIcon: Icons.chevron_right_outlined,
trailingIconIsMuted: true,
onTap: () async {
// ignore: unawaited_futures
routeToPage(context, const DeleteAccountPage());
},
),
sectionOptionSpacing,
],
);
}
void _onLogoutTapped(BuildContext context) {
showChoiceActionSheet(
context,
title: context.l10n.areYouSureYouWantToLogout,
firstButtonLabel: context.l10n.yesLogout,
isCritical: true,
firstButtonOnTap: () async {
await UserService.instance.logout(context);
},
);
}
}

View File

@@ -1,94 +0,0 @@
import 'package:ente_auth/core/configuration.dart';
import 'package:ente_auth/l10n/l10n.dart';
import 'package:ente_auth/ui/settings/common_settings.dart';
import 'package:ente_auth/ui/settings/settings_section_title.dart';
import 'package:ente_auth/ui/settings/settings_text_item.dart';
import 'package:ente_crypto_dart/ente_crypto_dart.dart';
import 'package:expandable/expandable.dart';
import 'package:flutter/material.dart';
class DebugSectionWidget extends StatelessWidget {
const DebugSectionWidget({super.key});
@override
Widget build(BuildContext context) {
// This is a debug only section not shown to end users, so these strings are
// not translated.
return ExpandablePanel(
header: const SettingsSectionTitle("Debug"),
collapsed: Container(),
expanded: _getSectionOptions(context),
theme: getExpandableTheme(),
);
}
Widget _getSectionOptions(BuildContext context) {
return Column(
children: [
GestureDetector(
behavior: HitTestBehavior.translucent,
onTap: () async {
_showKeyAttributesDialog(context);
},
child: const SettingsTextItem(
text: "Key attributes",
icon: Icons.navigate_next,
),
),
],
);
}
void _showKeyAttributesDialog(BuildContext context) {
final l10n = context.l10n;
final keyAttributes = Configuration.instance.getKeyAttributes()!;
final AlertDialog alert = AlertDialog(
title: const Text("key attributes"),
content: SingleChildScrollView(
child: Column(
children: [
const Text(
"Key",
style: TextStyle(fontWeight: FontWeight.bold),
),
Text(CryptoUtil.bin2base64(Configuration.instance.getKey()!)),
const Padding(padding: EdgeInsets.all(12)),
const Text(
"Encrypted Key",
style: TextStyle(fontWeight: FontWeight.bold),
),
Text(keyAttributes.encryptedKey),
const Padding(padding: EdgeInsets.all(12)),
const Text(
"Key Decryption Nonce",
style: TextStyle(fontWeight: FontWeight.bold),
),
Text(keyAttributes.keyDecryptionNonce),
const Padding(padding: EdgeInsets.all(12)),
const Text(
"KEK Salt",
style: TextStyle(fontWeight: FontWeight.bold),
),
Text(keyAttributes.kekSalt),
const Padding(padding: EdgeInsets.all(12)),
],
),
),
actions: [
TextButton(
child: Text(l10n.ok),
onPressed: () {
Navigator.of(context, rootNavigator: true).pop('dialog');
},
),
],
);
showDialog(
context: context,
builder: (BuildContext context) {
return alert;
},
);
}
}

View File

@@ -147,6 +147,8 @@ class _ItemsWidgetState extends State<ItemsWidget> {
return 'Français';
case 'de':
return 'Deutsch';
case 'he':
return 'עברית';
case 'hu':
return 'Magyar';
case 'id':
@@ -166,6 +168,8 @@ class _ItemsWidgetState extends State<ItemsWidget> {
default:
return 'Português';
}
case 'ro':
return 'Română';
case 'ru':
return 'Русский';
case 'sl':
@@ -181,6 +185,13 @@ class _ItemsWidgetState extends State<ItemsWidget> {
case 'fi':
return 'Suomi';
case 'zh':
if (locale.countryCode == 'TW') {
return '中文 (台灣)';
} else if (locale.countryCode == 'HK') {
return '中文 (香港)';
} else if (locale.countryCode == 'CN') {
return '中文 (中国)';
}
switch (locale.scriptCode) {
case 'Hans':
return '中文 (简体)';

View File

@@ -1,34 +0,0 @@
import 'package:ente_auth/l10n/l10n.dart';
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
class MadeWithLoveWidget extends StatelessWidget {
const MadeWithLoveWidget({
super.key,
});
@override
Widget build(BuildContext context) {
final l10n = context.l10n;
return GestureDetector(
onTap: () {
launchUrl(Uri.parse("https://ente.io"));
},
child: RichText(
text: TextSpan(
text: l10n.madeWithLoveAtPrefix,
style: DefaultTextStyle.of(context).style,
children: const <TextSpan>[
TextSpan(
text: 'ente.io',
style: TextStyle(
fontWeight: FontWeight.bold,
color: Colors.green,
),
),
],
),
),
);
}
}

View File

@@ -1,3 +1,5 @@
import 'dart:io';
import 'package:ente_auth/core/configuration.dart';
import 'package:ente_auth/l10n/l10n.dart';
import 'package:ente_auth/models/user_details.dart';
@@ -35,7 +37,9 @@ class NotificationBannerWidget extends StatelessWidget {
[
BannerWidget(
text: l10n.tellUsWhatYouThink,
subText: l10n.dropReview,
subText: Platform.isIOS
? l10n.dropReviewiOS
: l10n.dropReviewAndroid,
type: BannerType.rateUs,
),
sectionSpacing,
@@ -84,7 +88,8 @@ class NotificationBannerWidget extends StatelessWidget {
[
BannerWidget(
text: l10n.tellUsWhatYouThink,
subText: l10n.dropReview,
subText:
Platform.isIOS ? l10n.dropReviewiOS : l10n.dropReviewAndroid,
type: BannerType.rateUs,
),
sectionSpacing,

View File

@@ -1,35 +0,0 @@
import 'dart:io';
import 'package:flutter/material.dart';
class SettingsTextItem extends StatelessWidget {
final String text;
final IconData icon;
const SettingsTextItem({
super.key,
required this.text,
required this.icon,
});
@override
Widget build(BuildContext context) {
return Column(
children: [
Padding(padding: EdgeInsets.all(Platform.isIOS ? 4 : 6)),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Align(
alignment: Alignment.centerLeft,
child: Text(text, style: Theme.of(context).textTheme.titleMedium),
),
Icon(icon),
],
),
Padding(padding: EdgeInsets.all(Platform.isIOS ? 4 : 6)),
],
);
}
}

View File

@@ -1,83 +0,0 @@
import 'package:dotted_border/dotted_border.dart';
import 'package:ente_auth/core/configuration.dart';
import 'package:ente_auth/l10n/l10n.dart';
import 'package:ente_auth/models/subscription.dart';
import 'package:ente_auth/services/billing_service.dart';
import 'package:ente_auth/theme/ente_theme.dart';
import 'package:flutter/material.dart';
import 'package:styled_text/styled_text.dart';
import 'package:url_launcher/url_launcher.dart';
class SupportDevWidget extends StatelessWidget {
const SupportDevWidget({
super.key,
});
@override
Widget build(BuildContext context) {
final l10n = context.l10n;
// fetch
if (Configuration.instance.hasConfiguredAccount()) {
return FutureBuilder<Subscription>(
future: BillingService.instance.getSubscription(),
builder: (context, snapshot) {
if (snapshot.hasData) {
final subscription = snapshot.data;
if (subscription != null && subscription.productID == "free") {
return buildWidget(l10n, context);
}
}
return const SizedBox.shrink();
},
);
} else {
return buildWidget(l10n, context);
}
}
Widget buildWidget(AppLocalizations l10n, BuildContext context) {
return GestureDetector(
onTap: () {
launchUrl(Uri.parse("https://ente.io"));
},
child: DottedBorder(
borderType: BorderType.RRect,
radius: const Radius.circular(12),
padding: const EdgeInsets.all(6),
dashPattern: const <double>[3, 3],
color: getEnteColorScheme(context).primaryGreen,
child: ClipRRect(
borderRadius: const BorderRadius.all(Radius.circular(12)),
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 12.0, horizontal: 6),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
StyledText(
text: l10n.supportDevs,
style: getEnteTextTheme(context).large,
tags: {
'bold-green': StyledTextTag(
style: TextStyle(
fontWeight: FontWeight.bold,
color: getEnteColorScheme(context).primaryGreen,
),
),
},
),
const Padding(padding: EdgeInsets.all(6)),
Text(
l10n.supportDiscount,
style: const TextStyle(
color: Colors.grey,
),
),
],
),
),
),
),
);
}
}

View File

@@ -1 +0,0 @@
// TODO Implement this library.

View File

@@ -113,12 +113,12 @@ String parseErrorForUI(
if (dioError.response?.data["code"] != null) {
errorInfo = "Reason: ${dioError.response!.data["code"]}";
} else {
errorInfo = "Reason: ${dioError.response!.data}";
errorInfo = "Reason: ${dioError.response!.data.toString()}";
}
} else if (dioError.type == DioExceptionType.unknown) {
errorInfo = "Reason: $dioError.error";
} else if (dioError.type == DioExceptionType.badCertificate) {
errorInfo = "Reason: ${dioError.error.toString()}";
} else {
errorInfo = "Reason: $dioError.type";
errorInfo = "Reason: ${dioError.type.toString()}";
}
} else {
if (kDebugMode) {

View File

@@ -17,6 +17,7 @@ list(APPEND FLUTTER_PLUGIN_LIST
)
list(APPEND FLUTTER_FFI_PLUGIN_LIST
jni
)
set(PLUGIN_BUNDLED_LIBRARIES)

View File

@@ -1,4 +1,4 @@
platform :osx, '10.14'
platform :osx, '10.15'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

View File

@@ -4,6 +4,9 @@ PODS:
- connectivity_plus (0.0.1):
- Flutter
- FlutterMacOS
- cupertino_http (0.0.1):
- Flutter
- FlutterMacOS
- device_info_plus (0.0.1):
- FlutterMacOS
- file_saver (0.0.1):
@@ -21,6 +24,8 @@ PODS:
- local_auth_darwin (0.0.1):
- Flutter
- FlutterMacOS
- objective_c (0.0.1):
- FlutterMacOS
- OrderedSet (6.0.3)
- package_info_plus (0.0.1):
- FlutterMacOS
@@ -72,6 +77,7 @@ PODS:
DEPENDENCIES:
- app_links (from `Flutter/ephemeral/.symlinks/plugins/app_links/macos`)
- connectivity_plus (from `Flutter/ephemeral/.symlinks/plugins/connectivity_plus/darwin`)
- cupertino_http (from `Flutter/ephemeral/.symlinks/plugins/cupertino_http/darwin`)
- device_info_plus (from `Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos`)
- file_saver (from `Flutter/ephemeral/.symlinks/plugins/file_saver/macos`)
- flutter_inappwebview_macos (from `Flutter/ephemeral/.symlinks/plugins/flutter_inappwebview_macos/macos`)
@@ -80,6 +86,7 @@ DEPENDENCIES:
- flutter_secure_storage_macos (from `Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos/macos`)
- FlutterMacOS (from `Flutter/ephemeral`)
- local_auth_darwin (from `Flutter/ephemeral/.symlinks/plugins/local_auth_darwin/darwin`)
- objective_c (from `Flutter/ephemeral/.symlinks/plugins/objective_c/macos`)
- package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`)
- path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`)
- screen_retriever (from `Flutter/ephemeral/.symlinks/plugins/screen_retriever/macos`)
@@ -104,6 +111,8 @@ EXTERNAL SOURCES:
:path: Flutter/ephemeral/.symlinks/plugins/app_links/macos
connectivity_plus:
:path: Flutter/ephemeral/.symlinks/plugins/connectivity_plus/darwin
cupertino_http:
:path: Flutter/ephemeral/.symlinks/plugins/cupertino_http/darwin
device_info_plus:
:path: Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos
file_saver:
@@ -120,6 +129,8 @@ EXTERNAL SOURCES:
:path: Flutter/ephemeral
local_auth_darwin:
:path: Flutter/ephemeral/.symlinks/plugins/local_auth_darwin/darwin
objective_c:
:path: Flutter/ephemeral/.symlinks/plugins/objective_c/macos
package_info_plus:
:path: Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos
path_provider_foundation:
@@ -148,6 +159,7 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
app_links: 10e0a0ab602ffaf34d142cd4862f29d34b303b2a
connectivity_plus: ddd7f30999e1faaef5967c23d5b6d503d10434db
cupertino_http: 947a233f40cfea55167a49f2facc18434ea117ba
device_info_plus: 5401765fde0b8d062a2f8eb65510fb17e77cf07f
file_saver: 44e6fbf666677faf097302460e214e977fdd977b
flutter_inappwebview_macos: bdf207b8f4ebd58e86ae06cd96b147de99a67c9b
@@ -156,6 +168,7 @@ SPEC CHECKSUMS:
flutter_secure_storage_macos: 59459653abe1adb92abbc8ea747d79f8d19866c9
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24
local_auth_darwin: 66e40372f1c29f383a314c738c7446e2f7fdadc3
objective_c: e5f8194456e8fc943e034d1af00510a1bc29c067
OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94
package_info_plus: fa739dd842b393193c5ca93c26798dff6e3d0e0c
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
@@ -172,6 +185,6 @@ SPEC CHECKSUMS:
url_launcher_macos: c82c93949963e55b228a30115bd219499a6fe404
window_manager: 3a1844359a6295ab1e47659b1a777e36773cd6e8
PODFILE CHECKSUM: f401c31c8f7c5571f6f565c78915d54338812dab
PODFILE CHECKSUM: 6ff827273ace187339fc5d3684072a26ad85c298
COCOAPODS: 1.16.2

View File

@@ -428,7 +428,7 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.14;
MACOSX_DEPLOYMENT_TARGET = 10.15;
ONLY_ACTIVE_ARCH = YES;
PRODUCT_BUNDLE_IDENTIFIER = io.ente.auth.mac;
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -560,7 +560,7 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.14;
MACOSX_DEPLOYMENT_TARGET = 10.15;
PRODUCT_BUNDLE_IDENTIFIER = io.ente.auth.mac;
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@@ -587,7 +587,7 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.14;
MACOSX_DEPLOYMENT_TARGET = 10.15;
OTHER_CODE_SIGN_FLAGS = "--timestamp";
PRODUCT_BUNDLE_IDENTIFIER = io.ente.auth.mac;
PROVISIONING_PROFILE_SPECIFIER = "";

View File

@@ -286,6 +286,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.1.1"
cronet_http:
dependency: transitive
description:
name: cronet_http
sha256: "3af9c4d57bf07ef4b307e77b22be4ad61bea19ee6ff65e62184863f3a09f1415"
url: "https://pub.dev"
source: hosted
version: "1.3.2"
cross_file:
dependency: transitive
description:
@@ -310,6 +318,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.0"
cupertino_http:
dependency: transitive
description:
name: cupertino_http
sha256: "6fcf79586ad872ddcd6004d55c8c2aab3cdf0337436e8f99837b1b6c30665d0c"
url: "https://pub.dev"
source: hosted
version: "2.0.2"
dart_style:
dependency: transitive
description:
@@ -346,10 +362,10 @@ packages:
dependency: "direct main"
description:
name: dio
sha256: "5598aa796bbf4699afd5c67c0f5f6e2ed542afc956884b9cd58c306966efc260"
sha256: "253a18bbd4851fecba42f7343a1df3a9a4c1d31a2c1b37e221086b4fa8c8dbc9"
url: "https://pub.dev"
source: hosted
version: "5.7.0"
version: "5.8.0+1"
dio_web_adapter:
dependency: transitive
description:
@@ -861,6 +877,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "4.0.2"
http_profile:
dependency: transitive
description:
name: http_profile
sha256: "7e679e355b09aaee2ab5010915c932cce3f2d1c11c3b2dc177891687014ffa78"
url: "https://pub.dev"
source: hosted
version: "0.1.0"
image:
dependency: transitive
description:
@@ -885,6 +909,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.4"
jni:
dependency: transitive
description:
name: jni
sha256: f377c585ea9c08d48b427dc2e03780af2889d1bb094440da853c6883c1acba4b
url: "https://pub.dev"
source: hosted
version: "0.10.1"
js:
dependency: transitive
description:
@@ -1061,6 +1093,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.2"
native_dio_adapter:
dependency: "direct main"
description:
name: native_dio_adapter
sha256: "7420bc9517b2abe09810199a19924617b45690a44ecfb0616ac9babc11875c03"
url: "https://pub.dev"
source: hosted
version: "1.4.0"
nested:
dependency: transitive
description:
@@ -1077,6 +1117,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.5.0"
objective_c:
dependency: transitive
description:
name: objective_c
sha256: "62e79ab8c3ed6f6a340ea50dd48d65898f5d70425d404f0d99411f6e56e04584"
url: "https://pub.dev"
source: hosted
version: "4.1.0"
otp:
dependency: "direct main"
description:

View File

@@ -1,7 +1,7 @@
name: ente_auth
description: ente two-factor authenticator
version: 4.3.2+432
version: 4.3.3+433
publish_to: none
environment:
@@ -21,7 +21,7 @@ dependencies:
connectivity_plus: ^6.0.5
convert: ^3.1.1
device_info_plus: ^9.1.1
dio: ^5.4.0
dio: ^5.8.0+1
dotted_border: ^2.0.0+2
dropdown_button2: ^2.3.9
email_validator: ^3.0.0
@@ -72,6 +72,7 @@ dependencies:
logging: ^1.0.1
modal_bottom_sheet: ^3.0.0
move_to_background: ^1.0.2
native_dio_adapter: ^1.4.0
otp: ^3.1.1
package_info_plus: ^8.0.2
password_strength: ^0.2.0

View File

@@ -20,6 +20,7 @@ list(APPEND FLUTTER_PLUGIN_LIST
)
list(APPEND FLUTTER_FFI_PLUGIN_LIST
jni
sentry_flutter
)

View File

@@ -45,7 +45,6 @@ jobs:
"${{ startsWith(github.ref, 'refs/tags/v') &&
format('photosd-{0}', github.ref_name) || ( inputs.source
|| 'main' ) }}"
submodules: recursive
- name: Setup node
uses: actions/setup-node@v4

View File

@@ -1,6 +1,7 @@
{
"tabWidth": 4,
"proseWrap": "always",
"objectWrap": "collapse",
"plugins": [
"prettier-plugin-organize-imports",
"prettier-plugin-packagejson"

View File

@@ -1,9 +1,17 @@
# CHANGELOG
## v1.7.10 (Unreleased)
## v1.7.11 (Unreleased)
- Improved file viewer.
- Improved live photo experience.
- .
## v1.7.10
- Speed up selection for large libraries.
- Support Japanese translations.
- Fix video thumbnail generation on drag and drop.
## v1.7.9
- Light mode.

View File

@@ -10,19 +10,21 @@ To know more about Ente, see [our main README](../README.md) or visit
## Building from source
Fetch submodules
Clone this repository and change to this directory
```sh
git submodule update --init --recursive
git clone https://github.com/ente-io/ente
cd ente/desktop
```
Install dependencies
Install dependencies (requires Yarn v1):
```sh
yarn install
```
Run in development mode (supports hot reload for the renderer process)
Now you can run in development mode (supports hot reload for the renderer
process)
```sh
yarn dev

Some files were not shown because too many files have changed in this diff Show More