Commit Graph

318 Commits

Author SHA1 Message Date
Arnab Chakraborty
dc23c3fdfe Update SDCoreModule.kt 2024-07-28 19:48:06 +00:00
Vítor Vasconcellos
f56fcaf97e Merge branch 'main' into eng-1828-migration-to-new-cloud-api-system 2024-07-28 16:30:25 -03:00
Vítor Vasconcellos
0a4e527a4a Fix inconsistencies and update project's gitignore (#2642)
* Improve gitignore

* Update pnpm
2024-07-28 11:25:35 +00:00
ameer2468
ffa089bfb8 [MOB-115] Cloud sync UX flow (#2636)
* Improved cloud sync UX flow

* fix formatting

* improved UX flow with clearer descriptions of modals

* show cloud modal after 1s

* run formatting
2024-07-24 11:07:02 +00:00
Arnab Chakraborty
e9d72b9b6b Merge branch 'main' into eng-1828-migration-to-new-cloud-api-system 2024-07-23 14:04:43 +03:00
Arnab Chakraborty
3db7ae7712 Change service subdomain url from app to api 2024-07-23 13:41:30 +03:00
Arnab Chakraborty
2d713e9827 Remove kotlin code for Android Name
We're going for a different solution.
2024-07-23 12:51:32 +03:00
Arnab Chakraborty
774c356f8f Tracing error for mobile core 2024-07-23 12:51:13 +03:00
ameer2468
2bd48569e0 [MOB-114] Improve Media View thumbnails and coming soon alerts (#2626)
* improve thumbs of media view, coming soon state for settings routes, and debug bg color change

* alert for lock in sidebar dropdown

* formatting

* Move Coming Soon Alert to it's own component

So, it makes life easier if we need to change wording later.

* autoformat

---------

Co-authored-by: Arnab Chakraborty <11457760+Rocky43007@users.noreply.github.com>
2024-07-22 17:53:30 +00:00
Arnab Chakraborty
f1fa1c0069 Start of fixing Android Device Naming in node 2024-07-19 16:44:40 +03:00
ameer2468
8abff38aae [MOB-87] Improve toasts (#2610)
* improve toasts

* formatting

* restore back regular visibility time

* increase toast time & handle edge case
2024-07-17 13:42:07 +00:00
ameer2468
740395819b [MOB-113] Job manager layout fix & code cleanups (#2608)
* Fix job manager text alignment, await permissions request, and fix delete button library settings

* run auto-format

* ts
2024-07-16 13:24:36 +00:00
ameer2468
f0e7c7c033 [MOB-112] Media view (#2606)
* media view wip

* update search filters to include image and video only

* os based sizing

* search support media view correctly & fix UI width of drawer locations

* Merge remote-tracking branch 'origin' into mob-112-media-view

* Fix explorer re-rendering and improve file opening performance by using libraryClient for queries and mutation

* cleanup

* use memory-disk cache policy for better performance

* remove commented out code

* formatting

* Mobile media view

update search filters to include image and video only

os based sizing

Disable Vite `clearScreen` (#2594)

Change Vite config to disable clearScreen

Use default props for Top Bar icons (#2593)

* Refactor top bar items to use default props

* oops! revert top bar icon size to 18px

Fix misspelled "vacuum" (#2595)

[MOB-110] Fix for Android Permissions (#2592)

* Fix for Android Permissions

Now actually requests the permissions if they aren't granted.

* Remove `console.log``

* Request multiple permissions sequentially

* Better UX

* Add Note for `Number()` patch

* Remove `console.log()`

Revamp `.gitattributes` for statistics and better PR diffs (#2596)

* Revamp .gitattributes for statistics and better PR diffs

* Mark migration_lock as binary

search support media view correctly & fix UI width of drawer locations

Merge remote-tracking branch 'origin' into mob-112-media-view

Fix explorer re-rendering and improve file opening performance by using libraryClient for queries and mutation

cleanup

use memory-disk cache policy for better performance

remove commented out code

formatting
2024-07-15 21:37:07 +00:00
Arnab Chakraborty
96fda2fa29 Fix Intl namespace not existing on mobile (#2600)
* Adds `intl` namespace to mobile

* Fix ordering

* Update pnpm-lock.yaml

* Fix format

---------

Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
2024-07-10 23:36:49 +00:00
Arnab Chakraborty
fb08645fd0 [MOB-110] Fix for Android Permissions (#2592)
* Fix for Android Permissions

Now actually requests the permissions if they aren't granted.

* Remove `console.log``

* Request multiple permissions sequentially

* Better UX

* Add Note for `Number()` patch

* Remove `console.log()`
2024-07-09 23:43:36 +00:00
Ericson "Fogo" Soares
7bba5eea63 [ENG-1813] Introduce caching for Kind Statistics (#2585)
* Backend done

* Forgot new migration

* track subscription in file kind stats

* Real time updates on both graphs at overview

---------

Co-authored-by: myung03 <matthewyungisworking@gmail.com>
2024-07-07 05:58:00 +00:00
ameer2468
f75019926f [MOB-111] Open file on tap not inspector (#2583)
* Open file instead of inspector on tap

* Update Explorer.tsx

* cleanup

* Open file instead of inspector on tap

Update Explorer.tsx

Fix autoformat CI & format codebase (#2581)

* Update pnpm version

* Fix autoformat

* Improve autoformat msg

* Attempt to fix autoformat 2

* Fix autoformat

* Ignore deleted files in auto-format

* Fix diff filter

* Autoformat whole codebase

* Improve error message for autoformat CI

* Test autoformat CI

* Revert "Test autoformat CI"

This reverts commit 0bf2f46d1a.

cleanup

* formatting

* missed
2024-07-04 19:14:34 +00:00
Vítor Vasconcellos
561462760b Fix autoformat CI & format codebase (#2581)
* Update pnpm version

* Fix autoformat

* Improve autoformat msg

* Attempt to fix autoformat 2

* Fix autoformat

* Ignore deleted files in auto-format

* Fix diff filter

* Autoformat whole codebase

* Improve error message for autoformat CI

* Test autoformat CI

* Revert "Test autoformat CI"

This reverts commit 0bf2f46d1a.
2024-07-04 08:57:43 +00:00
ameer2468
6db8949172 [ENG-1810] Sync Icons & more (#2578)
* wip - need light mode icons

* wip

* icons for sync and cloud sync
2024-07-02 17:35:18 +00:00
Matthew Yung
f7b0e3bd06 [ENG-1794] Overview Rework (#2555)
* StorageBar implementation

* filekindstats reworked into interactive node graph

* ui changes to graph

* light/dark mode changes + ui edits

* missing dependancy in package.json and minor visual improvements

* fixed collision physics

* d3 force package

* fixed nodes going off screen

* removed onNodeDragEnd

* fix central node and add particle effect

* fixed central node and typescript errors

* bar graph/storage bar ui improvements

* changed icons

* totals

* made ui changes

* ui changes

* minor requested ui changes

* fixed spacing for ui

* Remove extraneous newline in core/src/api/libraries.rs

* Fix minor suggestions from code review

* Fix typecheck

* Auto format

* refactor file kind stat card with css grid

* ensure unidentified files never negative

* FIxing some stats

* Counting directories

* fixed error with height of bars

* updated storage bar

* total files update

---------

Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com>
Co-authored-by: James Pine <ijamespine@me.com>
Co-authored-by: Lynx <141365347+iLynxcat@users.noreply.github.com>
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
Co-authored-by: Lynx <ephemeral.lynx@protonmail.com>
Co-authored-by: Ericson Soares <ericson.ds999@gmail.com>
2024-06-24 20:00:51 +00:00
ameer2468
a9eb3c7f42 [MOB-108] UI adjustments (#2563)
* wip

* wip

* max width on locations in drawer

* remove fade and console log

* lint fix
2024-06-24 15:50:36 +00:00
ameer2468
6e3559b7cf [ENG-1798] Improve cloud sync ui (#2554)
improve cloud sync ui

cleanup

use better values

lint
2024-06-18 16:15:11 +00:00
Arnab Chakraborty
18235c6f09 [MOB-106] Cloud Sync for Mobile (#2549)
* wip + working backfill

* Finished BackfillWaiting page + initial auth setup

Also, setting up the cloud sync page.

* mobile auth

* Import Cloud Library

Currently, you can import a cloud library, however it seems that the data, such as locations, is not transferring correctly.

* Working Mobile Cloud Sync

Cloud Sync works for Mobile, and the mobile app can sync files from a cloud library, and other clients can access the data from the phone's cloud library.

* Cloud Sync Done

* Formatting

* Fix new library button

* New device type passing to auth

* Improve design of cloud settings and import modal

* ui adjustments and code cleanup

* Update styling if there's only 1 instance

* code cleanup, design tweaks

* empty state & simple indicator animation

* lint

* loading indicator and cleanup

* Fix to Sync Subscription

* Update Cargo.lock

* Async logout for debug

* tweaks

* Update SettingsStack.tsx

* cleanups and cloud desktop design improvements

* more cleanups and ui improvements

* ts

* i18n

* Cloud Sync Docs

* styling

* Delete library-sync.mdx

Moving docs to a separate branch

---------

Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com>
2024-06-18 08:46:29 +00:00
Ericson "Fogo" Soares
bdc242a852 [ENG-1775] Scan location using new jobs (#2476)
* First draft on task system usage, still missing job system

* Scan location roughly working, a ton of stuff to fix yet

* Updating some deps due to crashes and bugs

* Exposing non critical errors to frontend

* Getting active job reports from job system

* Using boxed opaque type to avoid a downcast issue with generics

* Task system issues discovered on race conditions

* Enable debug

* Fix job report in the job manager

* Fix race condition on steal tasks

* Fixed race condition on task suspend

* Some fixes on job progress reporting and save

* Fixed many race conditions and a hard deadlock
Also some progress report polishing

* Ignore .ts and .mts video files for now

* Some better logs

* bruh

* Internal deadlocks and excess of communication in the task system
- Also better logs

* Bunch of fixes and optimizations

* WIP at fixing file identifier

* Fixed file identifier job
- still need to work on its progress report frontend

* A bunch of polishing

* Fixed some bugs and did more polishing

* Cleanup

* Bridging old and new job systems

* A ton of fixes

* A bunch of bugs related to shutdown and resume

* Indexer and watcher bugs

* Log normalizing

* Fixing CI

* Change error! to warn! on non critical errors log

* Fix redirect to new location

* Type annotation

* Bogus merge resolution on cargo lock
2024-06-17 21:30:57 +00:00
ameer2468
f8ed254a22 [MOB-94] Onboarding haptics (#2552)
Onboarding haptics
2024-06-14 16:42:19 +00:00
Vítor Vasconcellos
405fb023d8 Clean up and update rust dependencies (#2544)
* Clean up and update rust dependencies

* Attempt to fix Windows Error
2024-06-10 19:44:00 +00:00
ameer2468
9ddfee8916 [MOB-105] Rename with extension & add await (#2539)
add await date accessed to run first and rename with extension consideration
2024-06-06 15:02:20 +00:00
ameer2468
8d0a31c9d6 [MOB-100] Job manager design improvements (#2531)
* design improvements job manager mob

* centering
2024-05-31 19:42:59 +00:00
ameer2468
530e3c8ac8 [MOB-99] Job remove & more (#2514)
* Clear job and improve job manager design

* pullToRefresh, search adjustment, and more

* ts

* use rspc instead of query client

* Update JobManagerModal.tsx
2024-05-28 21:02:50 +00:00
ameer2468
2321addc67 [MOB-98] Rename, delete, & more (#2506)
* rename and delete support, browse design improvement

* update toast styling

* Update RenameModal.tsx

* fix test

* fix warning message on initial render, add-tag test, and remove solid js references

* ci

* Add feedback toast for location delete and tag delete
2024-05-27 15:44:15 +00:00
ameer2468
96a45ee76c [MOB-97] Fade select tags and empty location state (#2496)
* fade select tags and empty location state

* smaller tags

* smaller tags  in filters and add tags modal
2024-05-20 22:29:56 +00:00
ameer2468
9d47af8bd1 [MOB-95] Tags support & more (#2494)
* tags support wip

* Mob: tags in explorer, ui adjustments, add filter based on search click and more

* Fix tags scroll on filters

* Set heights so UI updates correctly

* Update Tags.tsx

* remove console logs

* remove console logs

* Update Locations.tsx

* type

* Update locations.rs

* make tags abit smaller

* list view visual improvements

* Remove plus
2024-05-17 15:55:29 +00:00
Vítor Vasconcellos
50f554d5e5 Fix front-end error when selecting multiple files with inspector open (#2486)
- Fix humanizeSize returning value as original (which was simply plain wrong), replace it with the original bytes
 - Restore plural to humanizeSize, but only when converting object to string
 - Fix float number to BigInt conversion in humanizeSize possibly causing an error (now it truncates the value)
 - Remove unused profile.release from `apps/desktop/src-tauri/Cargo.toml`, repo's main Cargo.toml profile overrides it
 - Update `packageManager` and remove conflicting `engineStrict` entry from package.json
 - Remove `prefer-symlinked-executables` from `.npmrc`, linked bug was fixed
2024-05-14 07:06:07 +00:00
Jamie Pine
8bfcf58a0d [ENG-1778] Total library size statistic (#2477)
* it

* migration

* fix error msg

* fix error msg actually tho

* fix

* ts errors
2024-05-13 22:02:49 +00:00
Vítor Vasconcellos
e797b02e65 Media metadata extraction & Thumbnailer rework (#2285)
* initial ffprobe commit

* Working slim down version ffprobe

* Auto format ffprobe and deps source

* Remove show_pixel_formats logic
- Fix do_bitexact incorrect check in main after last changes
- Fix some clangd warning

* Remove show_* and print_format options and their respective logic

* Rework ffprobe into simple_ffprobe
- Simplify ffprobe logic into a simple program that gather and print a media file metadata

* Reduce the amount of ffmpeg log messages while generating thumbnails

* Fix completly wrong comments

* mend

* Start modeling ffmpeg extracted metadata on schema
 - Start porting ffprobe code to rust
 - Rename some references to media_data to exif_data

* Finish modeling media info data
 - Add MediaProgram, MediaStream, MediaCodec, MediaVideoProps, MediaAudioProps, MediaSubtitleProps to Schema
 - Fix simple_ffproble to use its custom print_codec, instead of ffmpeg's impl

* Add relation between MediaInfo and FilePath
 - Remove shared properties from MediaInfo and related structs
 - Implement Iterator for FFmpegDict

* Fix and update schema

* Data models and start populating MediaInfo in rust

* Finish populating media info, chapters and program

* Improve FFmpegFormatContext data raw pointer access
 - Implement stream data gathering

* Impl FFmpegCodecContext, retrieve codec information
 - Improve some unsafe pointer uses
 - Impl from FFmpegFormatContext to MediaInfo conversion

* Fix FFmpegDict Drop

* Fix some crago warnings

* Impl retrieval of video props
 - Fix C char* to Rust String convertion

* Impl retrieval of audio and subtitle props
 - Fill props for MediaCodec

* Remove simple_ffprobe now that the Rust impl is done

* Fix schema to match actually retrieved media info
 - Fix import some FFmpeg constants instead of directly using values

* Rework movie_decoder
 - Re-implement create_scale_string and add support anamorphic video
 - Improve C pointer access for FFmpegFormatContext and FFmpegCodecContext
 - Use newer FFmpeg abstractions in movie_decoder

* Fix incorrect props when initializing MovieDecoder

* Remove unecessary lifetimes

* Added more native wrappers for some FFmpeg native objects used in movie_decoder

* Remove FFmpegPacket
 - Some more improvements to movie_decoder

* WIP

* Some small fixes

* More fixes
Rename movie_decoder to frame_decoder
Remove more references to film_strips

* fmt

* Fix duplicate migration for job error changes

* fix rebase

* Solving segfaults, fuck C lang

Co-authored-by: Vítor Vasconcellos <HeavenVolkoff@users.noreply.github.com>

* Update rust to version 1.77
 - Pin rust version with rust-toolchain.toml
 - Change from dtolnay/rust-toolchain to IronCoreLabs/rust-toolchain for rust-toolchain support
 - Remove unused function and imports
 - Replace most CString uses with new c literal string

* More segfault solving and other minor fixes

Co-authored-by: Vítor Vasconcellos <HeavenVolkoff@users.noreply.github.com>

* Fix ffmpeg rotation filter breaking portrait video thumbnails #2150
 - Plus some other misc fixes

* Auto format

* Retrieve video/audio metadata on frontend

* Auto format

* First draft on ffmpeg data save on db

Co-authored-by: Vítor Vasconcellos <HeavenVolkoff@users.noreply.github.com>

* Fix some incorrect changes to prisma schema

* Some fixes for the FFmpegData schema
 - Expand logic to save FFmpegData to db

* A ton of things

Co-authored-by: Vítor Vasconcellos <HeavenVolkoff@users.noreply.github.com>

* Integrating ffmpeg media data in jobs and API

* Rspc can't BigInt

* 🙄

* Add initial ffmpeg metadata entries to Inspector
 - Fix ephemeral metadata api to match the files metadata api call

* Fix Inspector not showing ffmpeg metadata

* Add bitrate, start time and chapters video metadata to Inspector
- Fix backend BigInt conversion incorrectly using i32 instead of u32
- Change FFmpegFormatContext/FFmpegMetaData bit_rate to i64
- Rename byteSize to humanizeSize
- Expand humanizeSize logic to allow handling bits and Binary units
- Move capitalize to @sd/client utils

* Solving some issues

* Fix ffmpeg probe getting incorrect stream id and breaking database unique constraint
 - Fix humanizeSize breaking when receiving floating numbers
 - Fix incorrect equality in StatCard
 - Fix unhandled error in Dialog when trying to remove an unknown dialog

* fmt

* small improvements
 - Remove some unecessary recursion_limit directive
 - Remove unused app_image releated functions
 - Fix metadata query enabled flag

* Add migration for ffmpeg media data

* Fix cypress test

* Requested changes

* Implement feedback
 - Update locale keys for all languages
 - Add pnpm command to update all language keys

* Fix thumb reactivity in non indexed locations

---------

Co-authored-by: Ericson Soares <ericson.ds999@gmail.com>
Co-authored-by: Vítor Vasconcellos <HeavenVolkoff@users.noreply.github.com>
2024-05-09 02:20:28 +00:00
ameer2468
853f0d4185 [MOB-96] Haptics on tabs interaction and more (#2464)
Haptics on tabs interaction and more
2024-05-08 17:41:34 +00:00
ameer2468
893452d8c8 Mob: remove sort by text (#2463)
Remove sort by text
2024-05-08 13:48:33 +00:00
Utku
7cd33727b3 [MOB-35] Explorer sort by (#2387)
* pnpm

* hide search on some screens

* translations

* move shared order stuff to @sd/client

* some ideas

* wip - redesign otw

* Merge remote-tracking branch 'origin' into mob-35-explorer-sort-by

* header adjustments and more

---------

Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com>
2024-05-07 22:12:09 +00:00
Vítor Vasconcellos
81c2b8bf51 Improve prod bundle size (#2447)
Greatly improve production build size, now prod builds are 1/3 of the size
 - Main spacedrive binary went from ~120M to ~40M
 - Add more optimize options for rust prod build
 - Improve vite settings for front-end prod build
 - Improve lossless compression of PNGs
 - Don't include videos in bundles when they are not used
 - Don't generate/bundle sourcemap for prod builds
2024-05-07 19:32:34 +00:00
ameer2468
da9fb959e8 [MOB-79] Categories search redirect (#2443)
Support clicking on categories to redirect to search
2024-05-02 14:05:24 +00:00
ameer2468
b29deff592 [MOB-68] Search (#2434)
* wip: search plugin query & save

* wip

* wip mob search

* mob search - explorer filtering & support name, extension search

* Mobile search

* cleanup

* code improvements & type to search all locations

* Update Search.tsx

* ts

* code doc and type tweak

* lint

* move onSuccess
2024-05-01 21:52:14 +00:00
Vítor Vasconcellos
e4b0aedf64 Auto format/lint and revert some changes made to CI (#2429)
Revert some changes made to CI in #2412
 - Auto lint and format
2024-05-01 13:59:16 +00:00
Oscar Beaumont
ce5e285c2f Remove normalised cache (#2390)
* yeetus

* fix

* a

* fix

* todo

* fix library stuff

---------

Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
2024-04-30 00:36:39 +00:00
ameer2468
9126332df1 [MOB-89] Separate headers (#2408)
* separate headers

improvements to headers

cleanup

missed cleanup

documentation

* Update SearchStack.tsx
2024-04-27 15:08:07 +00:00
ameer2468
57b0139240 [MOB-90] Visual adjustments (#2383)
* Visual adjustments

* Update Tags.tsx

* cleanup

* remove prop

* remove hitslop

* sectionlist
2024-04-24 23:34:24 +00:00
Utku
e009a0478c Revert "[MOB-85] Better headers" (#2376)
Revert "[MOB-85] Better headers (#2375)"

This reverts commit 6a556a457d.
2024-04-23 23:20:59 +00:00
ameer2468
6a556a457d [MOB-85] Better headers (#2375)
* wip

* improve headers

* cleanup
2024-04-23 22:21:31 +00:00
Utku
5624054f1e Mobile cleanup & improvements (#2362)
clean up & improvements
2024-04-19 07:55:50 +00:00
Utku
f48a91b124 [MOB-82] Switch to expo image & inspector long press (#2301)
* open action modal on long press

* fix styling on about screen

* better/optimized image component
2024-04-09 12:13:27 +00:00
Ericson "Fogo" Soares
6b760b0b2a [ENG-1628] Write new indexer with the task system (#2161)
* Moving file-path-helper to a sub-crate on core

* Parallel walker tested and working

* Change inner core crate names to sd-core-* naming scheme

* Moving stuff around

* Save and Update tasks for the new indexer job

* Some initial drafts on the new job system

* More drafts on job system

* Changing walker task to a more explicit state machine
Also drafting more of job system

* More drafting on job resume

* Completed the draft on job system inner workings

* New job context abstraction to decouple library stuff from job system

* Properly use composition on task dispatcher

* First draft on indexer job

* Job serialization

* Handling ancestors in the distributed walker for indexer

* Saving computed directories sizes on a location to db

* Enable a way to check if jobs are running in a location

* Progress reporting on indexer job

* Reorganizing modules

* Shallow indexer

* Rust fmt

* Attempting windows CI fix

* Attempting windows CI fix again

* Attempting windows CI fix again
2024-04-08 14:32:44 +00:00