Commit Graph

1970 Commits

Author SHA1 Message Date
Alex Ning
c4690a6e38 Reimplement ViewPostActivity using one recyclerview to display a post and its comments instead of using a recyclerview inside NestedScrollView to prevent onBindViewHolder gets called for all the comments data at once and thus consumes more memory and freezes after the comments are loaded. 2019-06-25 09:21:44 +08:00
Alex Ning
34d49d884c Set onClickListener in ViewHolder instead of onBindViewHolder in CommentRecyclerViewAdapter. Do nothing when failing to vote comments. 2019-06-23 17:53:30 +08:00
Alex Ning
e9cec91a5b Calculate the comment placeholder position if the position was changed. 2019-06-23 16:28:08 +08:00
Alex Ning
9ddf15b8fb Fixed adding new comments to the wrong position. Expand all children of comments after parsing. Delete useless parameters of some methods. 2019-06-22 22:20:37 +08:00
Alex Ning
724d3181e2 ReImplemented loading more comments. Load more comments of comments by clicking the load more item (Still has a little issue). Minor bugs fixed. 2019-06-22 11:58:20 +08:00
Alex Ning
89e934f5a7 Zoom up to 10x in ViewImageActivity. Minor bugs fixed. 2019-06-21 10:20:09 +08:00
Alex Ning
a4b93699d8 Minor UI tweaks. 2019-06-18 21:27:40 +08:00
Alex Ning
8092c07ea0 Fixed sending child comments. 2019-06-18 17:41:45 +08:00
Alex Ning
70f4a7fc4c Fixed refreshing comments and sending comments. 2019-06-18 17:05:49 +08:00
Alex Ning
25f2a35d22 Reimplemented parsing comments using recursion to parse all the child comments. Reimplemented CommentRecyclerView (some methods need proper implementation. Minor bugs fixed. 2019-06-18 00:01:15 +08:00
Alex Ning
502cbe02ba Reply to comments. Preparing for comment deletion. 2019-06-14 18:14:49 +08:00
Alex Ning
72d811186f Show a snackbar when sending comment and sending comment fails. Display the sent comment data after the comment is sent. 2019-06-14 11:58:52 +08:00
Alex Ning
f69ae29bb9 Added a feature: Sending comments. 2019-06-14 10:30:26 +08:00
Alex Ning
42c7b316f3 Add CommentActivity for sending comments (not implemented yet). Minor UI tweaks. 2019-06-13 12:16:04 +08:00
Alex Ning
ef8daed571 Minor layout tweaks. Fixed action bar color in ViewPostDetailActivity in dark mode. 2019-06-11 19:59:23 +08:00
Alex Ning
62c225ffcd Lazy mode in ViewSubredditDetailActivity. 2019-06-11 11:43:19 +08:00
Alex Ning
22ec85b3dd Lazy mode in ViewUserDetailActivity. Fixed follow chip background color in dark mode in ViewUserDetailActivity. Fixed force stop after orientation change in ViewUserDetailActivity. 2019-06-11 11:21:56 +08:00
Alex Ning
076607a7ca Fixed lazy mode could not be paused properly. 2019-06-10 10:48:16 +08:00
Alex Ning
c124828352 Pause lazy mode if the user is swiping posts. 2019-06-09 14:59:39 +08:00
Alex Ning
7cfc4296a0 Lazy Mode: Automatically scroll down the recyclerview in PostFragment to view posts without using hands. 2019-06-08 08:01:31 +08:00
Alex Ning
d7a90b5397 Fixed dark theme in landscape mode. Display the host of the url when the post is a link. 2019-06-06 16:11:22 +08:00
Alex Ning
fe4ba7501e Refresh post in ViewPostDetailActivity. 2019-06-06 12:05:11 +08:00
Alex Ning
7d8c497c77 Fixed UI problems introduced by dark theme. 2019-06-05 11:25:05 +08:00
Alex Ning
c8d1a9e37a Dark theme support. 2019-05-07 23:55:49 +08:00
Alex Ning
297db53aa3 Reverse the change of unescaping HTML because it also remove all the HTML tags. Fixed subreddit name and post time overlapping. Fixed menu item text not shown in MainActivity. 2019-05-07 19:45:08 +08:00
Alex Ning
1d294609f5 Unescape HTML for post content and comments. Minor UI fixes. 2019-04-26 21:53:32 +08:00
Alex Ning
6bd4b41f8c Hide Toolbar when scrolling content up. 2019-04-23 08:03:29 +08:00
Alex Ning
d8ddad9522 Fixed voting state inconsistency after orientation change in ViewPostDetailActivity. Fixed title could not be shown properly in CollapsingToolbarLayout in ViewSubredditDetailActivity and ViewUserDetailActivity. 2019-04-19 12:01:41 +08:00
Alex Ning
cd4730c649 Synchronizing voting state between PostRecyclerViewAdapter and ViewPostDetailActivity using EventBus by greenrobot. Minor bugs fixed. 2019-04-18 23:31:41 +08:00
Alex Ning
a7e9695717 Fixed displaying wrong score when rapidly clicking vote buttons in CommentMultiLevelRecyclerViewAdapter and ViewPostDetailActivity. 2019-04-18 18:11:11 +08:00
Alex Ning
246d4f45ab Fixed displaying wrong score when rapidly clicking vote buttons in PostRecyclerViewAdapter. 2019-04-18 17:18:19 +08:00
Alex Ning
fb525d62ed Don't draw under display cutouts in landscape mode (API >= 28). 2019-02-27 13:15:32 +08:00
Alex Ning
acc08489fa Fixed the error drawable of glide image loading has not been done rounded corners transformation. 2019-02-26 22:16:34 +08:00
Alex Ning
9530e1f497 Fixed user icon and user banner not displaying after user login. LoginActivity will not show page not found error after login finish. 2019-02-26 21:56:51 +08:00
Alex Ning
8ae7ba334c Reload MainActivity after login success. 2019-02-26 13:06:17 +08:00
Alex Ning
0ea2b24c60 Add two features: refresh searching and searching in SearchActivity. Fixed a bug which is the listener object is null when it is called because the parse failed in ParsePost, ParseSubredditData and ParseUserData. 2019-02-26 09:27:51 +08:00
Alex Ning
b1db59fda2 Add a feature: Search for users. Change some names of interfaces and methods. 2019-02-23 12:04:16 +08:00
Alex Ning
3fa6969b75 Add a feature: Search for users. Fixed calling callback.onResult twice when loading user's posts. 2019-02-23 10:12:26 +08:00
Alex Ning
ce4773230a Change SearchView style in MainActivity. Solve tab layout covering fragments in viewpager in SearchActivity. 2019-02-22 17:26:50 +08:00
Alex Ning
2e72f0d4aa Load parent-level comments using pagination. Only load comments of comments once more. 2019-02-22 17:00:09 +08:00
Alex Ning
a4f664d428 Add a feature: Searching for posts. 2019-02-22 14:55:26 +08:00
Alex Ning
1293eac5c8 Add a search view in MainActivity and add a SearchActivity. 2019-02-22 13:34:24 +08:00
Alex Ning
82d97cf732 Migrate to AndroidX 2019-02-21 17:24:23 +08:00
Alex Ning
2b0228ab47 Use another GifImageView library. 2019-02-21 13:21:32 +08:00
Alex Ning
3a58964d6c Fixed loading more comments even though there are no more comments. 2019-02-21 12:37:58 +08:00
Alex Ning
70fcc671d8 Load comments of comments one more time, just like parent-level comments. 2019-02-21 08:41:51 +08:00
Alex Ning
c00aaf04b9 Temporarily use the old way to load comments instead of Paging library. Load more parent-level comments once. Loading comments of comments is now working. 2019-02-20 22:13:26 +08:00
Alex Ning
0d6296c1a4 Load All comments of a post using paging library. Loading comments of comments is now broken. 2019-02-12 14:37:36 +08:00
Alex Ning
0e1abee883 Fixed vote status cannot be shown on posts loaded from specific subreddits or users. 2019-01-24 23:24:14 +08:00
Alex Ning
86570d4959 Enlarge the area which contains subreddit or user name and icon for easier touching in ViewPostDetailActivity. Fixed subreddit icon cannot be loaded in ViewPostDetailActivity. Smoothly play gif subreddit icon in ViewPostDetailActivity. 2019-01-22 22:28:05 +08:00
Alex Ning
d733be6e55 Fixed the user's posts cannot be loaded. Refreshing in MainActivity also refreshes user info, subscribed users and subreddits. Enlarge the area which contains subreddit or user name and icon for easier touching. 2019-01-22 18:45:02 +08:00
Alex Ning
f7a192dcbe Fixed infinite loading duplicate posts when there is no more posts to load. Minor bugs fixed. Minor layout tweaks. 2019-01-22 01:05:46 +08:00
Alex Ning
91e6174aa5 Added feature: View users' best posts. 2019-01-21 22:32:17 +08:00
Alex Ning
ebc2cac0a6 Click user names in comment to view the user's details. Minor visual redesign. 2019-01-21 17:32:21 +08:00
Alex Ning
86bc381906 Click subreddit names and user names in post content and comment content to start ViewSubredditDetailActiviy and ViewUserDetailActivity respectively. Use Chrome custom tab to open URL in post content and comment content. 2019-01-21 16:50:10 +08:00
Alex Ning
047e31936f Display the Follow Chip only if the user can be followed. Change schemes of database users. 2019-01-11 18:44:54 +08:00
Alex Ning
0bd0639a4e Following and unfollowing users are now properly implemented. 2019-01-11 15:41:38 +08:00
Alex Ning
dc35c8fc9c Resolve issues related to renaming User class to UserData class. 2019-01-11 11:45:04 +08:00
Alex Ning
e48bb565a5 View user details in ViewUserDetailActivity. Follow or unfollow user is not properly implemented right now. Change users and subscribed_users databases' schemes. Press Profile in navigation drawer to view my reddit info. Press the username in the post to view that account's info. 2019-01-11 11:33:32 +08:00
Alex Ning
f0b149ce82 Use MarkwonView (a markdown library) instead of HtmlTextView to display post content and comments. 2019-01-09 10:05:20 +08:00
Alex Ning
38be0ba01f New feature: Subscribe or unsubscribe to a subreddit. Allow clear text traffic in Android Pie. Rewrite some code in lambda. 2019-01-07 19:03:49 +08:00
Alex Ning
9d729579bf Minor UI tweaks. 2019-01-04 16:02:11 +08:00
Alex Ning
49d25314d5 Display user name and user icon in each post when loading posts in specific subreddits. 2019-01-01 23:32:03 +08:00
Alex Ning
f529bba550 Refreshing posts is working now. 2018-12-30 21:54:44 +08:00
Alex Ning
b7e1d92c7e Error handling for loading posts now works again. Don't show refresh button as an icon. Rewrite some code. 2018-12-29 13:38:18 +08:00
Alex Ning
93a9ad9ece Display a MaterialLoadingProgressBar instead of a ProgressBar when loading posts. Correctly handle the visibility of the MaterialLoadingProgressBar when loading posts. 2018-12-27 15:14:10 +08:00
Alex Ning
807ddf5a6e Move several classes to other packages. 2018-12-27 13:54:19 +08:00
Alex Ning
5603df7546 Loading best posts in specific subreddits is now working. 2018-12-27 13:28:23 +08:00
Alex Ning
45f67457fa Use Android Paging Library to load and display best posts. Loading best posts in a specific subreddit is broken. Fixed a bug which is PostViewModel's data becoming null after the app restart. Add notch support for Android Pie. 2018-12-27 11:29:02 +08:00
Alex Ning
60b659e651 Use GifImageView to display all the images in order to prevent slow playing of the gifs. Extend GifImageView as AspectRatioGifImageView to retain the features of AspectRatioImageView. 2018-12-22 10:42:24 +08:00
Alex Ning
33db4809e4 Use notifyItemRangeInserted when appropriate in order to avoid reloading the whole dataset. Change bur transformation parameter for NSFW preview. 2018-12-12 19:23:38 +08:00
Alex Ning
cdcb38db51 Use MVVM design pattern to load and display the posts. Minor bugs fixed. 2018-11-09 12:30:31 +08:00
Alex Ning
4373d3aa55 Minor layout tweaks. 2018-11-08 14:13:17 +08:00
Alex Ning
6e5a0e7ef3 Use AspectRatiotImageView instead of ImageView to fully display the preview images of posts and prevent scrolling jump in PostFragment and ViewPostDetailActivity. 2018-10-28 23:18:01 +08:00
Alex Ning
66402e661b Close the navigation drawer after clicking the item in it. Fix some logic related to post parsing. 2018-10-27 16:46:30 +08:00
Alex Ning
86ea4c8982 Bind views using ButterKnife. Let volume controls adjust music stream in ViewVideoActivity. 2018-10-27 00:06:35 +08:00
Alex Ning
ae81b23737 Move refreshAccessToken method from RefreshAccessToken class to AccessTokenAuthenticator class. Bind views using Butterknife in PostRecyclerViewAdapter and CommentMultiLevelRecyclerViewAdapter. 2018-10-19 15:29:07 +08:00
Alex Ning
4d0a0725c9 Use OkHttp3 Authenticator instead of OkHttp Interceptor to handle the case when the request fails with code 401. Refresh the access token in a synchronized block to avoid getting more than one access tokens and getting duplicate posts when performing multiple unauthorized requests. Minor bugs fixed. 2018-10-14 11:24:38 +08:00
Alex Ning
8b52810d7c Use Dagger 2 to inject the Retrofit singleton to classes. Minor bugs fixed. 2018-10-12 23:52:23 +08:00
Alex Ning
11ac14a3f1 Display a crosspost icon if the post is a crosspost. Hide the thumbtack icon if the post is not viewed in its subreddit. Tweak the post layout. Minor bugs fixed. 2018-10-05 14:28:14 +08:00
Alex Ning
b4a3e8b822 Minor layout tweaks. 2018-10-01 14:07:32 +08:00
Alex Ning
17ccccfa0e Add an error view when loading the image fails in ViewImageActivity. 2018-10-01 13:45:02 +08:00
Alex Ning
1bd9ba61c6 Change the layout of post. Add an error view when loading the preview image fails. 2018-09-28 14:49:49 +08:00
Alex Ning
cdcd5923fa Fixed a bug which causes the LastItemSynchronizer object in PaginationSynchronizer becomes null when the app is reopened after it was killed. Prepare to use Dagger 2 to manage Retrofit singleton. 2018-09-28 09:18:28 +08:00
Alex Ning
bfb311d75f Add a feature which is refreshing the posts by clicking the refresh button. Minor bugs fixed. Rewrite some code. 2018-09-24 17:03:57 +08:00
Alex Ning
a7d4485fc1 Click the subreddit icon or the subreddit name to view the subreddit's details in ViewPostDetailActivity. 2018-09-22 11:09:57 +08:00
Alex Ning
fc356c6505 Disable the animation for finishing activity in ViewImageActivity and ViewVideoActivity. Fixed a bug that occurred when parsing posts finishes but the PostFragment is not added in any Activity (e.g. Activity finishes). 2018-09-22 10:45:38 +08:00
Alex Ning
88e4cf810f Click the subreddit icon or the subreddit name to view the subreddit's details in PostFragment. Make the status bar in ViewSubredditDetailActivity translucent. Prepare to view the user's details in ViewUserDetailActivity. Minor bugs fixed. 2018-09-21 23:35:57 +08:00
Alex Ning
5c51450a8e Fixed a bug that the expand less button and the expand more button is not shown at the right time. 2018-09-03 16:17:51 +08:00
Alex Ning
06a692130c Replace the RecyclerView for comments to MultiLevelRecyclerView in order to display the comment trees easily. Click the expand more button to expand the comment tree. Click the expand less button to hide the comment tree. Rewrite some code. 2018-09-03 00:05:42 +08:00
Alex Ning
6637cefc05 Blur the preview image if the post is NSFW. Tweak some layouts. Optimize some methods. 2018-08-30 21:18:21 +08:00
Alex Ning
4364e20e36 Display a custom error view when there is something wrong when loading best posts. Probably fix a bug that holder.getAdapterPosition() returns -1 when loading subreddit icons in the RecyclerView of PostFragment. Subreddit banners are parsed correctly in ParseSubscribedThing. Check if the api call is successful in onResponse. Rewrite some methods. 2018-08-30 14:08:02 +08:00
Alex Ning
3fa6257428 Use Retrofit to fetch posts. Delete PaginationRequestQueueSynchronizer because there is no need to pass request queue between PostFragment and PostPaginationScrollListener. Delete and rewrite some code. 2018-08-29 12:54:05 +08:00
Alex Ning
2a57e4d5b4 Use Retrofit to send API requests. Rename some methods. Changing the type of some methods related to fetching data to static. 2018-08-28 23:59:03 +08:00
Alex Ning
a6a951732d Change some methods related to parsing data to static methods. Preparing to use Retrofit to send API requests. Already made a change to use Retrofit to fetch comments. 2018-08-27 23:05:56 +08:00
Alex Ning
41b243be7d Display the number of gold given to the post. 2018-08-26 14:51:13 +08:00
Alex Ning
d83ded0193 Display a thumbtack icon if the post is stickied on top. Display a gold icon and the number of gold if the post is gilded. Load subreddit icons in LoadSubredditIconAsyncTaskListener instead of loading the icons in onPostExecute() of LoadSubredditIconAsyncTask in order to avoid loading icons on a destroyed activity when start the Activity and then press back or up button immediately. 2018-08-24 10:38:37 +08:00
Alex Ning
f90bd4d1cc Change the logic of parsing the subreddit icon. Click the icon and the banner of the subreddit to view the image in ViewImageActivity. 2018-08-23 17:27:16 +08:00
Alex Ning
97079663ff Correctly handle the case that the value of SELFTEXT_HTML or BODY_HTML_KEY is null. Delete the constraint that only when all the subscribed subreddits and users data have been inserted can the two RecyclerViews update their data in order to avoid the newly fetched data cannot be observed by observers and make the RecyclerView getting the new data impossible. 2018-08-22 19:49:50 +08:00
Alex Ning
80058ff6ab Load comment and post content text in HTML form instead of String. Fixed a bug that the icon of subreddits was not parsed properly in ParseSubredditData class. 2018-08-21 00:08:48 +08:00
Alex Ning
0fa03cba21 Rename some classes and layout resources. Feature added: view posts in ViewSubredditDetailActivity. 2018-08-20 22:33:00 +08:00
Alex Ning
07b32b3900 Rename some classes. Change the logic of getting the subreddit icon. Prepare to display posts in ViewSubredditDetailActivity. 2018-08-20 00:04:49 +08:00
Alex Ning
23bf92d9cf Added feature: Vote in ViewPostDetailActivity. Fix some behavior after the vote fails. 2018-08-19 00:03:56 +08:00
Alex Ning
38344e305c Save vote state in CommentData 2018-08-18 09:35:45 +08:00
Alex Ning
cca0313990 Load user info after the new access token is retrieved if the old access token expired. Feature added: vote comment 2018-08-18 09:22:31 +08:00
Alex Ning
3c1423a127 Disable image rotation in ViewImageActivity. Disable dispatching touch event in ViewImageActivity when the image is zooming in or out in order to view the image. 2018-08-11 23:13:26 +08:00
Alex Ning
eb973138f7 Fixed a bug which causes the app to crash when there is no comment in a post. Add a no comment placeholder which is displayed when there is no comment in a post. 2018-08-11 17:49:30 +08:00
Alex Ning
c0eaf2d3bb Fixed a bug which causes the app crash when starting ViewImageActivity from ViewPostDetailActivity. 2018-08-11 00:05:20 +08:00
Alex Ning
362634d1c7 Display the subreddit icon in ViewPostDetailActivity. Fixed a bug when the subreddit had no icon, the default icon was not shown. Save the subreddit icon url to BestPostData. Having done saving the subreddit icon url to the instance of BestPostData, skip loading the icon from the database using AsyncTask and load the icon from the instance of BestPostData instead. 2018-08-10 10:24:36 +08:00
Alex Ning
e44a172db0 Display subreddit icons in best posts, eventually. Rename some methods. 2018-08-10 08:22:56 +08:00
Alex Ning
b0e2e273a7 Cancel loading the user's info when there is nobody logging in. Delete a line which access a deleted string resource in manifest. 2018-08-05 15:07:37 +08:00
Alex Ning
f2eb18749c Fetch a new access token in onCreate method of MainActivity when the old access token is about to expire, specifically, to expire within the next 5 minutes or is already expired to avoid refreshing the access token many times by other queries later. 2018-08-05 14:26:01 +08:00
Alex Ning
c6026e5659 Fetch the subreddit info and save it to the database. Solve a bug that cannot create a instance of SubredditViewModel. 2018-08-05 12:26:50 +08:00
Alex Ning
9334d3860e Preparing to fetch the subreddit info and save it to the database. 2018-08-01 00:15:58 +08:00
Alex Ning
7f8ca49190 Add the ViewSubredditActivity. Add a OnClickListener in the subscribed subreddits RecyclerView to lauch the ViewSubredditActivity. 2018-07-30 23:27:52 +08:00
Alex Ning
c752b66953 Add a scroll bar in the navigation drawer 2018-07-30 00:11:05 +08:00
Alex Ning
ddc7b36e72 Save subscribed subreddits and users to the SQLite database by using Room Persistence Library. Add a following section in the navigation drawer to display all the followed users. Add a NestedScrollView in the navigation drawer to wrap all the elements. Disable nested scrolling feature in all the RecyclerViews in the navigation drawer. 2018-07-29 20:25:55 +08:00
Alex Ning
e3653eb503 Add a RecyclerView for subscribed subreddits in navigation drawer, rewrite some code and minor bugs fixed 2018-07-28 13:45:01 +08:00
Alex Ning
0e6d4ae525 Add RecyclerView for subscribed subreddits in navigation drawer and rewrite some code 2018-07-28 13:38:50 +08:00
Alex Ning
1f2137dd36 First commit 2018-07-26 23:04:44 +08:00