We do this in other ViewHolders as well
Seen in this crash report on Google Play:
```
Exception java.lang.IndexOutOfBoundsException: Index: -1, Size: 0
at androidx.paging.PageStore.checkIndex (PageStore.kt:56)
at androidx.paging.PageStore.get (PageStore.kt:66)
at androidx.paging.PagingDataPresenter.peek (PagingDataPresenter.java:290)
at androidx.paging.AsyncPagingDataDiffer.peek (AsyncPagingDataDiffer.java:476)
at androidx.paging.PagingDataAdapter.peek (PagingDataAdapter.kt:312)
at com.keylesspalace.tusky.components.notifications.NotificationsFragment.onViewThread (NotificationsFragment.kt:409)
at com.keylesspalace.tusky.components.notifications.StatusNotificationViewHolder.bind$lambda$0 (StatusNotificationViewHolder.java:104)
at android.view.View.performClick (View.java:7684)
at android.view.View.performClickInternal (View.java:7661)
at android.view.View.-$$Nest$mperformClickInternal (Unknown Source)
at android.view.View$PerformClick.run (View.java:30344)
at android.os.Handler.handleCallback (Handler.java:1000)
at android.os.Handler.dispatchMessage (Handler.java:104)
at android.os.Looper.loopOnce (Looper.java:242)
at android.os.Looper.loop (Looper.java:362)
at android.app.ActivityThread.main (ActivityThread.java:8393)
at java.lang.reflect.Method.invoke
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:992)
```
Currently translated at 93.2% (631 of 677 strings)
Translated using Weblate (Spanish)
Currently translated at 92.9% (629 of 677 strings)
Co-authored-by: Arturo Serrano <carturo222@protonmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/es/
Translation: Tusky/Tusky
Currently translated at 14.9% (101 of 677 strings)
Co-authored-by: Starbeamrainbowlabs <sbrl+tuskywl@starbeamrainbowlabs.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/en_GB/
Translation: Tusky/Tusky
Currently translated at 98.5% (667 of 677 strings)
Translated using Weblate (Czech)
Currently translated at 92.6% (627 of 677 strings)
Co-authored-by: Jan Hurař <jhutar@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/cs/
Translation: Tusky/Tusky
Currently translated at 10.1% (69 of 677 strings)
Translated using Weblate (Luxembourgish)
Currently translated at 2.0% (14 of 677 strings)
Co-authored-by: Clarissa Carim <clarissawam@yahoo.co.uk>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/lb/
Translation: Tusky/Tusky
Currently translated at 100.0% (677 of 677 strings)
Translated using Weblate (Welsh)
Currently translated at 100.0% (677 of 677 strings)
Co-authored-by: fin-w <fin-w@tutanota.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/cy/
Translation: Tusky/Tusky
The way that translations are shown on the Weblate interface is
sometimes incorrect compared to how the string resources are processed
by Android, I think because of how Weblate reads newlines and spaces. I
guess it's Weblate's fault, but since that's what we use, I'm hoping
this MR fixes the discrepancy, or at least minimises it.
I've opted to collapse multi-line strings onto one line (i.e.
`help_empty_home`), unless there's a list or something (i.e.
`wellbeing_mode_notice`) in which case (for XML source readability)
minimal newlines are used which hopefully makes the Weblate issue
uniform and minor, if it appears at all.
Here's an example of a good string in the strings.xml:
```
<string name="action_post_failed_detail">Your post failed to upload and has been saved to drafts.\n\nEither the server could not be contacted, or it rejected the post.</string>
```
How it appears in Weblate (note that there no extra spaces anywhere):
![delwedd](https://github.com/user-attachments/assets/aa73d44b-a43b-4135-975e-f9ef5a921c7c)
Here are the problems:
### Example 1
String in strings.xml:
```
<string name="dialog_whats_an_instance">The address or domain of any instance can be entered
here, such as mastodon.social, icosahedron.website, social.tchncs.de, and
<a href="https://instances.social">more!</a>
\n\nIf you don\'t yet have an account, you can enter the name of the instance you\'d like to
join and create an account there.\n\nAn instance is a single place where your account is
hosted, but you can easily communicate with and follow folks on other instances as though
you were on the same site.
\n\nMore info can be found at <a href="https://joinmastodon.org">joinmastodon.org</a>.
</string>
```
How it appears in Weblate (note the spaces between words where there is
a newline char in the strings.xml, and the trailing spaces at the very
end of the string because the XML tag is on the next line):
![Screenshot_20241226_231804](https://github.com/user-attachments/assets/e98fcef5-1569-406c-806c-0783a145a2e2)
### Example 2
String in strings.xml:
```
<string name="wellbeing_mode_notice">Some information that might affect your mental wellbeing will be hidden. This includes:\n\n
- Favorite/Boost/Follow notifications\n
- Favorite/Boost count on posts\n
- Follower/Post stats on profiles\n\n
Push-notifications will not be affected, but you can review your notification preferences manually.
</string>
```
How it appears in Weblate (note the incorrect space in front of the last
line of the source and target languages):
![Screenshot_20241226_225652](https://github.com/user-attachments/assets/23e7c6d6-5268-4737-bfec-a89b5126f164)
### Example 3
String in strings.xml:
```
<string name="help_empty_lists">This is your <b>lists view</b>. You can define a number of private lists and add accounts to that.
\n\n
NOTE that you can only add accounts you follow to your lists.
\n\n
These lists can be used as a tab in Account preferences [iconics gmd_account_circle] [iconics gmd_navigate_next] Tabs.
</string>
```
How it appears in Weblate (for some reason the target language string
keeps having more and more spaces added to it, I can't delete them, they
keeping being added back again, perhaps it's because of only having \n
newline text on a line?):
![Screenshot_20241226_232533](https://github.com/user-attachments/assets/19399b3a-b51b-4a27-a74c-52ea4bf68cbd)
There are other issues as well, and I don't know what causes them. They
should be fixed somehow, but that might be (automatic?) formatting or
something at your end that I can't help with. You can see some of them
fairly recently by browsing
https://weblate.tusky.app/changes/browse/tusky/tusky/cy/ - entries where
it says "String updated in the repository" and the edit is just
whitespace changes. Here's an example where extra whitespace keeps
getting added to the target language:
String in strings.xml:
```
<string name="error_missing_edits">Your server knows that this post was edited, but does not have a copy of the edits, so they can\'t be shown to you.\n\nThis is <a href="https://github.com/mastodon/mastodon/issues/25398">Mastodon issue #25398</a>.</string>
```
How it appears in Weblate (the incorrect spaces keep getting added back
in the target language):
![Screenshot_20241226_231507](https://github.com/user-attachments/assets/24540587-728e-4b04-a27d-1421891d8a5b)
Currently translated at 100.0% (677 of 677 strings)
Translated using Weblate (Galician)
Currently translated at 100.0% (677 of 677 strings)
Co-authored-by: XoseM <xosem@disroot.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/gl/
Translation: Tusky/Tusky
This fixes two issues, but I tested them together to make sure this time
everything works as expected.
1) The fix in #4813 went into the right direction, but the condition was
a bit too broad. When sharing something to Tusky so that Tusky switches
accounts, sometimes nothing would happen.
2) fixes#4766. There are two possibilities here (I think it depends
mostly on API level):
2a) Sharing starts a new task. `android:maxRecents="1"` makes sure old
tasks disappear and are not left in the weird in-between state.
3a) Sharing starts a new `MainActivity` in an existing task.
`Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK` makes
sure old `MainActivity` instances are removed. On newer Android versions
this has the sideeffect of changing the switch animation, but whatever.
Basically this gives us the behavior I wanted to achieve with the
`android:launchMode="singleTask"` without the unintended side effects.
Currently translated at 100.0% (677 of 677 strings)
Co-authored-by: Anna (cybertailor) Vyalkova <cyber@sysrq.in>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/ru/
Translation: Tusky/Tusky
closes#4789 this time for real, hopefully, maybe
also set `alwaysRetainTaskState` for good measure
> `android:alwaysRetainTaskState`
Whether the state of the task that the activity is in is always
maintained by the system. `"true"` if it is, and `"false"` if the system
can reset the task to its initial state in certain situations. The
default value is `"false"`. This attribute is meaningful only for the
root activity of a task. It's ignored for all other activities.
> Normally, the system clears a task, removing all activities from the
stack above the root activity, in certain situations when the user
re-selects that task from the home screen. Typically, this is done if
the user hasn't visited the task for a certain amount of time, such as
30 minutes.
> However, when this attribute is `"true"`, users always return to the
task in its last state, regardless of how they get there. This is useful
in an application like a web browser where there is a lot of state, such
as multiple open tabs, that users don't want to lose.
https://developer.android.com/guide/topics/manifest/activity-element#always
Currently translated at 100.0% (677 of 677 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (677 of 677 strings)
Co-authored-by: Danial Behzadi <dani.behzi@ubuntu.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/fa/
Translation: Tusky/Tusky