Commit Graph

2032 Commits

Author SHA1 Message Date
4947bc1be5 Fix crash in debug build by using fully qualified class name for layoutmanager (#1130)
When the class name is relative, Android tries to resolve it against applicationId.
However it does not match the package because of `.debug` suffix so it tries
to load the wrong class. This results in ClassNotFoundException and a crash.

Using fully qualified class name fixes it as the system can use the class name
as is.
2022-09-25 16:15:38 +08:00
fad978432e Fix spoiler interactions with links and long clicks (#1129)
* Prioritize clicks on hidden spoilers over links

Extend BetterLinkMovementMethod to override selection of span that will be
touched and give spoilers and links following priorities:
1. Hidden spoiler
2. Non-spoiler span (i.e. link)
3. Shown spoiler

#609

* Ignore long clicks on spoilers

Ignore long clicks if it is a SpoilerSpan. Also don't apply highlight
because it breaks spoiler effect.

#529
2022-09-25 16:13:59 +08:00
85debf62f3 Rewrite spoiler parsing (#1104)
* Rewrite spoiler parsing to properly support nested spoilers and code blocks

Parse all the spoilers, ignoring spoiler brackets that intersect with code
spans. Detect all the spoilers that are nested and mark them accordingly.
Delete all spoiler brackets that were matched. Add SpoilerSpans for non-nested
ranges.

* Simplify offset calculation
2022-09-25 15:52:00 +08:00
a87704b00d Fixed Gray Overlay in Image (#1111)
* Added a clear search bar text button

* Made caption disappear/show when tapping on image and removed gray overlay when no caption.
2022-09-21 13:59:09 +08:00
0a18220998 Fix 'Suggested Title' bug (#1120)
- Fixed issue where a post's suggested titles would fail to generate

Co-authored-by: Kurian Vithayathil <no.reply@github.com>
2022-09-21 13:56:26 +08:00
1108d41eed Minor bugs fixed. 2022-09-21 15:54:58 +10:00
3e66a4fda7 Fix reply markdown (#1098)
* Display comment body the same way as post body when replying

There are two views that support markdown, one of them was used to display post
titles and comments, the other - post bodies. The views are configured differently
even though post and comment bodies should be displayed the same way. Now post
and comment bodies are displayed by the same view.

* Rename extra keys from TEXT to TITLE

Now these extra keys are used only by post title, reflect this in the name.

* Remove markdown support from post title view

* Fix reply styling

Co-authored-by: Docile-Alligator <25734209+Docile-Alligator@users.noreply.github.com>
2022-09-21 13:23:00 +08:00
76c7e9e545 Don't trim leading whitespaces (#1072)
Co-authored-by: Docile-Alligator <25734209+Docile-Alligator@users.noreply.github.com>
2022-09-21 13:02:45 +08:00
269a01ed42 Allow parallel installation of debug and release versions (#636)
* Allow parallel installation of debug and release versions
...by adding '.debug' suffix to application id

* add separate app name resource for debug build
2022-09-21 12:57:42 +08:00
3c492d2626 Show OP badge on restored comment (#1016) 2022-09-21 12:53:19 +08:00
9fad6fc961 Fix memory leak on ConnectivityManager (#1066)
Leak found using LeakCanary. Steps:
1. Enable the LeakCanary dependency.
1. Open the app.
1. Go to the "All" tab.
1. Open any post, and go back to the post list.

Leak trace:

```
2022-09-04 17:56:05.904 32018-32018/ml.docilealligator.infinityforreddit.debug D/LeakCanary:
    ┬───
    │ GC Root: System class
    │
    ├─ android.net.ConnectivityManager class
    │    Leaking: NO (a class is never leaking)
    │    ↓ static ConnectivityManager.sInstance
    │                                 ~~~~~~~~~
    ├─ android.net.ConnectivityManager instance
    │    Leaking: UNKNOWN
    │    Retaining 114 B in 5 objects
    │    mContext instance of ml.docilealligator.infinityforreddit.activities.ViewPostDetailActivity with mDestroyed = true
    │    ↓ ConnectivityManager.mContext
    │                          ~~~~~~~~
    ╰→ ml.docilealligator.infinityforreddit.activities.ViewPostDetailActivity instance
         Leaking: YES (ObjectWatcher was watching this because ml.docilealligator.infinityforreddit.activities.
         ViewPostDetailActivity received Activity#onDestroy() callback and Activity#mDestroyed is true)
         Retaining 1.8 MB in 27752 objects
         key = 22e99901-9689-4f70-b88c-092a4a7efad9
         watchDurationMillis = 5518
         retainedDurationMillis = 517
         mApplication instance of ml.docilealligator.infinityforreddit.Infinity
         mBase instance of androidx.appcompat.view.ContextThemeWrapper
```

Solution based on [this StackOverflow answer](https://stackoverflow.com/a/41431693)
2022-09-21 12:47:38 +08:00
55d6078ccc Start utilizing view binding (#1013) 2022-09-21 12:46:13 +08:00
8a2932122c Version 5.3.3. 2022-09-19 15:10:10 +10:00
b0cc32e905 Update translation contributors (#1108) 2022-09-19 13:08:56 +08:00
9fbb40c394 Fix app crashes on start up on Android < 6.0. 2022-09-19 15:05:27 +10:00
c269e5dd75 delete "/" in filtering multireddit path 2022-09-18 10:16:41 +02:00
2f8d0404bf Update multireddit apply filter text (#712)
* Update multireddit apply filter text

A "/" is needed at the end of the path in order for the filter to be applied correctly to the multireddit. Also, any characters that are not lowercase will also make it not apply properly.
2022-09-18 10:00:24 +02:00
8c24769089 Version 5.3.2. 2022-09-17 00:13:37 +10:00
f70721d7fd Fix redgifs download issues. 2022-09-16 23:56:46 +10:00
61da952b7b Update libraries. 2022-09-10 18:21:58 +10:00
b55135e880 Merge branch 'master' of github.com:Docile-Alligator/Infinity-For-Reddit 2022-09-10 01:25:16 +10:00
854833a5db Update libraries. 2022-09-10 01:25:07 +10:00
f2e1ffe52e Update gradle wrapper (#1006)
* Update gradle wrapper

* Update AGP, fix gradle deprecations
2022-09-09 23:24:18 +08:00
e04fedfc64 Use simpler DrawerLayout methods (#1015) 2022-09-09 13:40:07 +08:00
b72bfdef37 refactor: Extract CopyTextBottomSheetFragment display logic (#969) 2022-09-09 13:38:42 +08:00
45bc223659 Remove unnecessary uses of DrawableCompat. (#1045) 2022-09-09 13:37:19 +08:00
e0cf4ec485 Fix markdown in rules screen (#1050)
* Display tables in rules screen

* Parse spoiler and headings in rules screen
2022-09-09 13:34:00 +08:00
401dba6d83 Added a clear search bar text button (#1063) 2022-09-09 10:05:30 +08:00
935471d95c Fix memory leak on BigImageViewer (#1067)
Leak found using LeakCanary. Steps:
1. Enable the LeakCanary dependency.
1. Open the app.
1. Open any post image, and go back.

According to `Piasy/BigImageViewer` documentation,
[Initialize section](9cc045e814/README.md (initialize)),
the app context must be used to avoid memory leaks.

Leak trace:

```
2022-09-04 19:51:38.154 13332-13332/ml.docilealligator.infinityforreddit.debug D/LeakCanary:
    ┬───
    │ GC Root: Thread object
    │
    ├─ android.os.HandlerThread instance
    │    Leaking: NO (PathClassLoader↓ is not leaking)
    │    Thread name: 'LeakCanary-Heap-Dump'
    │    ↓ Thread.contextClassLoader
    ├─ dalvik.system.PathClassLoader instance
    │    Leaking: NO (BigImageViewer↓ is not leaking and A ClassLoader is never leaking)
    │    ↓ ClassLoader.runtimeInternalObjects
    ├─ java.lang.Object[] array
    │    Leaking: NO (BigImageViewer↓ is not leaking)
    │    ↓ Object[257]
    ├─ com.github.piasy.biv.BigImageViewer class
    │    Leaking: NO (a class is never leaking)
    │    ↓ static BigImageViewer.sInstance
    │                            ~~~~~~~~~
    ├─ com.github.piasy.biv.BigImageViewer instance
    │    Leaking: UNKNOWN
    │    Retaining 969.9 kB in 14812 objects
    │    ↓ BigImageViewer.mImageLoader
    │                     ~~~~~~~~~~~~
    ├─ com.github.piasy.biv.loader.glide.GlideImageLoader instance
    │    Leaking: UNKNOWN
    │    Retaining 969.9 kB in 14811 objects
    │    ↓ GlideImageLoader.mRequestManager
    │                       ~~~~~~~~~~~~~~~
    ├─ com.bumptech.glide.RequestManager instance
    │    Leaking: UNKNOWN
    │    Retaining 969.9 kB in 14808 objects
    │    context instance of ml.docilealligator.infinityforreddit.activities.ViewPostDetailActivity with mDestroyed = true
    │    ↓ RequestManager.context
    │                     ~~~~~~~
    ╰→ ml.docilealligator.infinityforreddit.activities.ViewPostDetailActivity instance
         Leaking: YES (ObjectWatcher was watching this because ml.docilealligator.infinityforreddit.activities.
         ViewPostDetailActivity received Activity#onDestroy() callback and Activity#mDestroyed is true)
         Retaining 966.2 kB in 14703 objects
         key = f69c74cc-521e-4f6c-b5c8-8f787e27df75
         watchDurationMillis = 5547
         retainedDurationMillis = 541
         mApplication instance of ml.docilealligator.infinityforreddit.Infinity
         mBase instance of androidx.appcompat.view.ContextThemeWrapper
```
2022-09-09 10:03:07 +08:00
7293b9e758 Update ExoPlayer. 2022-09-09 00:41:35 +10:00
84b5b1d95d Version 5.3.1. 2022-09-07 01:01:45 +10:00
6d224c307d Fix stupid Redgifs API issue. 2022-09-05 00:57:11 +10:00
064b2ceedc Version 5.3.0. 2022-08-27 11:55:58 +10:00
0dc759e9c6 Minor bugs fixed. 2022-08-26 18:08:16 +10:00
965d8ab8ae Show an indicator for the current sort type. 2022-08-21 11:59:14 +10:00
0c7e5bc16f Show an indicator for the current sort type in SortTypeBottomSheetFragment. 2022-08-21 10:58:18 +10:00
6bb208aa61 Version 5.3.0-beta1. 2022-08-16 17:18:03 +10:00
af49571a63 Receive events in HistoryPostFragment. 2022-08-16 17:07:30 +10:00
69c4ab96b9 Update Redgifs API. 2022-08-15 21:58:39 +10:00
8b8a9073dd Show urls in ShareLinkBottomSheetFragment. 2022-08-15 21:11:17 +10:00
7d8e32320f Apply custom theme to settings page. 2022-08-15 21:10:42 +10:00
2750636847 Apply custom theme to the header of the navigation drawer. 2022-08-14 17:47:57 +10:00
7a0a40f696 Heading markdown fix (#908)
* Copy heading parser and adjust it to match Reddit behavior

Unlike CommonMark, Reddit does not require space after #. This behavior is
coded in a private static function, so the only way to override it is to
copy everything and use the modified copy instead of the default parser.

* Use RedditHeadingPlugin instead of regexes

* Apply plugins to post body when writing a comment

This fixes display when writing comment to a post
that contains spoilers or headings without space

* Apply plugins to parent comment body when writing a comment

This fixes display when replying to a comment that contains strikethrough text
2022-08-14 15:33:07 +08:00
633ccc7f7d Fix post content is not parsed in other types of posts. 2022-08-14 16:55:44 +10:00
97dcc263e3 Fix saved comments not shown when clicking Saved option in the bottom navigation bar. 2022-08-13 13:35:30 +10:00
da708748ba Merge branch 'master' of github.com:Docile-Alligator/Infinity-For-Reddit 2022-08-13 12:25:29 +10:00
e3f9d31a34 Fix caption shown under the navbar in ViewRedditGalleryImageOrGifFragment. 2022-08-13 12:25:04 +10:00
1366ff0147 Merge pull request #844 from SenseiSchizo/feature/stringTypoFix
Fixed typos in strings.xml
2022-08-12 13:58:10 +02:00
a12e65aa0e Manage theme insertion callbacks behaviour (#892) 2022-08-12 18:36:14 +08:00
fc73816a40 Extra small font size 2022-08-05 12:28:49 +10:00