Commit Graph

12 Commits

Author SHA1 Message Date
Matthieu 624cff117a Cache feeds with database using the new paging3 API 2020-11-27 17:02:52 +01:00
Matthieu 245c9c2e64 Hide comments by default. Fixes #141 2020-11-03 10:13:43 +01:00
Matthieu 2c1fef2a0a Make null-ness possibility explicit. Improve fallback of displayname 2020-11-01 18:44:32 +01:00
Matthieu 21925e7af4 Dependency injection
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.
2020-07-26 20:56:01 +02:00
Ulysse Widmer 34f3d12dbc
Offline mode part 2 - Store posts in the DB (#209)
* 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>
2020-06-05 20:14:57 +02:00
Wv5twkFEKh54vo4tta9yu7dHa3 0f122ce4e2
Make double tap to like work correctly 2020-05-22 18:47:12 +02:00
Andrew Dobis 68cdb880a4
Added double tap likes (#211)
* fixed visual dark mode bug

* added double tap liking

* fixed conflict with sensitive media

* removed old test that is no longer relevant
2020-05-22 12:19:24 +02:00
mjaillot 5b0a344236
WIP: Translatable text (#164)
* Extracted all visible texts

* Unit test import

* Removed conflicting import

* Removed unit tests that are no longer valid

* Added tests

* Renamed string

* Fixed string

* Added strings descriptions

* Converted string to templates
2020-05-21 15:22:57 +02:00
Samuel Dietz 5fadfd2e8e
Sensitive media (#162)
* utility functions to censor and decensor a post image

* added Text warning about sensitive content

* adapt layout based on Sensitive attribute, censor and decensor

* try to perform clicks on sensitive image

* small refactor of status for sensitive layout

* testing censor Matrices functions

* perform test on sensitive post

* modified so second post is sensitive

* hide sensitiveWarning from albums for now

* hide totaly the image

* perform visibility check on sensitive warning textView

* deleted tests using activityScenario.onActivity as they return true on assert(false)

* commented dummy test for matrix censoring

* implemented sensitive layout for multiple pictures posts

* remove diplay check before click

* now testing visibility of textView

* deleted faulty lines i hope

* bring back dummy check for matrices

* everything is now sensitive, testing on tab post

* implemented matcher for second item

* implemented tests for tabs and classic sensitive layout using custom matcher Second

* cleaning in JSON values, put sensitive true on posts

* hide sensitive posts behind red triangle

* centered background triangle

* corrected indentation

* extracted sensitive string in string.xml
2020-05-16 23:47:18 +02:00
Andrew Dobis 8fb5074f84
Added a dark mode (#151)
* 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>
2020-05-15 09:23:06 +02:00
Andrew Dobis 8265ac2d62
Reblogging and HTML text (#107)
* Changed Post interaction icons and added click feedback

* added reblog and unreblog api implementations

* Use fancy animated buttons

* WIP reposter

* WIP reblog button

* renamed ViewHolder => PostViewHolder

* activated reblogger in feed

* added custom html parser, still need to fix clickable links

* added parsed HTML in notifications

* fixed mention click

* added tests for reblog and clickable mentions

* adapted unit tests to work with new html parser

* changed incoherent comment

* made hashtags slightly less useless

* removed unit test that were no longer valid

* removed useless test

* trying to fix tests

* fixing tests

* trying to improve coverage a little

* removed unused code to improve coverage

* changed cast to type converter

* added failure responses to help coverage

* added mock server response for reblogging

* fixed broken json

* trying to fix a broken test

* Tweak tests

* Typo in test

* Add scrolls to make tests pass on small screens

* fixed old JSON in mockserver

* fixed linter issue

Co-authored-by: Matthieu <61561059+Wv5twkFEKh54vo4tta9yu7dHa3@users.noreply.github.com>
2020-04-23 17:48:45 +02:00
Andrew Dobis f8d6c67079
Commenting & seeing comments on a post ( issues: #37 #77 ) (#87)
Comment and like buttons added + a few UI tweaks 

* WIP posts

* WIP posts

* trying to add images

* trying to add images

* Got posts working and linked them to the profile

* added tests for Post

* layout changes

* moved a test file

* refactoring

* refactoring

* removed wrong annotation in unit test

* removed an import that was breaking the build

* removed tests that broke from merge, will override with master

* added UI test for the post activity

* WIP posts

* WIP posts

* trying to add images

* trying to add images

* Got posts working and linked them to the profile

* layout changes

* refactoring

* refactoring

* WIP posts

* WIP posts

* trying to add images

* trying to add images

* Got posts working and linked them to the profile

* added tests for Post

* layout changes

* moved a test file

* refactoring

* refactoring

* removed wrong annotation in unit test

* removed an import that was breaking the build

* removed tests that broke from merge, will override with master

* fixed merging errors

* trying my best to merge

* removed drawable definition in activity_post.xml

* Started converting Post to a fragment

* got a working feed

* WI

* removed non-valid test

* rebase on other branch

* moved the feed to the home page

* Add tests

* delete test for now

* Adapt test to changes (no more profile from drawer)

* Add unit test for api

* Add test for profile, refactor to allow testing, add exception to security policy to allow tests

* Adapt test to new situation

* Fix typo due to change

* refactor somewhat

* added a feed test

* WIP posts

* trying to add images

* WIP posts

* trying to add images

* Got posts working and linked them to the profile

* added tests for Post

* layout changes

* moved a test file

* refactoring

* refactoring

* WIP posts

* WIP posts

* trying to add images

* trying to add images

* Got posts working and linked them to the profile

* added tests for Post

* layout changes

* moved a test file

* refactoring

* refactoring

* removed wrong annotation in unit test

* removed an import that was breaking the build

* removed tests that broke from merge, will override with master

* added UI test for the post activity

* WIP posts

* trying to add images

* WIP posts

* trying to add images

* Got posts working and linked them to the profile

* added tests for Post

* layout changes

* moved a test file

* refactoring

* refactoring

* WIP posts

* WIP posts

* trying to add images

* trying to add images

* Got posts working and linked them to the profile

* added tests for Post

* layout changes

* moved a test file

* refactoring

* refactoring

* removed wrong annotation in unit test

* removed an import that was breaking the build

* removed tests that broke from merge, will override with master

* added UI test for the post activity

* fixed merging errors

* trying my best to merge

* removed drawable definition in activity_post.xml

* Started converting Post to a fragment

* got a working feed

* WI

* removed non-valid test

* WIP posts

* WIP posts

* trying to add images

* trying to add images

* Got posts working and linked them to the profile

* added tests for Post

* layout changes

* moved a test file

* WIP posts

* WIP posts

* trying to add images

* trying to add images

* Got posts working and linked them to the profile

* added tests for Post

* layout changes

* moved a test file

* refactoring

* refactoring

* refactoring

* refactoring

* removed wrong annotation in unit test

* WIP posts

* WIP posts

* WIP posts

* WIP posts

* trying to add images

* trying to add images

* trying to add images

* trying to add images

* Got posts working and linked them to the profile

* Got posts working and linked them to the profile

* added tests for Post

* layout changes

* layout changes

* moved a test file

* refactoring

* refactoring

* refactoring

* refactoring

* removed wrong annotation in unit test

* removed an import that was breaking the build

* removed an import that was breaking the build

* removed tests that broke from merge, will override with master

* removed tests that broke from merge, will override with master

* added UI test for the post activity

* fixed merging errors

* trying my best to merge

* removed drawable definition in activity_post.xml

* Started converting Post to a fragment

* got a working feed

* WI

* removed non-valid test

* rebase on other branch

* moved the feed to the home page

* added a feed test

* added a working feed test

* fixed broken test

* merged with master

* added a max height for images and made profile pictures round

* Added a default image for the post

* created a PostActivity to look a single posts

* fixed buggy postActivity

* Complete overhall of the feed UI

* removed test that didn't please Travis

* removed legacy test

* changed feedAdapter init location (outside of network callback)

* changed the feed from public timeline to home timeline

* Refactored myProfile page

* Converted profile picture to round image

* restored feed test

* I can like a post, but unlike is still a WIP

* Liking kind of works now and added tests

* fixed an error, now we can unlike as well

* fixed travis constraint error

* Display user's posts on profile page

* moved test to Mock server tests

* fixed test

* last resort debugging

* Changed fixed size of profile posts

* last resort debugging

* last resort debugging

* last resort debugging

* made post_activity profilepic round

* Total refactor of profile posts

* still have a weird bug with the comments: input is always null (WIP)

* still trying to fix coments

* removed annoying side margins in the home feed

* trying to fix comments

* fixed null comment

* converted all posts back to statuses and got rid of post

* Refactored recycler view

* Merged with my-profile

* Posts displayed on profile page

* Added links to profile activity where needed

* fixed comment posting

* finished implementing comments, but api is buggy so none are visible

* removed useless space in profile page

* fixed ci config bug

* trying to trigger ci hook (github was down last time)

* updated tests with master tests

* added tests for the comments

* added tests for the comments

* added first() matcher to fix comment test

* still trying to fix comment tests' null progress bar

* getting rid of that null progress bar

* added comment test

* fixed merge error

* added like button test

* added more post tests

* took pr coments into account

* added back an old test

* added mockServer response for comment test and fixed comment null pointer bug

* changed notification UI to better separate notifications

* added mockserver response for likes and corrected like toggling error

* added a test for posting comments

* fixed typo in test

* a gift for code climate

* refactored stuff

* fixed broken imports

* comment refactored as xml

Co-authored-by: Matthieu <61561059+Wv5twkFEKh54vo4tta9yu7dHa3@users.noreply.github.com>
Co-authored-by: mjaillot <marie.jaillot@epfl.ch>
2020-04-11 12:55:06 +02:00