Configure dependency injection for API and the database. Uses Dagger (dagger.dev)
The API is held in a holder, so that it can be invalidated or recreated as needed.
Big refactor of the feeds, this introduces a bit more duplication of code (some very similar methods that differ only in the types or minor details), but now the inheritance makes more sense and there is less "forcing" to make the inheritance work (for example: no more casting Int to String just to have the right type for the key)
It should be easier to work with the feeds in the future, maybe we'll find better abstractions later on.
* store posts base idea
* switch to nullable types in Status object
* store posts first try + switch to nullable types for Attachment objects
* fix some tests, add converters
* update gradle
* wip: display stored post
* first draft of functional offline post
* added likes and shares to offline data
* fully functional
* clear activity correctly
* clear correctly activities
* refactored some tests and added offline feed test
* Distinguish between users, and only store home timeline
* count better
* Sort when getting statuses
* disable buttons, since we're offline anyways
Co-authored-by: Matthieu <61561059+Wv5twkFEKh54vo4tta9yu7dHa3@users.noreply.github.com>
* Add upload bar to PostCreationActivity
* Add upload error handling
* Fix test, remove duplicate api endpoint
* try to trigger ci
* don't show error all the time
* remove unused strings
* multiAccount functionnality
* remove sharedpreferences usages
* start fixing tests to work with changes
* remove test of removed functionality
* more fiddling with tests
* fix instance insert being broken
* clean up some more preferences usage
* close db
* try to fix a bunch of issues
* move db close
* add instance to user drawer item
* remove rule that is no longer needed
* correct mock server to fix test
* removed unused stuff
* fix domains not being validated correctly
* update test
* Delete q
* Move image filter application to a thread
* remove unused imports
* remove unused strings
* remove unused strings
* fix buttons (sometimes)
* solve some linter issues, fix saturation brightness contrast not being shown properly
* remove unused strings
* add tests for drawer
* remove unused imports, other linter suggestions
* fix broken auto linter fix
* added CameraX depedencies
* added basis of camera activity layout
* basis of camera layout
* declare activity and request camera permissions
* request camera permissions
* implemented basic viewFinder aka stream preview
* added drawing of layout
* linked camera activity to new post fragment
* texture view now fills the entire screen
* added button, call to camera activity FOR RESULT and return to New Post Fragment
* can now take a photo a upload it
* locked camera activity in portrait orientation
* added basic test to CameraActivity
* added test with device orientation
* deleted orientation test as it broke the whole app
* deleted occurence of orientation tool for tests
* added buttons for flipping cameras and picture upload
* replaced NewPostFragment and took its job
* deleted cameraActivity
* replaced newPostFragment by Camera Activity
* revamped NewPostFragment
* perform basic test on buttons
* corrected retrieval of buttons
* robust camera fragment
* fix thumbnail permission requests
* refactor, finish fragment
* try to fix build not working on CI
* Add dependency
* Fix camera test
* update tests, delete obsolete xml
* Try to fix test
* Stop nullpointer that happens sometimes, when it shouldn't
* remove unused strings
* edit the photo instead of posting directly
* fix test after changing putextra name
* remove useless analyzer
* add test?
* better tests?
* add dependencies
* update dependencies
* try to fix build
* undo change to build.gradle
* try to fix tests
* try to fix tests
* remove useless listener
* save image so that ci can go through gallery
* remove extraneous permission
* Any app that declares the WRITE_EXTERNAL_STORAGE permission is implicitly granted this permission.
Co-authored-by: Andrea Clement <samuel.dietz@epfl.ch>
* Beginning of edit photos activity
* First batch for edition of photos
* EditActivity working properly except flow & save
* Added tests
* Changed name of tabLayouts back to tabs
* Resolved 2 errors from last build
* Truly resolved the 2 issues with requireContext/Activity
* Made test work with API23 emulator
* added 2 tests
* Corrected test @Before to have the right button to click on
* Added flow to newPost and few tests
* Added a test and refactor PhotoEditActivity
* Added flow from upload picture, tests doesn't work
* Added CropImageActivity from ucrop library, crashes for now
* Modified test FiltersIsSwipeableAndClickeable but still doesn't work
* Merge with master
* rectified test SaveButtonLaunchNewPostActivity
* FiltersIsSwipeableAndClickeable test completed
* Ready to merge to master
* resolved error in merge
* Added button save and upload, removed BitmapUtils
* Removed unnecessary libraries and imports
* Remove dependency on library for permissions
* Added crop, rescale of big images to avoid lag, bug fixes
* Remove unnessecary imports
Co-authored-by: Joachim Dunant <joachim.dunant@epfl.ch>
Co-authored-by: Matthieu De Beule <61561059+Wv5twkFEKh54vo4tta9yu7dHa3@users.noreply.github.com>
* first draft of dark mode, still needs some work
* changed dark mode colors
* fixed more buttons in dark mode
* Ran linter and fixed a few things
* mades things more kotlin-like
* added night mode selector in settings, but doesn't seem to work
* WIP Theme settings
* Fix callback not getting called (not registered)
* added theme test
* removed useless strings
* Fix dark mode not being applied
* Our app isn't called ThemedApplication and fixed fix
* changed default theme for API versions lower than 29
* WIP splashscreen nightmode
* Added custom splashscreen
* added night mode for splashscreen
* removed useless night values
* adapted icons for dark mode
* fixed light mode colors
* fixed a few light mode color bugs
* fixed bad login button
* fixed search tabs color
* fixed weird text input in post creation
* removed hardcoded strings in settings test
* removed unnecessary margin in login activity
* replace getIntrumentation.context with getInstrumentation.targetContext in settings test
Co-authored-by: Matthieu De Beule <61561059+Wv5twkFEKh54vo4tta9yu7dHa3@users.noreply.github.com>
* Beginning of edit photos activity
* First batch for edition of photos
* EditActivity working properly except flow & save
* Added tests
* Changed name of tabLayouts back to tabs
* Resolved 2 errors from last build
* Truly resolved the 2 issues with requireContext/Activity
* Made test work with API23 emulator
* added 2 tests
* Corrected test @Before to have the right button to click on
* Added flow to newPost and few tests
* Added a test and refactor PhotoEditActivity
* Added flow from upload picture, tests doesn't work
* Added CropImageActivity from ucrop library, crashes for now
* Modified test FiltersIsSwipeableAndClickeable but still doesn't work
* Merge with master
* rectified test SaveButtonLaunchNewPostActivity
* FiltersIsSwipeableAndClickeable test completed
* Ready to merge to master
* resolved error in merge
* Added button save and upload, removed BitmapUtils
* Removed unnecessary libraries and imports
* Remove dependency on library for permissions
Co-authored-by: Joachim Dunant <joachim.dunant@epfl.ch>
Co-authored-by: Matthieu De Beule <61561059+Wv5twkFEKh54vo4tta9yu7dHa3@users.noreply.github.com>