| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add todos to places that need more markdown fixes
* Parse spoilers and headings in sidebar
* Assign anonymous MarkwonPlugin to a variable
Prepare code for a future refactoring
* Assign click listener lambda to a variable
Prepare code for a future refactoring
* Add function for creating Markwon with full markdown
All the builders had the same plugins applied to them, except for
BetterLinkMovement. But it is safe to add the plugin as it just adjusts
link interactions.
Also some plugins are now applied in a different order but it doesn't
change anything in this case.
* Add function for creating Markwon with only links support
* Extract UrlMenuBottomSheetFragment creation
* Add functions for creating MarkwonAdapters
* Replace linkify with newInstance for BetterLinkMovementMethod
Because varargs weren't used, the two methods are identical
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
| |
* Added a clear search bar text button
* Made caption disappear/show when tapping on image and removed gray overlay when no caption.
|
|
|
|
|
| |
- Fixed issue where a post's suggested titles would fail to generate
Co-authored-by: Kurian Vithayathil <no.reply@github.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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>
|
|
|
| |
Co-authored-by: Docile-Alligator <25734209+Docile-Alligator@users.noreply.github.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
* Display tables in rules screen
* Parse spoiler and headings in rules screen
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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](https://github.com/Piasy/BigImageViewer/blob/9cc045e8146dc8833a487576745f17158bae4a4a/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
```
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
|
|
|
| |
navigation bar.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
* Request layout on ratio change
* Change imageView visibility on bind/recycle to force layout change
|
| |
|
|
|
|
| |
CustomThemePreviewActivity.
|
| |
|
|
|
|
| |
not allow 3rd-party apps access this API now.
|
| |
|
| |
|
| |
|