Commit graph

1432 commits

Author SHA1 Message Date
Konrad Pozniak
68c9870b19
update AndroidX dependencies (#2641)
* update AndroidX dependencies

* fix ComposeActivityTest
2022-08-07 19:13:59 +02:00
Levi Bard
042176e523
Add support for following hashtags (#2642)
* Add support for following hashtags. Addresses #2637

* Update rxjava to coroutines

* Update new tag api to use suspend functions

* Update hashtag unfollow icon

* Set correct tint on hashtag follow/unfollow icons

* Translate hashtag follow/unfollow error messages

* Toast => Snackbar

* Remove unnecessary view lookup
2022-08-07 19:09:26 +02:00
QuirkyPony
17fb93626c
adapt file size error messages to show real instance upload limit (#2630)
* remove megabyte counts from file size error messages

The file size limits depend on the server; change strings to reflect that.

* show real file size limits instead of assuming Mastodon defaults

* correct previous commit

* correct previous commit (again)

* remove megabyte counts from file size error messages

The file size limits depend on the server; change strings to reflect that.

* Translated using Weblate (Galician)

Currently translated at 100.0% (489 of 489 strings)

Co-authored-by: XoseM <xosem@disroot.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/gl/
Translation: Tusky/Tusky

* Translated using Weblate (Finnish)

Currently translated at 5.5% (1 of 18 strings)

Translation: Tusky/Tusky description
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky-app/fi/

* correct previous commit

correct previous commit (again)

fixed type error caused by previous commits

* fix lint error...

* Update strings.xml

* improve code, calculate correct max size and format it

Co-authored-by: Laura <the-ceo-of-antifa@protonmail.com>
Co-authored-by: XoseM <xosem@disroot.org>
Co-authored-by: Konrad Pozniak <k.pozniak@gmx.at>
2022-08-05 18:55:13 +02:00
Konrad Pozniak
55796c9a30
update minSdkVersion to 23 (#2638)
closes #2606
2022-08-04 16:48:26 +02:00
Konrad Pozniak
2d2d7569e3
fix compose field focus when replying to post with cw (#2634) 2022-08-03 17:23:54 +02:00
Martin Marconcini
8b026991e0
2616: Save Scheduled Time for Drafts. (#2624)
* 2616: Save Scheduled Time for Drafts.

Signed-off-by: Martin Marconcini <martin.marconcini.rodriguez@nl.abnamro.com>

* Revert 39.json schema to the original state before my changes.
2022-07-27 21:06:51 +02:00
Konrad Pozniak
1b6a0908f6
Handle even more instance defaults (#2612)
* handle media size instance limits

* remove unused attributes from Instance entity

* support max_media_attachments

* support pleroma field limits, remove max_bio_chars support

* improve field input margin

* fix tests

* MAX_ACCOUNT_FIELDS -> DEFAULT_MAX_ACCOUNT_FIELDS

* improve "add field" button behavior

* fix copy paste mistake in AccountFieldEditAdapter

* refactor sendStatus to be a suspending function
2022-07-26 20:24:50 +02:00
Konrad Pozniak
526f170d51
don't crash on invalid json response for push subscription (#2613) 2022-07-11 18:17:58 +02:00
Konrad Pozniak
a8a97b6834
fix relogin bug (#2609)
* fix relogin bug

* fix ktlint
2022-07-05 18:18:12 +02:00
Konrad Pozniak
86403ac6dc
add test for InstanceSwitchAuthInterceptor and convert it to Kotlin (#2596)
* add test for InstanceSwitchAuthInterceptor

* improve InstanceSwitchAuthInterceptorTest

* Rename .java to .kt

* convert InstanceSwitchAuthInterceptor to Kotlin

* fix ktlint issues

* improve InstanceSwitchAuthInterceptorTest

* improve InstanceSwitchAuthInterceptorTest
2022-06-30 21:25:44 +02:00
Konrad Pozniak
62c4cfde89
improve media upload error messages (#2602) 2022-06-30 20:51:05 +02:00
Konrad Pozniak
8a0848d252
fix data loss when re-adding existing account (#2601) 2022-06-30 20:49:48 +02:00
Konrad Pozniak
9dcb1b666c
show push migration snackbar above floating action button (#2598) 2022-06-30 20:49:27 +02:00
Levi Bard
8551785389
Fix hiding/showing preview cards for sensitive statuses (#2600)
* Update comment on StatusViewData.isCollapsible

* Fix hiding/showing preview cards for sensitive statuses.
Fixes #2565

* Fix typo
2022-06-24 21:47:49 +02:00
mcclure
3ca8a0b549
Use specific term "image" in error UI, not "attachment" (#2592)
The new message for the crop feature, "The attachment could not be edited.", turned out to be awkward in some languages (French) where according to the translator it would be better to more specifically say "The image could not be edited." (as currently we can only edit images). Patch replaces error_media_edit_failed with a error_image_edit_failed and deletes the existing error_media_edit_failed-s.
2022-06-21 22:14:11 +02:00
Konrad Pozniak
f419e83c16
improve logout (#2579)
* improve logout

* fix tests

* add db migration

* delete wrongly committed file again

* improve LogoutUsecase
2022-06-20 16:45:54 +02:00
Konrad Pozniak
dba2fbc5c1
fix empty timeline on initial load (#2586) 2022-06-20 16:11:30 +02:00
Levi Bard
2e33233309
Don't display bot badge in account selection dialog (#2589) 2022-06-20 16:11:07 +02:00
Konrad Pozniak
1a29a589e1
rewrite InstanceDao queries to drop unused columns (#2585) 2022-06-20 16:08:19 +02:00
Konrad Pozniak
3417a7272a
use moshis Rfc3339DateJsonAdapter for json date parsing (#2584)
* Rename .java to .kt

* use moshis Rfc3339DateJsonAdapter for json date parsing
2022-06-16 18:51:35 +02:00
Konrad Pozniak
fd568aedba
fix refreshing notifications screen when there are no notifications (#2583) 2022-06-16 18:50:01 +02:00
Karmanyaah Malhotra
cbc5077b1f
UnifiedPush: FEATURE_BYTES_MESSAGE distributors (#2581)
Only use distributors which are compatible with FEATURE_BYTES_MESSAGE
This is because Mastodon sends notifications that are arbritary bytes,
not UTF-8. This causes issues in older versions of UnifiedPush
distributors and providers that don't support FEATURE_BYTES_MESSAGE
2022-06-09 20:03:27 +02:00
tobi
530eb61505
Use NetworkResult in MediaUploadApi (#2577) 2022-06-06 16:04:33 +02:00
Konrad Pozniak
e1c8461423
replace kotlin-result-calladapter with networkresult-calladapter (#2569)
* replace kotlin-result-calladapter with networkresult-calladapter

* fix tests
2022-05-30 20:03:40 +02:00
Konrad Pozniak
131309e99c
Fix conversations (#2556)
* fix conversations

* cleanup ConversationsRemoteMediator

* update conversation timestamps regularly

* improve loadStateListener

* add db migration

* make deleting from conversation db suspending

* reorganize code in ConversationsFragment

* delete NetworkStateViewHolder

* cleanup imports

* add 38.json

* honor fabHide setting in ConversationsFragment

* set page size to 30
2022-05-30 19:06:14 +02:00
Konrad Pozniak
2983c3f48e
Add UtcDateTypeAdapter for Gson (#2549)
* Add UtcDateTypeAdapter for Gson

* add 38.json
2022-05-30 18:15:17 +02:00
Konrad Pozniak
434d345d01
remove unused member vars from TimelineFragment (#2561) 2022-05-29 19:23:08 +02:00
Ivan Kupalov
e63cd68baf
Fix filters in timelines in a simple way, fix #2546 (#2566)
Loading of statuses and loading of filters is an "intended" race:
we want to display statuses first, especially if they are cached.
Unfortunately we do not cache filters themselves so when we load cached
statuses we do not apply filters.

One part of the solution is to re-filter the statuses once we fetch the
filters. This commit implements it. Caching of filters is not included
yet.
2022-05-29 19:22:59 +02:00
mcclure
06e32f703a
Fix unintended [mismatched] show-replies preference (with key force-reset) (#2568)
* Fix unintended [mismatched] show-replies preference and add a comment to prevent confusion.

* Change the key on TAB_FILTER_HOME_REPLIES to reset everyone's value here once.
2022-05-29 19:21:33 +02:00
UlrichKu
d2befa83d3
2554 refresh timestamps on resume (#2562)
* Fire observable to update timestamps directly on resume (#2554)

* Fire observable to update timestamps directly on resume (#2554)
2022-05-27 19:51:22 +02:00
Konrad Pozniak
becb677176
make WebView debuggable in debug builds (#2548) 2022-05-27 18:44:16 +02:00
UlrichKu
2424dde9cc
Fire observable to update timestamps directly on resume (#2554) (#2555) 2022-05-27 18:43:10 +02:00
Konrad Pozniak
fd9d48e4a6
remove legacy notification channel cleanup (#2550) 2022-05-25 20:54:25 +02:00
mcclure
00c139190e
Ability to crop images attached to posts (#2531)
* First attachment crop attempt: Can crop in place, but does not delete/replace on server so has no effect

* Attachment crop feature works

* ktlint fixes on attachment crop patch

* Upgrade Android-Image-Cropper to 4.2.1

* An error message should be displayed if attachment cropping fails and it is not because the user intentionally cancelled.

* Remove 2 of the 3 "state passing" variables by using MediaUtils

* Cropper should use content uri (MIME type bearing) and setOutputCompressFormat so that PNGs reach the server safely.

* Change to crop requested by Conny: Store inflight cropImageItemOld in view model

* Change to crop requested by Conny: Sort cropImage with the other contracts

* ktlint fixes on attachment crop patch (again)
2022-05-22 21:01:14 +02:00
Levi Bard
4188670b42
Implement reply count indicator to track web UI (#2467)
Addresses #882
2022-05-20 16:47:45 +02:00
Konrad Pozniak
5abb82004a
migrate Lists from RxJava to Kotlin coroutines (#2537)
* migrate Lists from RxJava to Kotlin coroutines

* use DROP_OLDEST when creating MutableSharedFlow
2022-05-18 18:45:35 +02:00
Konrad Pozniak
cec8f6dd65
modernize autocomplete (#2510)
* modernize autocomplete

* use @WorkerThread annotation
2022-05-17 19:55:37 +02:00
Konrad Pozniak
4c9cd4084b
show list title when viewing list timeline (#2503) 2022-05-17 19:55:26 +02:00
Martin Marconcini
d97493d312
Issue 2477: Show account's creation date in Profile. (#2480)
* Show account's creation date in Profile.

* Fix broken test.

* Store account creation date in the Database.

* Reformat and reposition Joined Date according to PR Feedback.

* Revert "Store account creation date in the Database."

This reverts commit d9761f53 as it's not needed.

* Change Account's Creation Date to a java.util.Date.
Update Test.

* Fix wildcard import.

* Show full month instead of an abbreviation.

* Remove `lazy` usage in favor of local instantiation.

Co-authored-by: Martin Marconcini <martin.marconcini.rodriguez@nl.abnamro.com>
Co-authored-by: Konrad Pozniak <connyduck@users.noreply.github.com>
2022-05-17 19:49:42 +02:00
Peter Cai
9ec5d6e3b0
Push notifications support via UnifiedPush (#2303)
Fixes #793.

This is an implementation for push notifications based on UnifiedPush
for Tusky. No push gateway (other than UP itself) is needed, since
UnifiedPush is simple enough such that it can act as a catch-all
endpoint for WebPush messages. When a UnifiedPush distributor is present
on-device, we will by default register Tusky as a receiver; if no
UnifiedPush distributor is available, then pull notifications are used
as a fallback mechanism.

Because WebPush messages are encrypted, and Mastodon does not send the
keys and IV needed for decryption in the request body, for now the push
handler simply acts as a trigger for the pre-existing NotificationWorker
which is also used for pull notifications. Nevertheless, I have
implemented proper key generation and storage, just in case we would
like to implement full decryption support in the future when Mastodon
upgrades to the latest WebPush encryption scheme that includes all
information in the request body.

For users with existing accounts, push notifications will not be enabled
until all of the accounts have been re-logged in to grant the new push
OAuth scope. A small prompt will be shown (until dismissed) as a
Snackbar to explain to the user about this, and an option is added in
Account Preferences to facilitate re-login without deleting local drafts
and cache.
2022-05-17 19:32:09 +02:00
Konrad Pozniak
8c6ccf4261
fix notification message formatting when username is not at the beginning of the message (#2522)
* fix notification message formatting when username is not at the beginning of the message

* search for placeholder in format string
2022-05-13 22:00:30 +02:00
Konrad Pozniak
d9c6269d44
fix deleting media attachments removing the wrong ones (#2517) 2022-05-12 18:21:43 +02:00
Konrad Pozniak
b8e3b6b884
fix currently logged in profiles not being visible in main drawer when offline (#2516) 2022-05-12 18:21:33 +02:00
Konrad Pozniak
beaed6b875
Fix crash when saving redrafted media to drafts (#2502)
* fix crash when saving draft from redraft

* fix crash when saving draft from redraft

* replace ... with …
2022-05-09 19:39:43 +02:00
Levi Bard
b4eda5ea65
Unbreak link previews in timelines (#2506) 2022-05-05 18:27:05 +02:00
Konrad Pozniak
db81ede04a
fix login webview title color with light theme (#2497) 2022-05-04 18:40:29 +02:00
Konrad Pozniak
a2cc622683
fix EmojiCompat.get().process crash in polls (#2494) 2022-05-03 19:15:59 +02:00
Ivan Kupalov
f3d7923803
Improve UX when Login WebView fails to load the page (#2492)
Previously we simply closed the screen with the login WebView which
could cause confusion. Now we specify that page could not be loaded.

As a side effect it will also show the error message which the server
returns (if any).
2022-05-03 19:14:55 +02:00
Konrad Pozniak
1eed0e1cc2
fix unparsed html when sharing status content (#2491) 2022-05-03 19:13:13 +02:00
Konrad Pozniak
444e7365c9
fix race condition where multiple uploaded media can get same internal id (#2479)
* fix race condition where multiple uploaded media can get same internal id

* atomically update media stateflow

* atomically update media stateflow
2022-05-03 19:12:35 +02:00
Konrad Pozniak
ce5ec15ff1
increase timeout for media uploads (#2489) 2022-05-01 17:16:22 +02:00
Martin Marconcini
260e25a0a4
Issue 2379: Make it possible to select text in posts. (#2472)
* Set TextIsSelectable on the corresponding view holders and remove a longpress listener to let Android select text.

* Revert changes, and make selectable text only in detailed status.

Remove long press listener to copy to clipboard (as it interferes with natural text selection on Android).

* Remove unused string (copy_to_clipboard_success) from all translations.

Co-authored-by: Martin Marconcini <martin.marconcini.rodriguez@nl.abnamro.com>
2022-04-30 19:05:44 +02:00
Konrad Pozniak
7fd54e3b4f fix timeline refresh spinner finishing before updates are visible 2022-04-30 08:09:59 +02:00
Guntbert Reiter
9a8dfaa744
Remove code to check the server version (#2469)
solves #2439
2022-04-29 18:35:25 +02:00
Konrad Pozniak
e9b75119b3
improve bot badge (#2466)
* improve bot badge

* change badge corner radius
2022-04-28 20:39:06 +02:00
Konrad Pozniak
e5b58770ce
improve LoginWebViewActivityUX (#2465) 2022-04-28 20:38:51 +02:00
Konrad Pozniak
28ac190212
fix SearchActivity transition animations (#2464) 2022-04-28 20:37:46 +02:00
Konrad Pozniak
671d2c6a45
Check if media processing finished before sending status (#2458)
* make MastodonApi.createStatus suspending

* check if media processing has finished before sending status

* add backoff for retrying processed media check
2022-04-28 20:37:31 +02:00
Constantin A
3a11b9900e
EmojiCompat fix (#2468)
* Add back the emojiInitCallback and move EmojiCompat init

* Small adjustments

* Make sure that we don't hit the IllegalStateException when EmojiCompat-ing the display names

* Add a TODO for when Material Drawer 9 can be used

* Remove EmojiCompat.process and initcallback
2022-04-28 18:55:10 +02:00
moddedBear
0e9d362351
Remove Identity Proof Support (#2456)
* Remove IdentityProof.kt and refactor

* Remove accountFieldData from viewmodel

* Remove unused imports
2022-04-27 19:58:39 +02:00
Constantin A
f15b3e61bb
New emoji picker (#2395)
* Update to Emoji2

* Hopefully fix the emoji picker preference

* Switch to released Filemojicompat version

* Filemojicompat version as an own var

* Remove an unused import

* Small cleanup

* Correct onDisplayPreferenceDialog; test TuskyApplication

* Use TextViews instead of EmojiTextViews

* Recreate the Main Activity if the emoji pack is updated

* Enable coreLibraryDesugaring (for Java Streams); update Filemojicompat, downgrade Emoji2

* Update emoji font versions to 14

* Use FilemojiCompat 3.2.0-beta01

* Make ktLint happy again

* Remove coreLibraryDesugaring and a FIXME

* Use EmojiPickerPreference.get()

* Disable emoji pack import

* Update FilemojiCompat to Beta 2

* Update FilemojiCompat to Beta 3

* Update FilemojiCompat to Beta 3.2.0 final

* Update FilemojiCompat to 3.2.1
2022-04-26 18:50:58 +02:00
Konrad Pozniak
adcbe1a831
fix unparsed html in announcements (#2451) 2022-04-21 18:47:05 +02:00
Konrad Pozniak
db7eac0a8d
guard against the status of a notification being null in rare cases (#2449)
* guard against the status of a notification being null in rare cases

* improve code, fix bug when payloads is not null

* remove findViewById

* add comments in NotificationsAdapter
2022-04-21 18:46:55 +02:00
Konrad Pozniak
43709532d6
fix unparsed html in "replying to" toggle (#2448) 2022-04-21 18:46:43 +02:00
Konrad Pozniak
d2bfceae7b
refactor compose & announcements to coroutines (#2446)
* refactor compose & announcements to coroutines

* fix code formatting

* add javadoc to InstanceInfoRepository

* fix comments in ImageDownsizer

* remove unused Either extensions

* add explicit return type for InstanceInfoRepository.getEmojis

* make ComposeViewModel.pickMedia return Result

* cleanup code in ImageDownsizer
2022-04-21 18:46:21 +02:00
Konrad Pozniak
b5d8b73044
fix "account moved" on profiles not being clickable (#2438) 2022-04-19 11:10:23 +02:00
Levi Bard
dff039e123
Add support for post edit notifications (#2431)
* Add support for post edit notifications

* Update notification icon
2022-04-19 11:10:13 +02:00
Mélanie Chauvel
e0abcbfada
Improve time format of posts when using absolute time (#2413)
* Improve time format of posts when using absolute time

* fix AbsoluteTimeFormatter, add tests

* fix tests

Co-authored-by: Conny Duck <k.pozniak@gmx.at>
2022-04-18 21:41:18 +02:00
Konrad Pozniak
216f094e98
upgrade ktlint gradle plugin to 10.2.1 (#2435) 2022-04-16 09:45:45 +02:00
Konrad Pozniak
027b659d1c
fix notifications showing unparsed html (#2436) 2022-04-16 09:44:05 +02:00
Konrad Pozniak
3e849244f9
move Html parsing to ViewData (#2414)
* move Html parsing to ViewData

* refactor reports to use viewdata

* cleanup code

* refactor conversations

* fix getEditableText

* rename StatusParsingHelper

* fix tests

* commit db schema file

* add file header

* rename helper function to parseAsMastodonHtml

* order imports correctly

* move mapping off main thread to default dispatcher

* fix ktlint
2022-04-15 13:20:27 +02:00
Konrad Pozniak
7aa328b3dc
fix login on Android API level <24 (#2432) 2022-04-15 10:50:28 +02:00
Levi Bard
ad077cf092
Don't show preview cards on statuses with polls. (#2430)
Fixes #2427
2022-04-14 19:58:08 +02:00
Konrad Pozniak
3e8c6a318a
introduce KotlinResultCallAdapter for nice suspending network calls (#2415)
* introduce KotlinResultCallAdapter for nice suspending network calls

* fix tests
2022-04-14 19:49:49 +02:00
kyori19
d21d045eda
Support new signup notifications (#2357) 2022-04-14 19:39:30 +02:00
Konrad Pozniak
1d20a02d17
fix crash in ConversationsFragment (#2426) 2022-04-13 19:22:19 +02:00
Konrad Pozniak
c705e9cbbb
remove extra slash in OAuth authorize url (#2425) 2022-04-13 19:22:09 +02:00
Konrad Pozniak
b4a913b2d5
fix black theme on Android 12 (#2424)
* fix black theme on Android 12

* Revert "fix black theme on Android 12"

This reverts commit 2286706fdb239e15be72ac8943405ffeb2258219.

* bring back SplashActivity
2022-04-13 19:22:01 +02:00
Konrad Pozniak
79c8f59e4e
fix crash when applying new emoji font on Android 12 (#2420) 2022-04-06 19:53:28 +02:00
Konrad Pozniak
59b627664f
Fix saving failed status to drafts (#2410)
* fix saving failed statuses to drafts

* use coroutine delay instead of timer
2022-04-02 16:15:18 +02:00
Constantin A
4011242257
Update emoji font versions to 14 (#2411) 2022-03-31 19:02:42 +02:00
Levi Bard
ad001d044d
Revert unintentional behavior change for mention spans to use remote usernames (#2408) 2022-03-30 19:33:31 +02:00
Konrad Pozniak
f2529a8e61
Fix Timeline not loading (#2398)
* fix cached timeline

* fix network timeline

* delete unused inc / dec extensions

* fix tests and bug in network timeline

* add db migration

* remove unused import

* commit 31.json

* improve placeholder inserting logic, add comment

* fix tests

* improve tests
2022-03-28 18:39:16 +02:00
Konrad Pozniak
c47804997c
Improve handling of shared media (#2388)
* support file:// uris

* support subjects on image shares

* improve code

* improve code

* improve code
2022-03-28 18:39:05 +02:00
Mélanie Chauvel
2fc3ba3cee
Replace “status” by “post” in strings name and source values (#2405) 2022-03-27 12:23:25 +02:00
Levi Bard
bbd818084d
When calculating post length, count all urls as being of the reserved character count, even if they're shorter. (#2404)
Addresses #2399
2022-03-24 19:52:18 +01:00
Konrad Pozniak
d9931e3d2c
Rename Toots to Posts (#2396)
* rename toots -> posts in strings

* extract tusky_compose_post_quicksetting_label string

* rename toot -> status in code
2022-03-20 20:21:42 +01:00
Conny Duck
152c8b45d0 enable JavaScript in LoginWebViewActivity 2022-03-17 21:52:06 +01:00
Konrad Pozniak
0dc32774ec
handle screen rotation in LoginWebViewActivity (#2390) 2022-03-17 21:50:14 +01:00
cketti
e6f7d9d5af
Fix image preview in share sheet (#2389) 2022-03-16 18:46:26 +01:00
Konrad Pozniak
e05fdc6d7b
Fix status diffing and improve timeline performance (#2386)
* fix status & account diffing

* introduce TimelineAccount

* use TimelineAccount where possible

* improve tests

* improve ConversationEntity equals/hashcode

* fix mistake in ConversationEntity

* improve StatusViewData comparison

* improve tests

* fix typo in comment
2022-03-15 21:34:57 +01:00
Konrad Pozniak
a257d9b769
correctly render whitespace in posts (#2383)
* correctly preserve whitespace in posts

* use extension function to convert from Spanned to Html

* improve comment
2022-03-14 14:43:00 +01:00
Konrad Pozniak
991d261459
change media download location to Download directory (#2384) 2022-03-14 13:55:25 +01:00
Konrad Pozniak
15304440ef
fix "nothing here" flickering when starting Tusky (#2377) 2022-03-12 09:38:59 +01:00
kyori19
72bb34bf27
Fix some network timeline bugs (#2373)
* Fix network timeline gap loading

* Fix fullReload keeps nextKey

* Fix reload after clearing timeline

* Improve logic to handle overlapped statuses
2022-03-12 09:38:48 +01:00
Konrad Pozniak
55513e8e2b
Android 12 support, update AndroidX libraries (#2367)
* Android 12 support, update AndroidX libraries

* fix ktlint

* add Android 12 splash screen support

* fix comments in MainActivity

* remove deprecated Intent.ACTION_CLOSE_SYSTEM_DIALOGS

* delete TimelineViewModelTest

* fix notifications on Android 12

* improve splash screen

* handle pending intent flags in a dedicated function
2022-03-09 20:50:23 +01:00
Konrad Pozniak
221cdb3611
move "animate custom emojis" preference next to "animate avatars" (#2376) 2022-03-08 21:40:10 +01:00
Konrad Pozniak
34b7a3c8ee
Don't hide potential timeline bugs by catching all exceptions (#2372)
* don't hide potential timeline bugs by catching all exceptions

* fix NetworkTimelineRemoteMediatorTest

* improve ifExpected function

* fix code formatting
2022-03-08 21:39:59 +01:00
Ivan Kupalov
4d8289b245
Implement Login via WebView (#2371)
* Improve login process with newer APIs

* Implement login with WebView instead of browser tab or external browser

Oauth process requires us to open login prompt for correct instance and
we need to receive the result back. Usually it is done with redirect
parameter.

Previously we've been using BrowserTabs API and have been falling back
to just opening browser. This mostly worked but is very clumsy:

 - It relies on few system mechanisms for opening URLs in both
directions
 - Browsers do weird things and tend to break quite a bit
 - There's a good chance that the app can die in the process and we need
to recover our state.

So instead we are now using WebView. It has disadvantages (users have
to trust us to show correct page, logins are not shared w/ browser) but
it should be more reliable.

* Changes to login after review

* Move login classes to their own package

* Fix linting issues
2022-03-08 21:22:19 +01:00
Konrad Pozniak
841373e947
fix various timeline related crashes (#2369)
* fix various timeline related crashes

* fix ktlint
2022-03-06 17:40:24 +01:00