diff --git a/README.md b/README.md index 8865a68ad..4b1972f65 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,24 @@ Raccoon for Lemmy is a client for the federated aggregation and discussion platf The project started as an exercise to play around with Kotlin Multiplatform (KMP) and Compose multiplatform and gradually grew as a fully functional client with many features. +## Want to try it out? + +Here are some options to install the application on your device. + + + + + +
+ + + + + +And please check out +the [User manual](https://diegoberaldin.github.io/RaccoonForLemmy/user_manual/main) if you need a +description of the screens. + ## Main features - view post feed and comments with different listing and sort types; @@ -130,7 +148,9 @@ with a platform like Lemmy. This involves a high level of discretion and personal taste, I know, but this project _is_ all about experimenting and learning. -## Technologies: +## Techical notes: + +The project uses the following technologies: - [Koin](https://github.com/InsertKoinIO/koin) for dependency injection - [Voyager](https://github.com/adrielcafe/voyager) for screen navigation @@ -144,28 +164,11 @@ about experimenting and learning. More info about the technologies used in the project can be found in the [CONTRIBUTING.md](https://github.com/diegoberaldin/RaccoonForLemmy/blob/master/CONTRIBUTING.md). + Additionally, you can have a look at -the [Tech notes](https://diegoberaldin.github.io/RaccoonForLemmy/tech_manual/main) section in +the [Technical manual](https://diegoberaldin.github.io/RaccoonForLemmy/tech_manual/main) section in the project's homepage. -## Want to try it out? - -Here are some options to install the application on your device. - - - - - -
- - - - - -And please check out -the [user manual](https://diegoberaldin.github.io/RaccoonForLemmy/user_manual/main) if you need a -description of the screens. - ## Want to leave your feedback or report a bug? - open an issue on this diff --git a/docs/index.md b/docs/index.md index 8c1f3c824..dbca7dc84 100644 --- a/docs/index.md +++ b/docs/index.md @@ -152,11 +152,11 @@ You are awesome, thanks 🙏️🙏️🙏️ If what you have read so far sounds interesting and you want to know more, here are some useful links: -- check out the [user manual](user_manual/main); +- check out the [User manual](user_manual/main); +- have a look at the more detailed documentation in the [Technical manual](tech_manual/main); - consult the [CONTRIBUTING.md](https://github.com/diegoberaldin/RaccoonForLemmy/blob/master/CONTRIBUTING.md) - on GitHub; -- have a look at the more detailed documentation in the [technical manual](tech_manual/main). + on GitHub. If, on the other hand, you just want to interact with the community, provide suggestions, report bugs or tell your opinion, you can: diff --git a/docs/user_manual/anon_user.md b/docs/user_manual/anon_user.md index 0d5e6e8eb..3eac2f770 100644 --- a/docs/user_manual/anon_user.md +++ b/docs/user_manual/anon_user.md @@ -1,6 +1,6 @@ -## Anonymous user +## 1 Anonymous user -### Home screen +### 1.1 Home screen The home screen is made up by three components: @@ -19,7 +19,7 @@ the top or activate the "zombie mode" (i.e. automatic scrolling). ![home screen](images/anon_post_list.png) ![floating action button menu](images/anon_home_fab.png) -### Post detail +### 1.2 Post detail By selecting a post you can open the corresponding detail screen. @@ -35,7 +35,7 @@ Markdown and inspect/copy its contents. ![post detail](images/anon_post_detail.png) ![see raw post](images/anon_see_raw.png) -### Side menu +### 1.3 Side menu In anonymous mode, the side menu gives you the opportunity to change instance (the same menu can be accessed by tapping the "via ..." label in the home top bar). @@ -45,7 +45,7 @@ If your preferred instance is not listed, you can add a new one using the "+" bu ![side menu select instance](images/anon_select_instance.png) ![add instance](images/anon_add_instance.png) -### Community detail +### 1.4 Community detail By tapping on the community info above each post title, you can open the community detail screen, which is very similar to the home (you can activate the zombie mode here too). @@ -56,7 +56,7 @@ information. ![community detail](images/anon_community_detail.png) ![user info](images/anon_community_info.png) -### User detail +### 1.5 User detail Conversely, if you tap on the user name above the title, you will access the user detail screen where it is possible to see the posts and comments created by that particular user. @@ -67,14 +67,14 @@ information. ![user detail](images/anon_user_detail.png) ![user info](images/anon_user_info.png) -### Explore +### 1.6 Explore The explore screens allows you to search Lemmy (among All or local feeds) for contents and filter by a query string and result type (post, comment, communities, users or everything). ![explore](images/anon_explore.png) -### Profile and Inbox +### 1.7 Profile and Inbox In anonymous mode the profile and inbox screens are just placeholders that invite you to access with an account. @@ -82,7 +82,7 @@ an account. ![explore](images/anon_profile.png) ![explore](images/anon_inbox.png) -### Settings +### 1.8 Settings The settings screen allows you to customize the look and behaviour of your app. @@ -118,8 +118,6 @@ The settings screen allows you to customize the look and behaviour of your app. - Disable infinite scrolling: if this option is enabled, instead of automatically fetching new contents while scrolling (in home, community detail, post detail, user detail) an explicit " Load more" button is shown, in order to prevent the "doom scrolling" effect; - - Mark posts as read when scrolling: instead of marking posts read with an explicit interaction, - posts are marked as read on the fly as they become visible while scrolling; - Zombie mode interval duration: amount of time between automatic scroll in "lazy mode"; - Zombie mode scroll amount: translation amount for the automatic scroll in "lazy mode"; - Hide navigation bar while scrolling: makes the bottom navigation bar invisible while scrolling diff --git a/docs/user_manual/images/logged_settings_2.jpg b/docs/user_manual/images/logged_settings_2.jpg new file mode 100644 index 000000000..5a5b08029 Binary files /dev/null and b/docs/user_manual/images/logged_settings_2.jpg differ diff --git a/docs/user_manual/images/logged_settings_3.jpg b/docs/user_manual/images/logged_settings_3.jpg index 5a5b08029..c070f6266 100644 Binary files a/docs/user_manual/images/logged_settings_3.jpg and b/docs/user_manual/images/logged_settings_3.jpg differ diff --git a/docs/user_manual/images/logged_settings_4.jpg b/docs/user_manual/images/logged_settings_4.jpg deleted file mode 100644 index c070f6266..000000000 Binary files a/docs/user_manual/images/logged_settings_4.jpg and /dev/null differ diff --git a/docs/user_manual/logged_user.md b/docs/user_manual/logged_user.md index 67055af16..b6e7a85ec 100644 --- a/docs/user_manual/logged_user.md +++ b/docs/user_manual/logged_user.md @@ -1,6 +1,6 @@ -## Logged user +## 2 Logged user -### Home +### 2.1 Home As for anonymous users, the home screen contains the post list with the same information displayed. The main difference is that, as a logged user, you can save posts and vote (either up or down) @@ -13,7 +13,7 @@ enabled the "Mark read while scrolling" option in the Settings screen) just seen ![post list](images/logged_post_list.jpg) ![floating action button](images/logged_fab.jpg) -### Sidebar +### 2.2 Sidebar For logged users, the side menu allows to see the list of subscriptions, with the ones that you marked as favorite to the top of the list. By clicking on each item, you will open the corresponding @@ -21,14 +21,14 @@ community or multi-community detail. ![side bar](images/logged_side_menu.jpg) -### Explore +### 2.3 Explore The Explore screen is similar to the one of anonymous users. Like in the home screen, the difference if that you can vote, save and reply to contents you are seeing. ![explore](images/logged_explore.jpg) -### Profile +### 2.4 Profile The Profile screen shows the list of post and comments that you created and some textual statistics about your post and comment count and your Lemmy-birthday. @@ -37,4 +37,55 @@ In the top right corner of the app bar, you'll find a button to log out and anot account (or access with a different one). ![profile](images/logged_profile.jpg) -![profile](images/logged_manage_accounts.jpg) \ No newline at end of file +![manage accounts](images/logged_manage_accounts.jpg) + +### 2.5 Inbox + +The Inbox screen is divided into three sections: + +- Replies: contains the comments that were created as a reply to your post or comments; +- Mentions: contains the contents where your user has been mentioned by other users; +- Messages: contains the direct messages that other users have sent to you, grouped by users as a + chat. + +![inbox](images/logged_inbox.jpg) + +### 2.6 Settings + +The settings screen for logged users is very similar to the one of anonymous users, but it has some +additional items and sub-screens. + +Please refer to [description of the page](#18-settings) for anonymous users for the common parts, +here is a description of the additional functions: + +- Look and feel: + - Upvote color: color of the upvote action (both used as a card background when swiping and to + highlight the vote indicator when you have upvoted a content); + - Downvote color: color of the downvote action (both used as a card background when swiping and + to highlight the vote indicator when you have downvoted a content); + - Reply action color: card background color for the reply action; + - Save action color: card background color for the save action; +- Posts and comments: + - Default inbox type: whether the Inbox includes all contents by default of just unread ones; +- Behaviour: + - Mark posts as read when scrolling: instead of marking posts read with an explicit + interaction, posts are marked as read on the fly as they become visible while scrolling; + - Enable double tap action: instead of using swipe actions, this option activated the " + double tap to like" mode some users may be familiar with from other social apps; + - Configure swipe actions: opens the configure swipe actions screen where it is possible to + assign an action to the 4 slots (two on the left side and two on the right side) of the + cards used to render post, comments and inbox items; + - Enable swipe actions: whether the swipe to left/right actions are enabled in post and comment + list, inbox and reports; +- Account settings: + - Web preferences: opens a page where you can customize some preferences associated to your + Lemmy account (similarly to what you can do on the webapp) + - Bans and filters: allows you to see what users, communities and instances you have blocked and + remove the block (these settings are tied to your Lemmy account too); + +![settings 1](images/logged_settings_1.jpg) +![settings 1](images/logged_settings_3.jpg) +![settings 1](images/logged_settings_2.jpg) +![settings 1](images/logged_swipe_actions.jpg) +![settings 1](images/logged_web_settings.jpg) +![settings 1](images/logged_ban_filter.jpg) diff --git a/feature/settings/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/settings/main/SettingsScreen.kt b/feature/settings/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/settings/main/SettingsScreen.kt index f56b335fb..fc466a2eb 100644 --- a/feature/settings/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/settings/main/SettingsScreen.kt +++ b/feature/settings/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/settings/main/SettingsScreen.kt @@ -521,16 +521,18 @@ class SettingsScreen : Screen { }, ) - // mark as read while scrolling - SettingsSwitchRow( - title = stringResource(MR.strings.settings_mark_as_read_while_scrolling), - value = uiState.markAsReadWhileScrolling, - onValueChanged = rememberCallbackArgs(model) { value -> - model.reduce( - SettingsMviModel.Intent.ChangeMarkAsReadWhileScrolling(value) - ) - }, - ) + if (uiState.isLogged) { + // mark as read while scrolling + SettingsSwitchRow( + title = stringResource(MR.strings.settings_mark_as_read_while_scrolling), + value = uiState.markAsReadWhileScrolling, + onValueChanged = rememberCallbackArgs(model) { value -> + model.reduce( + SettingsMviModel.Intent.ChangeMarkAsReadWhileScrolling(value) + ) + }, + ) + } // zombie mode interval SettingsRow(