Compare commits

...

2230 Commits

Author SHA1 Message Date
ashilkn
f08ccce1e3 Resolve merge conflicts and merge release/2025-05-30 2025-05-30 09:36:57 +05:30
ashilkn
87fae3e6d9 Resolve merge conflicts and merge main 2025-05-27 19:16:31 +05:30
Ashil
89cd360f93 [mob][photos] Bump up to v1.1.0 (#6065) 2025-05-27 19:15:03 +05:30
ashilkn
f1274afdd4 Bump up to v1.1.0 2025-05-27 19:09:55 +05:30
ashilkn
0a5005d064 Add scrollbar for album widget settings screen 2025-05-27 19:06:16 +05:30
ashilkn
b54fe20520 chore 2025-05-27 18:46:18 +05:30
ashilkn
204a046e0a Merge branch 'main' into widget-superpowered 2025-05-27 18:44:52 +05:30
Ashil
4f21f1e94e [mob][photos] All albums screen UI/UX and performance improvements (#6060)
<img
src="https://github.com/user-attachments/assets/c9ca2050-9e5c-48c5-b01e-7ed89885bc6b"
width="200" height="450" alt="Image 1">
<img
src="https://github.com/user-attachments/assets/39aeda32-9f68-4d2f-b156-7b9312578435"
width="200" height="450" alt="Image 2">

Plus some improvements from @ashilkn
2025-05-27 18:43:40 +05:30
ashilkn
039866cf3b Chore: fix lint warning 2025-05-27 18:42:39 +05:30
ashilkn
c4b860a8fe Use SliverPrototypeExtentList instead of just SliverList for improved (scrolling?) performance 2025-05-27 18:35:56 +05:30
ashilkn
1d1e01898f Add scrollbar to all on ente albums page 2025-05-27 18:19:04 +05:30
ashilkn
53f947b5f0 Update arrow icon size 2025-05-27 18:10:17 +05:30
Manav Rathi
1e3a112c35 [desktop] Tweak changelog entry (#6064) 2025-05-27 17:51:15 +05:30
Manav Rathi
3dc23092a4 tweak 2025-05-27 17:48:47 +05:30
Manav Rathi
fd65e81079 [desktop] Enable stream generation for non-internal users (#6063) 2025-05-27 17:40:12 +05:30
Manav Rathi
eec0480618 [web] New translations (#6062)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-05-27 17:35:48 +05:30
Manav Rathi
fac5ab5079 [desktop] Enable stream generation for non-internal users 2025-05-27 17:34:13 +05:30
Ashil
051ce42ae6 [mob][photos] Home widget improvements (#6059)
## Description

See commits
2025-05-27 17:32:17 +05:30
Crowdin Bot
297d4bdbf5 New Crowdin translations by GitHub Action 2025-05-27 11:39:57 +00:00
Manav Rathi
9f9ad19d4b [web] Show full uploader name (#6061) 2025-05-27 17:09:22 +05:30
ashilkn
4d26de8ffd Add safety check 2025-05-27 17:05:46 +05:30
Manav Rathi
f16846b82e Added by 2025-05-27 16:49:08 +05:30
ashilkn
b44ef9f68a Prevent infinite loops 2025-05-27 16:45:37 +05:30
AmanRajSinghMourya
cf28fddfb3 Fix popup sheet background color 2025-05-27 16:17:42 +05:30
ashilkn
6c3b2ee25e Randomize memories and files shown in memories widget 2025-05-27 15:58:04 +05:30
Manav Rathi
2d8310460b [web] Use path prefix as context when collating metadata and live photos (#6058)
Fixes: 
- https://github.com/ente-io/ente/discussions/5920
- https://github.com/ente-io/ente/discussions/5950
2025-05-27 15:52:44 +05:30
Manav Rathi
0d5363c7a1 Fix typo 2025-05-27 15:48:14 +05:30
Manav Rathi
2f277bbffc lf 2025-05-27 15:38:16 +05:30
Manav Rathi
cbf3340bf2 Handle lp retry 2025-05-27 15:19:16 +05:30
Manav Rathi
de918f42e6 Retain metadata 2025-05-27 15:05:37 +05:30
Manav Rathi
6bd1547e09 Impl 2025-05-27 15:05:37 +05:30
Manav Rathi
aa70b2a437 spl 2025-05-27 15:05:37 +05:30
Manav Rathi
13b74f387f reuse 2025-05-27 15:05:37 +05:30
Manav Rathi
d52e3894d8 Move 2025-05-27 15:05:37 +05:30
Manav Rathi
780c2c2493 Outline 2025-05-27 15:05:37 +05:30
Manav Rathi
405c4d1258 [web] New translations (#6057)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-05-27 15:05:15 +05:30
Crowdin Bot
5f498b01ee New Crowdin translations by GitHub Action 2025-05-27 09:33:56 +00:00
Manav Rathi
af5020e62c [web] General refactoring (#6056) 2025-05-27 15:03:10 +05:30
Manav Rathi
7ddf0f6fe1 lf 2025-05-27 14:54:15 +05:30
ashilkn
5fa951ad4b Refactor people widget settings screen 2025-05-27 14:51:23 +05:30
ashilkn
e9ceb705f6 Sort album widget settings screen's albums, showing selected ones on top. Note that sorting doesn't happen when selection is modified on the screen and only once when it's built 2025-05-27 14:38:08 +05:30
ashilkn
9dcd9d63b2 Avoid using shrinkWrap 2025-05-27 13:43:49 +05:30
ashilkn
129e9f8f49 Avoid adding empty albums in _getAlbumsWithFiles() 2025-05-27 12:32:39 +05:30
ashilkn
6f02df19c6 Improve UI of widget's empty state 2025-05-27 12:31:59 +05:30
ashilkn
c8efc1a590 Randomize albums and files shown in album widget 2025-05-27 12:02:07 +05:30
ashilkn
8b1a659d68 Avoid sorting on selecting albums in album widget settings 2025-05-27 11:47:39 +05:30
Manav Rathi
9114fbca27 Update 2025-05-27 10:55:01 +05:30
Manav Rathi
e25d71a7d4 cb 2025-05-27 10:25:18 +05:30
Manav Rathi
1018765f7c [web] General refactoring (#6054) 2025-05-27 10:00:26 +05:30
Manav Rathi
0fb984d031 missing dep 2025-05-27 09:53:16 +05:30
Manav Rathi
4ad3560387 Move 2025-05-27 08:49:00 +05:30
Manav Rathi
482b175324 Move 2025-05-27 08:40:10 +05:30
Manav Rathi
894d7382e8 inline 2025-05-27 08:29:11 +05:30
Manav Rathi
53cc78d3e3 Inline 2025-05-27 08:25:29 +05:30
Manav Rathi
a634500e55 Inline 2025-05-27 08:20:53 +05:30
Manav Rathi
ee8ecd456c [web] General refactoring (#6052) 2025-05-27 08:18:07 +05:30
Manav Rathi
d69a22a73e Fix 2025-05-27 08:08:44 +05:30
Manav Rathi
8b1af42cf0 Conv 2025-05-27 08:04:42 +05:30
Manav Rathi
41e7d0056b Swap 2025-05-27 07:48:30 +05:30
Manav Rathi
d170789446 Update 2025-05-27 07:42:33 +05:30
Manav Rathi
afbbde5f2b Update 2025-05-27 07:31:29 +05:30
Manav Rathi
4e3112a4f6 Conv 2025-05-27 07:25:31 +05:30
Manav Rathi
a4950ece53 Tweak vis 2025-05-27 07:21:36 +05:30
Manav Rathi
1a01d759b0 Fix ellipsis 2025-05-27 07:19:18 +05:30
Manav Rathi
175b51fdb3 Improve visual look 2025-05-27 07:01:18 +05:30
Manav Rathi
a4ba2edc54 Update 2025-05-27 06:31:44 +05:30
Manav Rathi
1a8a26e9e4 Update 2025-05-27 05:49:27 +05:30
Laurens Priem
a2ddcfd34f [mob][photos] Minor ML improvements (#6043)
## Description

- Expose flag for when ML and Memories is running
- UI fix for deleting all files in cluster 
- Log times ML models are loaded

## Tests

Tested in debug mode on my pixel 8.
2025-05-26 21:44:33 +05:30
Manav Rathi
95700f52f6 [web] General refactoring (#6047) 2025-05-26 20:15:45 +05:30
Manav Rathi
fc16638bfe Redo 2025-05-26 19:47:16 +05:30
Manav Rathi
5d375eb837 Move 2025-05-26 19:42:24 +05:30
Ashil
fe86d3bb34 [mob][photos] Make widget settings pages less confusing on their empty states (#6046) 2025-05-26 19:37:53 +05:30
Manav Rathi
77956d0f67 Rename 2025-05-26 19:37:04 +05:30
ashilkn
53a22a8d58 chore 2025-05-26 19:32:21 +05:30
ashilkn
a5b178d283 Extract strings 2025-05-26 19:30:54 +05:30
Manav Rathi
e651c1e328 inline 3 2025-05-26 19:24:36 +05:30
ashilkn
9069975bf0 Avoid confusion on empty widget settings pages 2025-05-26 19:22:51 +05:30
Manav Rathi
5938e755ae wip 2 2025-05-26 18:38:18 +05:30
Manav Rathi
6f7b3738b3 inline wip 1 2025-05-26 18:32:24 +05:30
Manav Rathi
4ee9f45b3a Inline 2025-05-26 18:15:45 +05:30
Manav Rathi
c835a3d009 Tweak 2025-05-26 18:11:06 +05:30
Manav Rathi
6d3e55a6d9 Inline 2025-05-26 18:08:11 +05:30
Ashil
08b7986d70 [mob][photos] Randomize people and file shown in people widget (#6044) 2025-05-26 18:06:17 +05:30
Manav Rathi
067c8b2a76 Tweak 2025-05-26 18:03:47 +05:30
Manav Rathi
d355d18acb Inline 2025-05-26 17:57:19 +05:30
ashilkn
0e2a0388ff Randomize people and thier files shown in people widget 2025-05-26 17:56:48 +05:30
Manav Rathi
2baf3a3dd7 Tweak 2025-05-26 17:54:56 +05:30
Manav Rathi
854610dd48 Inline 2025-05-26 17:53:11 +05:30
laurenspriem
61be57fef5 Log loading of ML models events 2025-05-26 17:39:04 +05:30
Manav Rathi
8d59d7e254 Update 2025-05-26 17:32:42 +05:30
Manav Rathi
1bcf728b3a Conv 2025-05-26 17:24:51 +05:30
Manav Rathi
5797be3460 Update 2025-05-26 17:17:27 +05:30
Manav Rathi
20f50e4816 Update 2025-05-26 17:11:18 +05:30
Manav Rathi
5064ebf4d3 Update 2025-05-26 17:01:15 +05:30
laurenspriem
eb783f0fff Remove redundant method 2025-05-26 16:44:06 +05:30
laurenspriem
ca8f310868 Fix duplicate notification issue 2025-05-26 16:43:15 +05:30
Neeraj
2e0a2802e7 [mob] Add change log (#6042)
## Description

## Tests
2025-05-26 16:33:47 +05:30
Neeraj Gupta
7868c2e16e Remove unused entries 2025-05-26 16:31:34 +05:30
Neeraj Gupta
ace5dc04e2 Add change log 2025-05-26 16:30:11 +05:30
laurenspriem
4249491730 More logging 2025-05-26 16:16:53 +05:30
laurenspriem
a958380a1d More logging 2025-05-26 15:56:23 +05:30
Manav Rathi
b0d940e65b [web] New translations (#6039)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-05-26 15:54:30 +05:30
Crowdin Bot
5b8472b5a9 New Crowdin translations by GitHub Action 2025-05-26 10:23:27 +00:00
Manav Rathi
6bb7627d47 [web] Minor loose ends (#6038) 2025-05-26 15:52:52 +05:30
laurenspriem
b00c406b09 Extract string 2025-05-26 15:52:45 +05:30
laurenspriem
ff9494d438 Setting to disable memories notifications 2025-05-26 15:51:59 +05:30
Neeraj
b24b5893ae [mob] Fix: Hide both shared and collect files (#6023) 2025-05-26 15:46:46 +05:30
Manav Rathi
9716ff80c4 tr 2025-05-26 15:34:37 +05:30
Manav Rathi
2808f72233 yes 2025-05-26 15:00:37 +05:30
Manav Rathi
5dd097ee09 ditto 2025-05-26 14:58:34 +05:30
Ashil
be9fddf1d4 [mob][photos] Avoid reordering selected faces (#6037) 2025-05-26 14:43:15 +05:30
ashilkn
f9b3f6e9eb Avoid reordering selected faces 2025-05-26 14:39:16 +05:30
laurenspriem
dcb73abdec Log time of scheduled notificaiton 2025-05-26 14:33:39 +05:30
ashilkn
a14c6f4d26 Merge branch 'main' into widget-superpowered 2025-05-26 14:24:35 +05:30
laurenspriem
7afdfe6ed9 Fix delete all files from person 2025-05-26 14:16:59 +05:30
Manav Rathi
8ff8981b76 Fix close button color on download failure notification 2025-05-26 13:54:02 +05:30
Manav Rathi
b89f247f42 Reduce unhandled exception logspam on transient network issues 2025-05-26 13:40:42 +05:30
Neeraj
c3e5a037c0 [auth] New translations (#6035)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2025-05-26 11:46:16 +05:30
Neeraj
70a1894071 [mob] Explicitly exclude app data during D2D backup/transfer (#6028)
As it breaks ente photos anyway because of KeyStore AFAICT 
Tries to fix #6027
2025-05-26 11:44:41 +05:30
Neeraj
42453675b2 [auth] Add new icons & change Mistral icon (#6014)
## Description

- Add [AR24](https://www.ar24.fr/) icon
- Add [Finary](https://finary.com/) icon
- Change [Mistral](https://mistral.ai/) icon
2025-05-26 11:40:48 +05:30
laurenspriem
bdd09e12d8 More logs 2025-05-26 10:27:46 +05:30
laurenspriem
407ad41520 Test clearing with payload 2025-05-26 10:09:52 +05:30
Manav Rathi
185759d234 [infra] Allowlist x-client-version (#6036) 2025-05-26 09:54:07 +05:30
Manav Rathi
860760784a Update doc 2025-05-26 09:33:54 +05:30
Manav Rathi
de10292a84 [infra] Allowlist x-client-version 2025-05-26 09:31:29 +05:30
Manav Rathi
95f10e5a45 [web] New translations (#6033)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-05-26 08:38:45 +05:30
Crowdin Bot
eabacf24ad New Crowdin translations by GitHub Action 2025-05-26 03:06:46 +00:00
Crowdin Bot
61ffcfdc93 New Crowdin translations by GitHub Action 2025-05-26 01:17:57 +00:00
LucasMZ
0ade0a2807 Try to not allow backup from the system in D2D
As it breaks ente photos anyway because of KeyStore AFAICT
Tries to fix #6027
2025-05-25 08:51:36 -03:00
Neeraj
1e2fb13908 [auth] Add Oracle Cloud icon (#6020)
- Added Oracle Cloud SVG icon.
- Updated custom-icons.json to include the new icon.
2025-05-24 09:02:11 +05:30
Neeraj Gupta
856e126bc8 Fix: Hide both shared and collect files 2025-05-24 08:04:19 +05:30
Burak
845d014945 [auth] add Oracle Cloud icon
- Added Oracle Cloud SVG icon.
- Updated custom-icons.json to include the new icon.
2025-05-23 19:46:44 +03:00
Ashil
d8b54f5211 [mob][photos] Add files to multiple collections at once (#6019) 2025-05-23 20:37:17 +05:30
Ashil
bc059c861f Merge branch 'widget-superpowered' into collection_sheet_batch_operation 2025-05-23 20:34:06 +05:30
ashilkn
b52ee5bbfb bump up build number to 1052 2025-05-23 20:33:11 +05:30
ashilkn
93c85a57e4 Do remote sync irrespective of error when adding files to multiple collections 2025-05-23 20:23:08 +05:30
ashilkn
e01826217d Refactor 2025-05-23 20:11:44 +05:30
Aman Raj Singh Mourya
b79b7ff3ef Refactor addToMultipleCollections to improve error handling 2025-05-23 19:40:49 +05:30
Manav Rathi
7d52e3d852 [desktop] HLS - Avoid upscaling (#6018)
https://trac.ffmpeg.org/wiki/Scaling#AvoidingUpscaling
2025-05-23 18:29:20 +05:30
Laurens Priem
9a647d6f78 [mob][photos] Fixed crashes on 200MP photos (#6017)
## Description

- Fixed crashes on 200MP photos by decoding them at lower resolution (at
trade-off of zoom)
- Fixed a text overflow issue

## Tests

Tested on a separate build with multiple 200MP photos on my pixel 8.
2025-05-23 17:59:47 +05:30
laurenspriem
6e99206523 Merge branch 'main' into some_fixes 2025-05-23 17:44:50 +05:30
laurenspriem
d7af21aa84 Fix crashes on 200MP photos 2025-05-23 17:37:22 +05:30
Manav Rathi
ced1f6e164 Avoid upscaling
https://trac.ffmpeg.org/wiki/Scaling#AvoidingUpscaling
2025-05-23 17:19:54 +05:30
Manav Rathi
4ea3989a33 [desktop][web] Dependency updates (#6016)
\+ Electron 36 workaround
2025-05-23 16:57:05 +05:30
Vishnu Mohandas
641a99b823 [docs] Update export.md 2025-05-23 16:55:04 +05:30
Manav Rathi
7b48dbc1ad Dep updates 2025-05-23 16:47:54 +05:30
Manav Rathi
54c69e7aa5 Add workaround 2025-05-23 16:44:11 +05:30
Manav Rathi
f8bd8c9955 Dep 2025-05-23 16:40:04 +05:30
Manav Rathi
60246be861 [desktop] Multipart HLS video uploads (#6015) 2025-05-23 15:47:49 +05:30
Manav Rathi
d71016500a Equal sized parts (except last) 2025-05-23 15:33:29 +05:30
Aman Raj Singh Mourya
f44c2d14c7 Enable drag functionality in pick cover photo, person avatar, and center point widget. 2025-05-23 15:31:56 +05:30
Neeraj
9c26f4040a [server] Add multipart upload support for preview data (#5992)
## Description

## Tests
2025-05-23 15:31:11 +05:30
Manav Rathi
79e048b4b7 logout 2025-05-23 15:07:12 +05:30
Tanguy
5c0ce038d1 Change Mistral AI icon 2025-05-23 11:36:59 +02:00
Aman Raj Singh Mourya
2903388c94 Refactor CollectionActionSheet and improve UX 2025-05-23 14:48:36 +05:30
Tanguy
331a65d2a0 Add AR24 and Finary icons 2025-05-23 11:14:33 +02:00
Vishnu Mohandas
6c6ab8f463 [mob] Minor UI patch (#6013)
## Description
Increase the width of the container to prevent text overflow

## Tests
- [x] Tested on emulator
2025-05-23 14:03:22 +05:30
vishnukvmd
441a884314 Increase the width of the text container 2025-05-23 14:01:30 +05:30
Manav Rathi
3372d83c5d impl 2025-05-23 12:52:44 +05:30
Manav Rathi
0cf50513cc get 1 2025-05-23 12:39:54 +05:30
Neeraj
7ccf473190 [mob] Trust the user trust store (Android) (#5999)
## Description

It's currently not possible to use a server that has a CA that is
trusted by the _user_ trust store in Android.
This is generally due to a missing configuration of the
`networkSecurityConfig` (by default only system-level CAs are accepted).
  
With this change, the app should be able to reach out to servers that do
not use a publicly trusted CA (but that are still trusted by the user).

## Tests

None

## Remarks

I wasn't able to test my changes as the Flutter build fails with:


```
warning: [options] source value 8 is obsolete and will be removed in a future release
warning: [options] target value 8 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
$HOME/.pub-cache/git/ffmpeg-kit-6d5d27a8c259eda6292f204a27fba53da70af20e/flutter/flutter/android/src/main/java/com/arthenica/ffmpegkit/flutter/FFmpegKitFlutterPlugin.java:157: error: cannot find symbol
    public static void registerWith(final io.flutter.plugin.common.PluginRegistry.Registrar registrar) {
                                                                                 ^
  symbol:   class Registrar
  location: interface PluginRegistry
$HOME/.pub-cache/git/ffmpeg-kit-6d5d27a8c259eda6292f204a27fba53da70af20e/flutter/flutter/android/src/main/java/com/arthenica/ffmpegkit/flutter/FFmpegKitFlutterPlugin.java:651: error: cannot find symbol
    protected void init(final BinaryMessenger messenger, final Context context, final Activity activity, final io.flutter.plugin.common.PluginRegistry.Registrar registrar, final ActivityPluginBinding activityBinding) {
                                                                                                                ^
  symbol:   class Registrar
  location: interface PluginRegistry
2 errors
3 warnings

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':ffmpeg_kit_flutter:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
> Run with --info option to get more log output.
> Run with --scan to get full insights.

BUILD FAILED in 59s
```
2025-05-23 12:36:40 +05:30
laurenspriem
c1f7a01ed2 Fix text overflow issue 2025-05-23 12:31:46 +05:30
Aman Raj Singh Mourya
256243e273 Enable drag functionality in collection action sheet 2025-05-23 12:30:27 +05:30
Aman Raj Singh Mourya
dc9dc5d8f9 Single tap selection to select albums 2025-05-23 12:28:24 +05:30
Manav Rathi
6969385089 sketch 2 2025-05-23 12:27:54 +05:30
Manav Rathi
87a1c9417e sketch 1 wip 2025-05-23 12:04:34 +05:30
Manav Rathi
6d13ff5151 ver 2025-05-23 11:31:29 +05:30
Manav Rathi
0b5317867f ue 2025-05-23 11:22:20 +05:30
Manav Rathi
a32c8116a2 Use 2025-05-23 11:16:10 +05:30
Manav Rathi
d8cd81c702 desktop zod
we'll need it for parsing responses for requests we'll make subsequently
2025-05-23 11:11:33 +05:30
laurenspriem
18e7bbd1ed Extract strings for i18n for existing notifications 2025-05-23 10:41:27 +05:30
laurenspriem
63850df06a Change copy and extract string 2025-05-23 10:33:58 +05:30
Manav Rathi
886ab6d106 Tweak 2025-05-23 10:07:27 +05:30
Manav Rathi
d17296216c retry enhancements 2025-05-23 09:17:37 +05:30
Manav Rathi
55ee8b90b9 more conservative to prevent unforeseen loops 2025-05-23 08:45:04 +05:30
Prateek Sunal
634561347f chore: bump version 2025-05-22 23:52:05 +05:30
Prateek Sunal
575abdb8eb Merge remote-tracking branch 'origin/widget-superpowered' into widget-superpowered 2025-05-22 23:50:22 +05:30
Prateek Sunal
e998502b53 fix: add a status key to check if partial sync was did but a full is required now
(like previously widget was not their so it was fine to sync only 5 images but now since widget is there a full sync is compulsory)
2025-05-22 23:50:07 +05:30
laurenspriem
2ada68e837 Merge remote-tracking branch 'origin/widget-superpowered' into widget-superpowered 2025-05-22 22:41:04 +05:30
laurenspriem
28822a8dc1 Swallow notification scheduling issues 2025-05-22 22:38:24 +05:30
laurenspriem
deaa9a703d Bump for internal release 2025-05-22 22:26:02 +05:30
laurenspriem
4510edf8bd Update notification dependency 2025-05-22 22:24:59 +05:30
laurenspriem
7af59a1ecf Schedule test notifications 2025-05-22 22:24:40 +05:30
Denys Vitali
e003c783f5 fix: use only system CA for ente.io 2025-05-22 18:54:12 +02:00
Denys Vitali
379d2487bd Merge branch 'main' into feature/user-trust-store-android 2025-05-22 18:53:08 +02:00
Manav Rathi
8cdbb737dc Fix 2025-05-22 21:05:39 +05:30
Prateek Sunal
d528d97a0f fix: add got all widget logic 2025-05-22 21:00:48 +05:30
Prateek Sunal
682e4a913f fix: ui stuff 2025-05-22 20:52:13 +05:30
Manav Rathi
a72041b8ba cpkg 2025-05-22 20:29:29 +05:30
Prateek Sunal
ab1a8aa592 fix: don't repeat 2025-05-22 20:21:48 +05:30
Prateek Sunal
c37a0339d2 fix: default state ui 2025-05-22 20:18:41 +05:30
Manav Rathi
3b60f4954b Impl 2025-05-22 20:05:56 +05:30
Manav Rathi
b2ea248a5c Sketch 2025-05-22 19:58:39 +05:30
Prateek Sunal
1bda14fb6f fix: redirect with correct context 2025-05-22 19:57:08 +05:30
Manav Rathi
54e8d6392d Scaffold 2025-05-22 19:46:00 +05:30
Manav Rathi
afa9e03743 ref 2025-05-22 19:39:13 +05:30
Manav Rathi
a4eaf04a33 Extract 2025-05-22 19:34:39 +05:30
Manav Rathi
d30f0fba04 pc estimate 2025-05-22 19:27:57 +05:30
Prateek Sunal
b2855cfd72 fix: rank selected first 2025-05-22 19:20:16 +05:30
Prateek Sunal
06d260f40a fix: only allow selection 2025-05-22 19:04:21 +05:30
Manav Rathi
fb16346b0d Forward 2025-05-22 18:31:05 +05:30
Manav Rathi
41b1638838 Outline 2025-05-22 18:31:05 +05:30
Manav Rathi
702b3a8868 [desktop] Split x-client-package and x-client-version to match mobile (#6008) 2025-05-22 17:49:20 +05:30
Manav Rathi
3572c4328d str 2025-05-22 17:46:08 +05:30
Manav Rathi
1c2b8061dc Include "X-Client-Version" where applicable 2025-05-22 17:41:51 +05:30
Manav Rathi
a9edcead06 [desktop] Don't add version to x-client-package 2025-05-22 17:26:28 +05:30
laurenspriem
5a574c69d3 log debug notification options 2025-05-22 16:48:01 +05:30
Manav Rathi
192905b21e [web] Multipart changes - Finish (#6007)
Finishes the set of changes from
https://github.com/ente-io/ente/pull/5997 and
https://github.com/ente-io/ente/pull/6002.
2025-05-22 16:23:38 +05:30
Manav Rathi
52a533a1e1 Fin 2025-05-22 16:08:07 +05:30
Manav Rathi
0314e94359 Up 2 2025-05-22 15:56:00 +05:30
Neeraj Gupta
cbef1a9145 ios build changes 2025-05-22 15:53:59 +05:30
Aman Raj Singh Mourya
822c33940e Skip single tap action when selection mode is enabled 2025-05-22 15:53:06 +05:30
Manav Rathi
eb29c48f0e Up 1 2025-05-22 15:50:55 +05:30
Aman Raj Singh Mourya
c77b4f176c Refactor AlbumColumnItemWidget to improve selection handling and UI layout 2025-05-22 15:49:49 +05:30
Aman Raj Singh Mourya
afcc7b1e46 Add selection functionality and action buttons to collection action sheet 2025-05-22 15:26:49 +05:30
Manav Rathi
84dda89e15 up 2025-05-22 15:26:26 +05:30
Aman Raj Singh Mourya
4bbc0d1f46 Implement addToMultipleCollections method for batch adding files to collections 2025-05-22 15:26:07 +05:30
laurenspriem
aa6d6f4e77 Bump for internal release 2025-05-22 15:04:50 +05:30
Manav Rathi
ff26dd5652 Simplify 2025-05-22 15:04:37 +05:30
Manav Rathi
b68d95d481 normal put 2025-05-22 14:50:00 +05:30
laurenspriem
ec1b54cbb1 Merge branch 'main' into widget-superpowered 2025-05-22 14:46:00 +05:30
laurenspriem
459540fe7a Flag for ML running 2025-05-22 14:38:17 +05:30
Neeraj
2255ea1b92 [meta] Update mobile-internal-release.yml (#6005)
Include branch name

## Description

## Tests
2025-05-22 14:04:25 +05:30
Neeraj
ac704f1082 Update mobile-internal-release.yml
Include branch name
2025-05-22 14:04:04 +05:30
Laurens Priem
4db2e42ee3 [mob][photos] On this day memories + notification + fix (#5998)
## Description

- Added 'On this day' memory similar to [user
request](https://github.com/ente-io/ente/discussions/5852)
- 'On this day' memory gives a notification in the morning
- Fixed [other memories
issue](https://github.com/ente-io/ente/issues/5965)


## Tests

Tested in debug mode on my pixel 8:
- No caching issues
- 'On this day' memories are computed correctly
- Scheduled notifications come at correct time
- Tapping on notification directs to the memory
2025-05-22 13:17:06 +05:30
Manav Rathi
f5949f5bd4 [web] Multipart upload tweaks (#6002)
Refactoring this now before starting on the work on porting some of it
to desktop side.
2025-05-22 12:18:53 +05:30
Manav Rathi
c4feb4b764 in body 2025-05-22 12:13:37 +05:30
Manav Rathi
29bab5705b Sep 2025-05-22 11:40:50 +05:30
Manav Rathi
2ebeed3b6f Unused 2025-05-22 11:35:44 +05:30
Manav Rathi
a0dbcd3dbe Prune 2025-05-22 11:31:12 +05:30
Neeraj
81137652d4 Fix: Return correct status code for maxPassKey err (#6001)
## Description

## Tests
2025-05-22 11:29:55 +05:30
Manav Rathi
4e1418b11a package 2025-05-22 11:29:22 +05:30
Neeraj Gupta
91268341be Fix: Return correct status code for maxPassKey err 2025-05-22 11:27:31 +05:30
Manav Rathi
fb8fc051a9 wrkr 2025-05-22 11:15:28 +05:30
Manav Rathi
d99914c4e9 off by 1 2025-05-22 11:03:30 +05:30
Manav Rathi
736b3fc613 Upload progress 2025-05-22 09:08:52 +05:30
Manav Rathi
ef7f45aa3d Alt 2025-05-22 08:56:09 +05:30
Denys Vitali
4dc741151b fix(mobile): trust the user trust store (Android) 2025-05-22 02:14:11 +02:00
Manav Rathi
e4471af4cb Pass 2025-05-21 21:04:43 +05:30
Manav Rathi
057df349b7 Move retry to service 2025-05-21 20:47:28 +05:30
Manav Rathi
24c7b49132 custom 2025-05-21 19:39:36 +05:30
Manav Rathi
5df009c7c7 Revert because of ERR_H2_OR_QUIC_REQUIRED
Chrome throws ERR_H2_OR_QUIC_REQUIRED when we try to use a stream body on a
non-TLS HTTP request. This will break both dev setups on localhost, and perhaps
some self hosting setups, so is not a feasible path forward for an essential
endpoint to the use of the app.
2025-05-21 19:29:12 +05:30
Manav Rathi
1d276c795c transform 1 2025-05-21 17:56:09 +05:30
Manav Rathi
bc762b972f take 1 2025-05-21 17:39:58 +05:30
laurenspriem
36e4c06dd6 Merge branch 'main' into on_this_day 2025-05-21 17:15:55 +05:30
laurenspriem
ceb3d3fe42 Fix hidden persons in memories 2025-05-21 16:59:50 +05:30
laurenspriem
1dc806d270 Don't await on page route 2025-05-21 16:58:22 +05:30
laurenspriem
8d03df5c36 Remove old debug options 2025-05-21 16:57:56 +05:30
laurenspriem
a1ef8d33d3 Simplify notification ID 2025-05-21 16:56:51 +05:30
Manav Rathi
4f347c1afd [web] Remove unnecessary sax dependency by reworking multipart uploads (#5997) 2025-05-21 16:39:35 +05:30
laurenspriem
8171d56168 Route notification to memory 2025-05-21 16:35:57 +05:30
Manav Rathi
7e7751b5be Nicer 2025-05-21 16:27:25 +05:30
Manav Rathi
d19a0fccda Remove dependency 2025-05-21 16:22:52 +05:30
Manav Rathi
5b38ef394b More debug info 2025-05-21 16:10:27 +05:30
Manav Rathi
ad87470c25 2 2025-05-21 16:10:26 +05:30
Manav Rathi
67140fe7f2 s2 2025-05-21 16:10:26 +05:30
Manav Rathi
b372ba47ba Swap 2025-05-21 16:10:26 +05:30
Manav Rathi
24c66a9b6b impl 2025-05-21 16:10:26 +05:30
Manav Rathi
201ef60f07 Outline 2025-05-21 16:10:26 +05:30
Manav Rathi
89294f2a76 Outline 2025-05-21 16:10:26 +05:30
Manav Rathi
4772557f7a Tweak 2025-05-21 16:10:26 +05:30
Manav Rathi
073d2c5684 2 2025-05-21 16:10:26 +05:30
Manav Rathi
e022e7ae5b 1 2025-05-21 16:10:26 +05:30
Manav Rathi
2cdeb88b4d Outline 2025-05-21 16:10:26 +05:30
Neeraj
ca319e501e [mob][auth] Update copy for change email dialog (#5996)
## Description

## Tests
2025-05-21 15:32:05 +05:30
Neeraj Gupta
05898dfbe2 Update copy for change email dialog 2025-05-21 15:28:01 +05:30
Neeraj
c129cc15b5 [server] Increase file size limit 5 -> 10 GiB (#5995)
## Description

## Tests
2025-05-21 15:26:31 +05:30
Neeraj Gupta
a683883733 Increase file size limit 5 -> 10 GiB 2025-05-21 15:20:12 +05:30
laurenspriem
69b575cc66 Log cache update due to caching issue 2025-05-21 14:39:12 +05:30
laurenspriem
63a4972839 Fix caching issue 2025-05-21 14:37:38 +05:30
Neeraj
6188578d18 [docs] Update example config (#5951)
## Description
In my testing web apps only worked with https:// in front of them.
## Tests
2025-05-21 13:38:56 +05:30
laurenspriem
5a4d8950af Integrate notifications to OnThisDay memories 2025-05-21 12:36:04 +05:30
Neeraj
5007204944 [server] Change file_data.obj_size column type (#5994)
## Description

## Tests
Tested locally
2025-05-21 11:24:52 +05:30
Neeraj Gupta
4a19fc077e Change file_data.obj_size column type 2025-05-21 11:13:05 +05:30
Ashil
2b29f55587 [mob][photos] Album UI Revamp (#5661)
## Description
This update introduces a redesigned user interface for album management,
featuring a new layout for albums. Improve user experience by providing
intuitive navigation and efficient batch operations.

## Tests
1. A new grid & list layout for the album screen. The first cell is
dedicated to quickly adding new albums.
2. App Bar Enhancements
    - Sort Options: Organize albums by name, latest, or time.
    - View Toggle: Switch between grid and list views with ease.
    - Search Functionality: Quickly find albums using the search icon.
3. Long-press to select albums for batch actions. A bottom sheet
provides options to delete, share, hide, or pin selected albums.
2025-05-21 11:01:48 +05:30
laurenspriem
4cc8ff2fb1 Notification scheduling working 2025-05-21 10:57:49 +05:30
Aman Raj Singh Mourya
de29246304 move the collection.type == CollectionType.favorites check before isEmptyCollection check to handle the case where favourite collection is empty 2025-05-21 10:47:01 +05:30
laurenspriem
8deb52301a Android permissions for notifications 2025-05-21 10:30:01 +05:30
Manav Rathi
16a20e8b0d [web] Hash functions - Document and namespace (#5993)
No functional changes.
2025-05-21 08:56:29 +05:30
Manav Rathi
3824bfbdd5 namespace 2025-05-21 08:51:22 +05:30
Prateek Sunal
c996c794fd fix: launch people page before launching the file previewer 2025-05-21 08:47:03 +05:30
Manav Rathi
ef245e5c02 outline 2025-05-21 08:36:34 +05:30
Neeraj Gupta
4dc6890afc Add multipart upload support for preview data 2025-05-21 08:14:53 +05:30
Prateek Sunal
87195f3801 chore: fix incorrect widget count 2025-05-21 04:15:57 +05:30
Prateek Sunal
8ce45a4fa8 chore: bump version 2025-05-21 04:06:02 +05:30
Prateek Sunal
520e5d4ae7 fix: update routing 2025-05-21 04:01:37 +05:30
Prateek Sunal
2a8e167e42 fix: don't listen to collection route 2025-05-21 03:51:20 +05:30
Prateek Sunal
2f7bde36bd chore: bump version to 1.0.17 2025-05-21 03:27:49 +05:30
Prateek Sunal
ace375b7f6 fix: get effective selected people code 2025-05-21 03:27:38 +05:30
Prateek Sunal
cde6ebfa39 fix: pass and parse mainKey correctly 2025-05-21 03:12:19 +05:30
Prateek Sunal
a1e56a457f fix: update people default illustration 2025-05-21 03:04:21 +05:30
Prateek Sunal
a4ebf972e1 fix: count home widget for android 2025-05-21 02:56:32 +05:30
Prateek Sunal
7d5bed0493 fix: iOS build 2025-05-21 02:20:43 +05:30
Prateek Sunal
d449bd0f90 chore: update version 2025-05-21 02:16:48 +05:30
Prateek Sunal
5d14ca8439 fix: handle PeopleChangedEvent, add better limit for files, better behavior on save 2025-05-21 02:15:23 +05:30
Prateek Sunal
619f6795e2 fix: don't show un-named person 2025-05-21 01:44:12 +05:30
Prateek Sunal
04cd1d3bb3 fix: update code to look clean 2025-05-21 01:28:14 +05:30
Prateek Sunal
0960f189ce Merge remote-tracking branch 'origin/main' into widget-superpowered 2025-05-21 01:11:56 +05:30
Prateek Sunal
734b836a7a chore: update locals 2025-05-21 01:11:48 +05:30
Prateek Sunal
91447cdc77 fix: widgets code 2025-05-21 01:11:40 +05:30
Manav Rathi
961501a6fb [desktop] HLS newlines - Take 2 (#5990) 2025-05-20 20:07:22 +05:30
Manav Rathi
914893eae6 Fix 2025-05-20 20:01:44 +05:30
Manav Rathi
7a10f4c145 Note results of tests and add extra checks 2025-05-20 19:58:10 +05:30
ashilkn
092f64c3ca Refactor CollectionsFlexiGridViewWidget 2025-05-20 17:44:27 +05:30
laurenspriem
bdecb04398 Add timezone package for finding OS timezone 2025-05-20 17:38:04 +05:30
Neeraj
e25418e5a6 [server] Fix err handling during stream upload (#5986)
## Description

## Tests
2025-05-20 16:37:29 +05:30
Neeraj Gupta
a062c1ccc3 Fix err handling 2025-05-20 16:35:22 +05:30
Aman Raj Singh Mourya
d1ae4d52dd refactor: update padding and width to make sure thumbnail is perfect square 2025-05-20 16:04:53 +05:30
Manav Rathi
3c532cd4f4 [desktop] Fix HLS regex for Windows (#5984)
`$` eol should match both `\r\n` (windows) and `\n` (rest)
2025-05-20 16:02:56 +05:30
Manav Rathi
013389c696 Fix regex for Windows 2025-05-20 15:57:41 +05:30
Neeraj
9ca418d915 [auth] Script to creating tag & modifying flatback metadata (#5983)
## Description

## Tests
Tested locally
2025-05-20 14:57:09 +05:30
Neeraj Gupta
a52a3e5e57 Remove unused variable 2025-05-20 14:54:27 +05:30
Neeraj Gupta
2d739ef4de [auth] Bump version 4.3.8 2025-05-20 14:47:30 +05:30
Neeraj Gupta
300300a8b9 Add script to add tag 2025-05-20 14:47:10 +05:30
Neeraj Gupta
be00cbaa51 Add release 4.3.8 to appdata.xml 2025-05-20 14:44:53 +05:30
Neeraj Gupta
43641b0b9e Add script to validate & create release tag 2025-05-20 14:31:54 +05:30
Aman Raj Singh Mourya
43cdd10e85 Merge branch 'album_UI_revamp' of https://github.com/ente-io/ente into album_UI_revamp 2025-05-20 14:25:30 +05:30
Aman Raj Singh Mourya
539145d38d refactor: simplify layout calculations in flex grid view 2025-05-20 14:25:16 +05:30
Neeraj
08bb2f25fb [mob] Fix: Switch to original video playback for android (#5982)
## Description
Bug: When filePath was not null due to preview playlist, we kept playing
the preview video, and where not showing any progress indicator for
video download.

## Tests
Tested locally on physical device.
2025-05-20 14:07:34 +05:30
Neeraj Gupta
55264445b2 Fix: Switch to original video playback 2025-05-20 13:59:05 +05:30
Manav Rathi
bdadf8dc9c [desktop] Avoid stdout max buffer error when converting very large videos (#5981) 2025-05-20 12:41:16 +05:30
Manav Rathi
1c3428d89d Avoid stdout max buffer error when converting very large videos 2025-05-20 12:35:14 +05:30
ashilkn
6e4a856ea4 Use better colors 2025-05-20 11:57:19 +05:30
ashilkn
40ff361af1 Add Todo comment 2025-05-20 11:28:59 +05:30
Neeraj
11fae5e87c [server] Whitelist range header (#5978) 2025-05-20 10:48:25 +05:30
Neeraj Gupta
465e69b254 Whitelist range header 2025-05-20 10:13:12 +05:30
laurenspriem
63b0cee589 Add timezone dependency for scheduling notifications 2025-05-20 09:13:56 +05:30
Prateek Sunal
574eea58fc fix: add robust logic for album home widget service 2025-05-20 07:06:57 +05:30
Manav Rathi
f848fe0938 [web] Minor notes and null checks (#5974) 2025-05-19 20:04:32 +05:30
Prateek Sunal
138310b8f8 fix: update get collection by id function 2025-05-19 19:54:24 +05:30
Prateek Sunal
3d63ded84d fix: blockers, getter function for albums hw service 2025-05-19 19:54:09 +05:30
Manav Rathi
b7cd55aec3 ctx
"OwnerEmail currently is always present for shared collection but missing for owned collection."
2025-05-19 19:53:31 +05:30
Manav Rathi
aadab316f6 + 2025-05-19 19:26:06 +05:30
Manav Rathi
8bad8b87b1 more context from chat 2025-05-19 19:23:37 +05:30
Prateek Sunal
2ff69f661e Merge branch 'main' into widget-superpowered 2025-05-19 19:20:26 +05:30
Prateek Sunal
10c65f13c8 fix: update get total function for memory home widget 2025-05-19 19:19:30 +05:30
Prateek Sunal
761c976d7e Merge remote-tracking branch 'origin/on_this_day' into widget-superpowered 2025-05-19 19:13:47 +05:30
Prateek Sunal
423a7eec37 fix: show on this day to both ml & non-ml users 2025-05-19 19:10:29 +05:30
Manav Rathi
1f7e74131b + 2025-05-19 19:05:37 +05:30
Prateek Sunal
c8b23f80e2 feat: add selection and save/get from db for people widget settings 2025-05-19 18:53:41 +05:30
Manav Rathi
191db47d79 type 2025-05-19 18:22:27 +05:30
Manav Rathi
34621dd00f notes 2025-05-19 18:21:06 +05:30
Prateek Sunal
d127199ade feat: complete save and selection logic for memories and albums settings 2025-05-19 17:35:33 +05:30
Aman Raj Singh Mourya
f44e90801f refractor: revert back copy of sort options 2025-05-19 17:23:25 +05:30
Aman Raj Singh Mourya
ded497d421 fix: make album sqaure and show file count 2025-05-19 17:22:08 +05:30
Neeraj
a3e48706de [mob] Refactor download url lookup (#5968)
## Description

## Tests
2025-05-19 16:58:54 +05:30
Neeraj Gupta
2709f69f2a Remove unused import 2025-05-19 15:26:53 +05:30
Neeraj Gupta
2b32cd4277 Refactor 2025-05-19 15:25:11 +05:30
Neeraj Gupta
57934f612e Refactor 2025-05-19 15:11:34 +05:30
Neeraj Gupta
eae5e12c71 Clean up 2025-05-19 15:07:20 +05:30
Neeraj Gupta
aef50f3f95 Rename & move downloadQueue 2025-05-19 14:41:56 +05:30
Neeraj
6772027c27 [mob] Fix: Clean up origin file for hard upload failures (#5954)
## Description
The value of this variable was incorrectly set to `false` (as as initial
value).

## Tests
2025-05-19 14:26:35 +05:30
Neeraj
f386a0a72e [cli] Specify ott purpose (#5966)
## Description

## Tests
2025-05-19 14:25:58 +05:30
Neeraj Gupta
9c94bcffaa [cli] Specify ott purpose 2025-05-19 14:21:52 +05:30
Manav Rathi
6b703e9601 [web] Add more CSP cases (#5964) 2025-05-19 14:18:22 +05:30
Prateek Sunal
22bae0292d feat: add new widget services 2025-05-19 14:04:42 +05:30
Prateek Sunal
4c7121fd6c chore: update generated messages 2025-05-19 14:04:19 +05:30
Prateek Sunal
f53745bbb0 Merge remote-tracking branch 'origin/album_UI_revamp' into widget-superpowered 2025-05-19 14:00:13 +05:30
ashilkn
1c6e343994 Use StatelessWidget instead of helper method 2025-05-19 13:51:52 +05:30
Manav Rathi
949807bc97 rep-endp
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Reporting-Endpoints
2025-05-19 13:48:34 +05:30
Manav Rathi
fea46532f9 Example 2025-05-19 13:37:51 +05:30
Manav Rathi
8824df29d4 They're POST 2025-05-19 11:51:10 +05:30
Manav Rathi
2da2616ec1 Update deps 2025-05-19 11:39:01 +05:30
laurenspriem
2144f57ee0 remove null check 2025-05-19 11:08:00 +05:30
laurenspriem
476fe1b624 Assign IDs to memories 2025-05-19 11:06:39 +05:30
Manav Rathi
fb7fc53263 csp-rep 2025-05-19 10:06:03 +05:30
Neeraj
a842cdfe4e [auth] add Cryptee icon (#5959)
I added the Cryptee icon. Cryptee is similar to Ente, as it is also a
secure photo service
2025-05-19 10:03:32 +05:30
Neeraj
d5de1b5ce2 [auth] New translations (#5963)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2025-05-19 09:57:11 +05:30
Neeraj
a1801435bd [mobile] New translations (#5962)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2025-05-19 09:55:12 +05:30
Manav Rathi
bc02238fd8 video streaming 2025-05-19 09:53:40 +05:30
Manav Rathi
49ef8a693b [web] New translations (#5961)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-05-19 08:31:15 +05:30
Crowdin Bot
6f585c3ad0 New Crowdin translations by GitHub Action 2025-05-19 01:18:00 +00:00
Crowdin Bot
18f9f0048a New Crowdin translations by GitHub Action 2025-05-19 01:04:58 +00:00
Crowdin Bot
6a7ba4156f New Crowdin translations by GitHub Action 2025-05-19 00:41:15 +00:00
UmmIt
30995b3b73 [auth] add Cryptee icon 2025-05-19 01:14:53 +08:00
laurenspriem
ff705280c7 Rename variable 2025-05-18 11:58:42 +05:30
laurenspriem
6ff6594a81 Include onThisDay in widget api 2025-05-18 11:40:23 +05:30
laurenspriem
69f12125ec Merge branch 'memories_widget_api' into on_this_day 2025-05-18 11:26:53 +05:30
laurenspriem
862b11c530 Calc onThisDay even when ML is off 2025-05-18 11:23:05 +05:30
laurenspriem
e40afac212 Rename for clarity 2025-05-18 11:09:48 +05:30
Neeraj Gupta
8c66d9dac0 Fix: Clean up origin file for hard upload failures 2025-05-18 10:48:10 +05:30
Ferdinand Saurenbach
a880726f16 Update museum.md 2025-05-17 16:43:36 +02:00
Manav Rathi
b2ab0679b4 [web] Handle shared favorites (#5947) 2025-05-16 21:46:41 +05:30
Manav Rathi
d63ecf518e Tweak 2025-05-16 21:42:34 +05:30
Manav Rathi
c5cdaf3e0b fix warning 2025-05-16 21:27:32 +05:30
Manav Rathi
61f1cd6952 Fix mui warnings 2025-05-16 21:24:29 +05:30
Manav Rathi
e6d4a779c5 int 2025-05-16 20:50:15 +05:30
Manav Rathi
14087ec5e9 more cases 2025-05-16 20:38:48 +05:30
Manav Rathi
15daa9e453 case 2025-05-16 20:15:14 +05:30
Manav Rathi
73728e60e0 dep 2025-05-16 20:01:57 +05:30
Manav Rathi
5c925c4265 fav 2025-05-16 19:39:39 +05:30
Manav Rathi
83bf336101 [web] Minor code improvements (#5945) 2025-05-16 19:39:01 +05:30
Manav Rathi
d5b9a0a92b [web] Unicode search (#5944)
Fixes: https://github.com/ente-io/ente/issues/5942
2025-05-16 19:35:47 +05:30
Manav Rathi
40d84f10a8 [web] Unicode search
Fixes: https://github.com/ente-io/ente/issues/5942
2025-05-16 19:29:52 +05:30
Prateek Sunal
bffd4d83a5 fix: update the deep link 2025-05-16 18:41:21 +05:30
Aman Raj Singh Mourya
59a534225c [mob][photos] Refactor add participant page (#5940) 2025-05-16 17:49:02 +05:30
ashilkn
810ee3d9fe Merge album_UI_revamp after resolving merge conflicts 2025-05-16 16:19:45 +05:30
ashilkn
9605637e50 Refactor add participants page 2025-05-16 16:15:53 +05:30
laurenspriem
9016394ccc Integrate on this day into gallery memories 2025-05-16 15:08:40 +05:30
Prateek Sunal
a518bbd608 fix(home-widget): update default image caption & rename totalMemories 2025-05-16 15:07:45 +05:30
Aman Raj Singh Mourya
1c4ebcccb1 fix: allow to leave favourite albums 2025-05-16 14:44:48 +05:30
Aman Raj Singh Mourya
793fd5ba39 fix: avoid poping of delete dialog to avoid poping of main screen 2025-05-16 14:39:56 +05:30
Prateek Sunal
9b1eacf736 fix: update the preview images 2025-05-16 14:37:33 +05:30
Aman Raj Singh Mourya
cae9988c9a fix: avoid poping of delete dialog as it pop the main screen 2025-05-16 14:37:02 +05:30
Prateek Sunal
538a5df32d feat: add preview images for both android & iOS 2025-05-16 14:30:13 +05:30
laurenspriem
853b916cf1 Exclude certain collections 2025-05-16 14:25:31 +05:30
Aman Raj Singh Mourya
93d6f58660 fix: code refractor 2025-05-16 14:22:53 +05:30
Neeraj Gupta
7b145f0898 Bump version code 2025-05-16 14:15:30 +05:30
Neeraj Gupta
add09a601d Merge branch 'main' into album_UI_revamp 2025-05-16 14:15:06 +05:30
Neeraj
cab711d88e [mob] Fix: Duration computation from playlist (#5939)
## Description

## Tests
2025-05-16 14:14:35 +05:30
Neeraj Gupta
c392bd2fd2 Fix: Duration computation from playlist 2025-05-16 14:12:21 +05:30
laurenspriem
5dda596544 Max of 20 photos spread across years 2025-05-16 13:52:05 +05:30
Neeraj Gupta
8101bee2fd Update intl_pt.arb 2025-05-16 12:50:13 +05:30
Neeraj Gupta
c234bc7be8 Fix lint 2025-05-16 12:45:41 +05:30
Neeraj Gupta
27fd372d62 Bump version v1.0.14 2025-05-16 12:42:58 +05:30
laurenspriem
66f23283c1 Only memories spread across multiple years 2025-05-16 12:42:00 +05:30
Neeraj Gupta
8d7bc81c20 Merge branch 'main' into album_UI_revamp 2025-05-16 12:40:56 +05:30
Neeraj
5e3ebd4a60 [mob][Fix] Fallback to email forname if personService init is pending (#5938)
## Description

## Tests
2025-05-16 12:39:31 +05:30
Neeraj Gupta
f4a4f71135 [mob][Fix] Fallback to email for userName if personService init is pending 2025-05-16 12:36:38 +05:30
Aman Raj Singh Mourya
41e870f7a0 [mob][photos] Contacts section performance improvements (#5923)
## Description

- Defer the initial load until the Shared Collection tab is in view to
avoid unnecessary work at app startup.
- Remove the computation previously done for the Search tab sections
that was intended for the Contacts section, as it is no longer present.
2025-05-16 11:59:14 +05:30
Aman Raj Singh Mourya
0342e1ef56 Merge branch 'album_UI_revamp' of https://github.com/ente-io/ente into album_UI_revamp 2025-05-16 11:57:33 +05:30
Aman Raj Singh Mourya
efed42ce4a refractor: used better code format 2025-05-16 11:56:55 +05:30
Neeraj
185c5f5c43 [mob] Fix seekBar duration for videos with missing duration in metadata (#5937)
## Description

## Tests
Tested locally
2025-05-16 11:40:30 +05:30
Neeraj Gupta
6f5b33ea01 Fix lint 2025-05-16 11:36:33 +05:30
Aman Raj Singh Mourya
ef9d925686 fix: alignment of icons 2025-05-16 11:34:37 +05:30
Neeraj Gupta
d6a8373e5d Clean up 2025-05-16 11:33:14 +05:30
laurenspriem
e84f46f435 correct translation use 2025-05-16 11:31:47 +05:30
laurenspriem
c1193be61c Extract strings 2025-05-16 11:31:23 +05:30
laurenspriem
9b460ca1dc Init onThisDay method 2025-05-16 11:30:44 +05:30
Neeraj Gupta
bd0ad0d1b4 Fix seekBar duration for preview videos with missing duration in metadata 2025-05-16 11:26:06 +05:30
Manav Rathi
d19322c1ae Remove column dependency
And add a dev canary
2025-05-16 11:16:52 +05:30
Manav Rathi
e71f5cecc7 alt 2025-05-16 11:16:52 +05:30
Manav Rathi
622a368b45 swap 2025-05-16 11:16:52 +05:30
Manav Rathi
72aec4bc5a swap 2025-05-16 11:16:52 +05:30
Manav Rathi
c899725ed1 Fix warning 2025-05-16 11:16:52 +05:30
Neeraj
e15eb8d7c7 [auth] Add cronetHttpNoPlay flag for playstore builds (#5932)
## Description

Fixes https://github.com/ente-io/ente/issues/5901

## Tests
2025-05-16 11:03:26 +05:30
Neeraj Gupta
b38c49502b Fix seekBar color at other places 2025-05-16 10:33:57 +05:30
Neeraj
0fdee342eb [mobile] New translations (#5935)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2025-05-16 10:30:10 +05:30
Crowdin Bot
0641ce389d New Crowdin translations by GitHub Action 2025-05-16 04:56:56 +00:00
Manav Rathi
f34ac356e9 [infra] Increase backup wait (#5931) 2025-05-16 07:45:33 +05:30
Neeraj Gupta
120f9cef4d [auth] Add cronetHttpNoPlay flag for playstore builds 2025-05-16 07:43:31 +05:30
Manav Rathi
9b4247680a [infra] Increase backup wait 2025-05-16 07:43:00 +05:30
Neeraj
5d69376b54 [mob] Change seekBar color for video to backgroundElevatedLight (#5929)
## Description
![Uploading image.png…]()


## Tests
2025-05-16 07:22:16 +05:30
Bl4ckspell
64260896a0 [auth] fix bonify icon (#5930)
## Description
Icon was not displaying.

| before | after |
| --- | --- |
|![Screenshot From 2025-05-16
02-40-15](https://github.com/user-attachments/assets/59d84c64-3bc5-4b03-8704-ccabb4dc80af)|![Screenshot
From 2025-05-16
03-01-49](https://github.com/user-attachments/assets/ade3df70-043a-4ac8-abca-d0f2d8cf4f59)|
2025-05-16 06:41:08 +05:30
Neeraj Gupta
2af46f62c8 Fix lint 2025-05-16 06:40:28 +05:30
Neeraj Gupta
a53701bc41 Copy update 2025-05-16 05:49:59 +05:30
Neeraj Gupta
7a408a6242 Change video seekBar color to backgroundElevatedLight 2025-05-16 05:48:51 +05:30
Manav Rathi
6b9885c5d7 [web] New translations (#5927)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-05-15 20:32:54 +05:30
Crowdin Bot
caa453d49d New Crowdin translations by GitHub Action 2025-05-15 15:01:14 +00:00
Manav Rathi
dd80acd4f4 [web] General code improvements (#5926) 2025-05-15 20:30:29 +05:30
Manav Rathi
5aa7682812 lf 2025-05-15 20:25:01 +05:30
Manav Rathi
cb9a88e636 tr 2025-05-15 20:25:01 +05:30
Manav Rathi
3a32659dd4 [desktop] Update to Electron 36.2.1 (#5925)
Regular dep update. Also update a minor dev dep.
2025-05-15 20:15:36 +05:30
Manav Rathi
d5b5a26d9a [desktop] Use a tighter HDR check (#5924)
Otherwise video conversion fails with

[Parsed_zscale_2 @ 0x12de1b040] code 3074: no path between colorspaces

Some sample video stream lines of videos where it failed:

- `Stream #0:0[0x1](und): Video: mpeg4 (Simple Profile) (mp4v /
0x7634706D), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 2204 kb/s, 30 fps, 30
tbr, 30 tbn (default)`
- `Stream #0:1[0x1e0]: Video: mpeg1video, yuv420p(tv), 640x480 [SAR 1:1
DAR 4:3], 104857 kb/s, 25 fps, 25 tbr, 90k tbn`
- `Stream #0:0: Video: mjpeg (Baseline) (MJPG / 0x47504A4D),
yuvj422p(pc, bt470bg/unknown/unknown), 640x480, 15379 kb/s, 30 fps, 30
tbr, 30 tbn`
- `Stream #0:0[0x1](eng): Video: h263 (s263 / 0x33363273), yuv420p,
176x144 [SAR 12:11 DAR 4:3], 96 kb/s, 15.27 fps, 15.42 tbr, 15750 tbn
(default)`
2025-05-15 20:03:01 +05:30
Manav Rathi
d2980abb7a [desktop] Update to Electron 36.2.1
Regular dep update. Also update a minor dev dep.
2025-05-15 20:01:48 +05:30
Manav Rathi
1a2f606d94 Use a tighter check
Otherwise video conversion fails with

    [Parsed_zscale_2 @ 0x12de1b040] code 3074: no path between colorspaces

Some sample video stream lines of videos where it failed:

- `Stream #0:0[0x1](und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 2204 kb/s, 30 fps, 30 tbr, 30 tbn (default)`
- `Stream #0:1[0x1e0]: Video: mpeg1video, yuv420p(tv), 640x480 [SAR 1:1 DAR 4:3], 104857 kb/s, 25 fps, 25 tbr, 90k tbn`
- `Stream #0:0: Video: mjpeg (Baseline) (MJPG / 0x47504A4D), yuvj422p(pc, bt470bg/unknown/unknown), 640x480, 15379 kb/s, 30 fps, 30 tbr, 30 tbn`
- `Stream #0:0[0x1](eng): Video: h263 (s263 / 0x33363273), yuv420p, 176x144 [SAR 12:11 DAR 4:3], 96 kb/s, 15.27 fps, 15.42 tbr, 15750 tbn (default)`
2025-05-15 19:44:37 +05:30
ashilkn
a101dba6cd Defer loading of contacts section in shared collections tab until the tab is in view for atleast 500ms. This is to avoid work at app start 2025-05-15 19:11:30 +05:30
Prateek Sunal
491de296ca feat: similar UI's for all the widgets 2025-05-15 18:18:42 +05:30
Laurens Priem
ab2719a79c [mob][photos] Show detected faces with lower score on UI (#5922)
## Description

## Tests
2025-05-15 17:35:27 +05:30
ashilkn
a614636789 Avoid computing data for contacts section for the search tab since it has been moved temporarily to the shared collections tab 2025-05-15 17:23:35 +05:30
laurenspriem
48e9032ac1 Better align widget 2025-05-15 17:20:59 +05:30
Manav Rathi
1d2e18444c sync 2025-05-15 17:10:30 +05:30
laurenspriem
7f9e01a841 Clearly log low face scores from file info 2025-05-15 16:58:40 +05:30
laurenspriem
6933c77f36 Clearly mark face info as debug only 2025-05-15 16:50:41 +05:30
laurenspriem
61cacdddc0 Set face score limit for UI to 0.7 2025-05-15 16:49:09 +05:30
Manav Rathi
936d578093 Rename 2025-05-15 16:41:50 +05:30
Manav Rathi
167a81f121 Swap 2025-05-15 16:39:14 +05:30
Manav Rathi
b550ee6b15 Alt 2025-05-15 16:39:14 +05:30
Manav Rathi
54feb7b2f9 sv 2025-05-15 16:39:14 +05:30
Manav Rathi
f9dad575ec keep both types of checks 2025-05-15 16:39:14 +05:30
Manav Rathi
a39948ccc3 Move 2025-05-15 16:39:14 +05:30
Manav Rathi
dfabd648d5 Alt 2025-05-15 16:39:14 +05:30
Manav Rathi
21e5bbb0fd Outline 2025-05-15 16:39:14 +05:30
Manav Rathi
10a0165a0f check 2025-05-15 16:39:13 +05:30
Aman Raj Singh Mourya
07c640cf90 refractor: extract string + code refractor and improvements 2025-05-15 16:33:16 +05:30
Prateek Sunal
9fa13508b8 feat: add iOS widgets 2025-05-15 16:26:16 +05:30
Aman Raj Singh Mourya
1c099a60e8 refactor: use params to store resultCollections 2025-05-15 16:25:52 +05:30
Ashil
efbdaef9ce [mob] Fix: Enable delinking email from person with no face (#5897)
## Description

When email is is linked to person that doesn't contain any file, there's
no way to unlink the email from that person.
Instead of showing generic error, added an option to edit the other
person so that users can delink the email id.

## Tests
Tested locally.
2025-05-15 15:36:22 +05:30
Manav Rathi
65ddea0f7f [desktop] Use correct unit for bitrate (#5919) 2025-05-15 15:27:20 +05:30
Neeraj
ed15b47f1b [mobile] New translations (#5918)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2025-05-15 15:26:56 +05:30
Crowdin Bot
6496660718 New Crowdin translations by GitHub Action 2025-05-15 09:54:04 +00:00
Neeraj Gupta
691d31d0a9 Fix lint 2025-05-15 15:21:42 +05:30
Manav Rathi
1f40901fd1 [desktop] Use correct unit for bitrate 2025-05-15 15:21:18 +05:30
Neeraj Gupta
4982c1209e Extract strings 2025-05-15 15:14:18 +05:30
laurenspriem
9170c80b26 Fix constructor 2025-05-15 14:18:46 +05:30
Neeraj Gupta
1b4cb2ed99 Handle existing link error for person update 2025-05-15 13:51:13 +05:30
Neeraj Gupta
45fe850afc Merge branch 'main' into emailAlreadyRegistered 2025-05-15 13:49:38 +05:30
Neeraj Gupta
6ae8abb492 Bump version v1.0.13 2025-05-15 10:47:45 +05:30
Neeraj Gupta
f077213c62 Merge branch 'main' into album_UI_revamp 2025-05-15 10:46:26 +05:30
Neeraj
92a8db53bd [mob][auth] Fix: respect system locale preference (#5916)
## Description
Fixes https://github.com/ente-io/ente/issues/5655
## Tests
2025-05-15 10:34:53 +05:30
Neeraj Gupta
c812b80887 [mob][auth] Fix: respect system local preference 2025-05-15 10:22:48 +05:30
Aman Raj Singh Mourya
62c1f0c6ac fix: merge conflict 2025-05-15 10:17:53 +05:30
Aman Raj Singh Mourya
cc486983ab Merge branch 'main' into album_UI_revamp 2025-05-15 10:14:40 +05:30
Ashil
a103bd4cca [mob][photos] Wrap EnteLoadingWidget with RepaintBoundary to avoid unnecessary repaints (#5915) 2025-05-15 09:11:29 +05:30
ashilkn
c56d9b312d Wrap EnteLoadingWidget with RepaintBoundary to avoid unnecessary repaints 2025-05-15 08:39:47 +05:30
Manav Rathi
6dda5d8762 [web] [desktop] Routine dependency updates (#5914) 2025-05-15 08:25:32 +05:30
Manav Rathi
3e9d78c866 Routine dependency updates 2025-05-15 08:19:21 +05:30
Manav Rathi
c3eb55b258 [desktop] Enable HLS generation for internal users (#5913) 2025-05-15 07:49:41 +05:30
Manav Rathi
0666bf56df [desktop] Enable HLS generation for internal users 2025-05-15 07:45:39 +05:30
Manav Rathi
fcd8298e10 [web] Handle video durations - WIP (#5910)
The change is complete, but currently only enabled for internal users.
2025-05-14 19:57:39 +05:30
Manav Rathi
62bd2d13d6 Match the web behaviour for sub seconds ceil 2025-05-14 18:55:30 +05:30
Manav Rathi
4263906c61 node impl 2025-05-14 18:40:56 +05:30
Manav Rathi
72acefadd4 node 2 2025-05-14 17:04:39 +05:30
Manav Rathi
2be8db783c node 1 2025-05-14 16:54:45 +05:30
Manav Rathi
f8e90e765f web side 2025-05-14 16:46:47 +05:30
Manav Rathi
9424d26f55 Show 2025-05-14 16:21:01 +05:30
Manav Rathi
bb352f3266 mobile compat 2025-05-14 15:43:32 +05:30
Neeraj
85d55c7d26 [mob] Fix: Show switch stream options for shared video files (#5908)
## Description
- This change also fixes the issue where switch stream option wasn't
available when local video streaming was disabled.
- Also cleaned up the widget by removing queue/processing relate state
from the widget.

## Tests
2025-05-14 15:42:42 +05:30
Manav Rathi
6062c20251 Attach 2025-05-14 15:29:52 +05:30
Neeraj Gupta
8861e0562f rename 2025-05-14 15:24:06 +05:30
Manav Rathi
5e4de0793a json
a sample file (ElephantsDream.mp4, might be obtainable online) was causing the
string based duration format to fail, but is working with the json variant
2025-05-14 15:23:35 +05:30
Neeraj Gupta
80d36b5a91 Show switch stream options for shared files 2025-05-14 15:22:51 +05:30
Prateek Sunal
f22ad9611f feat: populate people as well 2025-05-14 15:14:11 +05:30
Neeraj
8e038dda14 [mob] Show person's name for shared fav collection (#5905)
## Description

## Tests
2025-05-14 14:42:22 +05:30
Prateek Sunal
9cafa72ae3 fix: add color scheme based icon 2025-05-14 14:01:25 +05:30
Neeraj
a5eba40f29 [mob] Increase resumable upload rollout 20 -> 50% (#5907)
## Description

## Tests
2025-05-14 13:57:05 +05:30
Prateek Sunal
0c9d7321eb fix: nominal display limit count & disable show create album 2025-05-14 13:52:13 +05:30
Neeraj Gupta
d98d220019 Increase resumable upload rollout 20 -> 50% 2025-05-14 13:51:45 +05:30
Prateek Sunal
5fc5d0ef48 feat: add initial album grid and save button 2025-05-14 13:48:08 +05:30
Neeraj Gupta
ce6b0da630 Show person's name for shared fav collection 2025-05-14 12:51:15 +05:30
Manav Rathi
d1d91338af Dur 1 2025-05-14 12:47:09 +05:30
Manav Rathi
790c022730 Impl 2025-05-14 12:39:28 +05:30
Manav Rathi
be65f0fba8 tailored log
inputPath is a random id in this context and doesn't provide any extra info
2025-05-14 12:20:21 +05:30
Manav Rathi
3677d53ea9 Sketch 2025-05-14 12:14:48 +05:30
Prateek Sunal
84017c7397 Merge remote-tracking branch 'origin/memories_widget_api' into widget-superpowered 2025-05-14 12:13:06 +05:30
Manav Rathi
f92101eaf8 Outline 2025-05-14 11:57:57 +05:30
mangesh
1d3ca81308 [docs] clarifying instructions about admin actions for CLI (#5848) 2025-05-14 11:55:12 +05:30
Manav Rathi
e9f22cff93 case 2025-05-14 11:31:48 +05:30
Prateek Sunal
e250759999 Merge remote-tracking branch 'origin/album_grid_UI' into widget-superpowered 2025-05-14 11:21:50 +05:30
Neeraj
d5740c4b66 [server] Version check support during ml data put (#5895)
## Description

## Tests
2025-05-14 10:56:36 +05:30
Manav Rathi
07bd28381d [web] Use wasm workerfs to directly mount blob instead of reading it in memory (#5904)
https://emscripten.org/docs/api_reference/Filesystem-API.html#workerfs
2025-05-14 10:45:48 +05:30
Manav Rathi
8c8c9d7ffa Use workerfs to directly mount blob instead of reading it in memory 2025-05-14 10:27:37 +05:30
Neeraj Gupta
d06016dddc Update status code 2025-05-14 10:02:54 +05:30
Manav Rathi
f4531ef088 [desktop] Don't mark indexing failures on 409s (#5903) 2025-05-14 10:01:45 +05:30
Manav Rathi
56772521e0 Don't mark failures on 409s 2025-05-14 09:49:52 +05:30
Neeraj Gupta
244ec87a9a Rename 2025-05-14 09:40:57 +05:30
Manav Rathi
043d0936ef [desktop] Incorporate mldata version check (#5900)
Ref: https://github.com/ente-io/ente/pull/5895
2025-05-14 09:07:44 +05:30
Manav Rathi
9129910981 [web] Potential fix for pin order not being maintained (#5902) 2025-05-13 19:41:40 +05:30
Manav Rathi
4194c53d08 [web] Potential fix for pin order not being maintained 2025-05-13 19:32:07 +05:30
Manav Rathi
9d5960c6fe [desktop] Incorporate mldata version check 2025-05-13 18:35:45 +05:30
Aman Raj Singh Mourya
f088c24abe refactor: remove debug print statements 2025-05-13 18:15:35 +05:30
Aman Raj Singh Mourya
e197423c1d fix: fixed album list opening scrolled down & increase bottom padding 2025-05-13 18:10:38 +05:30
Neeraj Gupta
b22bc93e57 Send updatedAt along with fileData 2025-05-13 18:01:19 +05:30
Manav Rathi
236301dc16 [desktop] Video generation integration - WIP Part x/x (#5896) 2025-05-13 17:22:22 +05:30
Manav Rathi
b4a60fd2f4 empty state 2025-05-13 17:17:38 +05:30
Neeraj Gupta
079ac37d1f Fix lint 2025-05-13 17:15:30 +05:30
Neeraj Gupta
3deb138b77 Fix: Enable delinking email from person with no face 2025-05-13 17:04:11 +05:30
Manav Rathi
5b9b328c99 Tweak 2025-05-13 16:51:33 +05:30
Manav Rathi
e541f0522d skip case 2025-05-13 16:44:55 +05:30
Manav Rathi
93413687c9 hs 2025-05-13 16:11:14 +05:30
Neeraj
48ef4df187 [mob] Fix date-formatting as per device locale (#5894)
## Description
- For language only match, instead of returning supported locale which
many times doesn't have country code, we are now falling back to system
locale. So for en_GB, the auto-detected locale will be `en_GB` instead
of just `en`.

Fixes https://github.com/ente-io/ente/issues/5120


## Tests
- Verified that the app was translated in Spanish with `es_US`.
- Verified that date-formatting is as per device locale (at least on
birthday date picker & edit time dialog)
2025-05-13 15:20:35 +05:30
Manav Rathi
96d748dc87 status 2025-05-13 15:17:52 +05:30
Neeraj Gupta
9d28fa99a3 Version check support during ml data put 2025-05-13 15:09:55 +05:30
Neeraj Gupta
f9cce787f7 Remove log 2025-05-13 14:26:54 +05:30
Manav Rathi
dcc02db296 init 2025-05-13 14:26:53 +05:30
Neeraj Gupta
c0fd71a668 Fix: fallback to device locale on language only match 2025-05-13 14:25:20 +05:30
Manav Rathi
116f22a853 vis 2025-05-13 13:57:14 +05:30
Neeraj
501b541134 [mob] Cache video streams for shared files (#5892)
## Description
Title

## Tests
- Verified from logs that shared stream videos are getting cached
correctly.
2025-05-13 13:52:44 +05:30
laurenspriem
1785baf4af method for memories widget 2025-05-13 13:33:31 +05:30
Neeraj Gupta
b08d8de1c8 Fix date formatting in edit time 2025-05-13 13:25:46 +05:30
Manav Rathi
0284287c9c toggle 2025-05-13 13:14:14 +05:30
Manav Rathi
be2665f57f Set sv = 1 for files that are skipped 2025-05-13 12:29:17 +05:30
Neeraj Gupta
b721a84889 Fix date format in birthday date-picker 2025-05-13 12:28:34 +05:30
Manav Rathi
442d6526be sopt color
something (I'm not sure what, but I think react-select itself) overrides the
color for the option's root element to white when displaying the search bar on
the search results screen itself. as a workaround, provide a explicit color to
the text.

steps to reproduce (light mode):
- search for something (all options look normal)
- select an option
- search for something on this results screen itself
- note how the search options titles are in white
2025-05-13 11:47:54 +05:30
Manav Rathi
08346e5bcd it was already revoking 2025-05-13 11:36:00 +05:30
Manav Rathi
e35b4eac40 Refill queue even after first refill 2025-05-13 11:29:50 +05:30
Manav Rathi
7c6da77c21 [desktop] Video generation integration - WIP Part x/x (#5891) 2025-05-13 11:17:14 +05:30
Neeraj Gupta
ab59a15769 Remove internal user flag 2025-05-13 11:07:53 +05:30
Neeraj Gupta
45e07f3be0 Improve video caching + cache shared videos 2025-05-13 11:00:40 +05:30
Manav Rathi
a2df4fb48a impl 2025-05-13 10:57:43 +05:30
Manav Rathi
5a2ba82fff return current state instead of original state on errors
this should be a more graceful behaviour on errors
2025-05-13 10:46:29 +05:30
Manav Rathi
6a907d0f7d wip 1 2025-05-13 10:43:05 +05:30
Manav Rathi
20dfec2e67 Outline 2025-05-13 10:32:06 +05:30
Manav Rathi
96c3880e38 filter files in trash 2025-05-13 10:20:42 +05:30
Manav Rathi
2adabc1e24 fix hydration warning 2025-05-13 10:20:42 +05:30
Manav Rathi
a6ca7a5792 stop unnecessary reindexing on addedSymlink 2025-05-13 10:20:42 +05:30
Manav Rathi
6abea7ae6d Note 2025-05-13 10:20:42 +05:30
Manav Rathi
429b6be368 to db 2025-05-13 10:20:42 +05:30
Manav Rathi
ed9af710fe doc 2025-05-13 10:20:42 +05:30
Manav Rathi
f8ef263e6d own 2025-05-13 10:20:42 +05:30
Manav Rathi
fae47f102e mark 2025-05-13 10:20:42 +05:30
Manav Rathi
240bfdd296 ret 2025-05-13 10:20:41 +05:30
Neeraj Gupta
672123d746 Remove duplicate logic 2025-05-13 10:06:59 +05:30
Aman Raj Singh Mourya
51d55ee92b feat: Add new album row item widget and update collections grid view 2025-05-12 22:06:19 +05:30
Manav Rathi
cc3f20831a [server] 204 minor fix (#5886)
- Sibling of https://github.com/ente-io/ente/pull/5880
- Tested using https://github.com/ente-io/ente/pull/5885
2025-05-12 21:58:33 +05:30
Manav Rathi
a282f82909 [web] Use new 204 facility for playlist existence (#5885) 2025-05-12 20:49:57 +05:30
Manav Rathi
2fde22272e [web] Use new 204 facility for playlist existence 2025-05-12 20:45:37 +05:30
Manav Rathi
d63da04392 [server] 204 tweak
- Sibling of https://github.com/ente-io/ente/pull/5880
- Tested using https://github.com/ente-io/ente/pull/5885
2025-05-12 20:42:12 +05:30
Aman Raj Singh Mourya
7cd3f8e2ac [mob][photos] feat: show albums shared by contact in contact section 2025-05-12 20:12:45 +05:30
Manav Rathi
9517514396 [web] Add workaround for Safari live photo download (#5884)
Tested on Safari (obv) and Chrome.
2025-05-12 19:46:24 +05:30
Manav Rathi
41a4f3d286 [web] Add workaround for Safari live photo download 2025-05-12 19:39:19 +05:30
Prateek Sunal
91fefa7eb9 feat: memories leading icons 2025-05-12 19:12:46 +05:30
Prateek Sunal
63b9a09a2d feat: init widgets settings and default states
Next: Add Grid, make things dynamic, Add sync logic and native code
2025-05-12 19:07:58 +05:30
Neeraj
d1a2efff0e [server] Sending 204 instead of 404 for no data (#5880)
## Description

## Tests
2025-05-12 16:59:44 +05:30
Laurens Priem
00d723ca7c [infra] github actions internal release with rust (#5879)
## Description

Add Github Action for mobile release that includes the use of rust
2025-05-12 16:54:25 +05:30
Neeraj Gupta
47b2e0d0ab Sending 204 instead of 404 for no data 2025-05-12 16:53:24 +05:30
laurenspriem
ac9dbd4ee1 github actions internal release with rust 2025-05-12 16:50:49 +05:30
Prateek Sunal
8b6f6346be [workflow](auth-release) separate checksum as *-linux & *-apk (#5878)
## Description

After last change the checksum name also need to changed to suffice the
new files and the unified ubuntu workflow. Here I am modifying the
checksum so that there are two different versions, one for linux related
binaries and another for the solo apk file.

## Tests
2025-05-12 15:13:33 +05:30
Prateek Sunal
73ad6b45fb fix(workflow): separate checksum to two 2025-05-12 15:07:45 +05:30
Neeraj
020f8cea23 [mob] Play streamable video whenever available (#5877)
## Description
- This PR removes the check for local streaming video settings
- [Internal users] added support for playing video stream for shared
files.
In order to cache the playlist and encrypted video stream, we will need
make backend API changes. Once those are done, we will remove the
internal user flag.
## Tests
2025-05-12 15:07:32 +05:30
Prateek Sunal
d52accdcc9 fix: typo 2025-05-12 15:04:54 +05:30
Neeraj Gupta
975c7ae8d1 Fix typo 2025-05-12 15:03:30 +05:30
Neeraj Gupta
c4463d6251 Fix lint 2025-05-12 15:00:47 +05:30
Neeraj Gupta
e96888d2c9 Reduce ffprobe log noise in debugMode 2025-05-12 14:51:38 +05:30
Neeraj Gupta
03df804868 Restrict shared file preview playback to internal users 2025-05-12 14:49:25 +05:30
Neeraj Gupta
685e0099c8 Support for playing preview of shared files 2025-05-12 14:32:47 +05:30
Neeraj Gupta
4a924a7296 Remove check for local setting 2025-05-12 13:41:27 +05:30
Neeraj Gupta
1f4beab764 Copy update 2025-05-12 13:39:04 +05:30
Neeraj Gupta
4fd121adf1 Play video stream regardless of generate setting 2025-05-12 13:36:52 +05:30
Manav Rathi
a942e68d27 [web] Support Turkish translations (#5875) 2025-05-12 13:23:35 +05:30
Neeraj
ece63f7a8d [server] Improve handling of errors (#5860)
## Description

## Tests
2025-05-12 13:18:01 +05:30
Neeraj
dcdc26e4e8 [auth] New translations (#5873)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2025-05-12 13:16:39 +05:30
Neeraj
ffa8ccd0d3 [mobile] New translations (#5872)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2025-05-12 13:16:19 +05:30
Manav Rathi
01f612e450 [web] Support Turkish translations 2025-05-12 10:58:42 +05:30
Vishnu Mohandas
70f80c7b57 [auth] Auth reorder widgets (#5869)
![image](https://github.com/user-attachments/assets/60752fe9-7c3d-402f-a92f-7a454c191b79)
2025-05-12 10:01:44 +05:30
Manav Rathi
ab875683ed [web] New translations (#5874)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-05-12 09:39:20 +05:30
Crowdin Bot
638108a819 New Crowdin translations by GitHub Action 2025-05-12 03:38:14 +00:00
Manav Rathi
dec193599f [web] Tweak error message (#5854) 2025-05-12 09:07:37 +05:30
Manav Rathi
4913746a31 [web] New translations (#5871)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-05-12 09:07:09 +05:30
ashilkn
4e3040a36b Remove store data and media related to playstore (mobile/fastlane/metadata/playstore/en-US) for f-droid 2025-05-12 07:59:01 +05:30
Crowdin Bot
0966ab7d19 New Crowdin translations by GitHub Action 2025-05-12 01:17:45 +00:00
Crowdin Bot
83ae436008 New Crowdin translations by GitHub Action 2025-05-12 01:05:08 +00:00
Crowdin Bot
8f2a2caac1 New Crowdin translations by GitHub Action 2025-05-12 00:41:04 +00:00
Aman Raj Singh Mourya
7cc6319d5f feat: Extract strings 2025-05-12 00:50:01 +05:30
Aman Raj Singh Mourya
eabe213207 fix: Reorder advance option widget 2025-05-12 00:41:04 +05:30
Bl4ckspell
5b7f821a26 [auth] Add Bitazza icon (#5866)
## Description
New PR with updated icon for #5757 - Add Bitazza icon

<img
src="https://github.com/user-attachments/assets/085830d4-9ed6-4ddc-95f4-434412f8f045"
width="100" />
2025-05-11 10:29:32 +05:30
Neeraj
939ab4398c [mob] Enable sharing for fav collection (#5863)
## Description

## Tests
2025-05-10 08:12:13 +05:30
Neeraj Gupta
c4effd4ef4 Enable sharing for fav collection 2025-05-10 08:11:32 +05:30
Neeraj
bcf1a044cc [server] Enable sharing for fav (#5861)
## Description

## Tests
2025-05-10 07:34:33 +05:30
Neeraj Gupta
2dd9a080c6 Enable sharing for fav 2025-05-10 07:34:06 +05:30
Neeraj Gupta
57a4e6dd15 Update err copy 2025-05-10 07:26:44 +05:30
Neeraj Gupta
93cd2d30e4 Improve handling for ott errors 2025-05-10 07:22:28 +05:30
Neeraj Gupta
f65db123f2 Refactor 2025-05-10 07:12:01 +05:30
Neeraj Gupta
d697f22896 Improve SRP response 2025-05-10 07:01:39 +05:30
Neeraj Gupta
65faa98621 Move to util 2025-05-10 06:27:25 +05:30
Manav Rathi
e4a0125f1c [desktop] Streaming video generation - WIP Part x/x (#5857) 2025-05-09 19:08:38 +05:30
Manav Rathi
98d06f975c f2 2025-05-09 19:03:03 +05:30
Manav Rathi
d0ebe65af4 f1 2025-05-09 18:54:22 +05:30
Manav Rathi
08d936be45 1 2025-05-09 18:42:50 +05:30
Manav Rathi
71596ebd8e update 2025-05-09 18:05:14 +05:30
Manav Rathi
8ededf54c7 sync 2025-05-09 17:58:02 +05:30
Manav Rathi
0520fcd7ec outline 2025-05-09 17:58:02 +05:30
Manav Rathi
b6173d6c1b sync 2025-05-09 17:58:02 +05:30
Manav Rathi
6fa07e12db pag 2025-05-09 17:58:02 +05:30
Manav Rathi
804dacef91 diff 1 2025-05-09 17:58:02 +05:30
Manav Rathi
97350005c9 Outline 2025-05-09 17:58:02 +05:30
Manav Rathi
5f36a23f4e Remove double replenish 2025-05-09 17:58:02 +05:30
Vishnu Mohandas
d336541d2c [docs] Fix typo (#5856) 2025-05-09 16:28:35 +05:30
Vishnu Mohandas
780ea55ca8 [docs] Fix typo 2025-05-09 16:28:20 +05:30
Neeraj Gupta
38663088b1 Move to util 2025-05-09 15:49:20 +05:30
Neeraj Gupta
16345fa7a1 Merge branch 'release_mob_5may2025' into f-droid 2025-05-09 15:30:58 +05:30
Neeraj
eb9987d2c0 [server] Reduce alert noise (#5855)
## Description

## Tests
2025-05-09 14:37:20 +05:30
Neeraj Gupta
cf4084380c Throttle discord alerts 2025-05-09 14:28:22 +05:30
Manav Rathi
691469ef5e scope 2025-05-09 14:04:50 +05:30
Manav Rathi
8106bc6940 [web] Tweak error message 2025-05-09 14:04:50 +05:30
Neeraj
deb68d5cfc [server] Improve logs (#5853)
## Description

## Tests
2025-05-09 14:02:59 +05:30
mngshm
f4e158dab6 clarifying instructions about admin actions for CLI 2025-05-08 17:45:57 +05:30
Manav Rathi
e8b0d9c25b [web] Fix duplicate display of neighbour when deleting slide (#5847) 2025-05-08 16:53:13 +05:30
Manav Rathi
43ce9edb95 Make it work when deleting the last slide in the list 2025-05-08 16:47:56 +05:30
Manav Rathi
3b4c7095c4 [web] Fix duplicate display of neighbour when deleting slide 2025-05-08 16:32:22 +05:30
Manav Rathi
d95bb0785f [desktop] Move ffmpeg processing to a (node) worker (#5846)
Smoother app during HLS gen
2025-05-08 15:15:00 +05:30
Manav Rathi
d53281500b prune 2025-05-08 15:05:56 +05:30
Manav Rathi
44199093f0 Enable 2025-05-08 15:02:07 +05:30
Manav Rathi
18442e25fc Move upload to utility process
Attempt to further lighten the load on the main thread
2025-05-08 14:53:05 +05:30
Neeraj
0fa7245144 [server] Fix invalid 5xx error for bad requests (#5842)
## Description

## Tests
Tested locally
2025-05-08 13:52:15 +05:30
Neeraj
4fc7347cb7 docs-edit file limit (#5844)
## Edit file constraints

## Tests
2025-05-08 13:11:38 +05:30
Jay
4840a44c4d docs-edit file limit 2025-05-08 13:08:23 +05:30
Prateek Sunal
109ac573c9 [mob] remove NativeAdapter to support big file upload (#5843)
## Description

Big file uploads fail when using NativeAdapter, this PR:
- [x] Removes NativeAdapter http client adapter

## Tests
2025-05-08 12:45:53 +05:30
Prateek Sunal
23559252e6 chore: bump version 2025-05-08 12:45:22 +05:30
Prateek Sunal
31b31b1a52 chore: lint update 2025-05-08 12:45:11 +05:30
Prateek Sunal
8333e2ad7b fix: not remove it for enteDio 2025-05-08 12:42:59 +05:30
Prateek Sunal
cb5c9f3170 chore: lint fix 2025-05-08 12:38:58 +05:30
Prateek Sunal
7b2e6cb1bd fix(network): remove NativeAdapter to support big file upload 2025-05-08 12:38:42 +05:30
Neeraj
d18d939489 [mob] Navigate to BackupSettings when tapping "Waiting for network" status (#5835)
## Description

## Tests
2025-05-08 11:28:59 +05:30
Neeraj Gupta
b3376f27aa Fixed typo 2025-05-08 11:27:01 +05:30
Neeraj Gupta
327bda5b30 Log validationErr details as warning 2025-05-08 11:20:53 +05:30
Neeraj Gupta
c3b1da2a7e Fix handling of unwrapped error 2025-05-08 11:19:57 +05:30
Vishnu Mohandas
f238b55df3 [docs] env, ports and more docs in /self-hosting (#5823) 2025-05-07 19:10:54 +05:30
mngshm
d15a034869 consistency (2) 2025-05-07 19:09:07 +05:30
mngshm
7b3ae417e8 consistency 2025-05-07 18:56:00 +05:30
Manav Rathi
d35f898b70 better way of dealing with undefs
Electron postMessage wants an empty array and balks at undefined
2025-05-07 18:10:18 +05:30
Manav Rathi
6730c0c682 take 1 - fix sporadic unhandled exception
With extra logging, this is it:

    adapter postMessage {
      id: '12c1c688f6f7b4-4e5fd44d3b9bc-f746fb2a0beda-1b0c26213b6237',
      type: 'RELEASE'
    } undefined
    [error] Unhandled rejection: TypeError: transferables must be an array of MessagePorts
    TypeError: transferables must be an array of MessagePorts
        at MessagePortMain.postMessage (node:electron/js2c/browser_init:2:111057)
        at Object.postMessage (...desktop/app/main/utils/comlink.js:21:16)
        at .../desktop/node_modules/comlink/dist/umd/comlink.js:353:16
        at new Promise (<anonymous>)
        at requestResponseMessage (../desktop/node_modules/comlink/dist/umd/comlink.js:347:16)
        at releaseEndpoint (.../desktop/node_modules/comlink/dist/umd/comlink.js:199:16)
        at proxyFinalizers (.../desktop/node_modules/comlink/dist/umd/comlink.js:211:17)
2025-05-07 17:51:42 +05:30
Manav Rathi
c2c7ac8b23 Tweak 2025-05-07 17:08:09 +05:30
Neeraj Gupta
e322958b25 Navigate to BackupSettings when tapping "Waiting for network" status 2025-05-07 16:53:02 +05:30
Neeraj
0d660f239f [mob] Bump version v1.0.9 (#5834)
## Description

Bumping version to prepare for next release.

## Tests
2025-05-07 16:24:46 +05:30
Prateek Sunal
c4a50fc9fb chore: bump version to 1039 2025-05-07 16:15:41 +05:30
Manav Rathi
2f670e316b conv 2025-05-07 14:04:41 +05:30
Manav Rathi
f47a6f7b42 rendezvous 2025-05-07 13:48:23 +05:30
mngshm
8856ad1520 Sidebar 2025-05-07 13:30:40 +05:30
Manav Rathi
3513b51477 trampoline 2025-05-07 13:29:19 +05:30
Manav Rathi
bd8fc08b7c rework 1
temp files will need to be handled on main process
2025-05-07 12:36:55 +05:30
Manav Rathi
ae925a240e fix 2025-05-07 11:58:13 +05:30
Manav Rathi
adf1379b9e node 1 2025-05-07 11:23:28 +05:30
mangesh
e8158ef45a [staff] show family member storage quota (#5770) 2025-05-07 10:55:02 +05:30
Manav Rathi
71d6aed1aa web side 1 2025-05-07 10:30:20 +05:30
Aman Raj Singh Mourya
6627f77d92 [mob][photos] fix: increase bottom padding 2025-05-06 20:36:44 +05:30
Manav Rathi
4fa0bf76e8 [desktop] Generisize the creation of utility processes (#5829)
ffmpeg code about to become one
2025-05-06 18:58:41 +05:30
Manav Rathi
92a9b34836 Generisize 2025-05-06 18:52:03 +05:30
Manav Rathi
10d7162d6e Rename 2025-05-06 18:00:10 +05:30
Manav Rathi
2a1b8ae18e Generalize 2025-05-06 17:39:48 +05:30
Manav Rathi
5abf2cb35e Extract 2025-05-06 17:24:03 +05:30
Manav Rathi
367170be95 [desktop] Video stream generation - WIP Part x/x (#5827) 2025-05-06 17:05:48 +05:30
Manav Rathi
4d7cfee60f Fix slowness 2025-05-06 16:03:13 +05:30
Prateek Sunal
29152d1f85 [mob] bump to 1038 (#5817)
## Description

Bump version to 1038

## Tests
2025-05-06 15:39:25 +05:30
Neeraj
6b4ffa4822 [mob][photos] Fix share to Ente (#5821)
## Description

Fix [issue with sharing to
Ente](https://github.com/ente-io/ente/discussions/5755)

## Tests
2025-05-06 15:38:32 +05:30
Manav Rathi
2883f4bed6 Tweak 2025-05-06 15:08:52 +05:30
laurenspriem
c96275cdd1 Update load message 2025-05-06 14:48:57 +05:30
Manav Rathi
9db8324ffd Sketch 2025-05-06 14:42:23 +05:30
mngshm
0c664b94b9 Make storageLimit nullable and display 'NA' 2025-05-06 14:41:42 +05:30
Manav Rathi
c087e419d5 Outline 2025-05-06 13:00:41 +05:30
mngshm
5ba5cae5ef mark redirection info as IMPORTANT in doc 2025-05-06 12:50:27 +05:30
Manav Rathi
4ea211d923 Sketch interruptible loop 2025-05-06 12:32:57 +05:30
mngshm
8d8202adab Env and Ports 2025-05-06 12:13:48 +05:30
mngshm
267f93e41e Merge branch 'main' into fam 2025-05-06 11:05:10 +05:30
Manav Rathi
260ec952b4 Not needed 2025-05-06 10:14:28 +05:30
Prateek Sunal
5e311c2813 fix: bump to 1038 2025-05-05 20:53:51 +05:30
Prateek Sunal
1d3268916f [mob] fix ffmpeg-kit android compilation (#5813)
## Description

- [x] Fix failing android build
- [x] Don't redirect to Backup Status screen when "Preview Failed"
status is pressed.

## Tests

- [x] Test if app works and everything is fine
2025-05-05 20:23:22 +05:30
Prateek Sunal
73192cd0fd fix: remove unused import and simplify navigation logic in PreviewStatusWidget 2025-05-05 20:21:55 +05:30
Prateek Sunal
9c886b3fa3 fix: update ffmpeg kit resolved reference in pubspec.lock 2025-05-05 20:01:39 +05:30
Prateek Sunal
017832f11e feat: update ffmpeg kit source 2025-05-05 18:38:49 +05:30
Prateek Sunal
67e76bc42f chore: update locals 2025-05-05 18:38:37 +05:30
laurenspriem
9a6579c55c Refactor 2025-05-05 17:30:12 +05:30
laurenspriem
17c0cdef14 Fix backup share issue 2025-05-05 17:21:39 +05:30
mngshm
dd0cc71f36 Minor 2025-05-05 16:37:29 +05:30
mangesh
21fd6ab463 [staff] match title casing to key in the UserData interface (#5812) 2025-05-05 16:36:43 +05:30
mngshm
6e2142c605 match title casing to key in the UserData interface 2025-05-05 16:28:23 +05:30
Manav Rathi
16338682ed [docs] Mention UNC path workaround to create network drive (#5811) 2025-05-05 15:58:05 +05:30
Manav Rathi
a7e8d3dfa6 [docs] Mention UNC path workaround to create network drive 2025-05-05 15:51:03 +05:30
Manav Rathi
6e9014b915 [desktop] Tweak the backfill behaviour in case of transients (#5809) 2025-05-05 15:34:24 +05:30
Neeraj
b5e7a3f83f [mob] Bump version v1.0.7 (#5810)
## Description

## Tests
2025-05-05 15:24:19 +05:30
Neeraj Gupta
d8d76f452d Bump version v1.0.7 2025-05-05 15:23:14 +05:30
Laurens Priem
c2e475c666 Face thumbnail logging (#5808)
## Description

Change logging flow for face thumbnail generation
2025-05-05 15:03:06 +05:30
Manav Rathi
9a4bc898f0 [desktop] Tweak the backfill behaviour in case of transients 2025-05-05 15:02:28 +05:30
laurenspriem
ca92aa8c62 Include delay 2025-05-05 14:59:53 +05:30
laurenspriem
56c6d7ed3c Remove redundant reset 2025-05-05 14:49:57 +05:30
mangesh
6ee4bce676 Merge branch 'main' into fam 2025-05-05 14:47:44 +05:30
laurenspriem
ff3f01af56 Increase queue size 2025-05-05 14:47:05 +05:30
Laurens Priem
b5ba81e22b [mob][photos] Fix memories update regression (#5807)
## Description

Fixed regression in memories update scheme.
2025-05-05 14:23:04 +05:30
laurenspriem
d5aab7c6df Fix memories update regression 2025-05-05 14:18:58 +05:30
Manav Rathi
2749457611 [web] Ensure copy as PNG option is reset when we get the original (#5806)
Fixes: https://github.com/ente-io/ente/discussions/5802
2025-05-05 14:02:22 +05:30
Manav Rathi
883b14e96a [web] Ensure copy as PNG option is reset when we get the original
Fixes: https://github.com/ente-io/ente/discussions/5802
2025-05-05 13:58:13 +05:30
Neeraj
59d7e0acac [mobile] New translations (#5799)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2025-05-05 13:39:10 +05:30
Neeraj
68ac3503ed [server] Use access ctrl for verifying access (#5801)
## Description

## Tests
2025-05-05 13:33:26 +05:30
mngshm
58649db181 fix Linters in UpdateSubscription Component 2025-05-05 13:25:21 +05:30
mangesh
92ca4eeb15 [staff] consolidate and separate interfaces (#5765)
The codebase was too cluttered with interfaces spread all over the
codebase. Separated all the commonly usable types into a single
`types/index.ts` file. Some types which are only usable in that
particular component are left untouched.

P.S: Inspiration from families codebase.
2025-05-05 13:21:12 +05:30
Manav Rathi
d3e06e6cc9 [web] Ensure ellipsizing of caption (#5805)
`text-align: right` causes the ellipsizing to sometimes work, sometimes
not, depending on the exact contents of the line (tested in current
Chrome). Tweak the design to work with the normal text align to try and
ensure the elision is always ellipsized.
2025-05-05 13:19:22 +05:30
Manav Rathi
3cef3e9bdc [web] Ensure ellipsizing of caption
`text-align: right` causes the ellipsizing to sometimes work, sometimes not,
depending on the exact contents of the line (tested in current Chrome). Tweak
the design to work with the normal text align to try and ensure the ellision is
always ellipsized.
2025-05-05 13:12:58 +05:30
mangesh
d318952feb [quickstart] Gracefully handle case when docker compose is not present (#5804)
When docker is present but docker compose is not present, the `docker
compose` invocation would fail. We want the early exit (`set -e`), so
instead do a fallback to set dcv to an empty string so that it later
fails in the `test -z dcv` case below and prints the intended error
message.
2025-05-05 13:08:49 +05:30
Manav Rathi
6d8051dfa0 [quickstart] Gracefully handle case when docker compose is not present
When docker is present but docker compose is not present, the `docker compose`
invocation would fail. We want the early exit (`set -e`), so instead do a
fallback to set dcv to an empty string so that it later fails in the `test -z
dcv` case below and prints the intended error message.
2025-05-05 12:37:48 +05:30
Laurens Priem
6acb9cf23f [mob][photos] Deletion fixes (#5792)
## Description

- Fix issue where user is not able to delete own files in a shared album
- Fix issue where deletion of not yet uploaded files leads to showing
grey boxes in gallery

## Tests

Tested in debug mode on my pixel phone.
2025-05-05 11:46:03 +05:30
Manav Rathi
87e5457eb0 [web] New translations (#5798)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-05-05 11:43:11 +05:30
laurenspriem
5ee23118ff Don't show delete on public collection 2025-05-05 10:06:46 +05:30
Neeraj Gupta
d198f0c273 Use access ctrl for verifying access 2025-05-05 10:01:33 +05:30
Crowdin Bot
a88249de09 New Crowdin translations by GitHub Action 2025-05-05 01:05:08 +00:00
Crowdin Bot
89ded523f8 New Crowdin translations by GitHub Action 2025-05-05 00:40:34 +00:00
laurenspriem
f132a1359f Fix deletions when not uploaded yet 2025-05-03 18:59:20 +05:30
Manav Rathi
48d9d03b32 [web] Rearrange upload code - Part 2/2 (#5786)
Fix most (but not all) of the temporary escape hatches added during
https://github.com/ente-io/ente/pull/5779.
2025-05-02 20:04:17 +05:30
Manav Rathi
11aba9df96 Update 2025-05-02 19:42:38 +05:30
Manav Rathi
2c0fb5e584 Update 2025-05-02 19:39:58 +05:30
Prateek Sunal
69c6adcd06 [workflow] auth linux packages (#5783)
## Description

- [x] Rename libtiff6 to libtiff5 to be backward compatible.
- [x] Update the locks for pubspec and Podfile

## Tests
2025-05-02 19:38:06 +05:30
Manav Rathi
e6c72baef7 Fix 2025-05-02 19:35:46 +05:30
Manav Rathi
83853e579f lint 2025-05-02 19:33:23 +05:30
Manav Rathi
02652d3cfa lint 2025-05-02 19:32:33 +05:30
Manav Rathi
fe60dbbb08 lint 2025-05-02 19:30:55 +05:30
Manav Rathi
a1842be6e1 lint 2025-05-02 19:16:50 +05:30
Manav Rathi
5f644ae96d Fix 2025-05-02 19:09:16 +05:30
Manav Rathi
3f5043a104 transform doesn't require await
ref: https://developer.mozilla.org/en-US/docs/Web/API/TransformStream/TransformStream#transformchunk_controller
2025-05-02 19:03:39 +05:30
Manav Rathi
df55492984 Scope 2025-05-02 18:59:52 +05:30
Manav Rathi
b73171a329 Scope 2025-05-02 18:50:15 +05:30
Manav Rathi
b0b02e2ffe Undot
- Have forgotten why I'd reverted this

- Tested manually with a sample that it works, including a malformed JSON file
  containing `null`, `"null"`, `["null"]`.
2025-05-02 18:35:54 +05:30
Manav Rathi
7b79a42cc9 A 2025-05-02 18:20:55 +05:30
Prateek Sunal
54d1363b58 chore: bump locks 2025-05-02 18:09:40 +05:30
Prateek Sunal
8a9afc40a8 fix: auth workflow packages 2025-05-02 18:07:01 +05:30
Prateek Sunal
958f569969 [mob] update backup-failed dialog (#5780)
## Description

- [x] Make Upload Backup Failed Dialog UX better

## Tests

- [x] Tested the new dialog
2025-05-02 17:35:16 +05:30
Ashil
a64214ae15 [Auth] Remove dependency override (#5781)
## Description

The dependency was overridden for [this
change](https://github.com/juliansteenbakker/flutter_secure_storage/pull/673)
which is merged now and available from flutter_secure_storage version
9.1.0.
2025-05-02 17:29:17 +05:30
ashilkn
69e8ba6743 bump up auth to 4.3.6 2025-05-02 17:27:28 +05:30
Manav Rathi
0b73c92ee6 Audit (and minor fix) 2025-05-02 17:25:51 +05:30
Ashil
196e601929 [workflow] revert to ubuntu 22.04 runner for auth-release (#5782)
## Description

- [x] Auth is dependent on GLIB 2.38 due to ubuntu latest runner, this
downgrades the ubuntu runner to fix this and support atleast GLIB 2.35

## Tests
2025-05-02 17:12:56 +05:30
Manav Rathi
6252b2c267 R 2025-05-02 17:08:19 +05:30
Manav Rathi
9f462f90ab Now it is 2025-05-02 16:43:22 +05:30
Manav Rathi
0e19f5d8b3 R 2025-05-02 16:41:06 +05:30
Prateek Sunal
3ff77ee9c0 fix: revert to ubuntu 22.04 runner 2025-05-02 16:40:54 +05:30
Manav Rathi
65c2eda941 R 2025-05-02 16:36:36 +05:30
ashilkn
f6a2deb763 Remove dependency override 2025-05-02 16:35:32 +05:30
laurenspriem
08ee4c1351 Show delete action inside collaborative album 2025-05-02 16:33:07 +05:30
laurenspriem
c713e1c22b Fix bug in deleting from collaborative album 2025-05-02 16:31:27 +05:30
Manav Rathi
c76a7c75ea Use 2025-05-02 16:30:14 +05:30
Manav Rathi
a56a086dc4 1 2025-05-02 16:20:12 +05:30
Prateek Sunal
c1903c7016 fix(backup-item-card): log warning when contact support is clicked 2025-05-02 15:54:09 +05:30
Prateek Sunal
4dfadc535f chore: bump locks 2025-05-02 15:36:18 +05:30
Prateek Sunal
8e01a5038e chore: update generated locals 2025-05-02 15:35:57 +05:30
Prateek Sunal
05a42efb1b fix: update backup failed dialog to make UX better 2025-05-02 15:35:43 +05:30
mangesh
3d924ab514 [docs] self-hosting revamp and cleanup (#5746)
1. Un-index DB Migration and Mobile Builds
2. Move Frequently Answered S3 problems to `/troubleshooting/uploads`
which was a common file for documenting fixes around uploads to Ente.
3. Un-index Yarn troubleshooting as we default most of the support
versions in the getting-started script and encourage the use of the
one=liner command more.
4. `/troubleshooting/bucket-cors` as the single document for setting up
Bucket CORS. And clean the duplicated guidelins from `/external-s3`.
2025-05-02 15:01:58 +05:30
Manav Rathi
ae34a4c41a [web] Rearrange upload code - Part 1/2 (#5779)
This does the move of the files to the gallery package (so that they can
be reused by the future separate albums app) while trying to touch
minimal code. Will make a pass over the disabled lints in as subsequent
PR.
2025-05-02 14:29:51 +05:30
Neeraj
6bc9230dc8 [server] Fix jwt token expiry time (#5778)
## Description

## Tests
2025-05-02 14:14:54 +05:30
Neeraj Gupta
93186421b1 Fix jwt token expiry time 2025-05-02 14:12:33 +05:30
Manav Rathi
8dce58713f ign 2025-05-02 14:04:27 +05:30
Laurens Priem
7b391ba08f [mob][photos] Faces queue (#5767)
## Description

Use custom task queue instead of pool package for face thumbnail
generation

## Tests

Tested in debug mode on my pixel phone.
2025-05-02 14:02:42 +05:30
Manav Rathi
199df72cf6 ign 2025-05-02 13:58:09 +05:30
Neeraj
59e998f5be [server] Render html responses for account recovery (#5772) 2025-05-02 13:53:51 +05:30
Manav Rathi
bf3373697f Update 2025-05-02 13:51:29 +05:30
Manav Rathi
509955f8c1 Move 2025-05-02 13:31:42 +05:30
laurenspriem
62279ce72f Lower amount of concurrent tasks 2025-05-02 12:28:20 +05:30
Manav Rathi
0c80c88548 [web][desktop] Routine dependency updates feat Electron 36 (#5776) 2025-05-02 09:54:07 +05:30
Manav Rathi
ce3b980e27 Newer 2025-05-02 09:49:10 +05:30
Manav Rathi
7b25e65da4 Electron 36 2025-05-02 09:45:39 +05:30
Neeraj Gupta
3510c01e6e Rename 2025-05-01 17:00:36 +05:30
Aman Raj Singh Mourya
14b70ce66e Merge branch 'album_UI_revamp' of https://github.com/ente-io/ente into album_UI_revamp 2025-05-01 10:15:12 +05:30
Aman Raj Singh Mourya
d9a5fbfe00 [mob][photos] implemented new sorting order for contact section 2025-05-01 10:14:54 +05:30
Neeraj
d20a8495d8 [mob] re-encode audio ffmpeg & update backup status screen (#5769)
## Description

- [x] Re-encode audio to aac when video is already re-encoding to
libx264
- [x] Update Backup Status screen to show the uploaded items as well.

## Tests

- [x] Backup screen now shows uploaded items correctly
2025-05-01 00:55:19 +05:30
Neeraj Gupta
b8cf6012bd Modify dockerfile to include templates 2025-05-01 00:46:23 +05:30
Neeraj Gupta
70dc4db1c5 Return happy response when account is already recovered 2025-05-01 00:45:24 +05:30
Neeraj Gupta
1fb30ceafd Render html template for account recovery 2025-05-01 00:36:14 +05:30
Neeraj Gupta
38ec62a23b Add account recovery templates 2025-05-01 00:24:02 +05:30
mngshm
0a3abb20a1 making linters happy 2025-04-30 20:10:29 +05:30
mngshm
9f9288a5c0 show family member storage quota 2025-04-30 19:59:11 +05:30
Manav Rathi
d047e05bc8 Routine dependency updates 2025-04-30 19:43:33 +05:30
mngshm
e939b06339 Minor 2025-04-30 19:13:14 +05:30
Prateek Sunal
2eaeb759c5 fix: show uploaded items in backup status correctly 2025-04-30 19:11:29 +05:30
Prateek Sunal
2f2346286d fix: use copy aac for case 2 2025-04-30 19:07:26 +05:30
Manav Rathi
8ed1d34301 [desktop] Use the live processing queue in more cases (#5766)
...to reduce the need for redownloading the source files.
2025-04-30 16:28:08 +05:30
Manav Rathi
e38152051c Minor 2025-04-30 16:05:59 +05:30
mngshm
100c1d3803 use nullish coalescing to avoid optional chaining 2025-04-30 15:57:24 +05:30
laurenspriem
7cc3ab1004 Cancel face crop task if not needed 2025-04-30 15:56:52 +05:30
Manav Rathi
0c86c53a96 Fix 2025-04-30 15:35:26 +05:30
Manav Rathi
130e751072 typo 2025-04-30 15:32:14 +05:30
mngshm
408cc05f7c fix: usage conversion import 2025-04-30 15:28:36 +05:30
mngshm
9f70aab9b5 refactor: consolidate and separate interfaces 2025-04-30 15:24:51 +05:30
Manav Rathi
39f63b6339 Remove thresholds since it is now just fs paths 2025-04-30 14:37:36 +05:30
Manav Rathi
81e3c41749 flip 2025-04-30 14:30:17 +05:30
Manav Rathi
831563317e Import 2025-04-30 14:05:18 +05:30
Manav Rathi
a3c43cb54e Use 2 2025-04-30 14:04:33 +05:30
Manav Rathi
83373c4424 Use 1 2025-04-30 13:38:33 +05:30
Manav Rathi
ad47dda614 Convert reverse 2025-04-30 13:24:28 +05:30
Manav Rathi
4466136776 Tweak 2025-04-30 12:58:51 +05:30
Manav Rathi
bc874a2292 Ontology 2025-04-30 12:43:27 +05:30
Manav Rathi
e52816feb1 Note special case 2025-04-30 11:43:54 +05:30
Neeraj
3a34fa4257 [mob] Fix: Add missing check for widget mount (#5764)
## Description
```
FlutterError (A ValueNotifier<bool> was used after being disposed.
                       Once you have called dispose() on a ValueNotifier<bool>, it can no longer be used.)
[sentry.platformError] #0      ChangeNotifier.debugAssertNotDisposed.<anonymous closure> (package:flutter/src/foundation/change_notifier.dart:183:9)
                          1  ChangeNotifier.debugAssertNotDisposed (package:flutter/src/foundation/change_notifier.dart:190:6)
change_notifier.dart:190
                         2    ChangeNotifier.notifyListeners (package:flutter/src/foundation/change_notifier.dart:416:27)
change_notifier.dart:416
                       3      ValueNotifier.value= (package:flutter/src/foundation/change_notifier.dart:559:5)
change_notifier.dart:559
                       4      _LoadingPhotosWidgetState.initState.<anonymous closure> (package:photos/ui/home/loading_photos_widget.dart:42:25)
```
## Tests
2025-04-30 11:42:15 +05:30
Manav Rathi
216a3e3e10 Move and cases 2025-04-30 11:24:39 +05:30
Neeraj
c5f02a0116 [mob] Fix Splash screens stuck issues during dev with iOS simulator (#5763)
## Description

## Tests
2025-04-30 11:13:02 +05:30
Neeraj Gupta
7975de0a9a Catch uncaught exception to avoid splash screen issue 2025-04-30 11:08:19 +05:30
Neeraj Gupta
bba262e164 Disable iOS battery check in debugmode 2025-04-30 11:07:36 +05:30
laurenspriem
03a16119b9 Simplify code snippet taskqueue in thumbnails 2025-04-30 10:56:00 +05:30
Manav Rathi
2e657d88f4 sketch web side 1 2025-04-30 10:52:36 +05:30
laurenspriem
ede5e0be90 Remove old pool dependency 2025-04-30 10:52:05 +05:30
laurenspriem
e6981a8c47 Switch to task queue 2025-04-30 10:50:40 +05:30
Manav Rathi
0883ed39e3 node side 2025-04-30 10:42:33 +05:30
bilgilendir
223961bf78 Add 3 Auth Provider Icons (#5660)
**Description:**

- Added icons for the following auth providers:  
  - ImmoScout24  
  - Bonify  
  - Agentur für Arbeit

- Updated `assets/custom-icons/_data/custom-icons.json` accordingly.

- Reordered one icon name ascending
2025-04-30 09:26:20 +05:30
Neeraj
f50b3743f5 [mob] Surface storage utilisation for pending sync section (#5754)
## Description

## Tests

---------

Co-authored-by: Prateek Sunal <prtksunal@gmail.com>
2025-04-30 09:25:39 +05:30
Manav Rathi
10a7c1172b Keep both concepts 2025-04-30 09:16:09 +05:30
Manav Rathi
da60436e91 specific 2025-04-30 08:20:15 +05:30
Manav Rathi
9405d549c7 [desktop] Bifurcate the desktop upload case earlier (#5761) 2025-04-29 19:38:45 +05:30
Manav Rathi
47ee46b440 Use 2025-04-29 19:27:37 +05:30
Manav Rathi
a9d9173364 assert 2025-04-29 19:18:24 +05:30
Manav Rathi
088ebdb7b5 Clarify 2025-04-29 19:10:13 +05:30
Manav Rathi
7a85fb2e72 [web] Tonemap HDR thumbnails (#5758) 2025-04-29 17:21:39 +05:30
Manav Rathi
c63ae6fc1f Use 2025-04-29 17:14:05 +05:30
Manav Rathi
8bf9607bb8 Parse 2025-04-29 17:14:05 +05:30
Manav Rathi
dabae19cf2 ffprobe returns -1 on success 2025-04-29 17:14:05 +05:30
Neeraj Gupta
da930976ef Show pending sync breakup on long press 2025-04-29 16:59:40 +05:30
Neeraj Gupta
0c57ae3b58 Fix path prefix 2025-04-29 16:58:00 +05:30
Neeraj Gupta
543f4c43b3 Clean up names 2025-04-29 16:55:16 +05:30
Neeraj Gupta
5a8f8b8449 Fix: Pass prefix value 2025-04-29 16:54:59 +05:30
Manav Rathi
64363b70e3 Sketch 2025-04-29 16:17:55 +05:30
Manav Rathi
c84b6f6824 Route 2025-04-29 15:43:22 +05:30
Manav Rathi
fb6751a439 Use 2025-04-29 15:25:54 +05:30
Manav Rathi
802dd21200 Potential HDR check
Refs:
- https://github.com/amietn/vcsi/pull/135/files#diff-ad9111f3166bc9321ffb8c8dcd22a624457d6591fc4e9f72ec9821a644459927R535
- https://github.com/photoprism/photoprism/issues/4488#issuecomment-2495851302
2025-04-29 15:10:35 +05:30
Manav Rathi
782008e5d3 Sketch 2025-04-29 14:51:30 +05:30
Manav Rathi
94de25cb26 Handle even px requirement 2025-04-29 13:29:27 +05:30
Manav Rathi
b1efd289d3 tm thumb 2025-04-29 13:10:28 +05:30
Manav Rathi
1e1b3e9d74 Fix 2025-04-29 13:10:28 +05:30
eark39
ba0bf3dd5b [auth] Add BitKub custom icon (#5753)
## Description

## Tests
2025-04-29 12:51:14 +05:30
Neeraj Gupta
a9a2e89e49 Merge branch 'main' into pending-sync-info 2025-04-29 12:49:12 +05:30
Manav Rathi
cc1240b43c [desktop] HLS gen - WIP - Part x/x (#5752)
Four cases:

    H.264, <= 10 MB             - Skip
    H.264, <= 4000 kb/s bitrate - Don't re-encode video stream
    <= 2000 kb/s bitrate        - Don't apply the scale+fps filter
    !BT.709                     - Apply tonemap (zscale+tonemap+zscale)

Example invocation:

ffmpeg -i in.mov -vf
'scale=-2:720,fps=30,zscale=transfer=linear,tonemap=tonemap=hable:desat=0,zscale=primaries=709:transfer=709:matrix=709,format=yuv420p'
-c:v libx264 -c:a aac -f hls -hls_key_info_file out.m3u8.info
-hls_list_size 0 -hls_flags single_file out.m3u8
2025-04-29 11:57:39 +05:30
Neeraj
06830c3881 [mob] Hide ref promo banner for non-ente instance (#5740)
## Description

## Tests
2025-04-29 11:54:48 +05:30
Manav Rathi
918a7bad68 Deal with lines where res is not followed by comma 2025-04-29 11:40:03 +05:30
Manav Rathi
356f98bf52 204 requires body to be null
Otherwise the Response constructor throws
2025-04-29 11:26:36 +05:30
Manav Rathi
2d3734bf14 Relay 2025-04-29 11:18:01 +05:30
Manav Rathi
73a8d4dcda Cases 2025-04-29 11:04:28 +05:30
Manav Rathi
f9e25ed14d rescale case 2025-04-29 10:55:51 +05:30
Manav Rathi
acede69f5b Reencode case 2025-04-29 10:44:18 +05:30
Manav Rathi
0c46aa338e br 2025-04-29 10:17:36 +05:30
Manav Rathi
de42700914 Take 1 2025-04-29 09:53:57 +05:30
Manav Rathi
8a2d4a4eee codec 2025-04-29 09:24:25 +05:30
Manav Rathi
5d0ae9edb6 Outline 2025-04-29 09:17:42 +05:30
Laurens Priem
dda7b2a28e [mob][photos] Fixes 'Not person' null response (#5747)
## Description

Fixes 'Not person' null response

## Tests

Tested in debug mode on my pixel phone.
2025-04-28 20:41:37 +05:30
mangesh
7735d938a5 stray backslash
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-04-28 18:25:19 +05:30
mngshm
adfe701016 dedup bucket cors setup guide 2025-04-28 16:02:52 +05:30
mngshm
76c7d22754 collapse all sections 2025-04-28 16:02:09 +05:30
mngshm
54aab6738e un-yarn 2025-04-28 15:55:45 +05:30
mngshm
825dd79795 move S3 FAQ from /configuring-s3 to /troubleshooting/uploads 2025-04-28 15:47:55 +05:30
mngshm
ef5dc18442 reorganize and unindex old docs 2025-04-28 14:56:53 +05:30
Vishnu Mohandas
4521943fb1 [mob] Setup readable string for Norwegian (#5745) 2025-04-28 13:33:02 +05:30
vishnukvmd
dc82c24674 Reorder 2025-04-28 13:32:48 +05:30
vishnukvmd
6c6d524b15 [mob] Setup readable string for Norwegian 2025-04-28 13:32:17 +05:30
Neeraj Gupta
5341049bdf Merge remote-tracking branch 'origin/main' into ente_hide_banner 2025-04-28 12:34:18 +05:30
Neeraj
3f58bbf9bc [mobile] New translations (#5744)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2025-04-28 12:34:04 +05:30
Crowdin Bot
880cba335f New Crowdin translations by GitHub Action 2025-04-28 06:51:31 +00:00
Neeraj Gupta
cb321f49bd Remove redundant import 2025-04-28 12:14:34 +05:30
Neeraj Gupta
15b02c59cc Hide ref promo banner for non-ente instance 2025-04-28 11:59:03 +05:30
Manav Rathi
727a47cf34 [desktop] HLS gen - WIP - Part x/x (#5721)
Stream generation works during live uploads (behind a dev feature flag).
2025-04-28 09:38:50 +05:30
Neeraj Gupta
f816166743 Fix translation file 2025-04-28 09:26:57 +05:30
Neeraj Gupta
3aba4fad47 Bump version for droid internal release 2025-04-28 09:25:15 +05:30
Neeraj Gupta
60137585d1 Merge remote-tracking branch 'origin/main' into album_UI_revamp 2025-04-28 09:24:37 +05:30
Neeraj
718dbae521 [mobile] New translations (#5738)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2025-04-28 09:22:47 +05:30
Neeraj
2ce4e8e955 [auth] remove hex for LinkedIn icon. (#5727)
Closes #5722 
Fix LinkedIn icon rendering by removing unwanted hex code.

Before:


![image](https://github.com/user-attachments/assets/32bd8b2b-e92b-47fb-918e-c7a8fc0ae735)
2025-04-28 09:22:19 +05:30
Neeraj
df858338bc [mob] streaming hot fixes (#5724)
## Description

- [x] Don't show preview status in home as well as backup status screen
- [x] Only make streamables from local videos under 500mb and under 1
minute.

## Tests

- [x] Test general flow and display of processing text in home and
backup screen
- [x] Test cases for streaming point
2025-04-28 09:20:56 +05:30
Neeraj
43931b852f [auth] New translations (#5739)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2025-04-28 09:19:52 +05:30
Crowdin Bot
0db4332a02 New Crowdin translations by GitHub Action 2025-04-28 01:17:38 +00:00
Crowdin Bot
c3d121e4ac New Crowdin translations by GitHub Action 2025-04-28 01:05:09 +00:00
Prateek Sunal
b8476769d6 fix(streaming): issue in init check for video 2025-04-27 20:55:20 +05:30
Vishnu Mohandas
aeb3142d23 [docs] Self-hosting (#5728) 2025-04-26 19:45:56 +05:30
vishnukvmd
8bb5b9406d [docs] Update 2025-04-26 19:39:50 +05:30
Alvin Joy
da1e7788f9 remove hex 2025-04-26 18:37:13 +05:30
vishnukvmd
7098e93ae8 [docs] Refactor 2025-04-26 16:44:55 +05:30
Prateek Sunal
1a71513723 fix(file_util): remove async from _getLocalDiskFile function signature 2025-04-26 02:57:36 +05:30
Prateek Sunal
331675091a fix(preview_video_store): modify file check logic to skip files exceeding size and duration limits 2025-04-26 02:57:29 +05:30
Prateek Sunal
106338508d fix(files_db): add conditions for file size and duration 2025-04-26 02:11:46 +05:30
Prateek Sunal
500a9481cb fix(streaming): only upload local files 2025-04-26 00:52:17 +05:30
Prateek Sunal
e4771320b1 chore: update lock file 2025-04-25 23:45:35 +05:30
Prateek Sunal
39e0f34b2d fix: remove preview status from backup and home 2025-04-25 23:45:22 +05:30
Aman Raj Singh Mourya
59316c263f [mob][photos] fix: Reduce main axis spacing from 4px -> 2px 2025-04-25 22:39:20 +05:30
Aman Raj Singh Mourya
44682404ff Merge branch 'album_UI_revamp' of https://github.com/ente-io/ente into album_UI_revamp 2025-04-25 21:48:57 +05:30
Aman Raj Singh Mourya
83c864df2b [mob][photos] minor fix 2025-04-25 21:41:06 +05:30
Manav Rathi
9ce9fa2dbf Reducing threshold 2025-04-25 19:20:01 +05:30
Manav Rathi
6b8800f151 Implement node side 2025-04-25 18:47:00 +05:30
Manav Rathi
d95864be1c Rename for incoming increased scope 2025-04-25 18:36:17 +05:30
Manav Rathi
b01f6d9482 4 cases 2025-04-25 18:17:41 +05:30
Ashil
5bf3f01de6 Fix auth not building for iOS 18.4 (#5719)
## Description

Fix build failing on iOS 18.4 by [upgrading
sentry](https://github.com/getsentry/sentry-dart/issues/2771#issuecomment-2717968324)
2025-04-25 18:08:49 +05:30
Neeraj
4fcd938575 [mob] Enable gradual rollout for resumable upload (#5718)
## Description

## Tests
2025-04-25 17:46:31 +05:30
ashilkn
500cb9d0f2 Fix auth not building for iOS 18.4 2025-04-25 17:39:25 +05:30
Manav Rathi
34233875bd Split 2025-04-25 17:37:03 +05:30
Manav Rathi
8871902594 Split 2025-04-25 17:12:02 +05:30
Neeraj Gupta
184882fae2 Bump version for droid internal release 2025-04-25 16:16:10 +05:30
Neeraj Gupta
e59e600a35 Merge branch 'album_UI_revamp' of https://github.com/ente-io/auth into album_UI_revamp 2025-04-25 16:14:57 +05:30
Neeraj Gupta
6f5c5a0b06 Merge branch 'main' into album_UI_revamp 2025-04-25 16:14:32 +05:30
Aman Raj Singh Mourya
3d4ff93e65 [mob][photos] Move Contacts section from search tab to shared tab 2025-04-25 16:11:02 +05:30
Manav Rathi
912d52ea6b Cleanup 2025-04-25 16:04:52 +05:30
Neeraj Gupta
27f635dfaa [mob] Enable gradual rollout for resumable upload 2025-04-25 16:01:05 +05:30
Aman Raj Singh Mourya
d88621ab5a [mob][photos] feat: implement ascending/descending sort direction 2025-04-25 15:52:09 +05:30
Aman Raj Singh Mourya
95e6a86b10 [mob][photos] feat: update sharing functionality improve UI flow 2025-04-25 15:45:38 +05:30
ashilkn
c0d88a2cac Merge branch 'main' into f-droid 2025-04-25 15:44:29 +05:30
Manav Rathi
7ff6785860 stream 2025-04-25 15:43:47 +05:30
Ashil
d6665b1dbf [mob][Auth] Release v4.3.5 (#5717) 2025-04-25 15:42:42 +05:30
Vishnu Mohandas
1cbc783bc6 [docs] Add Features page for Auth (#5716)
Added a Features page for Ente Auth to the docs, briefly describing all
the available key features. Also fixed a small typo on
`/photos/features/trash.md`
2025-04-25 15:34:37 +05:30
Manav Rathi
e6b446c95f Cont 2025-04-25 15:24:49 +05:30
Sven
480e8682f9 Merge branch 'ente-io:main' into main 2025-04-25 11:26:02 +02:00
Sven
bb997039c8 Add features page for Ente Auth 2025-04-25 11:24:54 +02:00
Manav Rathi
a2debd6746 log 2025-04-25 14:44:28 +05:30
Manav Rathi
f454221634 Upload 2025-04-25 14:44:28 +05:30
Manav Rathi
6614e4468d Web side 2025-04-25 14:44:28 +05:30
Manav Rathi
8c0cbc7343 Still doesn't work - ERR_H2_OR_QUIC_REQUIRED
Committing for posterity. I also realized that the retries will not work once
the stream has been read. So all this needs to be moved to the node side.
2025-04-25 14:44:28 +05:30
Manav Rathi
22f05f73a9 chain 2025-04-25 14:44:28 +05:30
Manav Rathi
d53d5090e0 Tweak 2025-04-25 14:44:28 +05:30
Manav Rathi
64afcc0c70 Dimensions 2025-04-25 14:44:28 +05:30
Manav Rathi
d904aab804 [desktop] Start next release train (#5715) 2025-04-25 14:04:21 +05:30
Manav Rathi
1d8aaa49e7 [desktop] Start next release train 2025-04-25 14:03:17 +05:30
Neeraj
39509813c6 [server] Support for self-recovery on account deletion (#5712)
## Description

## Tests
2025-04-25 13:39:49 +05:30
Manav Rathi
f362943ab6 photosd-v1.7.12 (#5714) 2025-04-25 13:36:13 +05:30
Manav Rathi
976eee005c photosd-v1.7.12 2025-04-25 13:33:48 +05:30
Aman Raj Singh Mourya
e5d63fe9e7 [mob][photos] feat: enable selection on album screen itself 2025-04-25 12:57:27 +05:30
Neeraj Gupta
9b15ab2f2f Remove log 2025-04-25 12:12:26 +05:30
Neeraj Gupta
31f6671626 Gracefully handle bad or expired tokens 2025-04-25 12:11:43 +05:30
Neeraj Gupta
c32e4be8be copy change 2025-04-25 11:57:23 +05:30
Neeraj Gupta
6ae9003585 rename 2025-04-25 11:39:36 +05:30
Neeraj Gupta
851aed6a78 Add link in delete email to auto-recover account 2025-04-25 11:37:25 +05:30
Neeraj Gupta
7732f9eee9 Fix case 2025-04-25 10:03:03 +05:30
Manav Rathi
06099f00c6 [desktop] Video stream generation - WIP x/x (#5711) 2025-04-24 19:38:49 +05:30
Manav Rathi
8e0b0da68f hah! 2025-04-24 19:22:20 +05:30
Manav Rathi
55dbc3a8db Propgagate
The ! (definite assigment assertion) is needed to get tsc to stop emitting an
error about dimensions not being assigned.

Docs for it: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-7.html#definite-assignment-assertions
2025-04-24 19:17:17 +05:30
Manav Rathi
f6744d4b47 Full playlist 2025-04-24 18:57:13 +05:30
Manav Rathi
fbf626b578 Fix warning
"Cannot use both -hls_key_info_file and -hls_enc, ignoring -hls_enc"
25b0a8e295/libavformat/hlsenc.c (L1869)
2025-04-24 17:05:14 +05:30
Manav Rathi
9508695bba red 2025-04-24 16:42:06 +05:30
Manav Rathi
645014460b [desktop] Video stream generation - WIP Part x/x (#5710) 2025-04-24 15:27:51 +05:30
Manav Rathi
e32af8e0e5 Alternative dimension
Our currently bundled ffmpeg balks with
"Option allowed_extensions not found."
2025-04-24 15:19:12 +05:30
Manav Rathi
6e2f645905 Read playlist 2025-04-24 14:38:54 +05:30
Manav Rathi
5e091af787 vdim 2025-04-24 14:32:19 +05:30
Ashil
f9dbbb8cc9 [mob][photos] Video editor improvements (#5709)
## Description

- #### Better UX on exporting an edited video
If a video is large enough (even an 8s 4k video), the export process can
take a while. Previously, we were only showing a 'Saving edits...'
message in a dialog, which gave users no indication of how much time it
would take and some even thought the app was stuck. I’ve resolved this
by adding a linear progress indicator to show the progress.
    

https://github.com/user-attachments/assets/b078337f-0e29-4738-a8b6-f8f94474a4c8

- #### Fix video previewing in a flipped state upon opening video editor
(Bug exists only android).
2025-04-24 13:48:14 +05:30
Manav Rathi
1fc72383a3 turn of desat
In my test video (recorded from iPhone, viewing on macOS), this made a
substantial difference (the default desaturation was dulling out the test video
visually).
2025-04-24 13:44:36 +05:30
Manav Rathi
c040ae9dcc tonemap filterchain 1 2025-04-24 13:36:23 +05:30
ashilkn
f70148d652 Update documentation 2025-04-24 13:17:38 +05:30
ashilkn
60f94362d2 Animate linear progress indicator of LinearProgressDialog 2025-04-24 13:14:56 +05:30
ashilkn
a9bf825dde Do video rotation correction only on Android since the bug is absent on iOS 2025-04-24 13:14:42 +05:30
Manav Rathi
004525ddeb Outline
More Refs:
- https://www.canva.dev/blog/engineering/a-journey-through-colour-space-with-ffmpeg/
- https://jimmyhoke.net/wp/?p=412
2025-04-24 10:51:44 +05:30
mangesh
2ff03d7303 [server] don't send OTT if registration is disabled Fixes #5684 (#5695)
fixes #5684
2025-04-24 10:35:54 +05:30
Manav Rathi
fcaf46fcd1 Regex 2025-04-24 09:24:47 +05:30
ashilkn
d8c50ce3fa Update text style of LinearProgressDialog 2025-04-24 08:49:36 +05:30
ashilkn
15ed5e9d7b Show progress dialog when exporting edited video for better UX 2025-04-24 08:41:49 +05:30
Manav Rathi
ef6e4ebbcd pprobe 2025-04-24 08:33:30 +05:30
ashilkn
60b3e0977e Add docs 2025-04-24 07:20:15 +05:30
Aman Raj Singh Mourya
1265002d5a Merge branch 'album_UI_revamp' of https://github.com/ente-io/ente into album_UI_revamp 2025-04-24 02:32:20 +05:30
Aman Raj Singh Mourya
c7aecc9b30 [mob][photos] minor fix 2025-04-24 02:31:24 +05:30
Aman Raj Singh Mourya
dba837c62c [mob][photos] refactor: allow favourite album selection for better UX 2025-04-24 02:31:10 +05:30
mngshm
f183c56c20 minor reorganizations of checks 2025-04-24 01:45:11 +05:30
Aman Raj Singh Mourya
e5bdd74fa9 [mob][photos] refractor: update icon colors to use blurStrokePressed 2025-04-24 01:14:33 +05:30
Aman Raj Singh Mourya
0f31278965 [mob][photos] refactor: remove create album option and update item limit count 2025-04-23 22:24:49 +05:30
Manav Rathi
01e9d79a22 [desktop] Streaming video generation - WIP Part x/x (#5705) 2025-04-23 19:57:00 +05:30
Manav Rathi
ff22c69ca6 trac recommendations 2025-04-23 19:53:58 +05:30
ashilkn
016b031bf1 Fix flipped version of video being shown in video editor 2025-04-23 17:09:15 +05:30
Manav Rathi
c7a2001405 scale/fps 2025-04-23 15:36:41 +05:30
Manav Rathi
3871a538ab Start sculpting 2025-04-23 15:26:35 +05:30
ashilkn
b52ac3ff5d Log when video editor page is initialized and built 2025-04-23 14:55:07 +05:30
Neeraj Gupta
be3e434bec Bump version 2025-04-23 14:46:54 +05:30
Aman Raj Singh Mourya
9d9a7b548d [mob][photos] minor fix 2025-04-23 13:53:54 +05:30
Manav Rathi
be33ee5a1c [web] New translations (#5703)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-04-23 13:51:16 +05:30
Crowdin Bot
8df7c1b9a4 New Crowdin translations by GitHub Action 2025-04-23 08:19:06 +00:00
Manav Rathi
e8997c16a6 [web] Use top level as fallback for leaf files to avoid confusing error (#5702)
Also some visual fixes.
2025-04-23 13:48:20 +05:30
Manav Rathi
141d761ecb Visual fixes 2025-04-23 13:44:34 +05:30
Aman Raj Singh Mourya
3708819e6b Merge branch 'album_UI_revamp' of https://github.com/ente-io/ente into album_UI_revamp 2025-04-23 13:32:30 +05:30
Aman Raj Singh Mourya
389220357e [mob][photos] feat: enable album selection actions for incoming collections 2025-04-23 13:31:56 +05:30
Manav Rathi
fe5feb0394 Use top level as fallback for leaf files to avoid confusing error 2025-04-23 13:26:40 +05:30
Neeraj Gupta
d9925f29d8 Merge branch 'main' into album_UI_revamp 2025-04-23 13:14:58 +05:30
Neeraj Gupta
809ce0f24a Merge branch 'mob_release_15' into f-droid 2025-04-23 12:49:15 +05:30
Neeraj Gupta
cbd22523fd Merge branch 'f-droid' of https://github.com/ente-io/auth into f-droid 2025-04-23 12:02:37 +05:30
mangesh
7ec0c6dbdb [docs] separate all sections from getting-started (revamp part x/x) (#5692) 2025-04-23 09:14:21 +05:30
Ashil
be84e1856d [mob][photos] Update dark mode app icon following iOS design docs to make it look consistent with other iOS app icons (#5701)
## Description

#### Before
<img width="334" alt="Screenshot 2025-04-23 at 7 58 31 AM"
src="https://github.com/user-attachments/assets/482779dc-7a37-4294-8d6f-751df62da873"
/>


#### After
<img width="334" alt="Screenshot 2025-04-23 at 8 03 06 AM"
src="https://github.com/user-attachments/assets/99a158a9-53a7-4475-ac12-603abfaf9d03"
/>
2025-04-23 09:10:16 +05:30
ashilkn
9808ea5d8e Reupload dark mode app icon following apple iOS docs to make it look consisent with other iOS app icons 2025-04-23 08:05:06 +05:30
mngshm
2577b9c93a remove redundant code 2025-04-22 21:55:50 +05:30
Manav Rathi
0981ba5989 [web] Add UX feedback when copying links (#5700) 2025-04-22 20:15:48 +05:30
Manav Rathi
c2959d06b0 elsewhere 2025-04-22 20:09:18 +05:30
Manav Rathi
eed42c9df5 elsewhere 2025-04-22 20:06:50 +05:30
Manav Rathi
ec30ace822 copy feedback 2025-04-22 20:02:05 +05:30
Manav Rathi
7fa9e2a627 [desktop] Handle dock icon for macOS fullscreen (#5698) 2025-04-22 19:40:18 +05:30
Manav Rathi
ac0c96ae29 macOS fs 2025-04-22 19:37:12 +05:30
Manav Rathi
9900c346b5 [web] Use correct translation key (#5697) 2025-04-22 19:27:17 +05:30
Manav Rathi
2108461450 Fix tr key 2025-04-22 19:20:14 +05:30
Manav Rathi
270dd02e20 [desktop] Debounce cluster refresh during uploads (#5696) 2025-04-22 19:17:09 +05:30
mngshm
e6deea1533 separate ott generation purpose checks 2025-04-22 19:10:42 +05:30
Manav Rathi
d303a40cc7 Use promise variant 2025-04-22 18:49:53 +05:30
Manav Rathi
08d435b920 Debounce cluster refresh during uploads 2025-04-22 18:08:40 +05:30
mngshm
efa4c46f6e fixes #5684: don't send OTT if disable registration == true 2025-04-22 16:43:59 +05:30
mangesh
3cd5127488 [server] trivial but better error messages (#5693) 2025-04-22 14:20:44 +05:30
Ashil
e77a8cdf9b [mob][photos] Fix wakelock bugs (#5691)
## Description

#### New `EnteWakelockService` singleton that wraps wakelock_plus APIs
- Persist enable/disable (across sessions) state in `SharedPreferences` 
- Re apply wakelock on app init based on stored state
- Makes sure the wakelock setting across sessions if set is respected
when wakelock is updated for other non-across-session purposes.


### Bugs fixed:
- App not staying awake after disabling auto lock in back up settings
when killed and reopened.
- App not staying awake when video is playing (only on
native_video_player)

## Tests

Tested all cases.
2025-04-22 14:02:42 +05:30
mngshm
77e4506d2a trivial: better error messages 2025-04-22 13:55:19 +05:30
mngshm
c170384607 Separate everything 2025-04-22 13:14:14 +05:30
Aman Raj Singh Mourya
0dab15b703 [mpb][photos] feat: collections and optimize grid/list item rendering 2025-04-22 13:02:04 +05:30
ashilkn
ce7a564cbd Refactor 2025-04-22 12:56:48 +05:30
ashilkn
0d6f71c193 Update documentation 2025-04-22 12:51:24 +05:30
Aman Raj Singh Mourya
2449dbe0cd [mob][photos] feat: update selection logic to exclude favorite collections from actions 2025-04-22 12:42:40 +05:30
ashilkn
ab04bd66a5 Fix screen timing out and fading when viewing video played in native video player 2025-04-22 12:31:27 +05:30
ashilkn
9f3c4c8542 Handle edge case where on disposing media_kit player, wakelock state if enabled across app sessions is not respected 2025-04-22 11:59:19 +05:30
ashilkn
879f16a2dd Add wakelock service wrapper for persistent wakelock state across sessions 2025-04-22 11:53:48 +05:30
Manav Rathi
136f8d17cc [web] Tweak nav behaviour (#5690) 2025-04-22 11:24:54 +05:30
Manav Rathi
4539acd239 Tweak nav behaviour 2025-04-22 11:20:55 +05:30
Manav Rathi
4d37e415e7 [server] increase max pg connection 30 -> 45 (#5687)
## Description

## Tests
2025-04-22 10:10:11 +05:30
Neeraj
361283f072 [server] Add retry while putting metadata obj in s3 (#5688)
## Description

## Tests
2025-04-22 10:09:43 +05:30
Neeraj Gupta
3b4f9ecc22 [server] Add retry while putting metadata obj in s3 2025-04-22 09:52:21 +05:30
Neeraj Gupta
d1289bb467 [server] increase max pg connection 30 -> 45 2025-04-22 09:43:53 +05:30
Manav Rathi
b81098f88d [desktop] Routine dependency updates (#5683) 2025-04-21 19:17:08 +05:30
Manav Rathi
432883685d [web] New translations (#5682)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-04-21 19:16:57 +05:30
Manav Rathi
55094b7f2a [desktop] Routine dependency updates 2025-04-21 19:15:16 +05:30
Crowdin Bot
5c9d6610c1 New Crowdin translations by GitHub Action 2025-04-21 13:42:12 +00:00
Manav Rathi
da1ac0696b [web] Tweak translation (#5681)
This jumps around between 1 and 2 lines when there are many files (and
in non-English languages with longer strings). Also the message keeps
moving as the counts change. So I'll omit the message, only retain the
counts, since the
context should make sense from the title.
2025-04-21 19:11:37 +05:30
Manav Rathi
c61667290b tr
this jumps around between 1 and 2 lines when there are many files (and in
non-English languages with longer strings). Also the message keeps moving as the
counts change. So I'll omit the message, only retain the counts, since the
context should make sense from the title
2025-04-21 19:06:08 +05:30
Ashil
61e306e1b3 [mob][photos] Log whether resource intensive features are enabled (#5678) 2025-04-21 17:35:46 +05:30
Manav Rathi
da565172fc [web] The last of the capital keys (#5680) 2025-04-21 17:13:14 +05:30
Manav Rathi
c686c75141 tr 2025-04-21 17:10:07 +05:30
Manav Rathi
d8617cb782 [web] New translations (#5679)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-04-21 17:04:42 +05:30
Crowdin Bot
7a12f6edde New Crowdin translations by GitHub Action 2025-04-21 11:32:23 +00:00
Manav Rathi
f0c489587f [web] Indicate skipped (#5677) 2025-04-21 17:01:40 +05:30
ashilkn
b9a81c3693 Log whether resource intensive features are enabled 2025-04-21 17:01:39 +05:30
Manav Rathi
f143add013 Split 2025-04-21 16:50:52 +05:30
Manav Rathi
7d71a0c9a4 Unprefix 2025-04-21 16:31:53 +05:30
Manav Rathi
fb5bd0bdec prefix ellipsised 2025-04-21 16:31:06 +05:30
Manav Rathi
adbaba8a44 Retain what we can, add new 2025-04-21 16:26:40 +05:30
mangesh
01d0915004 [docs] minor change in index.md (#5671) 2025-04-21 16:20:28 +05:30
Manav Rathi
332e759e6a New 2025-04-21 15:59:38 +05:30
Manav Rathi
a1557e8d27 R 2025-04-21 15:46:05 +05:30
Manav Rathi
8d667333e3 R 2025-04-21 15:39:10 +05:30
Manav Rathi
2843cc36d9 sp 2025-04-21 15:36:58 +05:30
Manav Rathi
1019047eb2 R 2025-04-21 15:35:22 +05:30
Manav Rathi
42a085221c Case 2025-04-21 15:31:14 +05:30
Manav Rathi
e08b228d05 R 2025-04-21 15:28:56 +05:30
Manav Rathi
3eee5a5fdc reorg 2025-04-21 15:27:30 +05:30
Manav Rathi
97c03a4985 [web] Improved thumbnail loading experience (#5675) 2025-04-21 15:04:30 +05:30
Manav Rathi
f3974cdb8a [web] Improved thumbnail loading experience 2025-04-21 14:53:34 +05:30
Ashil
dc402b7bca [mob][photos] Remove setting audio session category (iOS) (#5673)
## Description

Audio session category had to be explicitly set because an older version
of [native_video_player](https://pub.dev/packages/native_video_player)
had an issue.
The version of the package that we currently use includes a [fix for
this](https://github.com/albemala/native_video_player/issues/22#issuecomment-2569092092).

## Tests

Confirmed that video playback on iOS simulator has audio on silent and
ring mode.
2025-04-21 14:39:47 +05:30
Ashil
5082343708 [mob][photos] Fix build failing due to translation error (#5674) 2025-04-21 14:36:25 +05:30
ashilkn
4e34ecd580 fix build failing dur to translation error 2025-04-21 14:25:53 +05:30
ashilkn
fb897d237d Auto generated changes 2025-04-21 14:24:25 +05:30
ashilkn
b6a1a77bf7 Revert "[mob][photos] Fix: audio not playing on iOS when in silent mode"
This reverts commit dc6fde9f77.
2025-04-21 14:09:43 +05:30
Manav Rathi
168ef20e0f [web] Enable new video player for all (#5672)
+ Enable arabic
2025-04-21 14:02:16 +05:30
Manav Rathi
d880255fc8 Enable ar-SA 2025-04-21 13:53:15 +05:30
Manav Rathi
1b1c33977d Enable new player for all 2025-04-21 13:47:45 +05:30
mngshm
07f89bb1d6 rem 2025-04-21 13:43:20 +05:30
Neeraj
47b0d51f22 [auth] Add custom icon for fortrabbit (#5666)
## Description

This MR adds an SVG to be used as custom icon for
[fortrabbit](https://www.fortrabbit.com/).

The icon was taken from the official [fortrabbit logo and corporate
identity repository](https://github.com/fortrabbit/art), and optimized
using [SVGOMG](https://jakearchibald.github.io/svgomg/).
2025-04-21 11:12:08 +05:30
Neeraj
5e489843fa [mobile] New translations (#5669)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2025-04-21 10:44:56 +05:30
Neeraj
5dea3fd8b0 [docs] self-hosting docs clean up & revamp (part x/x) (#5647) 2025-04-21 10:43:57 +05:30
Neeraj
8dd9dc16ad [auth] New translations (#5670)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2025-04-21 10:43:36 +05:30
Aman Raj Singh Mourya
7f96a11e07 [mob][photos] refactor: remove debug print statements and update parameter naming 2025-04-21 10:18:44 +05:30
Aman Raj Singh Mourya
d7cb5c29cf [mob][photos] feat: reflect SelectAll action change on UI 2025-04-21 10:18:05 +05:30
Aman Raj Singh Mourya
399ecdfd7d [mob][photos] feat: support for multiple selected albums and add SelectAllAlbumsButton 2025-04-21 10:17:12 +05:30
Manav Rathi
d31db6d678 [web] New translations (#5668)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-04-21 09:18:06 +05:30
Crowdin Bot
a928e87747 New Crowdin translations by GitHub Action 2025-04-21 01:17:37 +00:00
Crowdin Bot
064092a3e6 New Crowdin translations by GitHub Action 2025-04-21 01:05:13 +00:00
Crowdin Bot
a76561ebe9 New Crowdin translations by GitHub Action 2025-04-21 00:39:52 +00:00
Ben Peachey
6321f50e6c Add custom icon for fortrabbit. 2025-04-20 17:35:27 +02:00
Aman Raj Singh Mourya
f4580c8fdf [mob][photos] feat: add support for sharing and deleting multiple collections with action sheets 2025-04-19 21:45:49 +05:30
Aman Raj Singh Mourya
13f78ecc19 [mob][photos] feat: enhance AddParticipantPage to support multiple collections and update album selection actions 2025-04-19 21:43:01 +05:30
Aman Raj Singh Mourya
9267c4012b feat: integrate album selection management into collection list and flex grid views 2025-04-19 00:14:54 +05:30
Aman Raj Singh Mourya
a8e80717aa [mob][photos] fix: use selected albums for showing selected/unselected state 2025-04-19 00:14:34 +05:30
Aman Raj Singh Mourya
8e552c57bb [mob][photos] feat: implement album selection management and action overlay components 2025-04-19 00:13:10 +05:30
mngshm
93dd0c4943 reorganize(4): might be bad to let beginners read about S3 straight after getting started 2025-04-18 12:18:12 +05:30
mngshm
83fdda46a3 reorganize (3): separate community contributed guides 2025-04-18 11:53:49 +05:30
Manav Rathi
23943aae89 [desktop] Generate streamable video variant - WIP Part x/x (#5649) 2025-04-17 20:13:33 +05:30
Manav Rathi
f01d0ff274 Update comments 2025-04-17 20:05:16 +05:30
mngshm
d158db9499 Tone (2) and re-organize (x) 2025-04-17 20:04:49 +05:30
mngshm
9186b272b6 Tone up 2025-04-17 19:48:42 +05:30
mngshm
60f1172033 separate bucket-cors troubleshooting guide
sidebar
2025-04-17 19:46:41 +05:30
Manav Rathi
5843aee3d6 Upload 2025-04-17 19:45:36 +05:30
mngshm
f6b186a167 reorganize sidebar & deprecate old community contributed guide 2025-04-17 19:30:48 +05:30
mngshm
aa9096134d "with caddy" and update endpoint.png 2025-04-17 19:29:44 +05:30
Manav Rathi
1370f0523c Preview URL 2025-04-17 19:14:30 +05:30
mngshm
c1051b8a10 Forgot the examples earlier 💀 2025-04-17 18:52:38 +05:30
Manav Rathi
b4d532bb41 PUT video-data 2025-04-17 18:42:18 +05:30
Manav Rathi
4327fbb9e5 Remove output.ts.tmp 2025-04-17 17:56:14 +05:30
mngshm
636d2a8069 merge /system-requirements into /getting-started 2025-04-17 17:55:42 +05:30
Manav Rathi
21e0edcb85 output.ts 2025-04-17 17:49:47 +05:30
Manav Rathi
8b11989e0f Provide the key
[main] [hls @ 0x14e607410] Cannot generate a strong random key
2025-04-17 17:37:23 +05:30
mngshm
5bc6505cb8 getting-started, reverse-proxy, writing museum.yaml 2025-04-17 17:32:07 +05:30
mngshm
a0184013f8 make dead link checker happy 2025-04-17 17:02:34 +05:30
Manav Rathi
d0b5f84854 replace 2025-04-17 16:56:48 +05:30
mngshm
4bb2aea5d2 clean stuff from the merge 2025-04-17 16:54:27 +05:30
Manav Rathi
298faf8e0a Sketch 2025-04-17 16:41:58 +05:30
Neeraj
e816504576 [mob] Refactor & remove unused methods (#5648)
## Description

## Tests
2025-04-17 16:16:45 +05:30
Neeraj Gupta
1506009a55 doc 2025-04-17 16:12:45 +05:30
Neeraj Gupta
8930a0ddbc Simplify 2025-04-17 15:59:09 +05:30
mangesh
8611d5644d Merge branch 'main' into sh-revamp 2025-04-17 15:48:28 +05:30
Neeraj Gupta
5df815da58 Remove unused method 2025-04-17 15:45:02 +05:30
Neeraj Gupta
59e2906bdc Remove unused method 2025-04-17 15:41:26 +05:30
Neeraj Gupta
79e8fffc7a Simplify 2025-04-17 15:40:46 +05:30
Bl4ckspell
bbd81a6385 [auth] fix luma icon (#5640)
## Description
Because the icon (added in #5276) is black, it was not visible when the
app was in darkmode.
I added `mix-blend-mode: difference` to the svg source.
Now in darkmode, the icon turns white:

![Screenshot From 2025-04-16
22-22-25](https://github.com/user-attachments/assets/45e5b156-6645-4e8c-ae67-133ad19231fc)
![Screenshot From 2025-04-16
22-22-32](https://github.com/user-attachments/assets/074e6a15-c4a3-4d36-905f-efef078ec6ac)
2025-04-17 15:21:05 +05:30
Bl4ckspell
1ba31e9442 [auth] fix coinspot icon (#5641)
## Description
some elements of the coinspot icon added in #5186 were displayed as
black.
i fixed the source code using the [Oh My SVG
App](https://flathub.org/apps/re.sonny.OhMySVG)

|  | before | fixed |
|-------|-------|------|
| light | ![Screenshot From 2025-04-16
22-51-12](https://github.com/user-attachments/assets/45a8ebd0-278c-4783-86bb-1680d7ceaa9b)
| ![Screenshot From 2025-04-16
22-50-04](https://github.com/user-attachments/assets/02bafd51-55b9-4885-95d7-3eee3d3d21f0)
|
| dark | ![Screenshot From 2025-04-16
22-51-21](https://github.com/user-attachments/assets/336e50b4-2982-44f2-b465-7d91182a4d7a)
| ![Screenshot From 2025-04-16
22-50-12](https://github.com/user-attachments/assets/ea11c18b-3aca-4041-b9c7-5016d5de69db)
|
2025-04-17 15:20:45 +05:30
Bl4ckspell
7cf8ccdc7e [auth] fix bingx icon (#5637)
## Description
the bingx icon added in #5186 was displayed as black.
i fixed the source using [this
code](https://github.com/Bl4ckspell7/svg-css-to-inline-styling)

|  | old | fixed |
|-------|-------|------|
| light |![Screenshot From 2025-04-16
14-14-13](https://github.com/user-attachments/assets/ce0d1226-c82a-4e1b-a0d0-4a34839e8dce)|![Screenshot
From 2025-04-16
14-19-36](https://github.com/user-attachments/assets/c8955cbd-7917-49dc-9c1f-24764da37765)|
| dark |![Screenshot From 2025-04-16
14-07-42](https://github.com/user-attachments/assets/dfeec407-6a32-40c4-a57f-fbf728406238)|![Screenshot
From 2025-04-16
14-09-55](https://github.com/user-attachments/assets/3742dd50-deb2-474d-920f-f34d707983d6)|
2025-04-17 15:20:10 +05:30
Bl4ckspell
ae6e2b1349 [auth] Fix android monochrome app icon (#5484)
## Description
Removes the shadow of the app icon on the homescreen which is currently
present. Closes #3840. It is especially visible as a "glowing" in dark
mode.


| Mode       | Current Icon | Fix Icon |
|-----------|-------------|----------|
| **Light**
|![light-old](https://github.com/user-attachments/assets/f2bc791c-6ce0-4fd5-a810-1962269c5bf1)|![light-fix](https://github.com/user-attachments/assets/5c3b1280-1f19-40fe-a011-e52a88786cd4)|
| **Dark**
|![dark-old](https://github.com/user-attachments/assets/b079634d-b436-4f9c-b42b-318ce97a3654)|![dark-fix](https://github.com/user-attachments/assets/cebc2b8b-e40a-4280-992f-4a28e742d639)|
2025-04-17 15:19:54 +05:30
Bl4ckspell
a65493192f [auth] specify flutter version (#5636)
## Description
Allows to explicitly set the flutter version you want to use, by
utilizing `fvm`.

`dart pub global activate fvm`

`fvm install 3.24.3`
`fvm use 3.24.3`

`fvm flutter ...`
2025-04-17 15:17:42 +05:30
Bl4ckspell
cf538a713b [auth] add fanatical icon (#5466)
## Description

add icon for fanatical


![fanatical](https://github.com/user-attachments/assets/9d2b95eb-6da3-4a01-8e0e-7e06db577bb7)
2025-04-17 15:17:18 +05:30
Manav Rathi
3440bbd772 Route 2025-04-17 15:13:21 +05:30
Manav Rathi
657a57f46a Res 2025-04-17 15:04:56 +05:30
Manav Rathi
f6db2daaee array 2025-04-17 15:03:22 +05:30
mngshm
2d8ffae74b un-index web-app.md, surface new doc /guides/from-source 2025-04-17 14:11:54 +05:30
Manav Rathi
1efaefbf9c nn fin 2025-04-17 14:05:18 +05:30
Manav Rathi
29f5693078 nn 2025-04-17 14:01:56 +05:30
mngshm
94bd9f4dd6 note unnote 2025-04-17 14:00:46 +05:30
mngshm
ce9c08c607 removing unnecessary pm2 nonsense 2025-04-17 14:00:46 +05:30
ashilkn
a35d16e20d Merge branch 'main' into auth_release_v4.3.4 2025-04-17 13:06:49 +05:30
ashilkn
77a6508a0b Bump up auth build number and version 2025-04-17 13:05:25 +05:30
Manav Rathi
347140c14c generisize 2025-04-17 12:49:33 +05:30
Manav Rathi
97bc768092 Sketch 2025-04-17 12:09:41 +05:30
Manav Rathi
cdb81c621d Sketch 2025-04-17 11:26:11 +05:30
Manav Rathi
bd7fec03d3 Revert "cond type take 1" - It just doesn't seem to work without casts
...and we don't even need in the final goal (this is desktop only).

This reverts commit 0c904d37c8.
2025-04-17 10:58:11 +05:30
Manav Rathi
0c904d37c8 cond type take 1 2025-04-17 10:49:34 +05:30
Manav Rathi
dc9f665029 [web] Omit spurious ffmpeg logs (#5646)
We don't need to do it for the desktop code since there the deletion
function checks if the file exists first.
2025-04-17 10:28:52 +05:30
Manav Rathi
4b0536a5b2 Fix 2025-04-17 10:18:15 +05:30
Manav Rathi
c2efd198a6 Revert "omitlog" - there is already an if exists check
This reverts commit a2a74e2166.
2025-04-17 10:13:18 +05:30
Manav Rathi
a2a74e2166 omitlog
ref: https://nodejs.org/api/child_process.html#child_processexeccommand-options-callback

> in case of any error (including any error resulting in an exit code other than
  0), a rejected promise is returned...
2025-04-17 09:59:33 +05:30
Manav Rathi
b0f8258a90 Omit spurious logs 2025-04-17 09:39:57 +05:30
Manav Rathi
c75937759f [web] New translations (#5645)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-04-17 09:39:35 +05:30
Crowdin Bot
466f31bbb9 New Crowdin translations by GitHub Action 2025-04-17 04:00:53 +00:00
Manav Rathi
09f6922ccf [web] Move video streaming strings to translations (#5644) 2025-04-17 09:30:11 +05:30
Manav Rathi
eacc364498 tr 2025-04-17 09:24:39 +05:30
Manav Rathi
3c3ce516f5 [docs] Add example line to OTT faq (#5643) 2025-04-17 08:13:25 +05:30
Manav Rathi
7fe070b5ae vc 2025-04-17 08:11:36 +05:30
Prateek Sunal
b1fb5d548b Merge branch 'main' into pending-sync-info 2025-04-17 03:43:36 +05:30
Manav Rathi
13bcfe61ed [web] Enable streaming video playback for public albums app (#5633) 2025-04-16 14:20:48 +05:30
Manav Rathi
4d3926c150 Enable for albums app 2025-04-16 14:14:10 +05:30
Manav Rathi
7d92b5923b Clear transient 2025-04-16 14:07:03 +05:30
Manav Rathi
864f0317fa Outline 2025-04-16 13:05:00 +05:30
Manav Rathi
a928676280 Outline 2025-04-16 12:35:08 +05:30
Neeraj Gupta
85d39dc097 ios build changes 2025-04-16 10:45:26 +05:30
Manav Rathi
2073134e7a [server] Copy only libsodium lib to Docker image (#5632)
Suggested twice:
- https://github.com/ente-io/ente/pull/3952
- https://github.com/ente-io/ente/issues/5631

Fixes: https://github.com/ente-io/ente/issues/5631

**Tested by**

Theory: On a clean alpine container, ran `apk add libsodium` then
visually glanced using
`docker container diff` that the .so is the only relevant file.

Practice: Recreated the local Docker compose using this updated file and
verified that server runs and can upload files etc.
2025-04-16 07:36:16 +05:30
Manav Rathi
5a411d1d4d [server] Copy only libsodium lib to Docker image
Suggested twice:
- https://github.com/ente-io/ente/pull/3952
- https://github.com/ente-io/ente/issues/5631

Fixes: https://github.com/ente-io/ente/issues/5631

Tested:

Theory: On a clean alpine container, ran `apk add libsodium` then visually glanced using
`docker container diff` that the .so is the only relevant file.

Practice: Recreated the local Docker compose using this updated file and
verified that server runs and can upload files etc.
2025-04-16 06:36:06 +05:30
Aman Raj Singh Mourya
28f03d3514 [mob][photos] feat: add searchable app bar and enhance collection filtering 2025-04-16 00:27:10 +05:30
Aman Raj Singh Mourya
c7047ab964 [mob][photos] feat: support album sorting by name and newest photo for shared albums 2025-04-15 22:40:25 +05:30
Manav Rathi
5f1d767b9c [meta] Ask for last known version (#5629) 2025-04-15 21:00:42 +05:30
Manav Rathi
1ecff890f0 [meta] Ask for last known version 2025-04-15 20:49:18 +05:30
Manav Rathi
38aae47445 [desktop] Show person name in the file info panel (#5628) 2025-04-15 20:10:45 +05:30
Manav Rathi
e4cd1434df Fix a stale effect 2025-04-15 20:02:05 +05:30
Manav Rathi
f907beab62 [desktop] Show person name in the file info panel 2025-04-15 19:33:46 +05:30
Aman Raj Singh Mourya
daa3fcd354 [mob][photos] fix: hide "add new album" options when any album is selected 2025-04-15 19:17:02 +05:30
Aman Raj Singh Mourya
0057e71e02 [mob][photos] fix: use "strokeFaint" instead of "strokeFainter" for better visibility 2025-04-15 19:16:01 +05:30
Neeraj
f2e336c35a [mob] Bump version 1.0.4 (#5626)
## Description

## Tests
2025-04-15 16:07:18 +05:30
Neeraj Gupta
a8b2423d77 Bump version 1.0.4 2025-04-15 16:06:48 +05:30
Neeraj
f8f2e6f7c7 [server] Preview public albums (#5601)
## Description

## Tests
[ ] Local testing pending
2025-04-15 15:11:48 +05:30
ashilkn
cd3b9defcd Update build number for Auth app 2025-04-15 14:55:31 +05:30
Manav Rathi
e103d7490e [web] Public album streaming (#5625)
Behind a ff flag, meant for testing
https://github.com/ente-io/ente/pull/5601
2025-04-15 14:24:27 +05:30
ashilkn
aa9e8abf0e Bump up auth version to 4.3.4 2025-04-15 14:08:29 +05:30
Neeraj Gupta
f068d6ef24 Fix panic 2025-04-15 14:02:33 +05:30
Manav Rathi
3ec3f9f2e1 Forward 2025-04-15 13:33:53 +05:30
Manav Rathi
25c472e584 Support for public albums 2025-04-15 13:29:08 +05:30
Neeraj
7b69c86cba [cli] Update documentation for change of export directory (#5623)
In my case to change export directory was necessary to add "--app"
2025-04-15 11:43:26 +05:30
Prateek Sunal
1d197694ef [mob] switch to custom ffmpeg kit (#5586)
## Description

Switch to custom ffmpeg kit.

Future actionables on this:
- Creating minimal ffmpeg configuration and using it
- Replace and use .aar for android plugin, currently it is fine and
using the published maven package

## Tests
2025-04-15 00:01:47 +05:30
horfnt
4c9a37f3c8 Update README.md
In my case to change export directory was necessary to add "--app"
2025-04-14 21:29:01 +03:00
Prateek Sunal
59bc454f5c Merge branch 'main' into switch-ffmpeg-kit 2025-04-14 22:52:17 +05:30
ashilkn
703f2a67f8 Update f-droid store app data 2025-04-14 17:08:49 +05:30
Neeraj
dd9f3f993d [Auth] Fix import from aegis (#5618)
## Description
Fixes https://github.com/ente-io/ente/issues/5438
https://github.com/ente-io/ente/issues/5324
https://github.com/ente-io/ente/issues/5188
https://github.com/ente-io/ente/issues/5064
## Tests
Tested locally
2025-04-14 16:54:59 +05:30
Neeraj
f5b20cf8d0 [auth] Add advanced options to edit period & TOTP (#5520)
**Description**
1. Add custom time period (between 10 to 60 seconds)
2. Select type of OTP from TOTP, STEAM, HOTP

**Desktop** 
<img
src="https://github.com/user-attachments/assets/494ca78c-0cd9-4c85-8ffb-c00a5e909e87"
alt="Desktop" width="300">

**Mobile** 
<img
src="https://github.com/user-attachments/assets/dc9a289e-4db5-481c-b590-2882be09f99a"
alt="Mobile" width="300">
2025-04-14 16:51:01 +05:30
Neeraj Gupta
2f9d664b05 [Auth] Fix import from aegis 2025-04-14 16:50:34 +05:30
Neeraj Gupta
2bfb52168e Update label 2025-04-14 16:41:39 +05:30
Ashil
c4fe18bbc1 [mob][auth] Fix lock screen appearing on reinstall (iOS/macOS) if previously installed instance had lock screen enabled (#5617) 2025-04-14 16:18:51 +05:30
ashilkn
d3a47eedda Fix issue where lock screen appears on installing the Auth app, if it was enabled on a previously installed instance of the app (iOS & macOS only) 2025-04-14 15:34:28 +05:30
laurenspriem
6c412e5803 Fix not person bug 2025-04-14 14:51:01 +05:30
ashilkn
28717ce2f2 Refactor 2025-04-14 14:13:00 +05:30
laurenspriem
8113a9aa97 Simplify memories update lock 2025-04-14 14:02:54 +05:30
Laurens Priem
082d15b41b [mob][photos] Advanced option to disable curated memories (#5614)
## Description

Advanced option to disable curated memories

## Tests

Tested in debug mode on my pixel phone.
2025-04-14 13:40:23 +05:30
Prateek Sunal
a582f40fa5 [mob] fix build (#5604)
## Description

This PR fixes the build on main branch for photos mobile.

## Tests
2025-04-14 13:40:09 +05:30
laurenspriem
c706904263 Extract string 2025-04-14 12:26:09 +05:30
laurenspriem
8a73b19a3e Advanced option to disable curated memories 2025-04-14 12:24:51 +05:30
Daniel Friesen
dd53cd5f47 [auth] Add Postmark logo (#5611)
## Description
Adds a logo for Postmark (https://postmarkapp.com/).

Postmarkapp doesn't have any official branding source files or use SVGs,
so Vector logo is sourced from here:
https://www.vectorlogo.zone/logos/postmarkapp/
![Postmarkapp vector from VectorLogo
Zone](https://www.vectorlogo.zone/logos/postmarkapp/postmarkapp-icon.svg)

I went with this rather than the ones on sites like
https://brandfetch.com/postmarkapp.com because the white stamp border
looks the closest to the logo that Postmark uses in their official
Zapier integration.
https://zapier.com/apps/postmark/integrations

![Postmarkapp Zapier
Logo](https://zapier-images.imgix.net/storage/services/e1cd4dba89396528988daf12ba63d35d.png?auto=format&fit=crop&q=98&w=32&h=32&dpr=3&bg=black)
2025-04-14 10:40:15 +05:30
Alex K
368b0c946a [docs] Update Authy import docs to mention Authy-iOS-MiTM (#5445)
## Description
This pull request adds mention of the Authy-iOS-MiTM method to Ente's
documentation on migrating from Authy. Currently, the only working
method to import Authy tokens into Ente is to use a rooted Android
device, which is not ideal due to most people not having rooted Android
devices. The Authy-iOS-MiTM method (that I made) only requires an iOS
device with Authy and a computer with Python and mitmproxy, making it
significantly more accessible to people looking to migrate their Authy
tokens. By mentioning my method in Ente's Authy import docs, it would
help more people discover it and would hopefully make some people's
lives easier since they wouldn't have to manually re-register 2FA on
every website. Let me know if you have any questions.

## Tests
N/A, this pull request does not modify any code
2025-04-14 10:07:02 +05:30
github-actions[bot]
6ead2ab843 [auth] New translations (#5613)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-04-14 10:06:26 +05:30
github-actions[bot]
eb3ec77bb6 [mobile] New translations (#5612)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-04-14 10:06:03 +05:30
Vishnu Mohandas
037a699790 [docs] Update export.md (#5605) 2025-04-13 07:19:43 +05:30
Vishnu Mohandas
678e97e937 [docs] Update export.md 2025-04-13 07:18:43 +05:30
Prateek Sunal
6f02a048b6 fix: rename package 2025-04-12 22:23:14 +05:30
Prateek Sunal
e1f0605345 fix: app build 2025-04-12 22:20:09 +05:30
Prateek Sunal
3cab14a1eb chore: update SDK versions and dependencies 2025-04-12 20:15:44 +05:30
github-actions[bot]
1f090642f2 [auth] New translations (#5492)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-04-12 15:34:26 +05:30
Neeraj Gupta
51235bf81b Add support for accessing preview url for public collections 2025-04-12 15:25:04 +05:30
Neeraj Gupta
4bd31aeea8 Refactor 2025-04-12 14:55:48 +05:30
Neeraj Gupta
f2736c43c1 Refactor 2025-04-12 14:37:33 +05:30
Prateek Sunal
145ad5d309 [mob] fix: only cache at max 50 files for memory widget (#5594)
## Description

Previously we were caching all the memories without a working limit,
this PR fixes that.

## Tests
2025-04-12 14:13:10 +05:30
Neeraj Gupta
c6b4cba8b4 [server] Auto recovery post deletion 1/x 2025-04-12 13:47:46 +05:30
vaguerant
70daffd23e [auth] Add Mbin custom icon (#5530)
## Description
Add a custom icon for the [Mbin](https://joinmbin.org/) fediverse
software. SVG sourced from the linked page and modified to remove
background. Additional `altNames` for some popular or important Mbin
instances: `kbin` (several instances), `thebrainbin` (popular instance)
and `gehirneimer` (Mbin co-developer bentigorlich's instance).

## Tests
Untested
2025-04-12 13:33:07 +05:30
Neeraj
bd4f1071e5 [mobile] New translations (#5491)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2025-04-12 13:22:24 +05:30
Neeraj
8abd38c57a [mob] ICU syntax fix (#5518)
- Replaces `zero` with `=0` to avoid syntax errors.
- Replaces `one` with `=1` in the context of a single item for better
compatibility with non-English languages.
- Fixes grammar.
2025-04-12 13:22:13 +05:30
Neeraj
098832ccc9 [mob] Add support for pt_PT (#5598)
## Description

## Tests
2025-04-12 13:17:26 +05:30
Neeraj Gupta
3b3e670c50 [mob] Add support for pt_PT 2025-04-12 13:11:22 +05:30
Crowdin Bot
25b39be91c New Crowdin translations by GitHub Action 2025-04-12 07:37:09 +00:00
zDqrK
f67b47183f [Auth] Added Custom Icons for RedotPay & Cwallet (#5469)
## Description
Add RedotPay SVG Icon & Data Entry 
Add Cwallet SVG Icon & Data Entry 

## Tests
None Yet
2025-04-12 12:56:53 +05:30
Prateek Sunal
18a951ccf3 fix: remove the redundant take 50 2025-04-12 02:16:30 +05:30
Prateek Sunal
ca5a2c8fa2 fix: break if 50 files are present for memory set already 2025-04-12 02:14:51 +05:30
Manav Rathi
cfe58aa248 [web] HLS gen - Part x/x (#5593) 2025-04-11 21:02:38 +05:30
Manav Rathi
4d9a1c6389 Revert "wip ocr"
This reverts commit cf5d64554a.
2025-04-11 20:57:32 +05:30
Manav Rathi
cf5d64554a wip ocr
Noticed the ocr filter in `ffmpeg -filters`. It works on CLI! trying out using wasm version.
Incantation from: https://ffmpeg-user.ffmpeg.narkive.com/wfgWXwHf/how-to-use-ocr-filter

This doesn't work because the ffmpeg wasm we have isn't complied with the ocr
filter. Still committing this experiment to git history for potential future
reference (will revert next).
2025-04-11 20:44:25 +05:30
Manav Rathi
5b9752544a Step 2025-04-11 19:02:40 +05:30
Manav Rathi
1496e9fd5a Add trace command 2025-04-11 17:23:28 +05:30
Manav Rathi
1fb3779310 Handle error 2025-04-11 17:18:28 +05:30
Manav Rathi
2d8d137029 Scaffold 2025-04-11 15:07:50 +05:30
Ashil
343108d470 [mob][photos] Use queue for more efficient fetching of local thumbnails (#5591)
## Description

Use a task queue to manage local thumbnail requests with cancellation,
priority and timeout functionality.
This significantly improves the browsing experience of galleries with a
large number of local thumbnails. Previously, scrolling down deep into a
device folder would cause the thumbnails to take a long time to load.
Now, the loading speed has improved considerably.

A `maxQueueSize` of 200 for `smallLocalThumbnailQueue` should be
appropriate, as the maximum number of mounted `Thumbnailwidget`s is 186
when using a gallery grid size of 6 on a decently sized phone screen
(the screen length is the relevant factor here). With a grid size of 6,
the maximum number of mounted ThumbnailWidgets should be around 186 ± 12
for most phone screens.

Note: Thumbnails for HEIC images on android still take some time to
load. There is improvement, but not enough for seamless UX.

## Tests

Manually tested gallery scroll performance checks and if thumbnails load
as expected.
2025-04-11 13:55:37 +05:30
Manav Rathi
7bfc5cb08d Expand 2025-04-11 13:54:54 +05:30
Manav Rathi
ae0a8028d1 [web] Add support for iOS date format (#5592)
Tested on the sample provided by the customer.
2025-04-11 13:12:48 +05:30
Manav Rathi
7215f12d76 [web] Add support for iOS date format
Tested on the sample file provided by the customer.
2025-04-11 13:04:52 +05:30
ashilkn
29d09bf143 Fix grammar 2025-04-11 12:10:55 +05:30
ashilkn
8afc337b62 Update _maxLocalThumbnailRetries 2025-04-11 12:00:03 +05:30
ashilkn
a1b0eec83b Use more descriptive names. Deferring of thumbnail loads is only used for gallery 2025-04-11 11:51:52 +05:30
ashilkn
f4de138b08 Increase thumbnailDiskLoadDeferDuration from 40ms to 500ms to avoid and edge case where if gallery (device folder is a good example) is scrolled deep enough at a specific pace using the scrollbar, thumbanils fail to render when scrolling is stopped. 2025-04-11 11:49:27 +05:30
ashilkn
1b45dfee0e Avoid retrying of local thumbnail fetch if ThumbnailWidget is not mounted 2025-04-11 11:43:48 +05:30
ashilkn
a57041d0d2 Use priority queue for more efficient fetching of local thumbnails 2025-04-11 11:39:43 +05:30
Manav Rathi
6e57cc9e79 Remove outdated FAQ item in family-plans.md (#5584)
The FAQ item mentions that it is not possible to set a storage quota for
a family member, but this is possible since v1
2025-04-11 11:37:35 +05:30
Prateek Sunal
79a73ffd09 fix(ios): switch to ffmpeg_kit_custom 2025-04-11 00:07:17 +05:30
Sven
9425f80ef5 Remove outdated FAQ item in family-plans.md 2025-04-10 20:12:13 +02:00
Laurens Priem
7de9b747a9 [mob][photos] Only smart memories if local indexing is on (#5582)
## Description

Only smart memories if local indexing is on
2025-04-10 21:26:32 +05:30
Manav Rathi
adb8c2bdd6 [web] Video streaming touchup (#5583)
And start WIP work on playlist generation.
2025-04-10 20:37:12 +05:30
Manav Rathi
069a9fba58 Make it work when reopening the file viewer 2025-04-10 20:34:01 +05:30
Manav Rathi
0268c47c45 Match mobile app's behaviour 2025-04-10 20:27:01 +05:30
Laurens Priem
b7f59a18bd [mob][photos] log avatar faceID issue (#5581)
## Description

Log issue around avatarFaceID
2025-04-10 20:26:04 +05:30
laurenspriem
8e4dd04588 Only smart memories if local indexing 2025-04-10 20:25:32 +05:30
Manav Rathi
05f2b3c43e q 2025-04-10 19:23:07 +05:30
laurenspriem
4580e04bf6 log avatar faceID issue 2025-04-10 19:03:07 +05:30
Manav Rathi
970e631808 d only 2025-04-10 18:33:09 +05:30
Manav Rathi
0a40f2fef4 hook 2025-04-10 18:14:39 +05:30
Manav Rathi
5334388041 [web] Video streaming - Playback alpha (#5579) 2025-04-10 16:19:39 +05:30
Manav Rathi
0737054363 Enable alpha 2025-04-10 16:13:04 +05:30
Manav Rathi
85c40dfe29 close 2 2025-04-10 16:08:48 +05:30
Manav Rathi
719c5584f7 close 2025-04-10 15:57:24 +05:30
Manav Rathi
93747a87ec Hide the auto option when nothing is visible 2025-04-10 15:48:31 +05:30
Manav Rathi
6cf881dd60 intercept 2 2025-04-10 11:26:08 +05:30
Manav Rathi
22539c2a2f intercept 2025-04-10 11:13:11 +05:30
Manav Rathi
6ff909d3b8 Fix swap 2025-04-10 11:03:10 +05:30
Manav Rathi
0b609a9159 Update 2025-04-10 10:46:53 +05:30
Manav Rathi
7998f8ac53 Revert "spinner"
This reverts commit 0d223a759e. Only keeping it
for reference in git history.
2025-04-10 10:45:35 +05:30
Manav Rathi
0d223a759e spinner 2025-04-10 10:40:03 +05:30
Manav Rathi
b27e5938f1 [web] Update ffmpeg dep (#5576)
Assets via:

    mkdir ffmpeg-core-0.12.10
curl -fsSLO
https://unpkg.com/@ffmpeg/core@0.12.10/dist/umd/ffmpeg-core.js
curl -fsSLO
https://unpkg.com/@ffmpeg/core@0.12.10/dist/umd/ffmpeg-core.wasm

Note that the latest core version is (0.12.10) is different from the
(latest, 0.12.15) @ffmpeg/ffmpeg version we're updating to.
2025-04-10 09:45:19 +05:30
Manav Rathi
fcaebe2256 [web] Update ffmpeg dep
Assets via:

    mkdir ffmpeg-core-0.12.10
    curl -fsSLO https://unpkg.com/@ffmpeg/core@0.12.10/dist/umd/ffmpeg-core.js
    curl -fsSLO https://unpkg.com/@ffmpeg/core@0.12.10/dist/umd/ffmpeg-core.wasm

Note that the latest core version is (0.12.10) is different from the (latest,
0.12.15) @ffmpeg/ffmpeg version we're updating to.
2025-04-10 09:31:56 +05:30
Manav Rathi
23d1c054aa [docs] Self hosting updates (#5575)
Updates for https://github.com/ente-io/ente/pull/5574
2025-04-10 08:26:00 +05:30
Manav Rathi
c0669a138a [docs] Self hosting updates
Updates for https://github.com/ente-io/ente/pull/5574
2025-04-10 08:24:33 +05:30
Manav Rathi
150fd6f153 [docs] Document some self hosting questions (#5574)
...that arose recently.
2025-04-10 08:17:34 +05:30
Manav Rathi
e8e407a249 pg 2025-04-10 08:14:59 +05:30
Manav Rathi
4cd4445e65 doc csp 2025-04-10 08:04:43 +05:30
Manav Rathi
357926806b [web] Video streaming WIP - Part x/x (#5571)
Ever so closer to enabling video streaming (playback only) for internal
users
2025-04-09 19:50:42 +05:30
Manav Rathi
223043e75c Include playlist info 2025-04-09 19:39:28 +05:30
Manav Rathi
41a688357c More focused hiding 2025-04-09 19:12:25 +05:30
Manav Rathi
ca83e781dd More robust hiding 2025-04-09 19:01:00 +05:30
Manav Rathi
5535fdead5 Enable int 2025-04-09 18:43:37 +05:30
Manav Rathi
96194bdfe4 [desktop] Write timestamps as string for GT consistency; Read either (#5570)
Fixes: https://github.com/ente-io/ente/issues/5568
2025-04-09 17:06:25 +05:30
Manav Rathi
e31d132855 [desktop] Write timestamps as string for GT consistency; Read either
Fixes: https://github.com/ente-io/ente/issues/5568
2025-04-09 16:56:21 +05:30
Manav Rathi
77aef5db3f [docs] Tweaks for recently merged external PRs (#5566) 2025-04-09 12:08:04 +05:30
Manav Rathi
79415880fc Tweak 2025-04-09 12:06:54 +05:30
Manav Rathi
959a2d65a4 tweak 2025-04-09 12:02:43 +05:30
Manav Rathi
5abc0e3dc1 Update index.md (#5556)
* Added explanation to find hostname
* Added explanation of format for the server endpoint address

## Description

## Tests
2025-04-09 11:50:56 +05:30
Manav Rathi
b43d8e0851 Update index.md (#5557)
* Expanded verification code explanation
* Added link to website for app downloads

## Description

## Tests
2025-04-09 11:42:10 +05:30
Manav Rathi
3b577b1881 [web] Run typos on web and desktop (#5565)
* https://github.com/crate-ci/typos
* Manually verified the changes
* Didn't run it on server, but corrected a grammar mistake I recently
noticed.
2025-04-09 11:37:49 +05:30
Manav Rathi
0a1f984082 grammar 2025-04-09 11:32:32 +05:30
Manav Rathi
798977e395 typos web 2025-04-09 11:27:48 +05:30
Manav Rathi
cca47db499 typos desktop 2025-04-09 11:16:35 +05:30
Manav Rathi
1030f8eda8 [web] Yarn dedup (#5564)
npx yarn-deduplicate yarn.lock

https://github.com/scinos/yarn-deduplicate
2025-04-09 10:56:51 +05:30
Manav Rathi
279cbb3938 type 2025-04-09 10:51:42 +05:30
Manav Rathi
9afa495d7e [web] Yarn dedup
npx yarn-deduplicate yarn.lock

https://github.com/scinos/yarn-deduplicate
2025-04-09 10:32:50 +05:30
Manav Rathi
69874bbcf6 [web] Misc tweaks (#5563) 2025-04-09 10:08:04 +05:30
Manav Rathi
787beb951d Un-triple-eq some unambiguious string comparisons 2025-04-09 10:01:09 +05:30
Manav Rathi
4c820b7bf8 Misc tweaks 2025-04-09 09:50:27 +05:30
Manav Rathi
d25fe9296b [web] Node 20 => 22 (#5562)
Contributors do not necessarily need to update to node 22, I tested that
the dev server works with node 20 also.

That said, if someone wishes to update - here is the dance I needed to
do on macOS. Garnish to taste and OS.
```sh
brew uninstall node@20
brew install node@22
brew link node@22
corepack disable
corepack enable
```
2025-04-09 09:12:41 +05:30
Manav Rathi
51f13191b3 Node 20 => 22 2025-04-09 08:43:52 +05:30
Manav Rathi
9d4d3dc159 [web] Node 20 => 22 2025-04-09 08:23:51 +05:30
Manav Rathi
76e7f694f1 [web] Routine dependency updates (#5561) 2025-04-09 07:59:14 +05:30
Manav Rathi
60b484a2ad Fix type errors by ensuring single react types 2025-04-09 07:51:43 +05:30
Manav Rathi
75385a6e02 Same issue in more places 2025-04-09 07:25:57 +05:30
Aman Raj Singh Mourya
50fabee1e0 [mob][photos] feat: enhance AlbumRowItemWidget with selection handling 2025-04-09 00:13:19 +05:30
Aman Raj Singh Mourya
227d76db29 [mob][photos] feat: enhance CollectionsFlexiGridViewWidget with selection mode and album creation options 2025-04-09 00:12:50 +05:30
Aman Raj Singh Mourya
9207b0c7b8 [mob][photos] feat: add album view type settings 2025-04-09 00:12:08 +05:30
Aman Raj Singh Mourya
9b8c48ca6e [mob][photos] feat: implement AlbumListItemWidget for displaying album in vertical layout 2025-04-09 00:10:30 +05:30
Aman Raj Singh Mourya
dc05e254cb [mob][photos] feat: add NewAlbumRowItemWidget for creating new albums in grid view 2025-04-09 00:09:44 +05:30
Manav Rathi
575f1744a2 yarn lint 2025-04-08 19:55:29 +05:30
Manav Rathi
90f05021c5 Fix unmet peers warning for media-chrome 2025-04-08 19:38:06 +05:30
Manav Rathi
c9fc6f9e3e Routine dependency updates 2025-04-08 19:36:24 +05:30
Manav Rathi
1d2de2ab76 [desktop] Dependency updates (#5559) 2025-04-08 18:58:40 +05:30
Manav Rathi
a51dfb2d7f Electron 35 uses node 22
https://www.electronjs.org/blog#stack-changes
2025-04-08 18:54:09 +05:30
Manav Rathi
3c2a821045 New lints 2025-04-08 18:46:30 +05:30
Manav Rathi
fdefd2720c app.dock is now only defined on macOS
https://www.electronjs.org/docs/latest/api/app#appdock-macos-readonly
2025-04-08 18:44:43 +05:30
Manav Rathi
c57b93f0d9 Upgrade to Electron 35 (+ others) 2025-04-08 18:37:23 +05:30
Manav Rathi
1cbb00ec3d Update to chokidar v4
We don't use globs so this shouldn't be a breaking change for us
https://github.com/paulmillr/chokidar?tab=readme-ov-file#upgrading
2025-04-08 18:19:20 +05:30
Manav Rathi
ee3f4451ed [web] Video streaming WIP - Part x/x (#5558)
Playback is ready
2025-04-08 17:05:12 +05:30
Manav Rathi
aabaa89add More robust check 2025-04-08 16:53:04 +05:30
Manav Rathi
7556287716 now it was flickering vertically! 2025-04-08 16:52:27 +05:30
Manav Rathi
31ab4962f9 Handle the video quality change case 2025-04-08 16:31:15 +05:30
Manav Rathi
dfba8478b7 Fix workaround 2025-04-08 16:05:09 +05:30
Manav Rathi
5a6c385132 Keep using ente- for the class/ids (et- makes more sense for temporary vars) 2025-04-08 14:55:30 +05:30
Manav Rathi
c6827cc3f4 Tweak caption for videos 2025-04-08 14:50:54 +05:30
Laurens Priem
7002d2b464 [mob][photos] Caching fix (#5531)
## Description

Fix incorrect cache reading for incorrect utf8 encoding for memories and
magic cache.

## Tests

Tested in debug mode on my pixel phone.
2025-04-08 14:24:41 +05:30
Manav Rathi
c062cc8aae Workaround 2025-04-08 14:10:09 +05:30
cmyplay
448ad06902 Update index.md
* Added explanation to find hostname
* Added explanation of format for the server endpoint address
2025-04-08 20:26:09 +12:00
cmyplay
ae6092d2ab Update index.md
* Expanded verification code explanation
* Added link to website for app downloads
2025-04-08 20:24:27 +12:00
Manav Rathi
658b8e5297 Reflect current status 2025-04-08 12:15:12 +05:30
Manav Rathi
b164fde81b Attempt to fix slide reset 2025-04-08 11:46:57 +05:30
Manav Rathi
8593ae8fbc Fix positioning 2025-04-08 10:59:07 +05:30
Manav Rathi
d3e4771055 Fix hiding 2025-04-08 10:59:07 +05:30
Manav Rathi
41e2a93b20 Handle it for the video quality switch too 2025-04-08 10:59:07 +05:30
Manav Rathi
bfa2251d6d Use mc 2025-04-08 10:59:07 +05:30
Manav Rathi
8363b7b7d3 [desktop] Windows icon - Take 3 (#5555)
Resize to make it fit better with the other icons in the start menu.
2025-04-08 10:58:07 +05:30
Manav Rathi
cd072113bb [desktop] Windows icon - Take 3
Resize to make it fit better with the other icons in the start menu.
2025-04-08 10:56:02 +05:30
Manav Rathi
dbf4d055d4 [desktop] Match windows icon with macOS icon (#5553)
Previously in https://github.com/ente-io/ente/pull/5551 the icon.ico was
generated from icon.png. In this PR, based on user feedback we instead
generate
it from the icon.icns (the same as that used by the macOS app) - this
one has
rounded corners.
2025-04-08 07:49:27 +05:30
Manav Rathi
424fbf1169 [desktop] Match windows icon with macOS icon
Previously in https://github.com/ente-io/ente/pull/5551 the icon.ico was
generated from icon.png. In this PR, based on user feedback we instead generate
it from the icon.icns (the same as that used by the macOS app) - this one has
rounded corners.
2025-04-08 07:46:55 +05:30
Manav Rathi
bf4d15db9c [web] Video streaming WIP - Part x/x (#5552) 2025-04-07 19:54:19 +05:30
Manav Rathi
4de0421f88 LF 2025-04-07 19:51:13 +05:30
Manav Rathi
6273313df9 Unnecessary since there shouldn't be an entry at this point 2025-04-07 19:46:30 +05:30
Manav Rathi
104a9bbb94 Better esc handling 2025-04-07 19:35:07 +05:30
Manav Rathi
866958389c Update the menu state 2025-04-07 19:18:35 +05:30
Manav Rathi
c762d16fa5 Menu 1 2025-04-07 18:59:02 +05:30
Manav Rathi
8ee3fb84b1 toggle 2025-04-07 17:30:26 +05:30
Manav Rathi
901b3df9f5 add change listener 2025-04-07 17:04:40 +05:30
Manav Rathi
b9c9d76e5d qmenu 2025-04-07 15:53:13 +05:30
Manav Rathi
a173ca5cd8 Put behind ff 2025-04-07 15:19:46 +05:30
Manav Rathi
86eb974dc3 Keep media chrome in sync
Ref:
- https://github.com/muxinc/media-chrome/pull/1088
- 1b5f331dbb/src/js/media-mute-button.ts (L119)
2025-04-07 15:16:10 +05:30
Manav Rathi
099771dfe6 Prevent a scroll of the file list in the background 2025-04-07 14:57:23 +05:30
Manav Rathi
1d0ab2cd43 eq 2025-04-07 14:54:04 +05:30
Prateek Sunal
db5a56c6f6 [mob] bump packages & replace some (#5427)
## Description

Bump packages, remove unused (used dependency_validator for detection of
them), change source to upstream for some and update comments for rest
of git deps.

## Tests

Unfortunately it is failing the Passkey deep link, will check.
2025-04-07 14:52:23 +05:30
Manav Rathi
4db1a39de2 Add staleness check 2025-04-07 14:34:38 +05:30
Prateek Sunal
255a170088 Merge branch 'main' into mob-bump-packages 2025-04-07 14:20:05 +05:30
Manav Rathi
56623099b3 Outline 2025-04-07 14:13:55 +05:30
Manav Rathi
a069b1b7e4 Revert "Attach validity"
We already convert to object URLs!
This reverts commit 55345cf60e.
2025-04-07 14:07:47 +05:30
Manav Rathi
55345cf60e Attach validity 2025-04-07 13:53:08 +05:30
Manav Rathi
d91555f8f2 Fix 2025-04-07 13:05:35 +05:30
Manav Rathi
a0049f4e78 Move 2025-04-07 13:03:06 +05:30
Manav Rathi
d4199790bb [destkop] Add windows icon variant (#5551)
Generated from icon.png using https://www.icoconverter.com/

Even though the docs (https://www.electron.build/icons.html) say that
the icon.png should automatically get used, in practice it seems to
generate start menu icons that are blurry.

The recommendation from the maintainer
(https://github.com/electron-userland/electron-builder/issues/7328#issuecomment-1499884818)
is to provide an .ico variant that'll get used for Windows.

I'm not sure if it is necessary to also mention this explicitly in the
build config. From reading the docs
(https://www.electron.build/electron-builder.interface.windowsconfiguration#icon),
'build/icon.ico' should be the default, so trying first by just adding
the file.
2025-04-07 12:40:39 +05:30
Manav Rathi
9a36c24227 [destkop] Add windows icon variant
Generated from icon.png using https://www.icoconverter.com/

Even though the docs (https://www.electron.build/icons.html) say that the
icon.png should automatically get used, in practice it seems to generate start
menu icons that are blurry.

The recommendation from the maintainer
(https://github.com/electron-userland/electron-builder/issues/7328#issuecomment-1499884818)
is to provide an .ico variant that'll get used for Windows.

I'm not sure if it is necessary to also mention this explicitly in the build
config. From reading the docs
(https://www.electron.build/electron-builder.interface.windowsconfiguration#icon),
'build/icon.ico' should be the default, so trying first by just adding the file.
2025-04-07 11:59:40 +05:30
Manav Rathi
9341c63ed0 [web] New translations (#5549)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-04-07 10:00:30 +05:30
Crowdin Bot
ca25756717 New Crowdin translations by GitHub Action 2025-04-07 00:38:15 +00:00
Prateek Sunal
33f29cdb41 Merge remote-tracking branch 'origin/main' into pending-sync-info 2025-04-06 21:04:04 +05:30
Aman Raj Singh Mourya
f047757c63 [mob][photos] changes: make SectionOptions tappable for incoming, outgoing, and quick links 2025-04-05 21:23:13 +05:30
Aman Raj Singh Mourya
f9711e09a1 [mob][photos] fix: show "Add new" album for "On ente" section only 2025-04-05 21:04:56 +05:30
Aman Raj Singh Mourya
a5644f292e [mob][photos] changes: add new album icon to flex grid view 2025-04-05 20:27:09 +05:30
Aman Raj Singh Mourya
f3a88dc3fa [mob][photos] changes: adjust thumbnail size and gap for 3x3 layout 2025-04-05 19:57:14 +05:30
Aman Raj Singh Mourya
9ef2a5fc62 [mob][photos] changes: move sort option into full screen view of "On ente" section & remove "View all" section 2025-04-05 00:37:01 +05:30
Aman Raj Singh Mourya
36ab2f05df [mob][photos] changes: make the complete SectionOptions tappable 2025-04-05 00:34:34 +05:30
Aman Raj Singh Mourya
723511540c [mob][photos] Show 3 albums in a row and max 3 rows i.e _kOnEnteItemLimitCount = 9 (3*3) 2025-04-04 20:40:01 +05:30
Ashil
b81448d366 [mob][photos] Bump up to v1.0.2 (#5538)
## Description

f-droid is at `1.0.1` so have to go from `1.0.0` to  `1.0.2`
2025-04-04 19:35:29 +05:30
ashilkn
d9db651ff7 Bump up photos mobile app to v1.0.2 2025-04-04 19:20:41 +05:30
Ashil
1da0870bc5 [mob][photos] Downgrade flutter_secure_storage to fix lockscreen data persisting even after reinstall on iOS (#5534)
## Description

`LockScreenSettings` and `Configuration` uses two different instances of
`FlutterSecureStorage`.

`lsSecureStorage = FlutterSecureStorage();`

```
configSecureStorage = const FlutterSecureStorage(
  iOptions: IOSOptions(
    accessibility: KeychainAccessibility.first_unlock_this_device,
  ),
);
```

On flutter_secure_storage v9.2.4, data written using `lsSecureStorage`
aren't getting deleted when calling `configSecureStorage.deleteAll()`
which is called on logging out and on initialisation of `Configuration`
because of different accessibility configurations of both instances.

v9.0.0 doesn't have this issue and so downgrading is the best solution. 
Let's wait till the
[issue](https://github.com/juliansteenbakker/flutter_secure_storage/issues/870#issuecomment-2777447937)
is resolved by the package maintainer. If not resolved and we need to
upgrade, write a migration script.

## Tests

#### Tested the following cases:
- [x] Install with v9.0.0.
- [x] Login and create PIN lock.
- [x] Reinstall app to check if PIN exists in secure storage and if lock
screen comes up.
- [x] PIN is non-existent and lock screen doesn't come up.

##### And

- [x] Install with v9.2.4
- [x] Login and create PIN lock.
- [x] Reinstall with v9.0.0 and check if PIN exists in secure storage
and if lock screen comes up.
- [x] PIN is non-existent and lock screen doesn't come up.
2025-04-04 19:09:32 +05:30
Manav Rathi
1e2027b6a9 [web] Ignore self email from family suggestions in share list (#5537) 2025-04-04 18:19:17 +05:30
Manav Rathi
579afbd6b5 Tweak 2025-04-04 18:15:10 +05:30
Manav Rathi
fec0b867fe Exclude family self 2025-04-04 18:10:29 +05:30
Manav Rathi
2977a91d17 types 2025-04-04 18:02:15 +05:30
Manav Rathi
e30cb93502 un 2025-04-04 18:00:57 +05:30
Manav Rathi
1b59ea1377 Move 2025-04-04 18:00:14 +05:30
ashilkn
fc8a0b2f37 Fix version number of comment 2025-04-04 17:46:26 +05:30
Manav Rathi
93ad3d65fd [desktop] Potential live photo workaround for Linux-en (#5536) 2025-04-04 17:44:21 +05:30
Manav Rathi
b261f72864 Add another case 2025-04-04 17:33:49 +05:30
Manav Rathi
55e0a8de6f Potential live photo workaround for Linuxen 2025-04-04 17:29:43 +05:30
Ashil
bd12d1e885 [mob][photos]Bump up to v1.0.1 (#5535) 2025-04-04 17:21:58 +05:30
ashilkn
0aabee9e3b Bump up version to 1.0.1 2025-04-04 17:20:37 +05:30
ashilkn
5d28c0038a Refactor 2025-04-04 17:01:28 +05:30
ashilkn
7a31cc982a Auto generated changes 2025-04-04 16:59:40 +05:30
ashilkn
bad8d9bf2a Downgrade flutter_secure_storage to fix lockscreen data persisting even after reinstall on iOS 2025-04-04 16:59:14 +05:30
Manav Rathi
73d67277b7 [web] File URL generator internal API cleanup (#5533) 2025-04-04 16:00:21 +05:30
Manav Rathi
b5130f1ab6 rework 3 2025-04-04 15:43:45 +05:30
Manav Rathi
d8e3807049 step 2 wip 2025-04-04 15:43:45 +05:30
Manav Rathi
1388e34659 transition 1 2025-04-04 15:43:45 +05:30
Manav Rathi
ee2c836a2a Update 2025-04-04 15:43:45 +05:30
Manav Rathi
6379cdd70b Unused 2025-04-04 15:43:45 +05:30
Manav Rathi
fe9989fd5f Revert "[desktop] Show/hide the window on tray icon double click on Linux/Win" (#5532)
Reverts ente-io/ente#5526. Like macOS, the double click interferes with
the click event that shows the context menu on Linux too.
2025-04-04 13:49:16 +05:30
Manav Rathi
34cdefe028 Revert "[desktop] Show/hide the window on tray icon double click on Linux/Win" 2025-04-04 13:44:55 +05:30
laurenspriem
15ec21f3c8 old dependecy pubspec 2025-04-04 12:31:01 +05:30
laurenspriem
2efc645c31 fix incorrect utf8 cache encoding for magic cache too 2025-04-04 12:30:46 +05:30
laurenspriem
ea7109e577 fix incorrect utf8 cache encoding 2025-04-04 12:30:00 +05:30
laurenspriem
444e1a1490 format 2025-04-04 12:28:50 +05:30
Manav Rathi
969b0c1655 [server] Update service definition for recent env var lookup changes (#5529)
**Tested by**

Modifying the compose.yaml to provide an environment variable:
```diff
      environment:
        ENTE_CREDENTIALS_FILE: /credentials.yaml
+       ENTE_HTTP_USE_TLS: 1
```
then observing that museum is honoring it 
```
...
[GIN-debug] Listening and serving HTTPS on :443
```
2025-04-04 11:13:25 +05:30
Manav Rathi
bdd5036cf8 Update comment 2025-04-04 11:07:19 +05:30
Manav Rathi
6fd2db8d0b Augment not replace 2025-04-04 10:54:22 +05:30
Manav Rathi
7eae2936bd [server] Update service definition for recent env var lookup changes 2025-04-04 10:16:07 +05:30
Manav Rathi
f29b8f933b [desktop] Show/hide the window on tray icon double click on Linux/Win (#5526)
Ref: https://github.com/ente-io/ente/discussions/4521
2025-04-03 19:48:56 +05:30
Manav Rathi
ad27bd3b35 [desktop] Show/hide the window on tray icon double click on Linux/Win
Ref: https://github.com/ente-io/ente/discussions/4521
2025-04-03 19:45:16 +05:30
Manav Rathi
21fd608ed7 [web] Better fallback when editing screenshots without exif (#5524) 2025-04-03 19:08:37 +05:30
Vishnu Mohandas
4229238768 [server] Relax criteria for closing families (#5525)
## Description

Users can create a family, leave it and then join another.

In the `families` table, there will be one entry for each such family
they have been a part of (against their `admin_id`).

This PR removes this constraint for only a single row to be affected, so
users who have historically been associated with more than one family
can have a fresh start.
2025-04-03 19:07:19 +05:30
vishnukvmd
d86f4de8ce Relax criteria for closing families 2025-04-03 18:57:39 +05:30
Manav Rathi
f0b8e3b4af Better fallback 2025-04-03 18:55:55 +05:30
Manav Rathi
aa422889f3 [web] Prevent potential npe 2025-04-03 18:33:04 +05:30
Vishnu Mohandas
0738caaa2b [docs] 5GB > 10GB (#5523) 2025-04-03 17:30:03 +05:30
vishnukvmd
c981af5470 [docs] 5GB > 10GB 2025-04-03 17:29:42 +05:30
Manav Rathi
f5eca5b671 [web] Use browser's native HEIC support when detected (#5521) 2025-04-03 15:52:33 +05:30
Manav Rathi
74036bad60 Apparently 17 had it too
https://caniuse.com/heif
2025-04-03 15:47:18 +05:30
Manav Rathi
95f7735164 Add test 2025-04-03 15:28:53 +05:30
Manav Rathi
740c1093ff Cleanup 2025-04-03 15:10:28 +05:30
Aman Raj Singh Mourya
04bf4527d8 [auth] implemented logic for period & TOTP 2025-04-03 15:04:37 +05:30
Manav Rathi
b9a8f58dec scaffold wip 2
Ref: 8d15007530
2025-04-03 15:04:16 +05:30
Aman Raj Singh Mourya
5c66511a31 [auth] added totp selector widget 2025-04-03 15:03:02 +05:30
Aman Raj Singh Mourya
4c204e2a2a [auth] minor changes 2025-04-03 15:01:58 +05:30
Manav Rathi
291833e1e1 scaffold wip 2025-04-03 14:31:36 +05:30
Manav Rathi
be99d92bf2 [web] Reduce flicker when resizing gallery window (#5519) 2025-04-03 12:28:55 +05:30
Manav Rathi
e94b1966bd Fin 2025-04-03 12:19:04 +05:30
Manav Rathi
bc0399dfeb Prune 2 2025-04-03 12:10:57 +05:30
Manav Rathi
c4822a1caf Prune 1 2025-04-03 11:59:15 +05:30
DanteMS
a390d3ff2e [mob] ICU syntax fix 2025-04-03 14:22:07 +08:00
Manav Rathi
3d8d4bd8bf Update to pick the performance improvement
> Changed width and height values to be based om getBoundingClientRect rather
  than offsetWidth and offsetHeight (which are integers and can cause
  rounding/flickering problems in some cases).
>
> https://github.com/bvaughn/react-virtualized-auto-sizer/releases/tag/1.0.26
2025-04-03 11:33:01 +05:30
Manav Rathi
8555358fa3 [desktop] [macOS] Hide dock icon on Window close (#5517)
Based on customer feedback. The dock icon will hide when the window is
closed by using the "x" without quitting the app.

The menu bar icon remains as it is, and so does the existing preferences
(whose value is also retained if it were set explicitly).
2025-04-03 09:22:21 +05:30
Manav Rathi
9999ffa52c centralize 2025-04-03 09:12:39 +05:30
Manav Rathi
9d60e980f8 [desktop] [macOS] Hide dock icon on Window close
Based on customer feedback. The dock icon will hide when the window is closed by
using the "x" without quitting the app. The menu bar icon remains as it is, and
so does the existing preferences (whose value is also retained if set
explicitly).
2025-04-03 08:48:19 +05:30
mangesh
b680129af5 Update mc command for cors (#5504)
## Description

Took me all night to figure this one out. Hopefull no one has to deep
dive like this.

Ref to why it changed:
https://github.com/minio/minio/tree/master/docs/config#api

## Tests
2025-04-02 19:01:09 +05:30
Manav Rathi
732fa6b3d9 [web] Prepare for eventual yarn => npm migration (#5507)
npm doesn't support the "@" character in package names (it's used for
scopes). We eventually want to move from yarn to npm, so in preparation,
rename
our internal packages accordingly so that they also work with npm
workspaces.

Methodology: No manual code changes, just automatic search replace of

```
"@/accounts => "ente-accounts
"@/utils => "ente-utils
...
"@ente/shared => "ente-shared
```

Then reran prettier.

--

EDIT: Updated the docs too later manually in a separate commit.
2025-04-02 19:00:42 +05:30
Manav Rathi
c3a7952c42 Update the docs too 2025-04-02 18:47:32 +05:30
Manav Rathi
fdb4b0374c Prepare for eventual yarn => npm migration
npm doesn't support the "@" character in package names (it's used for
scopes). We eventually want to move from yarn to npm, so in preparation, rename
our internal packages accordingly so that they also work with npm workspaces.

Methodology: No manual code changes, just automatic search replace of

```
"@/accounts => "ente-accounts
"@/utils => "ente-utils
...
"@ente/shared => "ente-shared
```

Then reran prettier.
2025-04-02 18:37:16 +05:30
Manav Rathi
250bc3edcf [web] Video streaming WIP - Part x/x (#5506) 2025-04-02 17:40:08 +05:30
Manav Rathi
822285fd3d Fin 2025-04-02 17:19:18 +05:30
mangesh
f5ea4b0a05 [server] Replace EnvVarKey "-" with "_" (#5496)
Fixes #5493
2025-04-02 16:47:51 +05:30
mngshm
174d9fb82e doc 2025-04-02 16:13:00 +05:30
mngshm
101e27514b Comment 2025-04-02 16:02:52 +05:30
Manav Rathi
fc480e8ce6 Tried tr
https://www.media-chrome.org/docs/en/internationalization/adding-language-support
2025-04-02 15:55:47 +05:30
Manav Rathi
2cbc4998df Couldn't connect when I tried it
Cast is also not supported by hls-video, can investigate both these together.
2025-04-02 14:53:34 +05:30
Manav Rathi
40812ec7c3 More robust 2025-04-02 14:44:57 +05:30
Manav Rathi
09b4025f11 cap 2025-04-02 14:28:11 +05:30
Manav Rathi
7b169fe903 focus workaround 2025-04-02 13:59:19 +05:30
Manav Rathi
9d222cd007 hk 2025-04-02 13:55:31 +05:30
Manav Rathi
cfe6343d63 Fix partial clipped lines showing through on the caption 2025-04-02 13:55:31 +05:30
Manav Rathi
e15fb04ee0 Caption positioning 2025-04-02 13:55:31 +05:30
Manav Rathi
6bbfcb1d13 abs
ref https://github.com/muxinc/media-chrome/discussions/890
2025-04-02 13:55:31 +05:30
Manav Rathi
b9bb7c074d Pause 2025-04-02 13:55:31 +05:30
Manav Rathi
5a7f83212b Tweak 2025-04-02 13:55:31 +05:30
Manav Rathi
01071676ce [meta] Update workflow permissions (#5505)
Continuation of https://github.com/ente-io/ente/pull/5456
2025-04-02 13:34:06 +05:30
Manav Rathi
aadacda2f6 [meta] Update workflow permissions
Continuation of https://github.com/ente-io/ente/pull/5456
2025-04-02 13:31:44 +05:30
Athul Cyriac Ajay
bc0d832105 Update mc command for cors 2025-04-02 02:33:13 +05:30
Manav Rathi
0a1c1e441e [web] Video streaming WIP - Part x/x (#5502) 2025-04-01 20:00:22 +05:30
Manav Rathi
4e95f4b36f settings icon from MUI icon
https://mui.com/material-ui/material-icons/?query=settings&selected=Settings
2025-04-01 19:41:41 +05:30
Manav Rathi
5a3b72b141 Restore clicks on the next/prev arrows 2025-04-01 19:09:55 +05:30
Manav Rathi
c88e04535c style 2025-04-01 18:47:28 +05:30
Manav Rathi
b12a4dd235 speed 2025-04-01 17:52:40 +05:30
Manav Rathi
f24d6b882d take 2 2025-04-01 17:41:30 +05:30
Manav Rathi
199c2d0c95 take 1 2025-04-01 17:41:30 +05:30
Manav Rathi
7508d9c86b Log message
Saw this when working with media-chrome. In WIP code, I am getting

   [error] Unhandled error: ResizeObserver loop completed with undelivered notifications.

but that string comes as event.message (event.error is null).
2025-04-01 17:41:30 +05:30
Manav Rathi
b586281207 [web] Fix assignment typo in previous PR (#5499)
https://github.com/ente-io/ente/pull/5498
2025-04-01 17:38:20 +05:30
Manav Rathi
8510a88e9e Fix assignment 2025-04-01 17:31:43 +05:30
Manav Rathi
2dc202d984 [web] Reduce unnecessary rerenders during upload (#5498)
setTimeout was showing up prominently in the profiler
2025-04-01 14:40:47 +05:30
Manav Rathi
48aec5df86 Reduce unnecessary rerenders during upload 2025-04-01 14:34:21 +05:30
Manav Rathi
2440c38530 [web] Fix expiry date in link settings (#5495) 2025-04-01 12:16:12 +05:30
Manav Rathi
b1ce3edf28 Graceful deg 2025-04-01 12:13:05 +05:30
Manav Rathi
80ea75e2d2 [web] Fix expiry date in link settings 2025-04-01 12:13:05 +05:30
mngshm
f592d73d87 note in local.yaml 2025-04-01 12:10:24 +05:30
mngshm
28295e2b83 Replace '-' with '_' 2025-04-01 12:04:42 +05:30
Manav Rathi
6be4b29331 [web] New translations (#5490)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-04-01 10:58:19 +05:30
Ashil
ba435ad974 Correct typo in cli (#5483)
Corrected "expirty" typo in ente admin update-subscription --no-limit
False success workflow.

## Description
Fixed typo "expirty" to "expiry" in file limit success flow.


## Tests
2025-03-31 08:26:20 +05:30
Ashil
799f9f2878 Updated subscription FAQ (#5479)
Corrected the free storage from 5 GB to 10 GB.
2025-03-31 08:25:16 +05:30
Laurens Priem
39e1f7bfe7 [mob][photos] Improve tag "me" flow (#5426)
## Description

Simplified the action of assigning "me" by sticky-ing the users email on
top (in case "me" is not assigned).

## Tests

Tested in debug mode on my pixel phone.
2025-03-31 07:53:21 +05:30
Crowdin Bot
5d7ce9f542 New Crowdin translations by GitHub Action 2025-03-31 00:38:58 +00:00
deancommasteven
eefd740a4d Correct typo in cli
Corrected "expirty" typo in ente admin update-subscription --no-limit False success workflow.
2025-03-30 14:20:20 -04:00
Niika
ef6e859e76 Updated subscription FAQ
Corrected the free storage from 5 GB to 10 GB.
2025-03-29 23:34:14 +01:00
Vishnu Mohandas
404e8c3214 [mob] Enable translations for Norwegian (#5472) 2025-03-29 16:38:53 +05:30
vishnukvmd
c47ddab7ba Enable translations for Norwegian 2025-03-29 16:38:28 +05:30
Vishnu Mohandas
74849bd257 [mob] Enable translations for Romanian (#5470) 2025-03-29 15:51:32 +05:30
vishnukvmd
a76a7abc2a Enable translations for Romanian 2025-03-29 15:49:57 +05:30
Neeraj
bd7a16a85c [mob][photos] Remove datepicker dependency (#5463)
## Description

Switched to our own date picker in the last place we were using package
(link expiry page) and removed package.

## Tests

Tested in debug mode on my pixel phone.
2025-03-29 05:04:16 +05:30
Manav Rathi
cd634b98a0 [desktop] Next release train (#5465) 2025-03-28 18:28:25 +05:30
Manav Rathi
7b871195c8 [desktop] Next release train 2025-03-28 18:25:48 +05:30
Vishnu Mohandas
bed0b0f902 [docs] Update links for photos (#5462) 2025-03-28 18:14:50 +05:30
vishnukvmd
cdf46acd8b Fix 2025-03-28 18:14:04 +05:30
vishnukvmd
af7698e29e Fix links 2025-03-28 18:13:14 +05:30
laurenspriem
713972af9b Remove redundant dependency 2025-03-28 18:03:35 +05:30
laurenspriem
1c2b9634db Cleanup file 2025-03-28 18:02:52 +05:30
laurenspriem
bf8173708d use own datepicker 2025-03-28 18:01:57 +05:30
laurenspriem
125eca1847 datepicker sheet method 2025-03-28 18:01:34 +05:30
laurenspriem
112a4844ee Cleanup file 2025-03-28 17:02:15 +05:30
vishnukvmd
eb9e97080f [docs] Update links for photos 2025-03-28 16:49:41 +05:30
Prateek Sunal
633184852e fix: deep link experience 2025-03-28 16:47:39 +05:30
Vishnu Mohandas
46a090535f [server] Up free storage (#5461)
## Description

## Tests
2025-03-28 16:46:29 +05:30
Prateek Sunal
886cb06590 feat: Remove temporary directory after processing video preview 2025-03-28 14:53:04 +05:30
Prateek Sunal
cd2094f75e feat: Add Pending Sync Info Screen and enhance path storage viewer 2025-03-28 14:50:05 +05:30
Laurens Priem
360223bd2f [mob][photos] Image embedding caching perf (#5459)
## Description

Made changes to more efficiently handle image embeddings caching,
keeping them cached only in MLComputer and only for limited times when
the user needs it.

## Tests

Tested in debug mode on my pixel phone.
2025-03-28 14:13:42 +05:30
laurenspriem
d11ff14ecd Remove embeddings cache after inactivity 2025-03-28 13:55:23 +05:30
Manav Rathi
60781ba86b [meta] Allow running CodeQL manually (#5458)
Necessary to get GitHub to resync the status until the next time it runs
2025-03-28 13:50:38 +05:30
Manav Rathi
02d2db3e43 [meta] Allow running CodeQL manually
Necessary to get GitHub to resync the status until the next time it runs
2025-03-28 13:49:53 +05:30
Manav Rathi
4035a06040 [meta] Create custom codeql.yml (#5457)
Here is the original autogenerated template on which this is based:

```yaml
# For most projects, this workflow file will not need changing; you simply need # to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed, # or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check # the `language` matrix defined below to confirm you have the correct set of # supported CodeQL languages.
#
name: "CodeQL Advanced"

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]
  schedule:
    - cron: '22 1 * * 1'

jobs:
  analyze:
    name: Analyze (${{ matrix.language }}) # Runner size impacts CodeQL analysis time. To learn more, please see:
    #   - https://gh.io/recommended-hardware-resources-for-running-codeql
    #   - https://gh.io/supported-runners-and-hardware-resources
    #   - https://gh.io/using-larger-runners (GitHub.com only)
    # Consider using larger runners or machines with greater resources for possible analysis time improvements.
    runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
    permissions:
      # required for all workflows
      security-events: write

      # required to fetch internal or private CodeQL packs
      packages: read

      # only required for workflows in private repositories
      actions: read
      contents: read

    strategy: fail-fast: false matrix: include:
        - language: actions build-mode: none
        - language: c-cpp build-mode: autobuild - language: go build-mode: autobuild - language: java-kotlin build-mode: autobuild - language: javascript-typescript build-mode: none - language: ruby build-mode: none - language: swift build-mode: autobuild # CodeQL supports the following values keywords for 'language': 'actions', 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift' # Use `c-cpp` to analyze code written in C, C++ or both # Use 'java-kotlin' to analyze code written in Java, Kotlin or both # Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both # To learn more about changing the languages that are analyzed or customizing the build mode for your analysis, # see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning. # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how # your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages steps:
    - name: Checkout repository uses: actions/checkout@v4

    # Add any setup steps before running the `github/codeql-action/init` action.
    # This includes steps like installing compilers or runtimes (`actions/setup-node`
    # or others). This is typically only required for manual builds.
    # - name: Setup runtime (example)
    #   uses: actions/setup-example@v1

    # Initializes the CodeQL tools for scanning.
    - name: Initialize CodeQL uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} build-mode: ${{ matrix.build-mode }} # If you wish to specify custom queries, you can do so here or in a config file. # By default, queries listed here will override any specified in a config file. # Prefix the list here with "+" to use these queries and those in the config file.

        # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
        # queries: security-extended,security-and-quality

    # If the analyze step fails for one of the languages you are analyzing with
    # "We were unable to automatically build your code", modify the matrix above
    # to set the build mode to "manual" for that language. Then modify this step
    # to build your code.
    # ℹ️ Command-line programs to run using the OS shell.
    # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
    - if: matrix.build-mode == 'manual' shell: bash run: | echo 'If you are using a "manual" build mode for one or more of the' \ 'languages you are analyzing, replace this with the commands to build' \ 'your code, for example:' echo '  make bootstrap' echo '  make release' exit 1

    - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v3 with: category: "/language:${{matrix.language}}"
```
2025-03-28 13:47:51 +05:30
Manav Rathi
2d16d958e3 [meta] Create custom codeql.yml
Here is the original autogenerated template from which this is based:

----

# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL Advanced"

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]
  schedule:
    - cron: '22 1 * * 1'

jobs:
  analyze:
    name: Analyze (${{ matrix.language }})
    # Runner size impacts CodeQL analysis time. To learn more, please see:
    #   - https://gh.io/recommended-hardware-resources-for-running-codeql
    #   - https://gh.io/supported-runners-and-hardware-resources
    #   - https://gh.io/using-larger-runners (GitHub.com only)
    # Consider using larger runners or machines with greater resources for possible analysis time improvements.
    runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
    permissions:
      # required for all workflows
      security-events: write

      # required to fetch internal or private CodeQL packs
      packages: read

      # only required for workflows in private repositories
      actions: read
      contents: read

    strategy:
      fail-fast: false
      matrix:
        include:
        - language: actions
          build-mode: none
        - language: c-cpp
          build-mode: autobuild
        - language: go
          build-mode: autobuild
        - language: java-kotlin
          build-mode: autobuild
        - language: javascript-typescript
          build-mode: none
        - language: ruby
          build-mode: none
        - language: swift
          build-mode: autobuild
        # CodeQL supports the following values keywords for 'language': 'actions', 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift'
        # Use `c-cpp` to analyze code written in C, C++ or both
        # Use 'java-kotlin' to analyze code written in Java, Kotlin or both
        # Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
        # To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
        # see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
        # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
        # your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    # Add any setup steps before running the `github/codeql-action/init` action.
    # This includes steps like installing compilers or runtimes (`actions/setup-node`
    # or others). This is typically only required for manual builds.
    # - name: Setup runtime (example)
    #   uses: actions/setup-example@v1

    # Initializes the CodeQL tools for scanning.
    - name: Initialize CodeQL
      uses: github/codeql-action/init@v3
      with:
        languages: ${{ matrix.language }}
        build-mode: ${{ matrix.build-mode }}
        # If you wish to specify custom queries, you can do so here or in a config file.
        # By default, queries listed here will override any specified in a config file.
        # Prefix the list here with "+" to use these queries and those in the config file.

        # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
        # queries: security-extended,security-and-quality

    # If the analyze step fails for one of the languages you are analyzing with
    # "We were unable to automatically build your code", modify the matrix above
    # to set the build mode to "manual" for that language. Then modify this step
    # to build your code.
    # ℹ️ Command-line programs to run using the OS shell.
    # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
    - if: matrix.build-mode == 'manual'
      shell: bash
      run: |
        echo 'If you are using a "manual" build mode for one or more of the' \
          'languages you are analyzing, replace this with the commands to build' \
          'your code, for example:'
        echo '  make bootstrap'
        echo '  make release'
        exit 1

    - name: Perform CodeQL Analysis
      uses: github/codeql-action/analyze@v3
      with:
        category: "/language:${{matrix.language}}"
2025-03-28 13:44:49 +05:30
laurenspriem
a682fb4ece cleanup 2025-03-28 13:43:40 +05:30
laurenspriem
bc65e2c256 don't cache embeddings on startup 2025-03-28 13:41:16 +05:30
laurenspriem
3457cc1369 log embeddings retrieval time 2025-03-28 13:40:58 +05:30
laurenspriem
5ffd513826 Speed up embedding db call 2025-03-28 13:39:55 +05:30
Manav Rathi
d1df2962cb [meta] Granular action permissions (#5456) 2025-03-28 13:08:45 +05:30
Manav Rathi
cf7d46fd70 go-rel
ref: https://github.com/wangyoucao577/go-release-action?tab=readme-ov-file#basic-example
2025-03-28 13:02:19 +05:30
Manav Rathi
875a747e24 granular perms / release
"only required permissions for the action specified (which is contents: write)"
- https://github.com/ncipollo/release-action?tab=readme-ov-file#notes
2025-03-28 12:57:41 +05:30
Manav Rathi
0e4fa1ad4c ro 2025-03-28 12:57:41 +05:30
laurenspriem
939d1a5d40 properly clear isolate cache 2025-03-28 12:47:22 +05:30
Manav Rathi
0f62c4fa79 granular perms / docker-push
ref: https://docs.github.com/en/packages/managing-github-packages-using-github-actions-workflows/publishing-and-installing-a-package-with-github-actions#authenticating-to-package-registries-with-repository-scoped-permissions
2025-03-28 12:32:33 +05:30
Manav Rathi
038f6b33e1 granular perms [crowdin] 2025-03-28 12:22:59 +05:30
laurenspriem
bd0818ec7d Reduce time to isolate disposal 2025-03-28 11:57:21 +05:30
laurenspriem
1267587ae5 Fix using plugins in regular isolates 2025-03-28 11:51:34 +05:30
laurenspriem
168a4936f8 cache clip embeddings inside MLComputer isolate 2025-03-28 11:42:06 +05:30
Manav Rathi
eb11d80d79 [desktop] photosd-v1.7.11 (#5455) 2025-03-28 11:15:31 +05:30
Manav Rathi
dbc1cec05a [desktop] photosd-v1.7.11 2025-03-28 11:12:50 +05:30
Manav Rathi
95c9f5877c [docs] AppImage icon FAQ (#5454) 2025-03-28 11:09:58 +05:30
Manav Rathi
34034a77a2 Fix link 2025-03-28 11:08:55 +05:30
Manav Rathi
1da4770728 [docs] AppImage icon FAQ 2025-03-28 11:06:58 +05:30
Manav Rathi
353b2274d1 [docs] Add linux icon update FAQ (#5453) 2025-03-28 08:47:45 +05:30
Manav Rathi
56f15a33af [docs] Add linux icon update FAQ 2025-03-28 08:46:10 +05:30
Manav Rathi
85e0fef80b [server] Quickstart: don't rely on the -w flag for base64 (#5452)
Tested on macOS, Ubuntu (docker), Alpine (docker)
2025-03-28 08:15:30 +05:30
Manav Rathi
f3eb4c9acf Don't silently fail if docker is not installed 2025-03-28 08:10:03 +05:30
Manav Rathi
70924b7416 Don't rely on the -w flag for base64 2025-03-28 08:06:43 +05:30
Neeraj
21028e4985 [mob] Improve ignored file identifier for android (#5451)
## Description
Handle the case where some files were incorrectly ignored for upload
because device reused deleted file name.

## Tests
2025-03-28 07:28:35 +05:30
Neeraj Gupta
4ba22fd677 Improve ignored file identifier for android 2025-03-28 07:19:55 +05:30
laurenspriem
ac43ecf45b Make MLComputer a regular isolate 2025-03-27 16:07:28 +05:30
laurenspriem
a974a95fb2 Auto dispose face thumbnail generator isolate 2025-03-27 16:06:36 +05:30
laurenspriem
eb7f350102 Separate face thumbnail generator from embeddings 2025-03-27 16:04:13 +05:30
Manav Rathi
b2e4b82d5c [web] Video streaming WIP - Part x/x (#5449) 2025-03-27 14:30:33 +05:30
Neeraj
a88e281800 [mob] Log sync status when uploadIcon is hidden (#5448)
## Description

## Tests
2025-03-27 14:18:12 +05:30
Neeraj
279319bd52 [mob] Fix discovery section reload condition (#5447)
## Description
Previous condition didn't handle the case when the cities were not
loaded when discovery section was getting computed.
## Tests
2025-03-27 14:18:00 +05:30
Neeraj Gupta
6a3c3d5b5b Log sync status when uploadIcon is hidden 2025-03-27 14:17:10 +05:30
Neeraj Gupta
f36cc9ec06 [mob] Fix discovery section reload condition 2025-03-27 14:08:36 +05:30
Neeraj Gupta
68c2fbfec6 Bump version 2025-03-27 14:01:46 +05:30
Neeraj Gupta
fd3bcbf2a8 Add flutter submodule 2025-03-27 14:00:54 +05:30
Manav Rathi
8981668052 Tweaks 2025-03-27 13:29:46 +05:30
Manav Rathi
cba4f538f8 grad 2025-03-27 12:56:26 +05:30
Manav Rathi
8b787c7373 rgba => rgb
"The rgba() functional notation is an alias for rgb(). They are exactly equivalent. It is recommended to use rgb()." - MDN

https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/rgb
2025-03-27 12:50:50 +05:30
Manav Rathi
30c4a72e69 2l 2 2025-03-27 12:37:48 +05:30
Manav Rathi
bfd9a0d760 two line 2025-03-27 10:59:22 +05:30
Manav Rathi
2d2696e4ee two line? 2025-03-27 10:33:45 +05:30
Manav Rathi
4f0bee517e Use type 2025-03-27 10:06:56 +05:30
Manav Rathi
e536e34808 Move 2025-03-27 10:00:04 +05:30
Manav Rathi
8a13c9071c Same as mobile 2025-03-27 08:05:40 +05:30
Manav Rathi
e35fae6c3c Notes
Ref: 476e5abdd0/packages/hls-video-element/hls-video-element.js (L73)
2025-03-27 08:04:29 +05:30
Neeraj
313a7064f8 [mob] Search & filter by uploader's name (#5443)
## Description

## Tests
2025-03-27 00:17:13 +05:30
Neeraj Gupta
a550dcce57 Enable search filter for uploader name 2025-03-26 23:44:32 +05:30
Neeraj Gupta
63b9b926a1 Show seperate result for different uploader 2025-03-26 22:54:39 +05:30
Neeraj Gupta
4500a8f620 Add support to search by uploader name 2025-03-26 22:16:11 +05:30
Manav Rathi
90bf99c20b [web] Video streaming WIP - Part x/x (#5440) 2025-03-26 21:05:22 +05:30
Manav Rathi
838b7e2a88 loading indicator 2025-03-26 18:48:50 +05:30
Laurens Priem
99f882043b [mob][photos] Onnx debug options (#5439)
## Description

Some ONNX logging and cleaner menu for loading separate models. 

## Tests
2025-03-26 17:55:32 +05:30
laurenspriem
dd0c5ed770 Focused menu for loading separate models 2025-03-26 17:19:57 +05:30
Manav Rathi
2f3c00fc99 quot 2025-03-26 15:53:39 +05:30
Manav Rathi
acad6895e8 More controls 2025-03-26 15:53:39 +05:30
ashilkn
78077e70c6 Update fdoird store listing metadata following the fastlane structure
Note: Not certain that this is the right way to update listing metadata. Read through this PR for a better idea why: https://github.com/ente-io/ente/pull/1313
2025-03-26 15:25:56 +05:30
laurenspriem
1774a8019f Always log OrtVersion on init 2025-03-26 15:09:08 +05:30
laurenspriem
f5ce53d8ca consistent logging in onnx plugin 2025-03-26 15:04:29 +05:30
Manav Rathi
e5720c1906 More controls 2025-03-26 14:16:17 +05:30
Manav Rathi
9803720603 Via CSS 2025-03-26 12:55:15 +05:30
Manav Rathi
86ba1eed5d Workaround: defer setting mediacontroller attribute until next tick 2025-03-26 12:31:06 +05:30
laurenspriem
9ab55ed1e4 Remove "this is me" button 2025-03-26 12:23:38 +05:30
ashilkn
04e2fd0262 Resolve merge conflicts and merge tag 'photos-v1.0.0' to f-droid branch 2025-03-26 12:23:17 +05:30
laurenspriem
bf7e10eab6 Make own email stickied at top 2025-03-26 12:18:44 +05:30
Manav Rathi
8383d7dd56 HLS playlists are provided as data: 2025-03-26 11:56:49 +05:30
Manav Rathi
7174cbac3b [web] Video streaming WIP - Part x/x (#5436) 2025-03-26 10:21:59 +05:30
Manav Rathi
52c7c1b4ed LF 2025-03-26 10:21:46 +05:30
Manav Rathi
2187b3ec6e Trim 2025-03-26 10:06:15 +05:30
Manav Rathi
d1af77dbef also for hls
476e5abdd0/packages/hls-video-element/index.html (L52)
2025-03-26 09:35:00 +05:30
Manav Rathi
33ee599f3c Inline playback of live photos on mobile browsers 2025-03-26 09:30:41 +05:30
Manav Rathi
0247d3f458 first slide 2025-03-26 08:31:01 +05:30
Manav Rathi
38c64ac05f move out and link - wip 2025-03-26 07:34:57 +05:30
Manav Rathi
220a6cbc4b Retain dimensions from playlist 2025-03-26 06:08:23 +05:30
Prateek Sunal
4797e03119 fix(pubspec): suggest package alternative 2025-03-26 04:14:43 +05:30
Prateek Sunal
02d730eaae chore: update dependencies in pubspec.yaml and remove unused packages 2025-03-26 03:56:18 +05:30
Prateek Sunal
070907fc69 Merge branch 'main' into mob-bump-packages 2025-03-25 22:58:08 +05:30
Manav Rathi
01b65eb608 wip 2025-03-25 20:36:15 +05:30
Manav Rathi
3ab8c348b0 Move controls out 2025-03-25 16:31:29 +05:30
Manav Rathi
7af57bd7c8 Start adding controls 2025-03-25 16:31:29 +05:30
Manav Rathi
1ac64b5a31 +media-chrome 2025-03-25 16:31:29 +05:30
Manav Rathi
2431c81c44 Use 2025-03-25 16:31:29 +05:30
Manav Rathi
f0b23a495c hls.js + hls-video-element 2025-03-25 16:31:29 +05:30
Manav Rathi
677ad0dc00 Works in Safari 2025-03-25 16:31:29 +05:30
Manav Rathi
142020e26a Add file extension and mime type 2025-03-25 16:31:29 +05:30
Manav Rathi
195bd114f9 [web] Fix video tabbing (#5434) 2025-03-25 16:30:43 +05:30
Manav Rathi
6b91228273 Fix video tabbing 2025-03-25 16:25:06 +05:30
Prateek Sunal
1166b53383 feat: replace uni_links with app_links in Podfile and update dependencies 2025-03-25 15:02:29 +05:30
Neeraj
041a657877 [mob] Delete old identifier for shared-media files (#5433)
## Description

## Tests
2025-03-25 14:28:48 +05:30
Neeraj Gupta
d0ee33131e [mob] Delete old identifier for shared-media files 2025-03-25 14:21:29 +05:30
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
Prateek Sunal
a33ace26dd chore: update comments 2025-03-24 19:25:53 +05:30
Prateek Sunal
d8826199e0 chore: update comment 2025-03-24 19:22:08 +05:30
Prateek Sunal
e389a2c4a2 chore: update comments for packages 2025-03-24 19:21:17 +05:30
Prateek Sunal
2283f4a25d feat(deprecate): use app_links instead of uri_links 2025-03-24 19:15:50 +05:30
Manav Rathi
67a0ff55b4 Update electron 2025-03-24 19:10:01 +05:30
Prateek Sunal
e55ddefa21 chore(photos-mobile): bump figma_squicircle to latest 2025-03-24 19:08:36 +05:30
laurenspriem
76b9c30332 error log 2025-03-24 16:34:58 +05:30
laurenspriem
ce681d83da Add "this is me" to link email screen 2025-03-24 16:32:21 +05:30
laurenspriem
11bc17e766 Separate util method to check if me is assigned 2025-03-24 16:08:31 +05:30
vishnukvmd
69c71d23c3 Migrate existing free folks 2025-03-24 14:45:38 +05:30
vishnukvmd
214573e0c2 Increase free storage to 10gb 2025-03-24 14:45:28 +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
Neeraj Gupta
2e3ac8b485 Return complete claim instead of userID 2025-03-18 14:30:24 +05:30
Neeraj Gupta
47f0c88ed8 Extract method 2025-03-18 14:27:39 +05:30
Manav Rathi
48eec72bf6 conv UploadResult 2025-03-18 14:26:15 +05:30
Neeraj Gupta
162ce32b8e omitEmpty field from claim json 2025-03-18 14:23:54 +05:30
Neeraj Gupta
a1dbdfd6ba Reuse existing claim for recovery 2025-03-18 14:22: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 Gupta
74072b952d Add JWT model for account recovery 2025-03-18 11:43:45 +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
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
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
laurenspriem
30b3af8691 [mob][photos] Extract strings 2025-03-11 17:20:22 +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
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
laurenspriem
1977129a68 [mob][photos] am/pm 2025-03-11 10:06:49 +05:30
ashilkn
cfb2e5f1bd [mob][photos] Scaffold app icon selection screen 2025-03-10 22:32:50 +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
Prateek Sunal
9c18de33e6 feat: widget on iOS 2025-03-10 19:32:40 +05:30
vishnukvmd
8dd1180c85 Update 2025-03-10 18:02:19 +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
Sven
f27ad4786a Merge branch 'main' of https://github.com/sv3nnie/ente 2025-03-10 12:52:58 +01:00
Sven
cf0ef0f9f4 Decrease height for MEXC 2025-03-10 12:52:55 +01:00
Sven
00c6de0e53 Merge branch 'ente-io:main' into main 2025-03-10 12:41:06 +01:00
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
laurenspriem
812dffc231 [mob][photos] single file header 2025-03-10 15:16:28 +05:30
Neeraj Gupta
b377217ece Merge branch 'mob_6_march' into f-droid 2025-03-10 15:10:56 +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
laurenspriem
340ca6500a [mob][photos] DateTime picker widget 2025-03-10 11:57:03 +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
Sven
4c7d92530f Add ICONOMI 2025-03-07 23:55:14 +01:00
Sven
cafbdc70e8 Add MEXC icon 2025-03-07 23:32:28 +01:00
Neeraj Gupta
7242176243 [mob] Bump version code 2025-03-06 15:46:52 +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
laurenspriem
2a98ed4815 Merge branch 'main' into bulk_edit_date 2025-03-05 11:48:23 +05:30
laurenspriem
a2b0c06a5b [mob][photos] Prettify 2025-03-03 13:31:25 +05:30
laurenspriem
d8fd5add26 [mob][photos] First bottom sheet 2025-03-03 11:56:38 +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
Neeraj Gupta
b3123a6440 Merge branch '0.9.98_release_branch' into f-droid 2025-02-14 20:07:06 +05:30
ashilkn
f4eb511beb Merge tag 'photos-v0.9.97' into f-droid 2025-02-12 22:07:36 +05:30
Neeraj Gupta
1a689b2c19 Merge branch 'main' into f-droid 2025-02-10 14:29:21 +05:30
Neeraj Gupta
b0c6ffdbb2 Merge branch 'main' into f-droid 2025-01-15 13:06:56 +05:30
Neeraj Gupta
b7ccf4aaf9 Merge branch 'f-droid' of https://github.com/ente-io/auth into f-droid 2025-01-15 13:06:47 +05:30
ashilkn
e7c8265ae1 Merge branch 'main' into f-droid 2025-01-08 12:39:54 +05:30
ashilkn
21dc35355d Merge branch 'main' into f-droid 2025-01-03 18:40:49 +05:30
ashilkn
f86994b1d3 Merge tag 'photos-v0.9.72' into f-droid 2024-12-20 11:44:00 +05:30
Neeraj Gupta
260a26d45c Merge branch 'main' into f-droid 2024-12-11 21:58:29 +05:30
ashilkn
cdfa368a8c Merge branch 'main' into f-droid 2024-12-09 12:51:05 +05:30
Neeraj Gupta
d67c6aef53 Merge branch 'main' into f-droid 2024-11-28 11:01:39 +05:30
Neeraj Gupta
6ebb5d5bf4 Merge branch 'f-droid' of https://github.com/ente-io/auth into f-droid 2024-11-28 11:00:11 +05:30
ashilkn
224b79b648 Merge tag 'photos-v0.9.58' into f-droid 2024-11-08 16:08:08 +05:30
Neeraj Gupta
7e0a3cdd6c Merge branch 'main' into f-droid 2024-10-24 13:29:54 +05:30
ashilkn
f6db381e20 [mob][photos] Resolve merge conflicts and merge main 2024-10-23 11:25:54 +05:30
ashilkn
f0c29fef5c Merge branch 'main' into f-droid 2024-10-16 17:06:01 +05:30
Neeraj Gupta
2a3e317725 Merge branch 'main' into f-droid 2024-10-15 21:01:21 +05:30
ashilkn
1a1b3ebf12 [mob][photos] Resolve merge conflicts and merge main 2024-10-09 13:52:19 +05:30
Neeraj Gupta
f995589a02 Merge branch 'main' into f-droid 2024-09-29 12:04:26 +05:30
Neeraj Gupta
6e0990d658 Merge branch 'main' into f-droid 2024-09-20 15:56:08 +05:30
Neeraj Gupta
4da4261f4c Update flutter to 3.24.3 2024-09-20 15:00:23 +05:30
Neeraj Gupta
0abe66ea8c Merge branch 'main' into f-droid 2024-09-20 14:49:17 +05:30
Neeraj Gupta
193b27a186 Merge commit '0a1e062c' into f-droid 2024-09-06 15:30:52 +05:30
Neeraj Gupta
e323096172 Merge tag 'photos-v0.9.30' into f-droid 2024-08-27 17:20:23 +05:30
ashilkn
e41f306ac8 [mob][photos] Resolve merge conflicts and merge main 2024-07-31 12:02:25 +05:30
Neeraj Gupta
01d45d7c14 Merge branch 'main' into f-droid 2024-07-19 15:53:08 +05:30
ashilkn
d55a29336f Merge branch 'main' into f-droid 2024-07-08 20:50:35 +05:30
Neeraj Gupta
cfcbd0fbb2 Merge branch 'f-droid' of https://github.com/ente-io/auth into f-droid 2024-06-17 11:47:58 +05:30
Neeraj Gupta
21174548b5 Merge branch 'main' into f-droid 2024-06-17 11:47:42 +05:30
Neeraj Gupta
910f13e9a8 [mob][fdroid] Update flutter to v3.22.0 2024-06-17 11:31:36 +05:30
ashilkn
762688db28 Merge branch 'main' into f-droid 2024-06-13 10:29:55 +05:30
ashilkn
9df1ea0c57 Merge branch 'main' into f-droid 2024-06-12 17:33:12 +05:30
ashilkn
e48ab71fa4 [mob][photos] f-droid: upgrade flutter submodule to version 3.22.2 2024-06-12 17:33:02 +05:30
ashilkn
246314367a [mob][photos] Update flutter submodule on f-droid 2024-06-04 13:14:24 +05:30
ashilkn
ad70bbb571 Merge branch 'main' into f-droid 2024-06-04 13:11:17 +05:30
Neeraj Gupta
3962c55140 Update flutter submodule: v3.22.0 2024-06-03 11:26:02 +05:30
Neeraj Gupta
82e478bb12 Merge branch 'f-droid' of https://github.com/ente-io/auth into f-droid 2024-06-03 11:25:26 +05:30
Neeraj Gupta
63c8e98492 Merge branch 'main' into f-droid 2024-06-03 11:21:35 +05:30
ashilkn
ae92d2f759 Merge branch 'main' into f-droid 2024-05-28 12:37:14 +05:30
ashilkn
761c3e6ac2 [mob][photos] Update flutter submodule on f-droid branch 2024-05-28 12:34:37 +05:30
ashilkn
f9a3009c60 [mob][photos] Resolve merge conflicts and merge 2024-05-28 12:28:03 +05:30
Neeraj Gupta
ca0474faca Updated submodule mobile/thirdparty/flutter to 3.22.1 2024-05-23 17:00:33 +05:30
Neeraj Gupta
b469985277 Removed submodule mobile/thirdparty/isar 2024-05-23 16:58:51 +05:30
Neeraj Gupta
2a5dacb460 Merge branch 'main' into f-droid 2024-05-23 16:55:27 +05:30
vishnukvmd
d16f98cf07 v0.8.95 2024-05-12 08:44:26 +05:30
vishnukvmd
8677cbb4f8 Increase JVM allocation pool 2024-05-12 08:43:55 +05:30
vishnukvmd
0e33299863 Merge branch 'main' into f-droid 2024-05-07 12:54:44 +05:30
ashilkn
93ba4e011a Merge branch 'main' into f-droid 2024-04-20 15:23:14 +05:30
vishnukvmd
7977bebcaa Update Flutter to v3.19.3 2024-04-16 11:35:32 +05:30
ashilkn
f28f49d724 Merge main 2024-04-15 11:20:03 +05:30
ashilkn
d9a93ddad6 Merge branch 'main' into f-droid 2024-04-13 15:24:56 +05:30
ashilkn
07808d6139 Merge branch 'main' into f-droid 2024-04-02 17:22:34 +05:30
vishnukvmd
1e1633bb45 Merge branch 'main' into f-droid 2024-03-13 21:57:19 +05:30
vishnukvmd
c0f33de0c8 Remove dead code 2024-03-13 21:56:09 +05:30
vishnukvmd
417621b17c Pull code for transistor-background-fetch 2024-03-13 14:14:19 +05:30
vishnukvmd
8322540732 Add submodule for Flutter 2024-03-13 14:13:40 +05:30
vishnukvmd
2d61be37bb Add submodule for Isar 2024-03-13 14:12:23 +05:30
vishnukvmd
2a10aa7d61 Merge branch 'fdroid_cleanup' into f-droid 2024-03-13 13:52:25 +05:30
vishnukvmd
004eb310b3 Prepare for F-Droid 2024-03-13 13:43:46 +05:30
1599 changed files with 75315 additions and 28600 deletions

View File

@@ -26,6 +26,20 @@ body:
label: Version
description: The version can be seen at the bottom of settings.
placeholder: e.g. v1.2.3
- type: input
attributes:
label: Last working version
description: >
The version where the feature was last known to be working. It is
fine if you don't remember the exact version (mention roughly
then), but if there just isn't a last known working version, then
it is likely that what is being reported is not an issue but a
feature request. The difference between the two categories is not
just semantic - feature requests use GitHub discussions and so can
be [upvoted by the
community](https://github.com/ente-io/ente/discussions/categories/feature-requests)
(issues can't be).
placeholder: e.g. v1.2.3
- type: dropdown
attributes:
label: What product are you using?

View File

@@ -9,6 +9,10 @@ on:
# Or the workflow itself is changed
- ".github/workflows/auth-crowdin.yml"
permissions:
contents: write
pull-requests: write
jobs:
push-sources-to-crowdin:
runs-on: ubuntu-latest

View File

@@ -8,6 +8,10 @@ on:
# Also allow manually running the workflow.
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
synchronize-with-crowdin:
runs-on: ubuntu-latest

View File

@@ -6,6 +6,9 @@ on:
env:
FLUTTER_VERSION: "3.24.3"
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest

View File

@@ -10,6 +10,9 @@ on:
env:
FLUTTER_VERSION: "3.24.3"
permissions:
contents: read
jobs:
lint:
runs-on: ubuntu-latest
@@ -30,7 +33,7 @@ jobs:
exit 1
fi
done
- name: Verify all icons are less than 20KB
run: |
find assets/custom-icons -type f -name "*.svg" | while read -r file; do

View File

@@ -31,9 +31,12 @@ on:
env:
FLUTTER_VERSION: "3.24.3"
permissions:
contents: write
jobs:
build-ubuntu:
runs-on: ubuntu-20.04
build-linux-latest:
runs-on: ubuntu-22.04
defaults:
run:
@@ -80,7 +83,7 @@ jobs:
# disable this step if release tag contains nightly or beta
if: startsWith(github.ref, 'refs/tags/auth-v') && !contains(github.ref, 'nightly') && !contains(github.ref, 'beta')
run: |
flutter build appbundle --release --flavor playstore --dart-define=app.flavor=playstore
flutter build appbundle --release --flavor playstore --dart-define=app.flavor=playstore --dart-define=cronetHttpNoPlay=true
env:
SIGNING_KEY_PATH: "/home/runner/work/_temp/keystore/ente_auth_key.jks"
SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }}
@@ -90,22 +93,33 @@ 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 libtiff5 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
- name: Generate checksums
run: |
sha256sum artifacts/ente-* > artifacts/sha256sum-apk-deb
sha256sum artifacts/ente-auth-*.apk >> artifacts/sha256sum-apk
sha256sum artifacts/ente-auth-*.deb artifacts/ente-auth-*.rpm artifacts/ente-auth-*.AppImage >> artifacts/sha256sum-linux
- name: Create a draft GitHub release
uses: ncipollo/release-action@v1
@@ -125,67 +139,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 +166,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

@@ -12,6 +12,10 @@ on:
tags:
- "cli-v*"
permissions:
contents: write
packages: write
jobs:
draft-release:
runs-on: ubuntu-latest

53
.github/workflows/codeql.yml vendored Normal file
View File

@@ -0,0 +1,53 @@
# The only reason we're making a custom CodeQL configuration is because the
# default setup does not have an option to run daily / weekly instead of per
# push, which is too slow.
#
# In the future, it might become faster. Then just delete this file, and revert
# to the default configuration.
#
# References:
# https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/
name: "CodeQL"
on:
workflow_dispatch: # Allow running manually
schedule:
- cron: "22 1 * * 1"
jobs:
analyze:
name: Analyze (${{ matrix.language }})
runs-on: 'ubuntu-latest'
permissions:
contents: read
# Required for all workflows.
security-events: write
# Required to fetch internal or private CodeQL packs.
packages: read
strategy:
fail-fast: false
matrix:
include:
- language: actions
build-mode: none
- language: go
build-mode: autobuild
- language: javascript-typescript
build-mode: none
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"

View File

@@ -3,6 +3,9 @@ name: "Release (copycat-db)"
on:
workflow_dispatch: # Run manually
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest

View File

@@ -7,6 +7,9 @@ on:
- "desktop/**"
- ".github/workflows/desktop-lint.yml"
permissions:
contents: read
jobs:
lint:
runs-on: ubuntu-latest
@@ -20,7 +23,7 @@ jobs:
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
cache: "yarn"
cache-dependency-path: "desktop/yarn.lock"

View File

@@ -10,6 +10,9 @@ on:
# Also allow manually running the workflow
workflow_dispatch:
permissions:
contents: read
jobs:
deploy:
runs-on: ubuntu-latest
@@ -25,7 +28,7 @@ jobs:
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
cache: "yarn"
cache-dependency-path: "docs/yarn.lock"

View File

@@ -10,6 +10,9 @@ on:
- "docs/**"
- ".github/workflows/docs-verify-build.yml"
permissions:
contents: read
jobs:
verify-build:
runs-on: ubuntu-latest
@@ -25,7 +28,7 @@ jobs:
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
cache: "yarn"
cache-dependency-path: "docs/yarn.lock"

View File

@@ -10,6 +10,9 @@ on:
# Also allow manually running the workflow
workflow_dispatch:
permissions:
contents: read
jobs:
lint:
runs-on: ubuntu-latest
@@ -25,7 +28,7 @@ jobs:
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
cache: "yarn"
cache-dependency-path: "infra/staff/yarn.lock"

View File

@@ -7,6 +7,9 @@ on:
- "infra/staff/**"
- ".github/workflows/infra-deploy-staff.yml"
permissions:
contents: read
jobs:
deploy:
runs-on: ubuntu-latest
@@ -22,7 +25,7 @@ jobs:
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
cache: "yarn"
cache-dependency-path: "infra/staff/yarn.lock"

View File

@@ -9,6 +9,10 @@ on:
# Or the workflow itself is changed
- ".github/workflows/mobile-crowdin.yml"
permissions:
contents: write
pull-requests: write
jobs:
push-sources-to-crowdin:
runs-on: ubuntu-latest

View File

@@ -8,6 +8,10 @@ on:
# Also allow manually running the workflow.
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
synchronize-with-crowdin:
runs-on: ubuntu-latest

View File

@@ -0,0 +1,77 @@
name: "Internal release (photos)"
on:
workflow_dispatch: # Allow manually running the action
env:
FLUTTER_VERSION: "3.24.3"
RUST_VERSION: "1.85.1"
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: mobile
steps:
- name: Checkout code and submodules
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup JDK 17
uses: actions/setup-java@v1
with:
java-version: 17
- name: Install Flutter ${{ env.FLUTTER_VERSION }}
uses: subosito/flutter-action@v2
with:
channel: "stable"
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
- name: Install Rust ${{ env.RUST_VERSION }}
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_VERSION }}
- name: Install Flutter Rust Bridge
run: cargo install flutter_rust_bridge_codegen
- name: Setup keys
uses: timheuer/base64-to-file@v1
with:
fileName: "keystore/ente_photos_key.jks"
encodedString: ${{ secrets.SIGNING_KEY_PHOTOS }}
- name: Build PlayStore AAB
run: |
flutter build appbundle --dart-define=cronetHttpNoPlay=true --release --flavor playstore
env:
SIGNING_KEY_PATH: "/home/runner/work/_temp/keystore/ente_photos_key.jks"
SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS_PHOTOS }}
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD_PHOTOS }}
SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD_PHOTOS }}
- name: Upload AAB to PlayStore
uses: r0adkll/upload-google-play@v1
with:
serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
packageName: io.ente.photos
releaseFiles: mobile/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
track: internal
- name: Notify Discord
uses: sarisia/actions-status-discord@v1
with:
webhook: ${{ secrets.DISCORD_INTERNAL_RELEASE_WEBHOOK }}
nodetail: true
title: "🏆 Internal release available for Photos"
description: "[Download](https://play.google.com/store/apps/details?id=io.ente.photos)"
color: 0x00ff00

View File

@@ -6,6 +6,9 @@ on:
env:
FLUTTER_VERSION: "3.24.3"
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
@@ -54,12 +57,12 @@ jobs:
packageName: io.ente.photos
releaseFiles: mobile/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
track: internal
- name: Notify Discord
uses: sarisia/actions-status-discord@v1
with:
webhook: ${{ secrets.DISCORD_INTERNAL_RELEASE_WEBHOOK }}
nodetail: true
title: "🏆 Internal release available for Photos"
title: "🏆 Internal release Photos (Branch: ${{ github.ref_name }})"
description: "[Download](https://play.google.com/store/apps/details?id=io.ente.photos)"
color: 0x00ff00

View File

@@ -8,9 +8,11 @@ on:
- ".github/workflows/mobile-lint.yml"
env:
FLUTTER_VERSION: "3.24.3"
permissions:
contents: read
jobs:
lint:
runs-on: ubuntu-latest

View File

@@ -11,6 +11,9 @@ on:
env:
FLUTTER_VERSION: "3.24.3"
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest

View File

@@ -7,6 +7,9 @@ on:
- "server/**"
- ".github/workflows/server-lint.yml"
permissions:
contents: read
jobs:
lint:
runs-on: ubuntu-latest

View File

@@ -7,6 +7,10 @@ on:
# Run manually if needed to publish out of schedule.
workflow_dispatch:
permissions:
contents: write # for pushing the `ghcr/server` branch
packages: write
jobs:
publish:
runs-on: ubuntu-latest
@@ -36,6 +40,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

@@ -3,6 +3,9 @@ name: "Release (server)"
on:
workflow_dispatch: # Run manually
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest

View File

@@ -12,6 +12,10 @@ on:
# `gh workflow run web-crowdin-push-both.yml --ref <my-branch>`
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
push-both-to-crowdin:
runs-on: ubuntu-latest

View File

@@ -22,6 +22,15 @@ on:
# Also allow manually running the workflow.
workflow_dispatch:
# "In order to push translations and create pull requests, the Crowdin GitHub
# action requires the `GITHUB_TOKEN` to have write permission on the `contents`
# and `pull-requests`.
#
# - https://github.com/crowdin/github-action?tab=readme-ov-file#permissions
permissions:
contents: write
pull-requests: write
jobs:
synchronize-with-crowdin:
runs-on: ubuntu-latest

View File

@@ -15,6 +15,9 @@ on:
- "payments"
- "photos"
permissions:
contents: read
jobs:
deploy:
runs-on: ubuntu-latest
@@ -30,7 +33,7 @@ jobs:
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
cache: "yarn"
cache-dependency-path: "web/yarn.lock"

View File

@@ -15,6 +15,9 @@ on:
- "payments"
- "photos"
permissions:
contents: read
jobs:
deploy:
runs-on: ubuntu-latest
@@ -30,7 +33,7 @@ jobs:
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
cache: "yarn"
cache-dependency-path: "web/yarn.lock"

View File

@@ -11,6 +11,9 @@ on:
# Also allow manually running the workflow
workflow_dispatch:
permissions:
contents: read
jobs:
deploy:
runs-on: ubuntu-latest
@@ -38,7 +41,7 @@ jobs:
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
cache: "yarn"
cache-dependency-path: "web/yarn.lock"

View File

@@ -19,6 +19,9 @@ on:
# Also allow manually running the workflow
workflow_dispatch:
permissions:
contents: read
jobs:
deploy:
runs-on: ubuntu-latest
@@ -34,7 +37,7 @@ jobs:
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
cache: "yarn"
cache-dependency-path: "web/yarn.lock"

View File

@@ -7,6 +7,9 @@ on:
- "web/**"
- ".github/workflows/web-lint.yml"
permissions:
contents: read
# Cancel in-progress lint runs when a new commit is pushed.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
@@ -25,7 +28,7 @@ jobs:
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
cache: "yarn"
cache-dependency-path: "web/yarn.lock"

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

@@ -0,0 +1,38 @@
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:
permissions:
contents: write # for pushing the `ghcr/web` branch
packages: write
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

3
.gitmodules vendored
View File

@@ -9,3 +9,6 @@
[submodule "auth/assets/simple-icons"]
path = auth/assets/simple-icons
url = https://github.com/simple-icons/simple-icons.git
[submodule "mobile/thirdparty/flutter"]
path = mobile/thirdparty/flutter
url = https://github.com/flutter/flutter.git

View File

@@ -35,7 +35,7 @@ Private sharing. Collaborative albums. Family plans. Easy import, easier export.
Background uploads. The list goes on. And of course, all of this, while being
fully end-to-end encrypted across platforms.
Ente Photos is a paid service, but we offer 5GB of free storage.
Ente Photos is a paid service, but we offer 10GB of free storage.
You can also clone this repository and choose to self-host.
<br />

3
auth/.fvmrc Normal file
View File

@@ -0,0 +1,3 @@
{
"flutter": "3.24.3"
}

5
auth/.gitignore vendored
View File

@@ -41,4 +41,7 @@ lib/generated_plugin_registrant.dart
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
android/key.properties
dist/
dist/
# FVM Version Cache
.fvm/

View File

@@ -5,6 +5,8 @@ gradle-wrapper.jar
/gradlew.bat
/local.properties
GeneratedPluginRegistrant.java
/app/.cxx/
/.kotlin/
# Remember to never publicly share your keystore.
# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

View File

@@ -1,6 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
<monochrome android:drawable="@drawable/ic_launcher_foreground"/>
<foreground>
<inset
android:drawable="@drawable/ic_launcher_foreground"
android:inset="0%" />
</foreground>
<monochrome>
<inset
android:drawable="@drawable/ic_launcher_monochrome"
android:inset="0%" />
</monochrome>
</adaptive-icon>

View File

@@ -43,7 +43,13 @@
"title": "Anycoin Direct",
"slug": "anycoindirect"
},
{
{
"title": "AR24",
"altNames": [
"Docaposte AR24"
]
},
{
"title": "Aruba",
"slug": "aruba",
"hex": "ef8a33"
@@ -132,6 +138,14 @@
"Binance US"
]
},
{
"title": "Bitazza",
"slug": "bitazza"
},
{
"title": "Bitkub",
"slug": "bitkub"
},
{
"title": "Bitfinex"
},
@@ -183,6 +197,11 @@
"title": "Bluesky",
"slug": "blue_sky"
},
{
"title": "bonify",
"slug": "bonify",
"altNames": ["bonify.de"]
},
{
"title": "Booking",
"altNames": [
@@ -208,6 +227,13 @@
{
"title": "Bugzilla"
},
{
"title": "Bundesagentur für Arbeit",
"slug": "bundesagentur_fur_arbeit",
"altNames": [
"Agentur für Arbeit"
]
},
{
"title": "ButterflyMX",
"slug": "butterflymx"
@@ -285,6 +311,19 @@
"title": "CSGORoll",
"slug": "csgoroll"
},
{
"title": "Cryptee",
"slug": "cryptee"
},
{
"title": "Cwallet",
"altNames": [
"cwallet",
"c-wallet",
"c wallet",
"cwallet.com"
]
},
{
"title": "DCS",
"altNames": [
@@ -376,6 +415,13 @@
],
"hex": "858585"
},
{
"title": "Fanatical",
"slug": "fanatical",
"altNames": [
"FANATICAL"
]
},
{
"title": "Fastmail"
},
@@ -401,10 +447,16 @@
"title": "Finanzfluss",
"slug": "finanzfluss"
},
{
"title": "Finary"
},
{
"title": "Firefox",
"slug": "mozilla"
},
{
"title": "fortrabbit"
},
{
"title": "ForUsAll"
},
@@ -499,12 +551,19 @@
"slug": "id_me"
},
{
"title": "Infomaniak"
"title": "ImmoScout24",
"slug": "immo_scout_24",
"altNames": [
"ImmobilienScout24"
]
},
{
"title": "Impact.com",
"slug": "impact"
},
{
"title": "Infomaniak"
},
{
"title": "ING"
},
@@ -606,8 +665,7 @@
},
{
"title": "LinkedIn",
"slug": "linkedin",
"hex": "2596be"
"slug": "linkedin"
},
{
"title": "Linux.Do",
@@ -658,6 +716,14 @@
"mathworks"
]
},
{
"title": "Mbin",
"altNames": [
"kbin",
"thebrainbin",
"gehirneimer"
]
},
{
"title": "Mercado Livre",
"slug": "mercado_livre",
@@ -686,6 +752,7 @@
{
"title": "Mistral",
"altNames": [
"Le Chat",
"Mistral AI",
"MistralAI"
]
@@ -830,11 +897,15 @@
"欧易"
]
},
{
{
"title": "OnShape",
"slug": "onshape",
"hex": "7abb5e"
},
{
"title": "Oracle Cloud",
"slug": "oracle_cloud"
},
{
"title": "Parqet",
"slug": "parqet"
@@ -842,6 +913,10 @@
{
"title": "Parsec"
},
{
"title": "Patient Access",
"slug": "patient_access"
},
{
"title": "PayPal"
},
@@ -867,6 +942,10 @@
{
"title": "Pingvin Share"
},
{
"title": "Pionex",
"slug": "pionex"
},
{
"title": "Plutus",
"hex": "DEC685"
@@ -880,6 +959,13 @@
{
"title": "PostNL"
},
{
"title": "Postmark",
"slug": "postmarkapp",
"altNames": [
"postmarkapp"
]
},
{
"title": "PostScan Mail",
"slug": "postscanmail",
@@ -939,11 +1025,20 @@
"title": "RealMe",
"slug": "realme"
},
{
{
"title": "RealVNC",
"slug": "realvnc",
"hex": "488aec"
},
{
"title": "RedotPay",
"altNames": [
"redotpay",
"redot pay",
"redot-pay",
"redotpay.com"
]
},
{
"title": "Registro br",
"slug": "registro_br",
@@ -1284,4 +1379,4 @@
"title": "CoinSpot"
}
]
}
}

View File

@@ -0,0 +1,6 @@
<svg width="500" height="500" viewBox="0 0 500 500" fill="#0000FF" xmlns="http://www.w3.org/2000/svg">
<path d="M139.63 306.55H125.64C123.41 306.55 121.53 306.5 119.99 306.39C118.45 306.28 117.13 305.99 116.01 305.51C114.9 305.04 113.92 304.32 113.08 303.36C112.22 302.41 111.38 301.09 110.53 299.39L103.85 286.35H35.47L25.29 306.55H0L58.37 194.11H81.26L139.63 306.55ZM93.2 265.36L69.66 218.6L46.12 265.36H93.2Z"/>
<path d="M265.23 306.55H245.67C241.96 306.55 238.93 306.07 236.6 305.12C234.27 304.16 232.31 302.68 230.72 300.67L206.17 270.76H177.48V306.55H153.95V195.23C156.92 195.12 160.16 195.04 163.66 194.99C167.17 194.93 170.77 194.86 174.5 194.75C178.21 194.64 181.92 194.57 185.64 194.51C189.36 194.46 192.86 194.43 196.15 194.43C209.74 194.43 220.97 195.41 229.84 197.37C238.71 199.34 246 202.91 251.74 208.1C258.11 214.04 261.3 222.1 261.3 232.28C261.3 237.37 260.61 241.85 259.23 245.72C257.84 249.59 255.88 252.96 253.33 255.81C250.78 258.68 247.7 261.09 244.09 263.05C240.49 265.02 236.45 266.63 231.99 267.9L265.23 306.55ZM196.25 250.25C199.75 250.25 203.27 250.22 206.82 250.17C210.38 250.12 213.74 249.88 216.93 249.45C220.1 249.03 223.02 248.36 225.67 247.46C228.32 246.55 230.5 245.24 232.19 243.54C233.67 241.94 234.82 240.29 235.61 238.59C236.4 236.89 236.81 234.7 236.81 232.03C236.81 230.23 236.45 228.47 235.77 226.77C235.08 225.06 234.15 223.62 232.99 222.45C231.4 220.85 229.44 219.6 227.11 218.7C224.77 217.79 222.1 217.12 219.07 216.7C216.05 216.27 212.63 216.03 208.81 215.98C205 215.93 200.81 215.9 196.25 215.9H187.18C183.58 215.9 180.34 215.95 177.48 216.06V250.1C180.34 250.2 183.58 250.25 187.18 250.25H196.25Z"/>
<path d="M324.59 213.35C318.34 213.35 312.61 215.03 307.41 218.37C302.22 221.7 297.93 225.65 294.54 230.22L276.09 217.97C282.13 210.65 289.36 204.66 297.79 200C306.22 195.33 315.47 193 325.55 193C332.33 193 338.53 193.87 344.15 195.62C349.77 197.37 354.59 199.84 358.63 203.02C362.65 206.2 365.78 210.07 368.01 214.63C370.23 219.19 371.35 224.27 371.35 229.89C371.35 235.2 370.36 239.86 368.4 243.89C366.44 247.92 363.85 251.6 360.61 254.94C357.38 258.28 353.69 261.38 349.56 264.25C345.42 267.11 341.18 269.97 336.84 272.84L317.27 285.72H370.87V306.55H279.42V286.04L318.39 260.27C322.2 257.73 325.86 255.32 329.36 253.03C332.86 250.76 335.93 248.42 338.58 246.04C341.24 243.65 343.35 241.13 344.95 238.48C346.54 235.83 347.33 232.91 347.33 229.74C347.33 227.41 346.72 225.23 345.5 223.22C344.28 221.2 342.64 219.45 340.57 217.97C338.51 216.49 336.09 215.35 333.34 214.55C330.58 213.75 327.66 213.35 324.59 213.35Z"/>
<path d="M457.22 306.55V283.49H388.84V259.95L455.47 195.23H480.12V263.77H500V283.49H480.12V306.55L457.22 306.55ZM413.17 263.77H457.22V220.35L413.17 263.77Z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -1 +1,20 @@
<?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>
<?xml version='1.0' encoding='utf-8'?>
<svg xmlns="http://www.w3.org/2000/svg" id="a" viewBox="0 0 150 150">
<defs>
<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" d="M0,0H150V150H0V0Z" fill="none" />
</g>
<path
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"
fill="url(#d)" />
<path
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"
fill="#2a54ff" />
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,28 @@
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="836.84424" height="914.80933">
<defs>
<clipPath id="a">
<path stroke-linecap="round" d="M-186.41-125.66h372.816v351.267H-186.41Z"/>
</clipPath>
<clipPath id="b">
<path stroke-linecap="round" d="M-186.41-95.22h372.816v351.267H-186.41Z"/>
</clipPath>
<clipPath id="c">
<path stroke-linecap="round" d="M-160.08-140.83h372.816v351.267H-160.08Z"/>
</clipPath>
<clipPath id="d">
<path stroke-linecap="round" d="M-212.74-140.83h372.816v351.267H-212.74Z"/>
</clipPath>
</defs>
<g clip-path="url(#a)" transform="translate(418.40805 457.4024)scale(3.64)">
<path d="m298.246 129.84-6.486-4.585 6.486-4.586c12.26215-8.68661 19.24883-23.025924 18.53269-38.036075-.71613-15.010151-9.03624-28.619172-22.06969-36.098925l-.568-.349c-12.19994-7.033047-27.02434-7.819595-39.9-2.117l-7.053 3.144-.83-7.687c-1.51376-14.021838-9.62342-26.481265-21.832-33.542l-.2-.087C217.64616 2.0246361 210.0606-.00958995 202.34 0c-8.04957.00100343-15.94637 2.1978633-22.84 6.354l-1.114.677c-11.58345 7.090871-19.28369 19.094034-20.9 32.579l-.917 7.6-6.967-3.1c-12.8836-5.747507-27.74063-4.976398-39.96 2.074l-.7.394c-13.604075 7.890873-21.986349 22.420072-22.008 38.147v.787c.02516 14.283035 6.954274 27.67261 18.6 35.942L112 126.04l-6.463 4.586c-12.260313 8.67436-19.255033 22.99852-18.556462 38.00091.698572 15.00239 8.994121 28.61458 22.007462 36.11209l.633.393c12.22088 7.0137 27.04998 7.79342 39.939 2.1l7.054-3.123.807 7.687c1.51242 13.97659 9.57745 26.40246 21.727 33.475l.284.153c13.92748 8.0385 31.12909 7.84683 44.874-.5l1.092-.655c11.59433-7.07976 19.29833-19.08878 20.9-32.579l.9-7.6 6.987 3.123c12.9143 5.73028 27.78955 4.94317 40.027-2.118l.611-.372c13.60439-7.88085 21.98922-22.40383 22.012-38.126v-.808c-.0274-14.27871-6.94846-27.66532-18.583-35.943M292 166.591c-.0145 6.86067-3.67326 13.19693-9.608 16.639l-.654.394c-5.96032 3.4063-13.27768 3.4063-19.238 0l-17.884-10.351-22.841 13.211v20.133c-.0194 6.70609-3.51599 12.92214-9.237 16.421l-1.114.677c-5.99641 3.62641-13.48927 3.70989-19.565.218l-.24-.153c-5.94051-3.43919-9.60731-9.7748-9.63-16.639v-20.657l-22.841-13.211-17.884 10.351c-5.9447 3.40734-13.2503 3.40734-19.195 0l-.677-.415c-5.92257-3.40301-9.59053-9.69703-9.63171-16.52753-.0412-6.83049 3.5506-13.16829 9.43171-16.64247l18.648-11.027-.153-26.313-18.3-10.569c-5.94649-3.42296-9.61685-9.756715-9.63-16.618v-.787c.0184-6.865358 3.68634-13.20295 9.63-16.639l.655-.415c5.9528-3.406398 13.2642-3.406398 19.217 0l17.884 10.351 22.841-13.189V44.7c.0433-6.705114 3.54343-12.913272 9.258-16.421l1.114-.677c5.98556-3.637575 13.47843-3.721536 19.544-.219l.24.131c5.95616 3.434267 9.62726 9.785677 9.63 16.661v20.658l22.841 13.189L262.5 67.671c5.96032-3.406299 13.27768-3.406299 19.238 0l.654.415c5.91101 3.411809 9.56893 9.702792 9.61008 16.527659.0412 6.824866-3.54064 13.159502-9.41008 16.642341l-18.67 11.027.153 26.313 18.321 10.569c5.93573 3.43032 9.59519 9.76235 9.604 16.618z" style="opacity:1;fill:#10f48b;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" transform="translate(-201.88 -125.66)" vector-effect="non-scaling-stroke"/>
</g>
<g clip-path="url(#b)" transform="translate(418.40805 346.6008)scale(3.64)">
<path d="m255.89 111.218-37.166 21.432-37.165-21.432 37.165-21.463Z" style="opacity:1;fill:#10f48b;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" transform="translate(-218.72 -111.2)" vector-effect="non-scaling-stroke"/>
</g>
<g clip-path="url(#c)" transform="translate(322.56685 512.6212)scale(3.64)">
<path d="M209.3 153.613v42.927l-37.166-21.463v-42.9z" style="opacity:1;fill:#10f48b;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" transform="translate(-190.72 -164.36)" vector-effect="non-scaling-stroke"/>
</g>
<g clip-path="url(#d)" transform="translate(514.24925 512.6212)scale(3.64)">
<path d="M273.357 132.181v42.9l-37.166 21.459v-42.927z" style="opacity:1;fill:#10f48b;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" transform="translate(-254.77 -164.36)" vector-effect="non-scaling-stroke"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@@ -0,0 +1 @@
<svg viewBox="0 0 245.73 156" xmlns="http://www.w3.org/2000/svg"><g fill="#4cba64"><path d="m167.87 0a23.32 23.32 0 0 0 0 33l44.89 44.9-45 45-22.89-22.9a23.34 23.34 0 0 0 -33 0l55.86 55.87 78-78z"/><circle cx="167.87" cy="78" r="16"/><path d="m77.87 156a23.34 23.34 0 0 0 0-33l-44.87-44.9 45-45 22.87 22.9a23.34 23.34 0 0 0 33 0l-55.87-55.87-78 78z"/><circle cx="77.87" cy="78" r="16"/></g></svg>

After

Width:  |  Height:  |  Size: 396 B

View File

@@ -0,0 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<defs>
<linearGradient id="a" x1="186.97" x2="45.7" y1="96.04" y2="96.04"
gradientTransform="matrix(1 0 0 -1 0 150.11)" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#165cc3" />
<stop offset="1" stop-color="#3ddabb" />
</linearGradient>
</defs>
<path
d="M111.63 75.01c.06.86.08 1.72.08 2.59 0 20.52-16.62 37.16-37.14 37.16S37.41 98.14 37.41 77.62s16.62-37.16 37.14-37.16h.02c1.61 0 3.22.1 4.82.32l12.7-17.11C62.3 14 30.31 30.3 20.63 60.09s6.62 61.78 36.41 71.47c29.79 9.68 61.78-6.62 71.47-36.41 4.29-13.2 3.59-27.52-1.97-40.24l-14.9 20.11Z"
style="fill:#EFEFEF; mix-blend-mode: difference" />
<path d="M120.26 4.82 74.49 66.53 62.93 53.99l-17.26 15.9 30.73 33.43 73.1-98.5z"
style="fill:url(#a)" />
</svg>

After

Width:  |  Height:  |  Size: 876 B

View File

@@ -0,0 +1,8 @@
<?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">
<!-- Created with Inkscape (http://www.inkscape.org/) by Marsupilami -->
<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" version="1.1" width="768" height="768" viewBox="-4.3240767 -4.3240767 152.8084434 152.7840434" id="svg7076">
<defs id="defs7078"/>
<path d="M 0,72.07202 C 0,32.27318 32.2935,0 72.08013,0 c 39.78662,0 72.08017,32.27318 72.08017,72.07202 0,39.80291 -32.29355,72.06387 -72.08017,72.06387 -17.63317,0 -33.75958,-6.32434 -46.30232,-16.82687 11.769,-19.46163 46.13944,-77.28864 46.13944,-77.28864 l 17.0223,28.5022 c 0,0 -8.95912,0.0448 -17.06303,0 -8.14464,-0.0448 -10.46588,1.7063 -14.00878,7.11027 -2.9321,4.4877 -9.85505,16.21193 -10.01793,16.42776 -0.81448,1.29093 -0.3258,2.54114 1.58818,2.54114 l 55.18001,0 28.01759,0 c 1.66968,0 2.64704,-1.16875 1.58822,-2.6226 L 73.34255,2.43932 c -0.81447,-1.37236 -2.11759,-1.25021 -2.85061,0 L 8.4704,105.97411 C 3.09495,95.87068 0,84.32969 0,72.07202" id="path8406" style="fill:#ec1c23;fill-rule:nonzero;stroke:none"/>
</svg>
<!-- version: 20110311, original size: 144.16029 144.13589, border: 3% -->

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1,130 +1,59 @@
<?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>
<svg xml:space="preserve" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" id="Layer_1" x="0" y="0" version="1.1"
viewBox="0 0 30 30">
<path d="M14.4 29.5h.4z" fill="#c5c8ca" />
<path fill="#9da4a8" d="M15.3 29.5h.1zc-.1 0 0 0 0 0" />
<path fill="#b7bbbd" d="M15.3 29.5h-.2z" />
<path d="M14.1 29.5h.2z" fill="#c5c8ca" />
<path fill="#bbbfc2" d="M13.9 29.5s.1 0 0 0h.2z" />
<path fill="#cacdce" d="M13.6 29.5h.1z" />
<path fill="#bfc3c5" d="M13.7 29.5q.15 0 0 0h.1z" />
<path fill="#bcc0c2" d="M13.3 29.4q.15 0 0 0" />
<path fill="#bdc1c4" d="M13.4 29.5c0-.1.1-.1 0 0q.15-.15 0 0m-.3-.1" />
<path fill="#c7cacc" d="M13.2 29.4q.15 0 0 0" />
<linearGradient id="SVGID_1_" x1="21.8812" x2="8.2545" y1="-88.078" y2="-104.6955" gradientTransform="matrix(1 0 0 -1 0 -81.48)" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#020037" />
<stop offset="1" stop-color="#050f62" />
</linearGradient>
<path fill="url(#SVGID_1_)" d="M15 .4C11.1.4 7.5 2 4.7 4.7 2 7.4.5 11.1.5 15q0 2.55.9 5.1h.8c2.9 0 5.8.9 8.2 2.6s4.2 4.1 5.1 6.9c3.8-.1 7.4-1.7 10-4.4s4.1-6.4 4.1-10.1c0-3.9-1.5-7.6-4.3-10.3C22.6 2 18.9.4 15 .4" />
<path fill="#fff" d="M20.7 22.5c0 .4.1.8.3 1s.6.3 1 .3c-.4 0-.7.1-1 .3-.2.2-.3.6-.3 1 0-.4-.1-.7-.3-1-.2-.2-.6-.3-1-.3.4 0 .7-.1 1-.3s.3-.6.3-1m-13.8-7c0 .4.1.8.3 1s.6.3 1 .3c-.4 0-.7.1-1 .3-.2.2-.3.6-.3 1 0-.4-.1-.7-.3-1-.2-.2-.6-.3-1-.3.4 0 .7-.1 1-.3.2-.3.3-.6.3-1m3.7-11.4q.15 0 0 0c0 .3.1.5.3.7s.4.3.7.2c-.3 0-.5.1-.7.2-.2.2-.3.4-.2.7 0-.3-.1-.5-.2-.7-.3-.1-.5-.2-.8-.1.3-.1.5-.1.7-.3s.3-.5.2-.7" />
<linearGradient id="SVGID_00000173122186048074043340000017421439166240502921_" x1="19.2457" x2="22.9553" y1="-89.3156" y2="-91.7188" gradientTransform="matrix(1 0 0 -1 0 -81.48)" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#e5e5e5" />
<stop offset="1" stop-color="#b7b8c1" />
</linearGradient>
<path fill="url(#SVGID_00000173122186048074043340000017421439166240502921_)" d="M21.8 1.2c-1.4.7-3 1.9-4.4 4.2-2.5 3.9-3.2 7.4-3.2 7.4L16 14l.3.2 1.9 1.2s2.9-2 5.4-5.9c1.5-2.3 2-4.3 2-5.8-.8-.1-1.5-.4-2.2-.8-.6-.4-1.2-1-1.6-1.7" />
<linearGradient id="SVGID_00000127763695479642710240000017533313096818365313_" x1="21.2378" x2="19.0472" y1="-99.9826" y2="-97.8815" gradientTransform="matrix(1 0 0 -1 0 -81.48)" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#ec4f4f" />
<stop offset="1" stop-color="#a91919" />
</linearGradient>
<path fill="url(#SVGID_00000127763695479642710240000017533313096818365313_)" d="M20.8 16.8c.9-1.4.3-3.2 0-3.8-.7.8-1.5 1.5-2.3 2.1.1.4.3.8.3 1.2 0 .1 0 .2-.1.3-.4.6-.8 1.3-1.1 2-.1.1-.1.2-.1.3-.1.2-.1.3 0 .5 0 .3.2.5.3.8l.1.1c.1 0 .1.1.2.1s.1 0 .2-.1.3-.2.4-.4c.8-.9 1.1-1.4 2.1-3.1" />
<linearGradient id="SVGID_00000060717637781723915790000002744012061535479481_" x1="11.3158" x2="14.8122" y1="-99.2586" y2="-101.5237" gradientTransform="matrix(1 0 0 -1 0 -81.48)" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#f2a518" />
<stop offset="1" stop-color="#f4e23e" />
</linearGradient>
<path fill="url(#SVGID_00000060717637781723915790000002744012061535479481_)" d="m15.1 15.7-1.7-1.1c-2 3.1-3.3 7-2.4 7.5.9.6 3.9-2.2 5.9-5.3z" />
<linearGradient id="SVGID_00000070084874335106853820000008402293642909580433_" x1="-4386.2534" x2="-4497.9517" y1="747.6443" y2="769.0099" gradientTransform="matrix(1 0 0 -1 0 -81.48)" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#ec4f4f" />
<stop offset="1" stop-color="#a91919" />
</linearGradient>
<path fill="url(#SVGID_00000070084874335106853820000008402293642909580433_)" d="M15.2 9.5c-.7-.1-2.5.1-3.4 1.5-1.1 1.6-1.5 2.1-2 3.2-.1.2-.1.3-.2.5v.2c0 .1.1.1.1.1s.1 0 .2.1c.3.1.6 0 .8 0s.3-.1.4-.2l.3-.3c.5-.6.9-1.2 1.3-1.8.1-.1.2-.2.3-.2.4-.1.8-.1 1.2-.2.3-1 .6-2 1-2.9" />
<path fill="#df3030" d="M25 .6c-.2-.1-1.5-.2-3.2.7.4.7 1 1.2 1.6 1.7.7.4 1.4.7 2.2.8.1-1.9-.5-3.1-.6-3.2m-6.6 14.9L14 12.7h-.2l-.9 1.4v.2l4.4 2.8h.2l.9-1.4z" />
<linearGradient id="SVGID_00000044894753735506851200000013592864944465274029_" x1="14.9436" x2="16.3716" y1="-95.9217" y2="-96.8468" gradientTransform="matrix(1 0 0 -1 0 -81.48)" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#b71e1e" />
<stop offset=".44" stop-color="#df3030" />
<stop offset="1" stop-color="#c51d1d" />
</linearGradient>
<path fill="url(#SVGID_00000044894753735506851200000013592864944465274029_)" d="M17.8 11.6c-.4-.2-2.1 1.6-3.2 3.3-.8 1.2-1.4 3-1.1 3.2.4.2 1.7-1 2.5-2.3 1.1-1.6 2.1-3.9 1.8-4.2" />
<path fill="#17181c" d="M21.2 8.6c1.3 0 2.3-1 2.3-2.3S22.5 4 21.2 4s-2.3 1-2.3 2.3 1.1 2.3 2.3 2.3" />
<linearGradient id="SVGID_00000090987122570624474440000002432161440392897685_" x1="20.068" x2="22.3556" y1="-87.0655" y2="-88.5473" gradientTransform="matrix(1 0 0 -1 0 -81.48)" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#ced1ec" />
<stop offset="1" stop-color="#fff" />
</linearGradient>
<path fill="url(#SVGID_00000090987122570624474440000002432161440392897685_)" d="M21.2 7.7c.8 0 1.4-.6 1.4-1.4S22 5 21.2 5s-1.4.6-1.4 1.4.7 1.3 1.4 1.3" />
<linearGradient id="SVGID_00000044151119195171880090000016489263670362291109_" x1="14.4192" x2="2.0973" y1="-110.4727" y2="-101.7197" gradientTransform="matrix(1 0 0 -1 0 -81.48)" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#b7b7bd" />
<stop offset=".68" stop-color="#efefef" />
</linearGradient>
<path fill="url(#SVGID_00000044151119195171880090000016489263670362291109_)" d="M2.1 20h-.8c1 2.8 2.9 5.2 5.3 6.9s5.3 2.6 8.3 2.6h.4c-.9-2.8-2.7-5.2-5.1-6.9C7.9 20.9 5.1 20 2.1 20" />
</svg>

Before

Width:  |  Height:  |  Size: 9.2 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@@ -0,0 +1 @@
<svg width="1400" height="1400" xmlns="http://www.w3.org/2000/svg"><path d="M699.914 0C1004.659 0 1263.915 194.786 1360 466.662l-399.246-.003C896.674 395.059 803.556 350 699.914 350c-193.276 0-349.957 156.7-349.957 350s156.681 350 349.957 350c103.641 0 196.76-45.059 260.84-116.658L1360 933.34C1263.915 1205.214 1004.659 1400 699.914 1400 313.362 1400 0 1086.6 0 700S313.362 0 699.914 0zm347.087 747.002L1398 747a696.274 696.274 0 0 1-12.453 93H1021a345.75 345.75 0 0 0 26.001-92.998zM1385.547 560A696.301 696.301 0 0 1 1398 653l-351-.002A345.762 345.762 0 0 0 1021 560h364.547z" fill-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 608 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 399.76401 400"
preserveAspectRatio="xMinYMid"
aria-labelledby="navbar-fanatical-logo"
version="1.1"
id="svg2"
sodipodi:docname="Untitled.svg"
width="399.76401"
height="400"
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs2" />
<sodipodi:namedview
id="namedview2"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="0.69295302"
inkscape:cx="205.64165"
inkscape:cy="207.08475"
inkscape:window-width="1920"
inkscape:window-height="938"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<g
fill="none"
id="g2">
<path
fill="#ff9800"
d="m 2.8756,166.0056 h 284.671 a 2.9981,2.9981 0 0 0 2.7221,-1.7424 l 25.8632,-56.0452 c 0.6946,-1.504 0.0391,-3.2867 -1.464,-3.9817 a 2.9968,2.9968 0 0 0 -1.258,-0.2767 L 24.4917,103.9952 C 58.4482,42.0187 124.261,0 199.882,0 c 110.3917,0 199.882,89.543 199.882,200 0,110.457 -89.4903,200 -199.882,200 C 89.4902,400 0,310.457 0,200 0,188.412 0.985,177.054 2.8756,166.0056 Z M 125.9256,328 c 0,2.2091 1.7898,4 3.9977,4 h 5.1722 l 62.8312,-79.0111 h 49.4291 a 2.9981,2.9981 0 0 0 2.722,-1.7422 l 25.835,-55.976 a 3.0015,3.0015 0 0 0 0.2761,-1.2577 c 0,-1.6569 -1.3423,-3 -2.9982,-3 H 125.9257 V 328 Z"
id="path1" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -0,0 +1,3 @@
<svg width="500" height="500" viewBox="0 0 500 500" fill="#F1C086" xmlns="http://www.w3.org/2000/svg">
<path d="M166.67 62C74.62 62 0 136.62 0 228.67H333.33C425.38 228.67 500 154.05 500 62H166.67ZM166.67 270.33C74.62 270.33 0 344.95 0 437H154.76C246.81 437 321.43 362.38 321.43 270.33H166.67Z"/>
</svg>

After

Width:  |  Height:  |  Size: 302 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300"><path d="M115 144c0 6-2 12-7 16s-9 7-16 7-11-3-16-7-6-10-6-16 2-12 6-16 10-7 16-7 12 3 16 7c5 5 7 10 7 16zm71-23-8 38-7 34a63 63 0 0 1-36 42c-5 2-11 3-17 3s-10 0-14-2l-7-4c-2-1-4-3-4-5l-1-6c0-4 1-7 3-9s6-4 10-4l9 2c3 1 4 4 6 6l4 8 3 7c3-3 5-7 7-13l7-22 16-75h-18l2-9h18l1-7c1-6 4-11 7-17s7-10 12-14c4-4 10-8 16-10s11-4 17-4l13 1 8 4 4 6 1 6a15 15 0 0 1-3 8l-4 4-7 1-8-2-6-6-4-8-3-7c-3 3-5 7-7 12l-6 23-2 10h22l-2 9h-22z"/></svg>

After

Width:  |  Height:  |  Size: 491 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -1,4 +1,5 @@
<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>
<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"
fill="#ffffff" style="mix-blend-mode: difference;" />
</svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg width="320" height="320" viewBox="0 0 320 320" version="1.1" id="svg1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
<defs id="defs1">
<linearGradient xlink:href="#linearGradient8" id="linearGradient9" x1="105.88936" y1="-7.966506" x2="153.52075" y2="74.533493" gradientUnits="userSpaceOnUse"/>
<linearGradient id="linearGradient8">
<stop style="stop-color:#2de2e6;stop-opacity:1;" offset="0" id="stop8"/>
<stop style="stop-color:#3399ff;stop-opacity:1;" offset="1" id="stop11"/>
</linearGradient>
<linearGradient xlink:href="#linearGradient6" id="linearGradient7" x1="97.229103" y1="82.033493" x2="97.229103" y2="107.03349" gradientUnits="userSpaceOnUse"/>
<linearGradient id="linearGradient6">
<stop style="stop-color:#f623ac;stop-opacity:1;" offset="0" id="stop6"/>
<stop style="stop-color:#f706cf;stop-opacity:1;" offset="1" id="stop7"/>
</linearGradient>
</defs>
<rect style="display:inline;opacity:1;fill:#29144a;fill-opacity:0;stroke:none;stroke-width:4.39823;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" id="rect35" width="323.65826" height="325.41187" x="0" y="-2.7059329"/>
<g id="g1" transform="matrix(0.97092512,0,0,0.95099897,34.423647,35.890832)">
<g id="layer1" style="display:inline;fill:none" transform="matrix(2.12871,0,0,2.0000001,-90.126008,15.218211)">
<path style="display:inline;opacity:1;fill:url(#linearGradient9);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" d="M 92.898977,-25.466506 23.616945,94.53349 a 4.9999999,4.9999999 60 0 0 4.330127,7.5 H 166.51114 a 4.9999996,4.9999996 120 0 0 4.33012,-7.499999 L 101.55923,-25.466506 a 5.0000002,5.0000002 180 0 0 -8.660253,0 z" id="path5" transform="translate(5.8501312,19.942587)"/>
<path id="path1" style="display:inline;opacity:1;fill:#241734;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" d="M 103.61607,27.033498 60.315284,102.0335 H 77.635596 L 90.625831,79.533498 103.61607,102.0335 116.60825,79.533498 129.59849,102.0335 h 17.32031 z m 0,15 10.82666,18.74973 a 7.4997612,7.4997612 90 0 1 0,7.50054 l -10.82666,18.74973 -10.824962,-18.74959 a 7.5008819,7.5008819 90 0 1 0,-7.50082 z" transform="translate(-0.5188027,0.07359983)"/>
<path style="display:inline;opacity:1;fill:url(#linearGradient7);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" d="M 27.947072,102.03349 H 166.51114 a 5.0000006,5.0000006 120 0 0 4.33012,-7.5 l -7.21687,-12.499996 h -40.41452 l -12.99038,-22.5 -12.990386,22.5 -12.990381,-22.5 -12.990381,22.5 H 30.833821 L 23.616945,94.53349 a 5,5 60 0 0 4.330127,7.5 z" id="path6" transform="matrix(1.0011548,0,0,1.0030727,5.7535451,19.687436)"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -1,15 +1,7 @@
<svg width="500" height="500" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg">
<g style="mix-blend-mode:difference">
<path fill-rule="evenodd" clip-rule="evenodd" d="M363.636 23H409.091V477.545H363.636V23ZM0 23H45.4545V477.545H0V23ZM227.273 295.727H181.818V386.636H227.273V295.727ZM272.727 113.909H318.182V204.818H272.727V113.909Z" fill="white"/>
</g>
<path d="M136.364 386.636H45.4545V477.545H136.364V386.636Z" fill="#EA3326"/>
<path d="M500 386.636H409.091V477.545H500V386.636Z" fill="#EA3326"/>
<path d="M136.364 295.727H45.4545V386.636H136.364V295.727Z" fill="#EB5829"/>
<path d="M318.182 295.727H227.273V386.636H318.182V295.727Z" fill="#EB5829"/>
<path d="M500 295.727H409.091V386.636H500V295.727Z" fill="#EB5829"/>
<path d="M136.364 23H45.4545V113.909H136.364V23Z" fill="#F7D046"/>
<path d="M500 23H409.091V113.909H500V23Z" fill="#F7D046"/>
<path d="M227.273 113.909H45.4545V204.818H227.273V113.909Z" fill="#F2A73B"/>
<path d="M500 113.909H318.182V204.818H500V113.909Z" fill="#F2A73B"/>
<path d="M500 204.818H45.4545V295.727H500V204.818Z" fill="#EE792F"/>
</svg>
<svg width="500" height="500" viewBox="0 0 500 500" xmlns="http://www.w3.org/2000/svg">
<path d="M71.41 73H142.83V143.75H71.41V73ZM357.12 73H428.54V143.75H357.12V73Z" fill="#FFD800"/>
<path d="M71.41 143.75H214.25V214.5H71.41V143.75ZM285.7 143.75H428.54V214.5H285.7V143.75Z" fill="#FFAF00"/>
<path d="M71.41 214.5H428.54V285.25H71.41V214.5Z" fill="#FF8205"/>
<path d="M71.41 285.27H142.83V356.02H71.41V285.27ZM214.27 285.27H285.69V356.02H214.27V285.27ZM357.12 285.27H428.54V356.02H357.12V285.27Z" fill="#FA500F"/>
<path d="M0 356.06H214.3V426.82H0V356.06ZM285.7 356.06H500V426.82H285.7V356.06Z" fill="#E10500"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 628 B

View File

@@ -0,0 +1 @@
<svg height="2100" viewBox="0 0 32 21" width="3200" xmlns="http://www.w3.org/2000/svg"><path d="m9.9 20.1c-5.5 0-9.9-4.4-9.9-9.9s4.4-9.9 9.9-9.9h11.6c5.5 0 9.9 4.4 9.9 9.9s-4.4 9.9-9.9 9.9zm11.3-3.5c3.6 0 6.4-2.9 6.4-6.4 0-3.6-2.9-6.4-6.4-6.4h-11c-3.6 0-6.4 2.9-6.4 6.4s2.9 6.4 6.4 6.4z" fill="#c74634"/></svg>

After

Width:  |  Height:  |  Size: 310 B

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 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><defs><path id="A" d="M128 117v6a5 5 0 0 0-5 5h-6a5 5 0 1 0-10 0h-6a5 5 0 1 0-10 0h-6a5 5 0 1 0-10 0h-6a5 5 0 1 0-10 0h-6a5 5 0 1 0-10 0h-6a5 5 0 1 0-10 0h-6a5 5 0 1 0-10 0H5a5 5 0 0 0-5-5v-6a5 5 0 1 0 0-10v-6a5 5 0 0 0 0-10v-6a5 5 0 0 0 0-10v-6a5 5 0 0 0 0-10v-6a5 5 0 0 0 0-10v-6a5 5 0 0 0 0-10v-6a5 5 0 0 0 0-10V5a5 5 0 0 0 5-5h6a5 5 0 0 0 10 0h6a5 5 0 0 0 10 0h6a5 5 0 0 0 10 0h6a5 5 0 0 0 10 0h6a5 5 0 0 0 10 0h6a5 5 0 0 0 10 0h6a5 5 0 1 0 10 0h6a5 5 0 0 0 5 5v6a5 5 0 1 0 0 10v6a5 5 0 1 0 0 10v6a5 5 0 1 0 0 10v6a5 5 0 1 0 0 10v6a5 5 0 1 0 0 10v6a5 5 0 1 0 0 10v6a5 5 0 1 0 0 10z"/><rect id="B" width="96" height="96" x="16" y="16" rx="2"/></defs><g transform="matrix(.492308 0 0 .492308 .492308 .492308)" fill="none" fill-rule="evenodd"><use xlink:href="#A" fill="#f0f0f0"/><path d="M128.5 116.5v7h-.5a4.5 4.5 0 0 0-4.5 4.5v.5h-7v-.5a4.5 4.5 0 0 0-9 0v.5h-7v-.5a4.5 4.5 0 0 0-9 0v.5h-7v-.5a4.5 4.5 0 0 0-9 0v.5h-7v-.5a4.5 4.5 0 0 0-9 0v.5h-7v-.5a4.5 4.5 0 0 0-9 0v.5h-7v-.5a4.5 4.5 0 0 0-9 0v.5h-7v-.5a4.5 4.5 0 0 0-9 0v.5h-7v-.5a4.5 4.5 0 0 0-4.5-4.5h-.5v-7H0a4.5 4.5 0 0 0 0-9h-.5v-7H0a4.5 4.5 0 1 0 0-9h-.5v-7H0a4.5 4.5 0 1 0 0-9h-.5v-7H0a4.5 4.5 0 1 0 0-9h-.5v-7H0a4.5 4.5 0 1 0 0-9h-.5v-7H0a4.5 4.5 0 1 0 0-9h-.5v-7H0a4.5 4.5 0 1 0 0-9h-.5v-7H0A4.5 4.5 0 0 0 4.5 0v-.5h7V0a4.5 4.5 0 1 0 9 0v-.5h7V0a4.5 4.5 0 1 0 9 0v-.5h7V0a4.5 4.5 0 1 0 9 0v-.5h7V0a4.5 4.5 0 1 0 9 0v-.5h7V0a4.5 4.5 0 1 0 9 0v-.5h7V0a4.5 4.5 0 1 0 9 0v-.5h7V0a4.5 4.5 0 0 0 9 0v-.5h7V0a4.5 4.5 0 0 0 4.5 4.5h.5v7h-.5a4.5 4.5 0 0 0 0 9h.5v7h-.5a4.5 4.5 0 0 0 0 9h.5v7h-.5a4.5 4.5 0 0 0 0 9h.5v7h-.5a4.5 4.5 0 0 0 0 9h.5v7h-.5a4.5 4.5 0 0 0 0 9h.5v7h-.5a4.5 4.5 0 0 0 0 9h.5v7h-.5a4.5 4.5 0 0 0 0 9z" stroke="#ccc"/><path d="M127.5 117.478a5.5 5.5 0 0 1 0-10.956v-5.044a5.5 5.5 0 0 1 0-10.956v-5.044a5.5 5.5 0 0 1 0-10.956v-5.044a5.5 5.5 0 0 1 0-10.956v-5.044a5.5 5.5 0 0 1 0-10.956v-5.044a5.5 5.5 0 0 1 0-10.956v-5.044a5.5 5.5 0 0 1 0-10.956V5.478A5.502 5.502 0 0 1 122.522.5h-5.044a5.5 5.5 0 0 1-10.956 0h-5.044a5.5 5.5 0 0 1-10.956 0h-5.044a5.5 5.5 0 0 1-10.956 0h-5.044a5.5 5.5 0 0 1-10.956 0h-5.044a5.5 5.5 0 0 1-10.956 0h-5.044a5.5 5.5 0 0 1-10.956 0h-5.044a5.5 5.5 0 0 1-10.956 0H5.478A5.502 5.502 0 0 1 .5 5.478v5.044a5.5 5.5 0 0 1 0 10.956v5.044a5.5 5.5 0 0 1 0 10.956v5.044a5.5 5.5 0 0 1 0 10.956v5.044a5.5 5.5 0 0 1 0 10.956v5.044a5.5 5.5 0 0 1 0 10.956v5.044a5.5 5.5 0 0 1 0 10.956v5.044a5.5 5.5 0 0 1 0 10.956v5.044a5.502 5.502 0 0 1 4.978 4.978h5.044a5.5 5.5 0 0 1 10.956 0h5.044a5.5 5.5 0 0 1 10.956 0h5.044a5.5 5.5 0 0 1 10.956 0h5.044a5.5 5.5 0 0 1 10.956 0h5.044a5.5 5.5 0 0 1 10.956 0h5.044a5.5 5.5 0 0 1 10.956 0h5.044a5.5 5.5 0 0 1 10.956 0h5.044a5.502 5.502 0 0 1 4.978-4.978z" stroke="#fff"/><use xlink:href="#B" fill="#fedd00"/><rect width="95" height="95" x="16.5" y="16.5" rx="2" stroke="#d9b500"/><rect width="97" height="97" x="15.5" y="15.5" rx="2" stroke="#fff"/><path d="M50.3 86.084V42.3H43V35h25.886c16.168 0 19.522 10.664 19.522 18.06 0 5.934-2.408 10.492-4.902 12.986-4.042 4.042-9.546 4.988-17.888 4.988h-6.536v15.05h7.654v7.3H43v-7.3zm8.772-22.102h7.3c10.75 0 13.072-4.988 13.072-11.008 0-6.88-3.87-10.664-10.32-10.664H59.082z" fill="#000"/></g></svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 489 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,14 +87,14 @@ PODS:
- qr_code_scanner (0.2.0):
- Flutter
- MTBBarcodeScanner
- SDWebImage (5.20.0):
- SDWebImage/Core (= 5.20.0)
- SDWebImage/Core (5.20.0)
- Sentry/HybridSDK (8.36.0)
- sentry_flutter (8.9.0):
- SDWebImage (5.21.0):
- SDWebImage/Core (= 5.21.0)
- SDWebImage/Core (5.21.0)
- Sentry/HybridSDK (8.46.0)
- sentry_flutter (8.14.2):
- Flutter
- FlutterMacOS
- Sentry/HybridSDK (= 8.36.0)
- Sentry/HybridSDK (= 8.46.0)
- share_plus (0.0.1):
- Flutter
- shared_preferences_foundation (0.0.1):
@@ -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:
@@ -221,43 +232,45 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/url_launcher_ios/ios"
SPEC CHECKSUMS:
app_links: e7a6750a915a9e161c58d91bc610e8cd1d4d0ad0
connectivity_plus: ddd7f30999e1faaef5967c23d5b6d503d10434db
device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6
app_links: 3da4c36b46cac3bf24eb897f1a6ce80bda109874
connectivity_plus: 3f6c9057f4cd64198dc826edfb0542892f825343
cupertino_http: 94ac07f5ff090b8effa6c5e2c47871d48ab7c86c
device_info_plus: 335f3ce08d2e174b9fdc3db3db0f4e3b1f66bd89
DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c
DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60
file_picker: 09aa5ec1ab24135ccd7a1621c46c84134bfd6655
file_saver: 503e386464dbe118f630e17b4c2e1190fa0cf808
fk_user_agent: 1f47ec39291e8372b1d692b50084b0d54103c545
file_picker: 9b3292d7c8bc68c8a7bf8eb78f730e49c8efc517
file_saver: 6cdbcddd690cb02b0c1a0c225b37cd805c2bf8b6
fk_user_agent: 137145b086229251761678fe034da53753f4ce59
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
flutter_email_sender: 10a22605f92809a11ef52b2f412db806c6082d40
flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4
flutter_local_authentication: 1172a4dd88f6306dadce067454e2c4caf07977bb
flutter_local_notifications: 4cde75091f6327eb8517fa068a0a5950212d2086
flutter_native_splash: edf599c81f74d093a4daf8e17bd7a018854bc778
flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12
fluttertoast: e9a18c7be5413da53898f660530c56f35edfba9c
local_auth_darwin: 66e40372f1c29f383a314c738c7446e2f7fdadc3
move_to_background: 39a5b79b26d577b0372cbe8a8c55e7aa9fcd3a2d
flutter_email_sender: 2397f5e84aaacfb61af569637a963e7c687858d8
flutter_inappwebview_ios: b89ba3482b96fb25e00c967aae065701b66e9b99
flutter_local_authentication: 989278c681612f1ee0e36019e149137f114b9d7f
flutter_local_notifications: ad39620c743ea4c15127860f4b5641649a988100
flutter_native_splash: 35ddbc7228eafcb3969dcc5f1fbbe27c1145a4f0
flutter_secure_storage: 1ed9476fba7e7a782b22888f956cce43e2c62f13
fluttertoast: 76fea30fcf04176325f6864c87306927bd7d2038
local_auth_darwin: 553ce4f9b16d3fdfeafce9cf042e7c9f77c1c391
move_to_background: 155f7bfbd34d43ad847cb630d2d2d87c17199710
MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb
objective_c: 89e720c30d716b036faf9c9684022048eee1eee2
OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94
package_info_plus: 58f0028419748fad15bf008b270aaa8e54380b1c
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
privacy_screen: 1a131c052ceb3c3659934b003b0d397c2381a24e
qr_code_scanner: bb67d64904c3b9658ada8c402e8b4d406d5d796e
SDWebImage: 73c6079366fea25fa4bb9640d5fb58f0893facd8
Sentry: f8374b5415bc38dfb5645941b3ae31230fbeae57
sentry_flutter: 0eb93e5279eb41e2392212afe1ccd2fecb4f8cbe
share_plus: 8875f4f2500512ea181eef553c3e27dba5135aad
shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
sodium_libs: 1faae17af662384acbd13e41867a0008cd2e2318
sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec
package_info_plus: 580e9a5f1b6ca5594e7c9ed5f92d1dfb2a66b5e1
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
privacy_screen: 3159a541f5d3a31bea916cfd4e58f9dc722b3fd4
qr_code_scanner: d77f94ecc9abf96d9b9b8fc04ef13f611e5a147a
SDWebImage: f84b0feeb08d2d11e6a9b843cb06d75ebf5b8868
Sentry: da60d980b197a46db0b35ea12cb8f39af48d8854
sentry_flutter: 27892878729f42701297c628eb90e7c6529f3684
share_plus: 011d6fb4f9d2576b83179a3a5c5e323202cdabcf
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
sodium_libs: 6c6d0e83f4ee427c6464caa1f1bdc2abf3ca0b7f
sqflite: c35dad70033b8862124f8337cc994a809fcd9fa3
sqlite3: 0bb0e6389d824e40296f531b858a2a0b71c0d2fb
sqlite3_flutter_libs: c00457ebd31e59fa6bb830380ddba24d44fbcd3b
sqlite3_flutter_libs: 9379996d65aa23dcda7585a5b58766cebe0aa042
SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4
Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e
url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe
url_launcher_ios: 694010445543906933d732453a59da0a173ae33d
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

@@ -66,14 +66,14 @@ class Configuration {
String? _volatilePassword;
final _secureStorageOptionsIOS = const IOSOptions(
accessibility: KeychainAccessibility.first_unlock_this_device,
);
Future<void> init() async {
_preferences = await SharedPreferences.getInstance();
sqfliteFfiInit();
_secureStorage = const FlutterSecureStorage();
_secureStorage = const FlutterSecureStorage(
iOptions: IOSOptions(
accessibility: KeychainAccessibility.first_unlock_this_device,
),
);
_tempDirectory = (await DirectoryUtils.getDirectoryForInit()).path;
final tempDirectory = io.Directory(_tempDirectory);
try {
@@ -98,7 +98,6 @@ class Configuration {
Future<void> _initOfflineAccount() async {
_offlineAuthKey = await _secureStorage.read(
key: offlineAuthSecretKey,
iOptions: _secureStorageOptionsIOS,
);
}
@@ -108,22 +107,18 @@ class Configuration {
unawaited(
_secureStorage.delete(
key: key,
iOptions: _secureStorageOptionsIOS,
),
);
}
} else {
_key = await _secureStorage.read(
key: keyKey,
iOptions: _secureStorageOptionsIOS,
);
_secretKey = await _secureStorage.read(
key: secretKeyKey,
iOptions: _secureStorageOptionsIOS,
);
_authSecretKey = await _secureStorage.read(
key: authSecretKeyKey,
iOptions: _secureStorageOptionsIOS,
);
if (_key == null) {
await logout(autoLogout: true);
@@ -136,7 +131,6 @@ class Configuration {
for (String key in onlineSecureKeys) {
await _secureStorage.delete(
key: key,
iOptions: _secureStorageOptionsIOS,
);
}
await LockScreenSettings.instance.removePinAndPassword();
@@ -396,7 +390,6 @@ class Configuration {
await _secureStorage.write(
key: keyKey,
value: key,
iOptions: _secureStorageOptionsIOS,
);
}
@@ -405,7 +398,6 @@ class Configuration {
await _secureStorage.write(
key: secretKeyKey,
value: secretKey,
iOptions: _secureStorageOptionsIOS,
);
}
@@ -414,7 +406,6 @@ class Configuration {
await _secureStorage.write(
key: authSecretKeyKey,
value: authSecretKey,
iOptions: _secureStorageOptionsIOS,
);
}
@@ -463,18 +454,15 @@ class Configuration {
Future<void> optForOfflineMode() async {
if ((await _secureStorage.containsKey(
key: offlineAuthSecretKey,
iOptions: _secureStorageOptionsIOS,
))) {
_offlineAuthKey = await _secureStorage.read(
key: offlineAuthSecretKey,
iOptions: _secureStorageOptionsIOS,
);
} else {
_offlineAuthKey = CryptoUtil.bin2base64(CryptoUtil.generateKey());
await _secureStorage.write(
key: offlineAuthSecretKey,
value: _offlineAuthKey,
iOptions: _secureStorageOptionsIOS,
);
}
await _preferences.setBool(hasOptedForOfflineModeKey, true);

View File

@@ -1,6 +1,6 @@
{
"account": "الحساب",
"unlock": "فتح القفل",
"unlock": "فتح القُفْل",
"recoveryKey": "مفتاح الاسترداد",
"counterAppBarTitle": "العداد",
"@counterAppBarTitle": {
@@ -16,7 +16,7 @@
"secretCanNotBeEmpty": "لا يمكن أن يكون رمز السر فارغ",
"bothIssuerAndAccountCanNotBeEmpty": "لا يمكن أن يكون المُصدر والحساب فارغًا",
"incorrectDetails": "بيانات غير صحيحة",
"pleaseVerifyDetails": "من فضلك تأكد من بياناتك وحاول مرة أخرى",
"pleaseVerifyDetails": "الرجاء التأكد من البيانات وإعادة المحاولة",
"codeIssuerHint": "المصدِّر",
"codeSecretKeyHint": "الرمز السري",
"secret": "سري",
@@ -36,7 +36,7 @@
"codeAccountHint": "الحساب (you@domain.com)",
"codeTagHint": "وسم",
"accountKeyType": "نوع المفتاح",
"sessionExpired": "انتهت صلاحية الجلسة",
"sessionExpired": "انتهت صَلاحِيَة الجِلسة",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
},
@@ -47,7 +47,9 @@
"saveAction": "حفظ",
"nextTotpTitle": "التالي",
"deleteCodeTitle": "حذف الرمز؟",
"deleteCodeMessage": "هل أنت متأكد من أنك تريد حذف هذه الشيفرة؟ هذا الإجراء لا رجعة فيه.",
"deleteCodeMessage": "هل أنت متيقِّن من أنك تريد حذف هذه الشيفرة؟ هذا الإجراء لا رجعة فيه.",
"trashCode": "حذف الكود؟",
"trashCodeMessage": "هل أنت متيقِّن أنك تريد حذف الكود الخاص بـ {account}؟",
"trash": "سلة المهملات",
"viewLogsAction": "عرض السجلات",
"sendLogsDescription": "سوف يُرسل هذا السجلات لنا لمساعدتنا على تصحيح مشكلتك. بينما نتخذ الاحتياطات لضمان عدم تسجيل المعلومات الحساسة، نشجعك على رؤية هذه السجلات قبل مشاركتها.",
@@ -63,7 +65,7 @@
},
"copyEmailAction": "نسخ البريد الإلكتروني",
"exportLogsAction": "تصدير السجلات",
"reportABug": "الابلاغ عن خلل تقني",
"reportABug": "ألإبلاغ عن خلل تقني",
"crashAndErrorReporting": "الإبلاغ عن الأعطال والأخطاء",
"reportBug": "الإبلاغ عن خلل",
"emailUsMessage": "الرجاء مراسلتنا على {email}",
@@ -79,22 +81,24 @@
"blog": "المدونة",
"merchandise": "إدارة المنتجات",
"verifyPassword": "التحقق من كلمة المرور",
"pleaseWait": "الرجاء الإنتظار...",
"pleaseWait": "انتظر قليلاً...",
"generatingEncryptionKeysTitle": "توليد مفاتيح التشفير...",
"recreatePassword": "إعادة كتابة كلمة المرور",
"recreatePasswordMessage": "الجهاز الحالي ليس قويًا بما يكفي للتحقق من كلمة المرور الخاصة بك، لذا نحتاج إلى إعادة إنشائها مرة واحدة بطريقة تعمل مع جميع الأجهزة.\n\nالرجاء تسجيل الدخول باستخدام مفتاح الاسترداد وإعادة إنشاء كلمة المرور الخاصة بك (يمكنك استخدام نفس كلمة المرور مرة أخرى إذا كنت ترغب في ذلك).",
"useRecoveryKey": "استخدم مفتاح الاسترداد",
"incorrectPasswordTitle": "كلمة المرور غير صحيحة",
"welcomeBack": "مرحبًا مجددًا!",
"madeWithLoveAtPrefix": "مصنوعة بـ❤️ في ",
"emailAlreadyRegistered": "البريد الإلكتروني مُسَجَّل من قبل.",
"emailNotRegistered": "البريد الإلكتروني غير مُسَجَّل.",
"madeWithLoveAtPrefix": "مصنوعة بـ❤️ في",
"supportDevs": "اشترك في <bold-green>ente</bold-green> لدعمنا",
"supportDiscount": "استخدم رمز القسيمة \"AUTH\" للحصول على 10% خصم من السنة الأولى",
"supportDiscount": "استخدم رمز القسيمة \"AUTH\" للحصول على 10% خَصْم من السنة الأولى",
"changeEmail": "غير البريد الإلكتروني",
"changePassword": "غير كلمة المرور",
"data": "البيانات",
"importCodes": "استورد شيفرات",
"importTypePlainText": "نص بسيط",
"importTypeEnteEncrypted": "تصدير مشفر ente",
"importTypeEnteEncrypted": "تصدير مشفَّر ente",
"passwordForDecryptingExport": "كلمة المرور لفك تشفير التصدير",
"passwordEmptyError": "لا يمكن أن تكون كلمة المرور فارغة",
"importFromApp": "استورد الشيفرات من {appName}",
@@ -111,10 +115,11 @@
"importLabel": "استيراد",
"importInstruction": "الرجاء تحديد ملف يحتوي على قائمة بالرموز الخاصة بك بالشكل التالي",
"importCodeDelimiterInfo": "يمكن فصل الرموز بفاصلة أو سطر جديد",
"selectFile": "اختيار الملف",
"selectFile": "حدد مِلَفّ",
"emailVerificationToggle": "تأكيد عنوان البريد الإلكتروني",
"emailVerificationEnableWarning": "لتجنب إقفال حسابك، تأكد من تخزين نسخة من بريدك الإلكتروني 2FA خارج Ente Auth قبل تمكين التحقق من البريد الإلكتروني.",
"authToChangeEmailVerificationSetting": "الرجاء المصادقة لتغيير التحقق من البريد الإلكتروني",
"authenticateGeneric": "الرجاء المصادقة",
"authToViewYourRecoveryKey": "الرجاء المصادقة لعرض مفتاح الاسترداد الخاص بك",
"authToChangeYourEmail": "الرجاء المصادقة لتغيير بريدك الإلكتروني",
"authToChangeYourPassword": "الرجاء المصادقة لتغيير كلمة المرور الخاصة بك",
@@ -129,7 +134,7 @@
"general": "العامة",
"settings": "الإعدادات",
"copied": "تم النسخ",
"pleaseTryAgain": "حاول مرة اخرى",
"pleaseTryAgain": "يرجى المحاولة مرة أخرى",
"existingUser": "المستخدم موجود",
"newUser": "جديد في Ente",
"delete": "حذف",
@@ -142,6 +147,8 @@
"leaveFamily": "مغادرة خطة العائلة",
"leaveFamilyMessage": "هل أنت متأكد من الخروج من خطة العائلة؟",
"inFamilyPlanMessage": "أنت مندرج ضمن خطة عائلية!",
"hintForMobile": "اضغط مطولاً على الكود لتعديل أو إزالته.",
"hintForDesktop": "انقر بزر الأيمن على الكود لتعديله.",
"scan": "مسح",
"scanACode": "فحص رمز Qr",
"verify": "التحقق",
@@ -151,6 +158,7 @@
"twoFactorAuthTitle": "المصادقة الثنائية",
"passkeyAuthTitle": "التحقق من مفتاح المرور",
"verifyPasskey": "تحقق من مفتاح المرور",
"loginWithTOTP": "",
"recoverAccount": "إسترجاع الحساب",
"enterRecoveryKeyHint": "أدخل رمز الاسترداد",
"recover": "استرداد",
@@ -172,7 +180,7 @@
"yesSendFeedbackAction": "نعم، ارسل الملاحظات",
"noDeleteAccountAction": "لا، حذف الحساب",
"initiateAccountDeleteTitle": "الرجاء المصادقة لبدء حذف الحساب",
"sendEmail": "ارسل بريد الكتروني",
"sendEmail": "إرسال بريد إلكتروني",
"createNewAccount": "إنشاء حساب جديد",
"weakStrength": "ضعيف",
"strongStrength": "قوي",
@@ -184,9 +192,9 @@
"language": "اللغة",
"social": "وسائل التواصل",
"security": "الأمان",
"lockscreen": "شاشة القفل",
"authToChangeLockscreenSetting": "الرجاء المصادقة لتغيير إعدادات شاشة القفل",
"deviceLockEnablePreSteps": "لتمكين قفل التطبيق، فضلا أعد شيفرة مرور للجهاز أو قفل الشاشة في إعدادات نظامك.",
"lockscreen": "شاشة القُفْل",
"authToChangeLockscreenSetting": "الرجاء المصادقة لتغيير إعدادات شاشة القُفْل",
"deviceLockEnablePreSteps": "لتفعيل قُفْل الجهاز، اضبط رمز مرور أو قُفْل الشاشة من الإعدادات",
"viewActiveSessions": "عرض الجلسات النشطة",
"authToViewYourActiveSessions": "الرجاء المصادقة لعرض جلساتك النشطة",
"searchHint": "بحث...",
@@ -199,6 +207,7 @@
"edit": "تعديل",
"share": "مشاركة",
"shareCodes": "شارك الرموز",
"shareCodesDuration": "حدد المدة التي تريد أن تشارك فيها ألاكوا د.",
"restore": "استعادة",
"copiedToClipboard": "تم النسخ إلى الحافظة",
"copiedNextToClipboard": "تم نسخ الرموز التالية إلى الحافظة",
@@ -326,6 +335,7 @@
}
},
"manualSort": "مخصّص",
"editOrder": "تعديل الطلب",
"mostFrequentlyUsed": "مستخدم بكثرة",
"mostRecentlyUsed": "مستخدمة مؤخراً",
"activeSessions": "الجلسات النشطة",
@@ -447,6 +457,9 @@
"customEndpoint": "متصل بـ{endpoint}",
"pinText": "ثبت",
"unpinText": "ألغِ التثبيت",
"pinnedCodeMessage": "ثُبِّت {code}",
"unpinnedCodeMessage": "أُلغِي تثبيت {code}",
"pinned": "ثُبِّت",
"tags": "الأوسمة",
"createNewTag": "أنشيء وسم جديد",
"tag": "وسم",
@@ -459,9 +472,9 @@
"viewRawCodes": "عرض الشيفرات الأصلية",
"rawCodes": "الشيفرات الأصلية",
"rawCodeData": "بيانات الشيفرات الأصلية",
"appLock": "قفل التطبيق",
"appLock": "قُفْل التطبيق",
"noSystemLockFound": "لا يوجد قفل نظام",
"toEnableAppLockPleaseSetupDevicePasscodeOrScreen": "لتمكين قفل التطبيق، فضلا أعد شيفرة مرور الجهاز أو قفل الشاشة في إعدادات نظامك.",
"toEnableAppLockPleaseSetupDevicePasscodeOrScreen": "لتفعيل قُفْل التطبيق، اضبط رمز مرور الجهاز أو قُفْل الشاشة من الإعدادات.",
"autoLock": "قفل تلقائي",
"immediately": "فورًا",
"reEnterPassword": "أعد إدخال كلمة المرور",
@@ -475,14 +488,35 @@
"hideContentDescriptionAndroid": "يخفي محتوى التطبيق في مبدل التطبيقات ويمنع لقطات الشاشة",
"hideContentDescriptioniOS": "يخفي محتوى التطبيق في مبدل التطبيقات",
"autoLockFeatureDescription": "الوقت الذي بعده ينقفل التطبيق بعدما يوضع في الخلفية",
"appLockDescription": "اختر بين شاشة القفل الافتراضية الخاصة بجهازك وشاشة قفل مخصصة برقم تعريف شخصي أو كلمة مرور.",
"appLockDescription": "اختر نوع قُفْل الشاشة: افتراضي أو مخصص.",
"pinLock": "قفل رقم التعريف الشخصي",
"enterPin": "أدخل رقم التعريف الشخصي",
"setNewPin": "عين رقم تعريف شخصي جديد",
"importFailureDescNew": "تعذر إعراب الملف المنتقى.",
"appLockNotEnabled": "قُفْل التطبيق غير مفعل ",
"appLockNotEnabledDescription": "لحماية بياناتك، فعِّل قُفْل التطبيق من إعدادات الأمان ← قُفْل التطبيق",
"authToViewPasskey": "الرجاء المصادقة لعرض مفتاح الاسترداد الخاص بك",
"appLockOfflineModeWarning": "لقد اخترتَ المُتابعة دون نُسخ احتياطية. إذا نَسيتَ قُفْل التطبيق، فلن تتمكن من الوصول إلى بياناتك.",
"duplicateCodes": "رموز مكررة",
"noDuplicates": "✨ لا تكرارات",
"youveNoDuplicateCodesThatCanBeCleared": "لا توجد لديك أي أكواد مكررة يمكن حذفها",
"deduplicateCodes": "أكواد مكررة",
"deselectAll": "ألغِ تحديد الكل",
"selectAll": "حدد الكل",
"deleteDuplicates": "احذف التكرار"
"deleteDuplicates": "احذف التكرار",
"plainHTML": "HTML عَادِي ",
"tellUsWhatYouThink": "شاركنا برأيك",
"dropReviewiOS": "اترك مراجعة على أبل ستور",
"dropReviewAndroid": "اترك مراجعة بلاي ستور",
"supportEnte": "دعم <bold-green>ente</bold-green></bold-green>",
"giveUsAStarOnGithub": "من فضلك أعطِنا نجمة على جيت هاب",
"free5GB": "5GB مجانًا على <bold-green>ente</bold-green> صور",
"loginWithAuthAccount": "سجّل الدخول باستخدام حساب المُصادقة",
"freeStorageOffer": "خَصْم 10٪ على صور <bold-green>ente</bold-green>",
"freeStorageOfferDescription": "استخدم الكود \"AUTH\" وأحصل على 10٪ خَصْم في السنة الأولى",
"advanced": "متقدم",
"algorithm": "الخوارزمية",
"type": "النوع",
"period": "المدّة",
"digits": "الأرقام"
}

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

@@ -499,11 +499,16 @@
"appLockOfflineModeWarning": "Избрахте да продължите без резервни копия. Ако забравите паролата на приложението си, ще бъдете заключени от достъп до вашите данни.",
"duplicateCodes": "Повтарящи се кодове",
"noDuplicates": "✨ Няма дубликати",
"youveNoDuplicateCodesThatCanBeCleared": "Нямате повтарящи се кодове, които могат да бъдат изчистени",
"deduplicateCodes": "Премахване на повтарящи се кодове",
"deselectAll": "Демаркиране на всички",
"selectAll": "Избиране на всички",
"deleteDuplicates": "Изтриване на дубликатите",
"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

@@ -505,7 +505,6 @@
"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

@@ -88,6 +88,8 @@
"useRecoveryKey": "Použít obnovovací klíč",
"incorrectPasswordTitle": "Nesprávné heslo",
"welcomeBack": "Vítejte zpět!",
"emailAlreadyRegistered": "E-mail je již registrován.",
"emailNotRegistered": "E-mail není registrován.",
"madeWithLoveAtPrefix": "vyrobeno s ❤️ v ",
"supportDevs": "Předplaťte si <bold-green>ente</bold-green>, abyste nás podpořili",
"supportDiscount": "Použijte kód \"AUTH\" pro získání 10% slevy na první rok",
@@ -495,9 +497,18 @@
"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",
"deleteDuplicates": "Odstranit duplikáty",
"plainHTML": "Prosté HTML"
"plainHTML": "Prosté HTML",
"tellUsWhatYouThink": "Sdělte nám svůj názor",
"dropReviewiOS": "Zanechat recenzi na App Store",
"dropReviewAndroid": "Zanechat recenzi na Play Store",
"supportEnte": "Podpořte <bold-green>ente</bold-green>",
"giveUsAStarOnGithub": "Dejte nám hvězdu na Githubu",
"free5GB": "5GB zdarma na <bold-green>ente</bold-green> Fotky",
"freeStorageOffer": "10% sleva na <bold-green>ente</bold-green> fotky",
"freeStorageOfferDescription": "Použijte kód \"AUTH\" pro získání 10% slevy na první rok"
}

View File

@@ -91,39 +91,39 @@
"emailAlreadyRegistered": "E-Mail ist bereits registriert.",
"emailNotRegistered": "E-Mail-Adresse nicht registriert.",
"madeWithLoveAtPrefix": "gemacht mit ❤️ bei ",
"supportDevs": "Bei <bold-green>ente</bold-green> registrieren, um das Projekt zu unterstützen",
"supportDevs": "Abonnieren Sie <bold-green>ente</bold-green>, um das Projekt zu unterstützen",
"supportDiscount": "Benutzen Sie den Rabattcode \"AUTH\" für 10 % Rabatt im ersten Jahr",
"changeEmail": "E-Mail ändern",
"changePassword": "Passwort ändern",
"data": "Datei",
"data": "Daten",
"importCodes": "Codes importieren",
"importTypePlainText": "Klartext",
"importTypeEnteEncrypted": "Verschlüsselter Ente-Export",
"passwordForDecryptingExport": "Passwort um den Export zu entschlüsseln",
"passwordEmptyError": "Passwort kann nicht leer sein",
"importFromApp": "Importiere Codes von {appName}",
"importGoogleAuthGuide": "Exportiere deine Accounts von Google Authenticator zu einem QR-Code, durch die \"Konten übertragen\" Option. Scanne den QR-Code danach mit einem anderen Gerät.\n\nTipp: Du kannst die Kamera eines Laptops verwenden, um ein Foto den dem QR-Code zu erstellen.",
"importSelectJsonFile": "Wähle eine JSON-Datei",
"importFromApp": "Importieren Sie Codes von {appName}",
"importGoogleAuthGuide": "Exportieren Sie Ihre Accounts von Google Authenticator zu einem QR-Code, mithilfe der \"Konten übertragen\" Option. Scanne den QR-Code danach mit einem anderen Gerät.\n\nTipp: Sie können die Kamera eines Laptops verwenden, um ein Foto vom QR-Code zu erstellen.",
"importSelectJsonFile": "Wählen Sie eine JSON-Datei",
"importSelectAppExport": "{appName} Exportdatei auswählen",
"importEnteEncGuide": "Wähle die von Ente exportierte, verschlüsselte JSON-Datei",
"importRaivoGuide": "Verwenden Sie die Option \"Export OTPs to Zip archive\" in den Raivo-Einstellungen.\n\nEntpacken Sie die Zip-Datei und importieren Sie die JSON-Datei.",
"importEnteEncGuide": "Wählen Sie die von Ente exportierte, verschlüsselte JSON-Datei",
"importRaivoGuide": "Verwenden Sie die Option \"Export OTPs to Zip archive\" in den Einstellungen von Raivo.\n\nEntpacken Sie die Zip-Datei und importieren Sie die JSON-Datei.",
"importBitwardenGuide": "Verwenden Sie die Option \"Tresor exportieren\" innerhalb der Bitwarden Tools und importieren Sie die unverschlüsselte JSON-Datei.",
"importAegisGuide": "Verwenden Sie die Option \"Tresor exportieren\" in den Aegis-Einstellungen.\n\nFalls Ihr Tresor verschlüsselt ist, müssen Sie das Passwort für den Tresor eingeben, um ihn zu entschlüsseln.",
"importAegisGuide": "Verwenden Sie die Option \"Tresor exportieren\" in den Einstellungen von Aegis.\n\nFalls Ihr Tresor verschlüsselt ist, müssen Sie das Passwort für den Tresor eingeben, um ihn zu entschlüsseln.",
"import2FasGuide": "Verwenden Sie unter \"Einstellungen → Backup\" die Option \"Exportieren\" in 2FAS.\n\nFalls Ihr Backup verschlüsselt ist, müssen Sie das Passwort eingeben, um das Backup zu entschlüsseln.",
"importLastpassGuide": "Verwenden Sie die Option \"Konten übertragen → Konten in Datei exportieren\" in den Lastpass Authenticator Einstellungen. \nImportieren Sie anschließend die heruntergeladene JSON-Datei.",
"exportCodes": "Codes exportieren",
"importLabel": "Importieren",
"importInstruction": "Bitte wählen sie eine Datei die Codes in folgendem Format beinhaltet",
"importCodeDelimiterInfo": "Codes können in einer neuen Zeile stehen oder durch Kommata getrennt sein",
"importInstruction": "Bitte wählen Sie eine Datei die Codes in folgendem Format beinhaltet",
"importCodeDelimiterInfo": "Codes können in einer neuen Zeile stehen oder durch ein Komma getrennt sein",
"selectFile": "Datei auswählen",
"emailVerificationToggle": "E-Mail-Verifizierung",
"emailVerificationEnableWarning": "Stellen Sie sicher, eine Kopie Ihrer Zwei-Faktor-Authentifizierung an anderer Stelle zu speichern, um zu vermeiden, dass Sie sich versehentlich aus Ihrem Account aussperren.",
"authToChangeEmailVerificationSetting": "Bitte Authentifizieren um die E-Mail Bestätigung zu ändern",
"emailVerificationEnableWarning": "Um zu vermeiden, versehentlich aus Ihrem Konto ausgesperrt zu werden, stellen Sie sicher, dass Sie den Zwei-Faktor-Authentifizierungscode für Ihr E-Mail-Konto außerhalb von Ente Auth speichern, bevor Sie die E-Mail-Verifizierung aktivieren.",
"authToChangeEmailVerificationSetting": "Bitte authentifizieren, um die E-Mail Bestätigung zu ändern",
"authenticateGeneric": "Bitte authentifizieren",
"authToViewYourRecoveryKey": "Bitte authentifizieren um ihren Wiederherstellungscode anzuzeigen",
"authToChangeYourEmail": "Bitte authentifizieren um ihre Emailadresse zu ändern",
"authToChangeYourPassword": "Bitte authentifizieren um ihr Passwort zu ändern",
"authToViewSecrets": "Bitte authentifizieren Sie sich, um ihren Wiederherstellungscode anzuzeigen",
"authToViewYourRecoveryKey": "Bitte authentifizieren, um Ihren Wiederherstellungscode anzuzeigen",
"authToChangeYourEmail": "Bitte authentifizieren, um Ihre E-Mail-Adresse zu ändern",
"authToChangeYourPassword": "Bitte authentifizieren, um Ihr Passwort zu ändern",
"authToViewSecrets": "Bitte authentifizieren, um Ihren Wiederherstellungscode anzuzeigen",
"authToInitiateSignIn": "Bitte authentifizieren, um die Anmeldung zum Backup zu starten.",
"ok": "Ok",
"cancel": "Abbrechen",
@@ -140,17 +140,18 @@
"delete": "Löschen",
"enterYourPasswordHint": "Geben Sie Ihr Passwort ein",
"forgotPassword": "Passwort vergessen",
"oops": "Hopla",
"oops": "Hoppla",
"suggestFeatures": "Features vorschlagen",
"faq": "FAQ",
"somethingWentWrongMessage": "Ein Fehler ist aufgetreten, bitte versuchen Sie es erneut",
"leaveFamily": "Familie verlassen",
"leaveFamilyMessage": "Sind Sie sicher, dass Sie den Familien-Plan verlassen wollen?",
"inFamilyPlanMessage": "Sie haben einen Familien-Plan!",
"hintForMobile": "Lange auf einen Code drücken, um ihn 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",
"verify": "Verifizieren",
"verifyEmail": "E-Mail-Adresse verifizieren",
"enterCodeHint": "Geben Sie den 6-stelligen Code \naus Ihrer Authentifikator-App ein.",
"lostDeviceTitle": "Gerät verloren?",
@@ -171,9 +172,10 @@
},
"invalidQRCode": "Ungültiger QR-Code",
"noRecoveryKeyTitle": "Kein Wiederherstellungsschlüssel?",
"enterEmailHint": "Geben Sie Ihre E-Mail Adresse ein",
"invalidEmailTitle": "Ungültige E-Mail Adresse",
"invalidEmailMessage": "Bitte geben Sie eine gültige E-Mail Adresse ein.",
"enterEmailHint": "Geben Sie Ihre E-Mail-Adresse ein",
"enterNewEmailHint": "Gib deine neue E-Mail-Adresse ein",
"invalidEmailTitle": "Ungültige E-Mail-Adresse",
"invalidEmailMessage": "Bitte geben Sie eine gültige E-Mail-Adresse ein.",
"deleteAccount": "Konto löschen",
"deleteAccountQuery": "Es tut uns leid, dass Sie gehen. Haben Sie ein Problem?",
"yesSendFeedbackAction": "Ja, Feedback senden",
@@ -186,7 +188,7 @@
"moderateStrength": "Mittel",
"confirmPassword": "Bestätigen Sie das Passwort",
"close": "Schließen",
"oopsSomethingWentWrong": "Ups, da ist etwas schief gelaufen.",
"oopsSomethingWentWrong": "Hoppla, da ist etwas schiefgelaufen.",
"selectLanguage": "Sprache auswählen",
"language": "Sprache",
"social": "Social",
@@ -202,26 +204,26 @@
"noResult": "Kein Ergebnis",
"addCode": "Code hinzufügen",
"scanAQrCode": "QR-Code scannen",
"enterDetailsManually": "Details manuell hinzufügen",
"enterDetailsManually": "Daten manuell hinzufügen",
"edit": "Editieren",
"share": "Teilen",
"shareCodes": "Codes teilen",
"shareCodesDuration": "Wählen Sie die Dauer aus, für die Sie die Codes teilen möchten.",
"restore": "Wiederherstellen",
"copiedToClipboard": "In die Zwischenablage kopieren",
"copiedNextToClipboard": "Nächster Code wurde in die Zwischenablage kopiert",
"copiedToClipboard": "In die Zwischenablage kopiert",
"copiedNextToClipboard": "Nächster Code in die Zwischenablage kopiert",
"error": "Fehler",
"recoveryKeyCopiedToClipboard": "Wiederherstellungsschlüssel in die Zwischenablage kopiert",
"recoveryKeyOnForgotPassword": "Sollten sie ihr Passwort vergessen, dann ist dieser Schlüssel die einzige Möglichkeit ihre Daten wiederherzustellen.",
"recoveryKeySaveDescription": "Wir speichern diesen Schlüssel nicht. Sichern sie dieses diesen Schlüssel bestehend aus 24 Wörtern an einem sicheren Platz.",
"recoveryKeySaveDescription": "Wir speichern diesen Schlüssel nicht. Sichern Sie diesen Schlüssel bestehend aus 24 Wörtern an einem sicheren Platz.",
"doThisLater": "Auf später verschieben",
"saveKey": "Schlüssel speichern",
"save": "Speichern",
"send": "Senden",
"saveOrSendDescription": "Möchtest du dies in deinem Speicher (standardmäßig im Ordner Downloads) oder an andere Apps senden?",
"saveOrSendDescription": "Möchtest du dies in deinem Speicher (standardmäßig im Ordner Downloads) speichern oder an andere Apps senden?",
"saveOnlyDescription": "Möchtest du dies in deinem Speicher (standardmäßig im Ordner Downloads) speichern?",
"back": "Zurück",
"createAccount": "Account erstellen",
"createAccount": "Konto erstellen",
"passwordStrength": "Passwortstärke: {passwordStrengthValue}",
"@passwordStrength": {
"description": "Text to indicate the password strength",
@@ -243,17 +245,17 @@
"changePasswordTitle": "Passwort ändern",
"resetPasswordTitle": "Passwort zurücksetzen",
"encryptionKeys": "Verschlüsselungsschlüssel",
"passwordWarning": "Wir speichern dieses Passwort nicht. Wenn du es vergisst, <underline>können wir deine Daten nicht entschlüsseln</underline>",
"enterPasswordToEncrypt": "Gib ein Passwort ein, mit dem wir deine Daten verschlüsseln können",
"enterNewPasswordToEncrypt": "Gib ein neues Passwort ein, mit dem wir deine Daten verschlüsseln können",
"passwordWarning": "Wir speichern dieses Passwort nicht. Wenn Sie es vergessen, <underline>können wir Ihre Daten nicht entschlüsseln</underline>",
"enterPasswordToEncrypt": "Geben Sie ein Passwort ein, mit dem wir Ihre Daten verschlüsseln können",
"enterNewPasswordToEncrypt": "Geben Sie ein neues Passwort ein, mit dem wir Ihre Daten verschlüsseln können",
"passwordChangedSuccessfully": "Passwort erfolgreich geändert",
"generatingEncryptionKeys": "Generierung von Verschlüsselungsschlüsseln...",
"continueLabel": "Weiter",
"insecureDevice": "Unsicheres Gerät",
"sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": "Es tut uns leid, wir konnten keine sicheren Schlüssel auf diesem Gerät generieren.\n\nBitte registrieren Sie sich auf einem anderen Gerät.",
"howItWorks": "So funktioniert's",
"ackPasswordLostWarning": "Ich verstehe, dass der Verlust meines Passworts zum Verlust meiner Daten führen kann, denn diese ist <underline>Ende-zu-Ende verschlüsselt</underline>.",
"loginTerms": "Durch das Klicken auf den Login-Button, stimme ich <u-terms>den Nutzungsbedingungen</u-terms> und den <u-policy>Datenschutzbestimmungen</u-policy> zu",
"ackPasswordLostWarning": "Ich verstehe, dass der Verlust meines Passworts zum Verlust meiner Daten führen kann, denn diese sind <underline>Ende-zu-Ende verschlüsselt</underline>.",
"loginTerms": "Durch das Klicken auf den Login-Button, stimme ich den <u-terms> Nutzungsbedingungen</u-terms> und den <u-policy>Datenschutzbestimmungen</u-policy> zu",
"logInLabel": "Einloggen",
"logout": "Ausloggen",
"areYouSureYouWantToLogout": "Sind sie sicher, dass sie sich ausloggen möchten?",
@@ -265,7 +267,7 @@
"systemTheme": "System",
"verifyingRecoveryKey": "Verifiziere Wiederherstellungsschlüssel...",
"recoveryKeyVerified": "Wiederherstellungsschlüssel verifiziert",
"recoveryKeySuccessBody": "Großartig! Ihr Wiederherstellungsschlüssel ist gültig. Vielen Dank für die Verifizierung.\n\nBitte denken sie daran, dass sie ihren Wiederherstellungsschlüssel sicher aufbewahren.",
"recoveryKeySuccessBody": "Großartig! Ihr Wiederherstellungsschlüssel ist gültig. Vielen Dank für die Verifizierung.\n\nBitte denken Sie daran, den Wiederherstellungsschlüssel sicher aufzubewahren.",
"invalidRecoveryKey": "Der eingegebene Wiederherstellungsschlüssel ist nicht gültig. Bitte stellen sie sicher, dass er aus 24 Wörtern besteht und prüfen sie die Schreibweise eines jeden.\n\nSollten sie einen Wiederherstellungsschlüssel im alten Format eingegeben haben vergewissern sie sich, dass er 64 Zeichen lang ist und prüfen sie jedes dieser Zeichen.",
"recreatePasswordTitle": "Neues Passwort erstellen",
"recreatePasswordBody": "Das benutzte Gerät ist nicht leistungsfähig genug das Passwort zu prüfen. Wir können es aber neu erstellen damit es auf jedem Gerät funktioniert. \n\nBitte loggen sie sich mit ihrem Wiederherstellungsschlüssel ein und erstellen sie ein neues Passwort (Sie können das selbe Passwort wieder verwenden, wenn sie möchten).",
@@ -276,15 +278,15 @@
"recoveryKeyVerifyReason": "Ihr Wiederherstellungsschlüssel ist der einzige Weg ihre Fotos wiederherzustellen sollten, sie ihr Passwort vergessen. Sie finden ihren Wiederherstellungsschlüssel unter Einstellungen > Account.\n\nBitte tragen sie ihren Wiederherstellungsschlüssel hier ein um zu prüfen ob sie in korrekt abgespeichert haben.",
"confirmYourRecoveryKey": "Wiederherstellungsschlüssel bestätigen",
"confirm": "Bestätigen",
"emailYourLogs": "Email mit Logs senden",
"emailYourLogs": "E-Mail mit Logs senden",
"pleaseSendTheLogsTo": "Bitte Logs an {toEmail} senden",
"copyEmailAddress": "Emailadresse kopieren",
"copyEmailAddress": "E-Mail-Adresse kopieren",
"exportLogs": "Logs exportieren",
"enterYourRecoveryKey": "Wiederherstellungsschlüssel eingeben",
"tempErrorContactSupportIfPersists": "Etwas ist schiefgelaufen. Bitte versuchen sie es später noch einmal. Sollte der Fehler weiter bestehen, kontaktieren sie unser Supportteam.",
"tempErrorContactSupportIfPersists": "Etwas ist schiefgelaufen. Bitte versuchen Sie es später noch einmal. Sollte der Fehler weiter bestehen, kontaktieren sie unser Supportteam.",
"networkHostLookUpErr": "Ente ist im Moment nicht erreichbar. Bitte überprüfen Sie Ihre Netzwerkeinstellungen. Sollte das Problem bestehen bleiben, wenden Sie sich bitte an den Support.",
"networkConnectionRefusedErr": "Ente ist im Moment nicht erreichbar. Bitte versuchen Sie es später erneut. Sollte das Problem bestehen bleiben, wenden Sie sich bitte an den Support.",
"itLooksLikeSomethingWentWrongPleaseRetryAfterSome": "Etwas ist schiefgelaufen. Bitte versuchen sie es später noch einmal. Sollte der Fehler weiter bestehen, kontaktieren sie unser Supportteam.",
"itLooksLikeSomethingWentWrongPleaseRetryAfterSome": "Etwas ist schiefgelaufen. Bitte versuchen Sie es später noch einmal. Sollte der Fehler weiter bestehen, kontaktieren Sie unser Supportteam.",
"about": "Über uns",
"weAreOpenSource": "Wir sind Opensource!",
"privacy": "Datenschutz",
@@ -315,10 +317,10 @@
}
}
},
"sorry": "Entschuldigen sie",
"importFailureDesc": "Ausgewählte Datei ließ sich nicht verarbeiten.\nBitte wenden sie sich an support@ente.io für Hilfe!",
"sorry": "Entschuldigen Sie",
"importFailureDesc": "Ausgewählte Datei ließ sich nicht verarbeiten.\nBitte wenden Sie sich an support@ente.io für Hilfe!",
"pendingSyncs": "Warnung",
"pendingSyncsWarningBody": "Einige Codes wurden nicht gesichert.\n\nBitte gehen sie sicher, dass sie einen Backupcode für diese Codes haben bevor sie sich ausloggen.",
"pendingSyncsWarningBody": "Einige Codes wurden nicht gesichert.\n\nBitte gehen Sie sicher, dass Sie einen Backupcode für diese Codes haben bevor Sie sich ausloggen.",
"checkInboxAndSpamFolder": "Bitte überprüfe deinen E-Mail-Posteingang (und Spam), um die Verifizierung abzuschließen",
"tapToEnterCode": "Antippen, um den Code einzugeben",
"resendEmail": "E-Mail erneut senden",
@@ -338,10 +340,10 @@
"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!",
"thisWillLogYouOutOfTheFollowingDevice": "Dadurch wirst du von folgendem Gerät abgemeldet:",
"terminateSession": "Sitzungen beenden?",
"somethingWentWrongPleaseTryAgain": "Ein Fehler ist aufgetreten, bitte erneut versuchen",
"thisWillLogYouOutOfThisDevice": "Dadurch werden Sie von diesem Gerät abgemeldet!",
"thisWillLogYouOutOfTheFollowingDevice": "Dadurch werden Sie vom folgendem Gerät abgemeldet:",
"terminateSession": "Sitzung beenden?",
"terminate": "Beenden",
"thisDevice": "Dieses Gerät",
"toResetVerifyEmail": "Um Ihr Passwort zurückzusetzen, verifizieren Sie bitte zuerst Ihre E-Mail-Adresse.",
@@ -351,7 +353,7 @@
"incorrectCode": "Falscher Code",
"sorryTheCodeYouveEnteredIsIncorrect": "Leider ist der eingegebene Code falsch",
"emailChangedTo": "E-Mail-Adresse geändert zu {newEmail}",
"authenticationFailedPleaseTryAgain": "Authentifizierung fehlgeschlagen, versuchen Sie es bitte erneut",
"authenticationFailedPleaseTryAgain": "Authentifizierung fehlgeschlagen, bitte erneut versuchen",
"authenticationSuccessful": "Authentifizierung erfolgreich!",
"twofactorAuthenticationSuccessfullyReset": "Zwei-Faktor-Authentifizierung (2FA) erfolgreich zurückgesetzt",
"incorrectRecoveryKey": "Falscher Wiederherstellungs-Schlüssel",
@@ -364,22 +366,22 @@
"passwordToEncryptExport": "Passwort zum Verschlüssen des Exports",
"export": "Export",
"useOffline": "Ohne Backup verwenden",
"signInToBackup": "Melde dich an, um deine Codes zu sichern",
"signInToBackup": "Melden Sie sich an, um Ihre Codes zu sichern",
"singIn": "Anmelden",
"sigInBackupReminder": "Bitte exportieren Sie Ihre Codes, um sicherzustellen, dass Sie ein Backup haben, aus dem Sie wiederherstellen können.",
"sigInBackupReminder": "Bitte exportieren Sie Ihre Codes, um sicherzustellen, dass Sie ein Backup haben, das Sie wiederherstellen können.",
"offlineModeWarning": "Sie haben sich dafür entschieden, ohne Sicherungen fortzufahren. Bitte führen Sie manuelle Sicherungen durch, um sicherzustellen, dass Ihre Codes sicher sind.",
"showLargeIcons": "Große Symbole anzeigen",
"compactMode": "Kompaktmodus",
"shouldHideCode": "Codes ausblenden",
"doubleTapToViewHiddenCode": "Sie können auf einen Eintrag doppelt tippen, um den Code anzuzeigen",
"focusOnSearchBar": "Suche bei App-Start automatisch öffnen",
"confirmUpdatingkey": "Sind Sie sich sicher, dass Sie den Secret Key bearbeiten wollen?",
"focusOnSearchBar": "Suche beim App-Start fokussieren",
"confirmUpdatingkey": "Sind Sie sich sicher, dass Sie den geheimen Schlüssel bearbeiten wollen?",
"minimizeAppOnCopy": "Beim Kopieren App minimieren",
"editCodeAuthMessage": "Authentifizieren, um Code zu bearbeiten",
"deleteCodeAuthMessage": "Authentifizieren, um Code zu löschen",
"showQRAuthMessage": "Authentifizieren, um QR-Code anzuzeigen",
"confirmAccountDeleteTitle": "Kontolöschung bestätigen",
"confirmAccountDeleteMessage": "Dieses Konto ist mit anderen Ente-Apps verknüpft, falls du welche verwendest.\n\nDeine hochgeladenen Daten werden in allen Ente-Apps zur Löschung vorgemerkt und dein Konto wird endgültig gelöscht.",
"confirmAccountDeleteMessage": "Dieses Konto ist mit anderen Ente-Apps verknüpft, falls Sie welche verwenden.\n\nIhre hochgeladenen Daten werden in allen Ente-Apps zur Löschung vorgemerkt und Ihr Konto wird endgültig gelöscht.",
"androidBiometricHint": "Identität bestätigen",
"@androidBiometricHint": {
"description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters."
@@ -416,7 +418,7 @@
"@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": "Auf Ihrem Gerät ist keine biometrische Authentifizierung eingerichtet. Gehen Sie Einstellungen > Sicherheit, um die biometrische Authentifizierung hinzuzufügen.",
"androidGoToSettingsDescription": "Auf Ihrem Gerät ist keine biometrische Authentifizierung eingerichtet. Gehen Sie zu 'Einstellungen > Sicherheit', um die biometrische Authentifizierung hinzuzufügen.",
"@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."
},
@@ -433,9 +435,9 @@
"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": "Keine Internetverbindung",
"pleaseCheckYourInternetConnectionAndTryAgain": "Bitte überprüfe deine Internetverbindung und versuche es erneut.",
"pleaseCheckYourInternetConnectionAndTryAgain": "Bitte überprüfen Sie Ihre Internetverbindung und versuchen Sie erneut.",
"signOutFromOtherDevices": "Von anderen Geräten abmelden",
"signOutOtherBody": "Falls du denkst, dass jemand dein Passwort kennen könnte, kannst du alle anderen Geräte von deinem Account abmelden.",
"signOutOtherBody": "Falls Sie denken, dass jemand Ihr Passwort kennen könnte, können Sie alle anderen Geräte forcieren, sich von Ihrem Konto abzumelden.",
"signOutOtherDevices": "Andere Geräte abmelden",
"doNotSignOut": "Nicht abmelden",
"hearUsWhereTitle": "Wie hast du von Ente erfahren? (optional)",
@@ -456,6 +458,8 @@
"customEndpoint": "Mit {endpoint} verbunden",
"pinText": "Anpinnen",
"unpinText": "Lösen",
"pinnedCodeMessage": "{code} wurde angepinnt",
"unpinnedCodeMessage": "{code} wurde losgelöst",
"pinned": "Angeheftet",
"tags": "Tags",
"createNewTag": "Neuen Tag erstellen",
@@ -471,7 +475,7 @@
"rawCodeData": "Rohcode Daten",
"appLock": "App-Sperre",
"noSystemLockFound": "Keine Systemsperre gefunden",
"toEnableAppLockPleaseSetupDevicePasscodeOrScreen": "Um die App-Sperre zu aktivieren, konfiguriere bitte den Gerätepasscode oder die Bildschirmsperre in den Systemeinstellungen.",
"toEnableAppLockPleaseSetupDevicePasscodeOrScreen": "Um die App-Sperre zu aktivieren, konfigurieren Sie bitte den Gerätepasscode oder die Bildschirmsperre in den Systemeinstellungen.",
"autoLock": "Automatisches Sperren",
"immediately": "Sofort",
"reEnterPassword": "Passwort erneut eingeben",
@@ -491,16 +495,29 @@
"setNewPin": "Neue PIN festlegen",
"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",
"appLockNotEnabledDescription": "Bitte aktivieren Sie die App-Sperre über Sicherheit > App-Sperre",
"authToViewPasskey": "Bitte authentifizieren, um Ihren Passkey zu sehen",
"appLockOfflineModeWarning": "Sie haben sich dazu entschieden, ohne Sicherungen fortzufahren. Wenn Sie Ihre App-Sperre vergessen, können Sie nicht mehr auf Ihre Daten zugreifen.",
"duplicateCodes": "Codes duplizieren",
"noDuplicates": "✨ Keine Duplikate",
"youveNoDuplicateCodesThatCanBeCleared": "Du hast keine doppelten Codes, die bereinigt werden können",
"deduplicateCodes": "Codes deduplizieren",
"deselectAll": "Alle abwählen",
"selectAll": "Alles auswählen",
"selectAll": "Alle auswählen",
"deleteDuplicates": "Duplikate löschen",
"plainHTML": "Reines HTML",
"tellUsWhatYouThink": "Sagen Sie uns, was Sie denken",
"dropReview": "Eine Bewertung im App/Play Store ablegen",
"dropReviewiOS": "Hinterlassen Sie eine Rezension im App Store",
"dropReviewAndroid": "Hinterlassen Sie eine Rezension im Google Play Store",
"supportEnte": "Unterstütze <bold-green>ente</bold-green>",
"giveUsAStarOnGithub": "Gib uns einen Stern auf Github",
"loginWithAuthAccount": "Mit Ihrem Auth Account anmelden"
"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 ersten Jahr zu sparen",
"advanced": "Erweitert",
"algorithm": "Algorithmus",
"type": "Typ",
"period": "Periode",
"digits": "Ziffern"
}

View File

@@ -173,6 +173,7 @@
"invalidQRCode": "Invalid QR code",
"noRecoveryKeyTitle": "No recovery key?",
"enterEmailHint": "Enter your email address",
"enterNewEmailHint": "Enter your new email address",
"invalidEmailTitle": "Invalid email address",
"invalidEmailMessage": "Please enter a valid email address.",
"deleteAccount": "Delete account",
@@ -506,11 +507,17 @@
"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",
"loginWithAuthAccount": "Login with your Auth account",
"freeStorageOffer": "10% off on <bold-green>ente</bold-green> photos",
"freeStorageOfferDescription": "Use code \"AUTH\" to get 10% off first year"
"freeStorageOfferDescription": "Use code \"AUTH\" to get 10% off first year",
"advanced": "Advanced",
"algorithm": "Algorithm",
"type": "Type",
"period": "Period",
"digits": "Digits"
}

View File

@@ -506,7 +506,8 @@
"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",
"dropReviewiOS": "Deja una reseña en la App Store",
"dropReviewAndroid": "Deja una reseña en la 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",

View File

@@ -173,6 +173,7 @@
"invalidQRCode": "QR code non valide",
"noRecoveryKeyTitle": "Pas de clé de récupération ?",
"enterEmailHint": "Entrez votre adresse e-mail",
"enterNewEmailHint": "Saisissez votre nouvelle adresse email",
"invalidEmailTitle": "Adresse e-mail invalide",
"invalidEmailMessage": "Veuillez saisir une adresse e-mail valide.",
"deleteAccount": "Supprimer le compte",
@@ -499,17 +500,24 @@
"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",
"dropReviewiOS": "Laisser un avis sur l'App Store",
"dropReviewAndroid": "Laisser un avis sur le 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",
"loginWithAuthAccount": "Connectez-vous avec votre compte Auth",
"freeStorageOffer": "10% de réduction sur <bold-green>Ente</bold-green> Photos",
"freeStorageOfferDescription": "Utilisez le code coupon \"AUTH\" pour obtenir 10% de réduction la première année"
"freeStorageOfferDescription": "Utilisez le code coupon \"AUTH\" pour obtenir 10% de réduction la première année",
"advanced": "Avancé",
"algorithm": "Algorithme",
"type": "Type",
"period": "Période",
"digits": "Chiffres"
}

View File

@@ -79,7 +79,7 @@
"contactSupport": "Lépj kapcsolatba az Ügyfélszolgálattal",
"rateUsOnStore": "Értékelj minket a következőn: {storeName}",
"blog": "Blog",
"merchandise": "Áru",
"merchandise": "Ajándéktárgyak",
"verifyPassword": "Jelszó megerősítése",
"pleaseWait": "Kérem várjon...",
"generatingEncryptionKeysTitle": "Titkosítási kulcs generálása...",
@@ -173,6 +173,7 @@
"invalidQRCode": "Érvénytelen QR-kód",
"noRecoveryKeyTitle": "Nincs helyreállítási kulcs?",
"enterEmailHint": "Adja meg az e-mail címét",
"enterNewEmailHint": "Add meg az új e-mail címed",
"invalidEmailTitle": "Érvénytelen e-mail cím",
"invalidEmailMessage": "Kérjük, adjon meg egy érvényes e-mail címet.",
"deleteAccount": "Fiók törlése",
@@ -499,17 +500,20 @@
"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 törölhető ismétlődő kódok",
"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",
"dropReviewiOS": "Írj véleményt az App Store-ban",
"dropReviewAndroid": "Írj véleményt a 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",
"loginWithAuthAccount": "Jelentkezzen be Auth fiókjával",
"freeStorageOffer": "10% kedvezmény on <bold-green>ente<bold-green> photos",
"freeStorageOfferDescription": "Használja az \"AUTH\" kódot, hogy 10% kedvezményt kapjon az első évben"
"freeStorageOfferDescription": "Használja az \"AUTH\" kódot, hogy 10% kedvezményt kapjon az első évben",
"type": "Típus"
}

View File

@@ -173,6 +173,7 @@
"invalidQRCode": "Codice QR non valido",
"noRecoveryKeyTitle": "Nessuna chiave di recupero?",
"enterEmailHint": "Inserisci il tuo indirizzo email",
"enterNewEmailHint": "Inserisci il tuo nuovo indirizzo email",
"invalidEmailTitle": "Indirizzo email non valido",
"invalidEmailMessage": "Inserisci un indirizzo email valido.",
"deleteAccount": "Elimina account",
@@ -504,5 +505,19 @@
"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",
"advanced": "Avanzate",
"algorithm": "Algoritmo",
"type": "Tipo",
"period": "Periodo",
"digits": "Cifre"
}

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

@@ -506,9 +506,17 @@
"deleteDuplicates": "Ištrinti dublikatus",
"plainHTML": "Grynasis HTML",
"tellUsWhatYouThink": "Pasakykite mums, ką manote",
"dropReviewiOS": "Rašyti apžvalgą parduotuvėje „App Store“",
"dropReviewAndroid": "Rašyti apžvalgą parduotuvėje „Play“ parduotuvė“",
"supportEnte": "Paremti „<bold-green>ente</bold-green>“",
"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. "
"freeStorageOfferDescription": "Naudokite kodą „AUTH“, kad gautumėte 10 % nuolaida pirmiesiems metams. ",
"advanced": "Išplėstiniai",
"algorithm": "Algoritmas",
"type": "Tipas",
"period": "Laikotarpis",
"digits": "Skaitmenys"
}

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

@@ -173,6 +173,7 @@
"invalidQRCode": "Ongeldige QR-code",
"noRecoveryKeyTitle": "Geen herstelsleutel?",
"enterEmailHint": "Voer je e-mailadres in",
"enterNewEmailHint": "Voer uw nieuwe e-mailadres in",
"invalidEmailTitle": "Ongeldig e-mailadres",
"invalidEmailMessage": "Voer een geldig e-mailadres in.",
"deleteAccount": "Account verwijderen",
@@ -499,17 +500,24 @@
"appLockOfflineModeWarning": "Je hebt ervoor gekozen om verder te gaan zonder backups. Als je jouw applock vergeet, wordt je uitgesloten van toegang tot je gegevens.",
"duplicateCodes": "Dubbele codes",
"noDuplicates": "✨ Geen dubbele",
"youveNoDuplicateCodesThatCanBeCleared": "Je hebt geen dubbele codes die kunnen worden gewist",
"deduplicateCodes": "Dubbele codes",
"deselectAll": "Alles deselecteren",
"selectAll": "Alles selecteren",
"deleteDuplicates": "Dubbelen verwijderen",
"plainHTML": "Alleen HTML",
"tellUsWhatYouThink": "Vertel ons wat je vindt",
"dropReview": "Laat een beoordeling achter in de App/Play Store",
"dropReviewiOS": "Laat een beoordeling achter in de App Store",
"dropReviewAndroid": "Laat een beoordeling achter in de 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",
"loginWithAuthAccount": "Log in met je Auth account",
"freeStorageOffer": "10% korting op <bold-green>ente</bold-green> photos",
"freeStorageOfferDescription": "Gebruik de code \"AUTH\" voor 10% korting op je eerste jaar"
"freeStorageOfferDescription": "Gebruik de code \"AUTH\" voor 10% korting op je eerste jaar",
"advanced": "Geavanceerd",
"algorithm": "Algoritme",
"type": "Type",
"period": "Periode",
"digits": "Cijfers"
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -173,6 +173,7 @@
"invalidQRCode": "Nieprawidłowy kod QR",
"noRecoveryKeyTitle": "Brak klucza odzyskiwania?",
"enterEmailHint": "Wprowadź adres e-mail",
"enterNewEmailHint": "Wprowadź nowy adres e-mail",
"invalidEmailTitle": "Nieprawidłowy adres e-mail",
"invalidEmailMessage": "Prosimy podać prawidłowy adres e-mail.",
"deleteAccount": "Usuń konto",
@@ -506,11 +507,17 @@
"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>",
"loginWithAuthAccount": "Zaloguj się przy użyciu konta Auth",
"freeStorageOffer": "10% zniżki na zdjęcia <bold-green>ente</bold-green>",
"freeStorageOfferDescription": "Użyj kodu „AUTH”, aby uzyskać 10% zniżki na pierwszy rok"
"freeStorageOfferDescription": "Użyj kodu „AUTH”, aby uzyskać 10% zniżki na pierwszy rok",
"advanced": "Zaawansowane",
"algorithm": "Algorytm",
"type": "Rodzaj",
"period": "Okres",
"digits": "Cyfry"
}

View File

@@ -173,6 +173,7 @@
"invalidQRCode": "QR Code inválido",
"noRecoveryKeyTitle": "Sem chave de recuperação?",
"enterEmailHint": "Insira o endereço de e-mail",
"enterNewEmailHint": "Insira seu novo e-mail",
"invalidEmailTitle": "Endereço de e-mail inválido",
"invalidEmailMessage": "Insira um endereço de e-mail válido.",
"deleteAccount": "Excluir conta",
@@ -506,11 +507,17 @@
"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",
"loginWithAuthAccount": "Registrar-se com sua conta Auth",
"freeStorageOffer": "10% de desconto no <bold-green>ente</bold-green> photos",
"freeStorageOfferDescription": "Use o cupom \"AUTH\" para obter 10% de desconto no primeiro ano"
"freeStorageOfferDescription": "Use o cupom \"AUTH\" para obter 10% de desconto no primeiro ano",
"advanced": "Avançado",
"algorithm": "Algoritmo",
"type": "Tipo",
"period": "Período",
"digits": "Dígitos"
}

View File

@@ -83,22 +83,22 @@
"verifyPassword": "Подтверждение пароля",
"pleaseWait": "Пожалуйста, подождите...",
"generatingEncryptionKeysTitle": "Генерируем ключи шифрования...",
"recreatePassword": "Воссоздать пароль заново",
"recreatePassword": "Повторное создание пароля",
"recreatePasswordMessage": "Текущее устройство недостаточно мощное для проверки пароля, поэтому нам нужно регенерировать его один раз таким образом, чтобы работать со всеми устройствами. \n\nПожалуйста, войдите, используя ваш ключ восстановления и сгенерируйте ваш пароль (вы можете использовать тот же самый, если пожелаете).",
"useRecoveryKey": "Использовать ключ восстановления",
"incorrectPasswordTitle": "Неправильный пароль",
"welcomeBack": "С возвращением!",
"emailAlreadyRegistered": "Адрес электронной почты уже зарегистрирован.",
"emailNotRegistered": "Адрес электронной почты не зарегистрирован.",
"madeWithLoveAtPrefix": "сделана с ❤️ в ",
"madeWithLoveAtPrefix": "сделано с ❤️ в ",
"supportDevs": "Подпишитесь на <bold-green>ente</bold-green> для поддержки нашего проекта",
"supportDiscount": "Используйте код скидки \"AUTH\", чтобы получить скидку 10% на первый год",
"changeEmail": "Изменить почту",
"supportDiscount": "Используйте кодовое слово \"AUTH\", чтобы получить скидку 10% на первый год",
"changeEmail": "Изменить адрес электронной почты",
"changePassword": "Изменить пароль",
"data": "Данные",
"importCodes": "Импортировать коды",
"importTypePlainText": "Обычный текст",
"importTypeEnteEncrypted": "Ente Зашифрованный экспорт",
"importTypeEnteEncrypted": "Зашифрованный экспорт из Ente",
"passwordForDecryptingExport": "Пароль для расшифровки экспорта",
"passwordEmptyError": "Пароль не может быть пустым",
"importFromApp": "Импорт кодов из {appName}",
@@ -106,27 +106,27 @@
"importSelectJsonFile": "Выбрать JSON-файл",
"importSelectAppExport": "Выбрать файл экспорта {appName}",
"importEnteEncGuide": "Выберите зашифрованный JSON файл, экспортированный из Ente",
"importRaivoGuide": "Используйте опцию «Export OTPs to Zip archive» в настройках Raivo.\n\nРаспакуйте zip-архив и импортируйте JSON-файл.",
"importBitwardenGuide": "Используйте опцию \"Экспортировать хранилище\" в Bitwarden Tools и импортируйте незашифрованный JSON файл.",
"importRaivoGuide": "Используйте опцию «Экспорт OTP-кодов в Zip-архив» в настройках Raivo.\n\nРаспакуйте zip-архив и импортируйте JSON-файл.",
"importBitwardenGuide": "Используйте опцию \"Экспортировать хранилище\" в Bitwarden и импортируйте незашифрованный JSON-файл.",
"importAegisGuide": "Используйте опцию «Экспортировать хранилище» в настройках Aegis.\n\nЕсли ваше хранилище зашифровано, то для его расшифровки потребуется ввести пароль хранилища.",
"import2FasGuide": "Используйте опцию \"Settings->Backup -Export\" в 2FAS.\n\nЕсли ваша резервная копия зашифрована, то для расшифровки резервной копии необходимо ввести пароль",
"importLastpassGuide": "Используйте опцию \"Перенести аккаунты\" в настройках Lastpass Authenticator и нажмите на \"Экспортировать учетные записи в файл\". Импортируйте загружённый JSON файл.",
"import2FasGuide": "Используйте опцию \"Настройки->Резервное копирование -Экспорт\" в 2FAS.\n\nЕсли ваша резервная копия зашифрована, то для расшифровки резервной копии необходимо ввести пароль",
"importLastpassGuide": "Используйте опцию \"Перенести аккаунты\" в настройках Lastpass Authenticator и нажмите на \"Экспортировать учетные записи в файл\". Импортируйте загружённый JSON-файл.",
"exportCodes": "Экспортировать коды",
"importLabel": "Импорт",
"importInstruction": "Пожалуйста, выберите файл, содержащий список ваших кодов в следующем формате",
"importCodeDelimiterInfo": "Коды могут быть разделены запятой или новой строкой",
"selectFile": "Выбрать файл",
"emailVerificationToggle": "Подтверждение электронной почты",
"emailVerificationEnableWarning": "Если вы храните у нас двухфакторную аутентификацию в своей электронной почте, включение проверки электронной почты может привести к тупиковой ситуации. Если у вас заблокирован доступ к одной службе, возможно, вы не сможете войти в другую.",
"emailVerificationToggle": "Подтверждение адреса электронной почты",
"emailVerificationEnableWarning": "Чтобы избежать блокировки вашей учетной записи, обязательно сохраните копию вашего электронного письма 2FA за пределами Ente Auth, прежде чем активировать проверку электронной почты.",
"authToChangeEmailVerificationSetting": "Авторизуйтесь, чтобы изменить подтверждение электронной почты",
"authenticateGeneric": "Пожалуйста, авторизуйтесь",
"authToViewYourRecoveryKey": "Пожалуйста, авторизуйтесь для просмотра вашего ключа восстановления",
"authToChangeYourEmail": "Пожалуйста, авторизуйтесь, чтобы изменить адрес электронной почты",
"authToChangeYourPassword": "Пожалуйста, авторизуйтесь, чтобы изменить пароль",
"authToViewSecrets": "Пожалуйста, авторизуйтесь для просмотра ваших секретов",
"authToInitiateSignIn": "Пожалуйста, авторизуйтесь, чтобы начать вход для резервного копирования.",
"authToInitiateSignIn": "Пожалуйста, авторизуйтесь, чтобы получить доступ к резервному копированию.",
"ok": "Ок",
"cancel": "Отменить",
"cancel": "Отмена",
"yes": "Да",
"no": "Нет",
"email": "Электронная почта",
@@ -136,30 +136,31 @@
"copied": "Скопировано",
"pleaseTryAgain": "Пожалуйста, попробуйте ещё раз",
"existingUser": "Существующий пользователь",
"newUser": "Впервые здесь, в Ente",
"newUser": "Впервые в Ente",
"delete": "Удалить",
"enterYourPasswordHint": "Введите пароль",
"forgotPassword": "Забыл пароль",
"oops": "Ой",
"suggestFeatures": "Предложить идеи",
"faq": "FAQ",
"somethingWentWrongMessage": "Что-то пошло не так. Попробуйте еще раз",
"faq": "ЧаВо",
"somethingWentWrongMessage": "Что-то пошло не так, пожалуйста, попробуйте еще раз",
"leaveFamily": "Покинуть семью",
"leaveFamilyMessage": "Вы уверены, что хотите отказаться от семейного плана?",
"inFamilyPlanMessage": "Вы на семейном плане!",
"hintForMobile": "Длительное нажмите на код для редактирования или удаления.",
"hintForDesktop": "Щелкните правой кнопкой мыши по коду, чтобы изменить или удалить.",
"hintForMobile": "Нажмите на код и удерживайте, чтобы редактировать его или удалить.",
"hintForDesktop": "Щелкните правой кнопкой мыши по коду, чтобы редактировать его или удалить.",
"scan": "Сканировать",
"scanACode": "Сканировать QR-код",
"verify": "Подтвердить",
"verifyEmail": "Подтвердить электронную почту",
"verifyEmail": "Подтвердить адрес электронной почты",
"enterCodeHint": "Введите 6-значный код из\nвашего приложения-аутентификатора",
"lostDeviceTitle": "Потеряно устройство?",
"twoFactorAuthTitle": "Двухфакторная аутентификация",
"passkeyAuthTitle": "Проверка с помощью пароля",
"passkeyAuthTitle": "Проверка с помощью ключа доступа",
"verifyPasskey": "Подтвердить пароль",
"loginWithTOTP": "Войти с помощью TOTP",
"recoverAccount": "Восстановить аккаунт",
"enterRecoveryKeyHint": "Введите свой ключ восстановления",
"enterRecoveryKeyHint": "Введите ключ восстановления",
"recover": "Восстановить",
"contactSupportViaEmailMessage": "Пожалуйста, отправьте электронное письмо на адрес {email} с вашего зарегистрированного адреса электронной почты",
"@contactSupportViaEmailMessage": {
@@ -171,7 +172,7 @@
},
"invalidQRCode": "Неверный QR-код",
"noRecoveryKeyTitle": "Нет ключа восстановления?",
"enterEmailHint": "Введите свою почту",
"enterEmailHint": "Введите адрес электронной почты",
"invalidEmailTitle": "Неверный адрес электронной почты",
"invalidEmailMessage": "Пожалуйста, введите действительный адрес электронной почты.",
"deleteAccount": "Удалить аккаунт",
@@ -182,7 +183,7 @@
"sendEmail": "Отправить электронное письмо",
"createNewAccount": "Создать новый аккаунт",
"weakStrength": "Слабый",
"strongStrength": "Крепкий",
"strongStrength": "Сильный",
"moderateStrength": "Средний",
"confirmPassword": "Подтвердить пароль",
"close": "Закрыть",
@@ -333,6 +334,9 @@
}
}
},
"manualSort": "Ручная",
"editOrder": "Изменить порядок",
"mostFrequentlyUsed": "Частота использования",
"mostRecentlyUsed": "Недавно использованные",
"activeSessions": "Активные сеансы",
"somethingWentWrongPleaseTryAgain": "Что-то пошло не так. Попробуйте еще раз",
@@ -376,7 +380,7 @@
"deleteCodeAuthMessage": "Аутентификация для удаления кода",
"showQRAuthMessage": "Аутентификация для отображения QR-кода",
"confirmAccountDeleteTitle": "Подтвердить удаление аккаунта",
"confirmAccountDeleteMessage": "Эта учетная запись связана с другими приложениями Ente, если вы ими пользуетесь.\n\nЗагруженные вами данные во всех приложениях ente будут запланированы к удалению, а ваша учетная запись будет удалена без возможности восстановления.",
"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."
@@ -436,7 +440,7 @@
"signOutOtherDevices": "Выйти из других устройств",
"doNotSignOut": "Не выходить",
"hearUsWhereTitle": "Как вы узнали о Ente? (необязательно)",
"hearUsExplanation": "Будет полезно, если вы укажете, где нашли нас, так как мы не отслеживаем установки приложения",
"hearUsExplanation": "Мы не отслеживаем установки приложений. Было бы полезно, если бы вы сказали, где нас нашли!",
"recoveryKeySaved": "Ключ восстановления сохранён в папке Загрузки!",
"waitingForBrowserRequest": "Ожидание запроса браузера...",
"waitingForVerification": "Ожидание подтверждения...",
@@ -453,6 +457,9 @@
"customEndpoint": "Подключено к {endpoint}",
"pinText": "Прикрепить",
"unpinText": "Открепить",
"pinnedCodeMessage": "{code} был закреплен",
"unpinnedCodeMessage": "{code} был откреплен",
"pinned": "Закреплено",
"tags": "Метки",
"createNewTag": "Создать новую метку",
"tag": "Метка",
@@ -462,9 +469,9 @@
"deleteTagMessage": "Вы уверены, что хотите удалить эту метку? Это действие необратимо.",
"somethingWentWrongParsingCode": "Мы не смогли разобрать коды {x}.",
"updateNotAvailable": "Обновление недоступно",
"viewRawCodes": "Просмотр сырых кодов",
"rawCodes": "Сырые коды",
"rawCodeData": "Сырая информация кодов",
"viewRawCodes": "Просмотр необработанных кодов",
"rawCodes": "Необработанные коды",
"rawCodeData": "Необработанные кодовые данные",
"appLock": "Блокировка приложения",
"noSystemLockFound": "Системная блокировка не найдена",
"toEnableAppLockPleaseSetupDevicePasscodeOrScreen": "Чтобы включить блокировку, настройте пароль устройства или блокировку экрана в настройках системы.",
@@ -482,16 +489,29 @@
"hideContentDescriptioniOS": "Скрывает содержимое приложения в переключателе приложений",
"autoLockFeatureDescription": "Время в фоне, после которого приложение блокируется",
"appLockDescription": "Выберите между экраном блокировки вашего устройства и пользовательским экраном блокировки с PIN-кодом или паролем.",
"pinLock": "Pin Замок",
"pinLock": "Pin блокировка",
"enterPin": "Введите PIN",
"setNewPin": "Установите новый PIN",
"importFailureDescNew": "Не удалось обработать выбранный файл.",
"appLockNotEnabled": "Блокировка приложения отключена",
"appLockNotEnabledDescription": "Пожалуйста, включите блокировку приложения в безопасности > Блокировка приложений",
"appLockNotEnabledDescription": "Пожалуйста, включите блокировку приложения в разделе Безопасность > Блокировка приложений",
"authToViewPasskey": "Пожалуйста, авторизуйтесь, чтобы просмотреть пароль",
"appLockOfflineModeWarning": "Вы решили продолжить работу без резервного копирования. Если вы забудете свой пароль, доступ к вашим данным будет заблокирован.",
"duplicateCodes": "Дублировать коды",
"noDuplicates": "✨ Дубликатов нет",
"youveNoDuplicateCodesThatCanBeCleared": "У вас нет повторяющихся кодов, которые можно было бы удалить",
"deduplicateCodes": "Дедупликационные коды",
"deselectAll": "Снять выделение",
"selectAll": "Выбрать все",
"plainHTML": "Обычный HTML"
"deleteDuplicates": "Удалить повторяющиеся",
"plainHTML": "Обычный HTML",
"tellUsWhatYouThink": "Расскажите нам, что вы думаете",
"dropReviewiOS": "Оставьте отзыв в App Store",
"dropReviewAndroid": "Оставьте отзыв в Play Store",
"supportEnte": "Поддержка <bold-green>ente</bold-green>",
"giveUsAStarOnGithub": "Поставьте нам звезду на Github",
"free5GB": "5Гб бесплатного пространства на <bold-green>ente</bold-green> Фото",
"loginWithAuthAccount": "Войти с помощью учетной записи Auth",
"freeStorageOffer": "Скидка 10% на <bold-green>ente</bold-green> фото",
"freeStorageOfferDescription": "Используйте код \"AUTH\", чтобы получить скидку 10% в первый год"
}

View File

@@ -506,7 +506,6 @@
"deleteDuplicates": "Izbriši dvojnike",
"plainHTML": "Navadni HTML",
"tellUsWhatYouThink": "Povejte nam kaj mislite",
"dropReview": "Napišite oceno v trgovini App/Play Store",
"supportEnte": "Podpiraj <bold-green>ente</bold-green>",
"giveUsAStarOnGithub": "Dajte nam zvezdico na Githubu",
"free5GB": "5 GB zastonj na <bold-green>ente</bold-green> fotografije",

View File

@@ -274,6 +274,7 @@
"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",
@@ -358,6 +359,7 @@
"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",
@@ -365,6 +367,7 @@
"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",

View File

@@ -1 +1,3 @@
{}
{
"importScanQrCode": ""
}

View File

@@ -6,10 +6,10 @@
"@counterAppBarTitle": {
"description": "Text shown in the AppBar of the Counter Page"
},
"onBoardingBody": "2 Faktörlü Kimlik Doğrulama kodlarınızı koruyun",
"onBoardingBody": "2FA kodlarınızı güvenli bir şekilde yedekleyin",
"onBoardingGetStarted": "Başlayın",
"setupFirstAccount": "İlk hesabınızı ekleyin",
"importScanQrCode": "Karekod tara",
"importScanQrCode": "QR kod tara",
"qrCode": "QR Kodu",
"importEnterSetupKey": "Kurulum anahtarını giriniz",
"importAccountPageTitle": "Hesap bilgilerinizi girin",
@@ -51,11 +51,11 @@
"trashCode": "Kod çöpe atılsın mı?",
"trashCodeMessage": "{account} için kodu çöpe atmak istediğinize emin misiniz?",
"trash": "Çöp",
"viewLogsAction": "Günlüğü görüntüle",
"sendLogsDescription": "Günlüğünüz hatanızı çözmemize yardımcı olacaktır. Hassas bilginin kaydedilmediğine dikkat etsek de bu günlükleri paylaşmadan önce kontrol etmenizi isteriz.",
"preparingLogsTitle": "Günlük hazırlanıyor...",
"emailLogsTitle": "Günlüğü e-posta olarak gönder",
"emailLogsMessage": "Lütfen günlüğünüzü {email} adresine gönderin",
"viewLogsAction": "Kayıtları görüntüle",
"sendLogsDescription": "Kayıtlarınız hatanızı çözmemize yardımcı olacaktır. Hassas bilginin kaydedilmediğine dikkat etsek de bu günlükleri paylaşmadan önce kontrol etmenizi isteriz.",
"preparingLogsTitle": "Kayıtlar hazırlanıyor...",
"emailLogsTitle": "Kayıtları e-posta olarak gönder",
"emailLogsMessage": "Lütfen kayıtlarınızı {email} adresine gönderin",
"@emailLogsMessage": {
"placeholders": {
"email": {
@@ -64,7 +64,7 @@
}
},
"copyEmailAction": "E-postayı Kopyala",
"exportLogsAction": "Günlüğü dışa aktar",
"exportLogsAction": "Kayıtları dışa aktar",
"reportABug": "Hata bildirin",
"crashAndErrorReporting": "Çökme ve hata bildirimi",
"reportBug": "Hata bildir",
@@ -90,7 +90,7 @@
"welcomeBack": "Tekrar hoş geldiniz!",
"emailAlreadyRegistered": "E-posta zaten kayıtlı.",
"emailNotRegistered": "E-posta kayıtlı değil.",
"madeWithLoveAtPrefix": "❤️ ile şurada yapılmıştır ",
"madeWithLoveAtPrefix": "❤️ ile yapılmıştır ",
"supportDevs": "Bu projeyi desteklemek için <bold-green>ente</bold-green> kanalına abone olun",
"supportDiscount": "İlk yılda %10 indirim için \"AUTH\" kupon kodunu kullanın",
"changeEmail": "E-posta adresini değiştir",
@@ -176,7 +176,7 @@
"invalidEmailTitle": "Geçersiz e-posta adresi",
"invalidEmailMessage": "Lütfen geçerli bir e-posta adresi girin.",
"deleteAccount": "Hesabı sil",
"deleteAccountQuery": "Sizin gitmenizi görmekten üzüleceğiz. Bazı problemlerle mi karşılaşıyorsunuz?",
"deleteAccountQuery": "Sizin gittiğinizi görmekten üzüleceğiz. Bazı problemlerle mi karşılaşıyorsunuz?",
"yesSendFeedbackAction": "Evet, geri bildirimi gönder",
"noDeleteAccountAction": "Hayır, hesabı sil",
"initiateAccountDeleteTitle": "Hesap silme işlemini yapabilmek için lütfen kimliğinizi doğrulayın",
@@ -253,8 +253,8 @@
"insecureDevice": "Güvenli olmayan cihaz",
"sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": "Üzgünüz, bu cihazda güvenli anahtarlar oluşturamadık.\n\nlütfen farklı bir cihazdan kaydolun.",
"howItWorks": "Nasıl çalışır",
"ackPasswordLostWarning": "Eğer şifremi kaybedersem, verilerim <underline>uçtan uca şifrelendiğinden</underline> verilerimi kaybedebileceğimi anladım.",
"loginTerms": "Giriş yaparak, <u-terms>kullanım şartları</u-terms>nı ve <u-policy>gizlilik politikası</u-policy>nı onaylıyorum",
"ackPasswordLostWarning": "Eğer şifremi kaybedersem, verilerim <underline> uçtan uca şifrelendiğinden </underline> verilerimi kaybedebileceğimi anladım.",
"loginTerms": "Giriş yaparak, <u-terms> kullanım şartları </u-terms>nı ve <u-policy> gizlilik politikası </u-policy>nı onaylıyorum",
"logInLabel": "Giriş yapın",
"logout": "Çıkış yap",
"areYouSureYouWantToLogout": "Çıkış yapmak istediğinize emin misiniz?",
@@ -277,10 +277,10 @@
"recoveryKeyVerifyReason": "Kurtarma anahtarınız, şifrenizi unutmanız durumunda fotoğraflarınızı kurtarmanın tek yoludur. Kurtarma anahtarınızı Ayarlar > Hesap bölümünde bulabilirsiniz.\n\nDoğru kaydettiğinizi doğrulamak için lütfen kurtarma anahtarınızı buraya girin.",
"confirmYourRecoveryKey": "Kurtarma anahtarınızı doğrulayın",
"confirm": "Doğrula",
"emailYourLogs": "Günlüklerinizi e-postayla gönderin",
"pleaseSendTheLogsTo": "Lütfen günlükleri şu adrese gönderin\n{toEmail}",
"emailYourLogs": "Kayıtlarınızı e-postayla gönderin",
"pleaseSendTheLogsTo": "Lütfen kayıtları şu adrese gönderin\n{toEmail}",
"copyEmailAddress": "E-posta adresini kopyala",
"exportLogs": "Günlüğü dışa aktar",
"exportLogs": "Kayıtları dışa aktar",
"enterYourRecoveryKey": "Kurtarma anahtarınızı girin",
"tempErrorContactSupportIfPersists": "Bir şeyler ters gitmiş gibi görünüyor. Lütfen bir süre sonra tekrar deneyin. Hata devam ederse, lütfen destek ekibimizle iletişime geçin.",
"networkHostLookUpErr": "Ente'ye bağlanılamıyor, lütfen ağ ayarlarınızı kontrol edin ve hata devam ederse desteğe başvurun.",
@@ -499,10 +499,24 @@
"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 herhangi bir yinelenen kodunuz yok",
"deduplicateCodes": "Kodları tekilleştir",
"deselectAll": "Tümünün seçimini kaldır",
"selectAll": "Tümünü seç",
"deleteDuplicates": "Yinelenenleri sil",
"plainHTML": "Sade HTML",
"supportEnte": "<bold-Green>Ente</bold-Green>'yi destekle"
"tellUsWhatYouThink": "Bize ne düşündüğünü söyle",
"dropReviewiOS": "App Store'da bir inceleme bırakın",
"dropReviewAndroid": "Play Store'da bir inceleme bırakın",
"supportEnte": "<bold-Green>Ente</bold-Green>'yi destekle",
"giveUsAStarOnGithub": "Github'da bize bir yıldız verin",
"free5GB": "<bold-green>ente</bold-green> Fotoğraflarında 5GB ücretsiz",
"loginWithAuthAccount": "Kimlik Doğrulama hesabınızla giriş yapın",
"freeStorageOffer": "<bold-green>ente</bold-green> fotoğraflarında %10 indirim",
"freeStorageOfferDescription": "İlk yılda %10 indirim almak için \"AUTH\" kodunu kullanın",
"advanced": "Gelişmiş",
"algorithm": "Algoritma",
"type": "Tür",
"period": "Zaman Aralığı",
"digits": "Uzunluk"
}

View File

@@ -51,7 +51,7 @@
"trashCode": "Xóa mã?",
"trashCodeMessage": "Bạn có chắc chắn muốn xóa mã cho {account} không?",
"trash": "Xóa",
"viewLogsAction": "Xem các bản ghi",
"viewLogsAction": "Xem nhật ký",
"sendLogsDescription": "Thao tác này sẽ gửi nhật ký để giúp chúng tôi gỡ lỗi sự cố của bạn. Mặc dù chúng tôi thực hiện các biện pháp phòng ngừa để đảm bảo rằng thông tin nhạy cảm không được ghi lại, nhưng chúng tôi khuyến khích bạn xem các nhật ký này trước khi chia sẻ chúng.",
"preparingLogsTitle": "Đang chuẩn bị nhật ký...",
"emailLogsTitle": "Nhật ký email",
@@ -499,9 +499,19 @@
"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ã 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ì",
"dropReviewiOS": "Đánh giá ngay trên App Store",
"dropReviewAndroid": "Đánh giá ngay trên Play Store",
"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

@@ -0,0 +1,523 @@
{
"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": "请输入您的电子邮件地址",
"enterNewEmailHint": "请输入您的新电子邮件地址",
"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": "纯 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% 折扣",
"advanced": "高级",
"algorithm": "算法",
"type": "类型",
"period": "周期",
"digits": "数字"
}

View File

@@ -0,0 +1,522 @@
{
"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": "純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% 折扣",
"advanced": "進階",
"algorithm": "演算法",
"type": "類型",
"period": "期間",
"digits": "數位"
}

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,31 +34,32 @@ const List<Locale> appSupportedLocales = <Locale>[
Locale('uk'),
Locale('vi'),
Locale("zh", "CN"),
Locale("zh", "TW"),
];
Locale? autoDetectedLocale;
Locale localResolutionCallBack(locales, supportedLocales) {
Locale? languageCodeMatch;
final Map<String, Locale> languageCodeToLocale = {
for (Locale supportedLocale in appSupportedLocales)
supportedLocale.languageCode: supportedLocale,
};
for (Locale locale in locales) {
// This function takes device locales and supported locales as input
// and returns the best matching locale.
// The device locales are sorted by priority, so the first one is the most preferred.
Locale localResolutionCallBack(onDeviceLocales, supportedLocales) {
final Set<String> languageSupport = {};
for (Locale supportedLocale in appSupportedLocales) {
languageSupport.add(supportedLocale.languageCode);
}
for (Locale locale in onDeviceLocales) {
// check if exact local is supported, if yes, return it
if (appSupportedLocales.contains(locale)) {
autoDetectedLocale = locale;
return locale;
}
if (languageCodeMatch == null &&
languageCodeToLocale.containsKey(locale.languageCode)) {
languageCodeMatch = languageCodeToLocale[locale.languageCode];
autoDetectedLocale = languageCodeMatch;
// check if language code is supported, if yes, return it
if (languageSupport.contains(locale.languageCode)) {
autoDetectedLocale = locale;
return locale;
}
}
// Return the first language code match or default to 'en'
return languageCodeMatch ?? const Locale('en');
return autoDetectedLocale ?? const Locale('en');
}
Future<Locale?> getLocale({

View File

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

View File

@@ -3,10 +3,12 @@ import 'package:flutter/material.dart';
class FieldLabel extends StatelessWidget {
final String label;
final double width;
const FieldLabel(
this.label, {
super.key,
this.width = 80,
});
@override
@@ -14,7 +16,7 @@ class FieldLabel extends StatelessWidget {
return Padding(
padding: const EdgeInsets.only(right: 12.0),
child: SizedBox(
width: 80,
width: width,
child: Text(
label,
style: getEnteTextTheme(context).miniBoldMuted,

View File

@@ -18,6 +18,7 @@ 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';
import 'package:ente_auth/ui/custom_icon_page.dart';
import 'package:ente_auth/ui/topt_selector_widget.dart';
import 'package:ente_auth/ui/utils/icon_utils.dart';
import 'package:ente_auth/utils/dialog_util.dart';
import 'package:ente_auth/utils/toast_util.dart';
@@ -40,11 +41,13 @@ class _SetupEnterSecretKeyPageState extends State<SetupEnterSecretKeyPage> {
final int _notesLimit = 500;
final int _otherTextLimit = 200;
final int defaultDigits = 6;
final int defaultPeriodInSeconds = 30;
late TextEditingController _issuerController;
late TextEditingController _accountController;
late TextEditingController _secretController;
late TextEditingController _notesController;
late TextEditingController _digitsController;
late TextEditingController _periodController;
late bool _secretKeyObscured;
late List<String> selectedTags = [...?widget.code?.display.tags];
List<String> allTags = [];
@@ -53,6 +56,8 @@ class _SetupEnterSecretKeyPageState extends State<SetupEnterSecretKeyPage> {
String _customIconID = "";
late IconType _iconSrc;
late Algorithm _algorithm;
late Type _type;
final ValueNotifier<bool> showAdvancedOptions = ValueNotifier<bool>(false);
@override
void initState() {
@@ -74,6 +79,11 @@ class _SetupEnterSecretKeyPageState extends State<SetupEnterSecretKeyPage> {
? widget.code!.digits.toString()
: defaultDigits.toString(),
);
_periodController = TextEditingController(
text: widget.code != null
? widget.code!.period.toString()
: defaultPeriodInSeconds.toString(),
);
_secretKeyObscured = widget.code != null;
_loadTags();
@@ -112,6 +122,7 @@ class _SetupEnterSecretKeyPageState extends State<SetupEnterSecretKeyPage> {
: IconType.customIcon;
_algorithm = widget.code == null ? Algorithm.sha1 : widget.code!.algorithm;
_type = widget.code == null ? Type.totp : widget.code!.type;
super.initState();
}
@@ -134,6 +145,7 @@ class _SetupEnterSecretKeyPageState extends State<SetupEnterSecretKeyPage> {
_accountController.dispose();
_notesController.dispose();
_digitsController.dispose();
_periodController.dispose();
super.dispose();
}
@@ -281,79 +293,6 @@ 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,
@@ -400,6 +339,10 @@ class _SetupEnterSecretKeyPageState extends State<SetupEnterSecretKeyPage> {
),
],
),
const SizedBox(height: 12),
widget.code == null
? advanceOptionWidget()
: const SizedBox.shrink(),
const SizedBox(height: 40),
SizedBox(
width: 400,
@@ -419,11 +362,25 @@ class _SetupEnterSecretKeyPageState extends State<SetupEnterSecretKeyPage> {
return;
}
final period =
int.tryParse(_periodController.text.trim());
if (period != null && (period < 10 || period > 60)) {
String message =
"Period must be between 10 and 60 seconds";
_showIncorrectDetailsDialog(
context,
message: message,
);
return;
}
if ((_accountController.text.trim().isEmpty &&
_issuerController.text.trim().isEmpty) ||
_secretController.text.trim().isEmpty ||
_digitsController.text.trim().isEmpty ||
digits == null) {
digits == null ||
_periodController.text.trim().isEmpty ||
period == null) {
String message;
if (_secretController.text.trim().isEmpty) {
message = context.l10n.secretCanNotBeEmpty;
@@ -431,6 +388,10 @@ class _SetupEnterSecretKeyPageState extends State<SetupEnterSecretKeyPage> {
message = "Digits cannot be empty";
} else if (digits == null) {
message = "Digits is not a integer";
} else if (_periodController.text.isEmpty) {
message = "Period cannot be empty";
} else if (period == null) {
message = "Period is not a integer";
} else {
message =
context.l10n.bothIssuerAndAccountCanNotBeEmpty;
@@ -462,6 +423,7 @@ class _SetupEnterSecretKeyPageState extends State<SetupEnterSecretKeyPage> {
final secret = _secretController.text.trim().replaceAll(' ', '');
final notes = _notesController.text.trim();
final digits = int.tryParse(_digitsController.text.trim());
final period = int.tryParse(_periodController.text.trim());
final isStreamCode = issuer.toLowerCase() == "steam" ||
issuer.toLowerCase().contains('steampowered.com');
@@ -498,13 +460,14 @@ class _SetupEnterSecretKeyPageState extends State<SetupEnterSecretKeyPage> {
final Code newCode = widget.code == null
? Code.fromAccountAndSecret(
isStreamCode ? Type.steam : Type.totp,
isStreamCode ? Type.steam : _type,
account,
issuer,
secret,
display,
isStreamCode ? Code.steamDigits : digits!,
algorithm: _algorithm,
period: period!,
)
: widget.code!.copyWith(
account: account,
@@ -513,6 +476,8 @@ class _SetupEnterSecretKeyPageState extends State<SetupEnterSecretKeyPage> {
display: display,
algorithm: _algorithm,
digits: digits!,
type: _type,
period: period,
);
// Verify the validity of the code
@@ -558,4 +523,158 @@ class _SetupEnterSecretKeyPageState extends State<SetupEnterSecretKeyPage> {
_iconSrc = newCustomIcon.type;
});
}
Widget advanceOptionWidget() {
final l10n = context.l10n;
return Padding(
padding: const EdgeInsets.only(top: 16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
GestureDetector(
onTap: () {
showAdvancedOptions.value = !showAdvancedOptions.value;
},
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(l10n.advanced),
ValueListenableBuilder<bool>(
valueListenable: showAdvancedOptions,
builder: (context, isExpanded, child) {
return Icon(
isExpanded
? Icons.keyboard_arrow_up
: Icons.keyboard_arrow_down,
size: 24,
);
},
),
],
),
),
ValueListenableBuilder<bool>(
valueListenable: showAdvancedOptions,
builder: (context, isExpanded, child) {
return AnimatedSwitcher(
duration: const Duration(milliseconds: 300),
transitionBuilder: (child, animation) {
return SizeTransition(
sizeFactor: animation,
child: child,
);
},
child: isExpanded
? SizedBox(
width: 400,
child: Padding(
padding: const EdgeInsets.only(
top: 16,
),
child: GridView.count(
crossAxisCount: 2,
shrinkWrap: true,
childAspectRatio: 2.5,
crossAxisSpacing: 16,
mainAxisSpacing: 14,
physics: const NeverScrollableScrollPhysics(),
children: [
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
FieldLabel(l10n.algorithm, width: 60),
AlgorithmSelectorWidget(
currentAlgorithm: _algorithm,
onSelected: (newAlgorithm) async {
setState(() {
_algorithm = newAlgorithm;
});
},
),
],
),
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
FieldLabel(l10n.type, width: 60),
ToptSelectorWidget(
currentTopt: _type,
onSelected: (newTopt) async {
setState(() {
_type = newTopt;
});
},
),
],
),
Row(
children: [
FieldLabel(l10n.period, width: 60),
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 > 60) {
return "Period must be between 1 and 60";
}
return null;
},
maxLines: 1,
style: getEnteTextTheme(
context,
).small,
controller: _periodController,
),
),
],
),
Row(
children: [
FieldLabel(l10n.digits, width: 60),
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,
style: getEnteTextTheme(
context,
).small,
controller: _digitsController,
),
),
],
),
],
),
),
)
: const SizedBox.shrink(),
);
},
),
],
),
);
}
}

View File

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

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