kyori19
4b9fb2f0bb
Merge remote-tracking branch 'tuskyapp/develop'
...
# Conflicts:
# .gitignore
# README.md
# app/build.gradle
# app/src/green/res/mipmap-hdpi/ic_launcher.png
# app/src/green/res/mipmap-mdpi/ic_launcher.png
# app/src/green/res/mipmap-xhdpi/ic_launcher.png
# app/src/green/res/mipmap-xxhdpi/ic_launcher.png
# app/src/green/res/mipmap-xxxhdpi/ic_launcher.png
# app/src/main/java/com/keylesspalace/tusky/EditProfileActivity.kt
# app/src/main/java/com/keylesspalace/tusky/MainActivity.kt
# app/src/main/java/com/keylesspalace/tusky/StatusListActivity.kt
# app/src/main/java/com/keylesspalace/tusky/TabData.kt
# app/src/main/java/com/keylesspalace/tusky/adapter/NotificationsAdapter.java
# app/src/main/java/com/keylesspalace/tusky/adapter/StatusBaseViewHolder.java
# app/src/main/java/com/keylesspalace/tusky/appstore/Events.kt
# app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt
# app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeActivity.kt
# app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeViewModel.kt
# app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationEntity.kt
# app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationsFragment.kt
# app/src/main/java/com/keylesspalace/tusky/components/preference/PreferencesActivity.kt
# app/src/main/java/com/keylesspalace/tusky/components/preference/PreferencesFragment.kt
# app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportStatusesFragment.kt
# app/src/main/java/com/keylesspalace/tusky/components/search/SearchViewModel.kt
# app/src/main/java/com/keylesspalace/tusky/components/search/fragments/SearchStatusesFragment.kt
# app/src/main/java/com/keylesspalace/tusky/components/timeline/TimelineFragment.kt
# app/src/main/java/com/keylesspalace/tusky/components/timeline/TimelineTypeMappers.kt
# app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/TimelineViewModel.kt
# app/src/main/java/com/keylesspalace/tusky/components/viewthread/ViewThreadFragment.kt
# app/src/main/java/com/keylesspalace/tusky/db/TimelineDao.kt
# app/src/main/java/com/keylesspalace/tusky/db/TimelineStatusEntity.kt
# app/src/main/java/com/keylesspalace/tusky/di/ActivitiesModule.kt
# app/src/main/java/com/keylesspalace/tusky/di/FragmentBuildersModule.kt
# app/src/main/java/com/keylesspalace/tusky/di/ViewModelFactory.kt
# app/src/main/java/com/keylesspalace/tusky/entity/NewStatus.kt
# app/src/main/java/com/keylesspalace/tusky/entity/Status.kt
# app/src/main/java/com/keylesspalace/tusky/entity/TimelineAccount.kt
# app/src/main/java/com/keylesspalace/tusky/fragment/NotificationsFragment.java
# app/src/main/java/com/keylesspalace/tusky/service/SendStatusService.kt
# app/src/main/java/com/keylesspalace/tusky/settings/SettingsConstants.kt
# app/src/main/java/com/keylesspalace/tusky/util/StatusDisplayOptions.kt
# app/src/main/java/com/keylesspalace/tusky/util/StatusParsingHelper.kt
# app/src/main/res/layout/activity_about.xml
# app/src/main/res/layout/activity_main.xml
# app/src/main/res/layout/item_status.xml
# app/src/main/res/layout/item_status_notification.xml
# app/src/main/res/values-ar/strings.xml
# app/src/main/res/values-be/strings.xml
# app/src/main/res/values-bn-rBD/strings.xml
# app/src/main/res/values-ca/strings.xml
# app/src/main/res/values-cy/strings.xml
# app/src/main/res/values-de/strings.xml
# app/src/main/res/values-es/strings.xml
# app/src/main/res/values-eu/strings.xml
# app/src/main/res/values-fa/strings.xml
# app/src/main/res/values-fr/strings.xml
# app/src/main/res/values-gd/strings.xml
# app/src/main/res/values-gl/strings.xml
# app/src/main/res/values-hu/strings.xml
# app/src/main/res/values-in/strings.xml
# app/src/main/res/values-is/strings.xml
# app/src/main/res/values-it/strings.xml
# app/src/main/res/values-ja/strings.xml
# app/src/main/res/values-lv/strings.xml
# app/src/main/res/values-nb-rNO/strings.xml
# app/src/main/res/values-night/theme_colors.xml
# app/src/main/res/values-oc/strings.xml
# app/src/main/res/values-pl/strings.xml
# app/src/main/res/values-pt-rBR/strings.xml
# app/src/main/res/values-ru/strings.xml
# app/src/main/res/values-sa/strings.xml
# app/src/main/res/values-sv/strings.xml
# app/src/main/res/values-tr/strings.xml
# app/src/main/res/values-uk/strings.xml
# app/src/main/res/values-vi/strings.xml
# app/src/main/res/values-zh-rCN/strings.xml
# app/src/main/res/values/attrs.xml
# app/src/main/res/values/styles.xml
# app/src/main/res/values/theme_colors.xml
# app/src/test/java/com/keylesspalace/tusky/BottomSheetActivityTest.kt
# app/src/test/java/com/keylesspalace/tusky/FilterV1Test.kt
# app/src/test/java/com/keylesspalace/tusky/components/timeline/StatusMocker.kt
# app/src/test/java/com/keylesspalace/tusky/db/TimelineDaoTest.kt
# app/src/test/java/com/keylesspalace/tusky/usecase/TimelineCasesTest.kt
# app/src/test/java/com/keylesspalace/tusky/util/RickRollTest.kt
# assets/tusky_banner.xcf
# fastlane/metadata/android/ca/changelogs/58.txt
# fastlane/metadata/android/ca/full_description.txt
# fastlane/metadata/android/de/changelogs/58.txt
# fastlane/metadata/android/de/changelogs/61.txt
# fastlane/metadata/android/de/changelogs/67.txt
# fastlane/metadata/android/de/changelogs/68.txt
# fastlane/metadata/android/de/changelogs/70.txt
# fastlane/metadata/android/de/changelogs/72.txt
# fastlane/metadata/android/de/changelogs/74.txt
# fastlane/metadata/android/de/changelogs/77.txt
# fastlane/metadata/android/de/changelogs/80.txt
# fastlane/metadata/android/de/changelogs/82.txt
# fastlane/metadata/android/de/changelogs/83.txt
# fastlane/metadata/android/de/changelogs/87.txt
# fastlane/metadata/android/de/changelogs/89.txt
# fastlane/metadata/android/de/changelogs/94.txt
# fastlane/metadata/android/de/full_description.txt
# fastlane/metadata/android/de/short_description.txt
# fastlane/metadata/android/fa/changelogs/58.txt
# fastlane/metadata/android/it/changelogs/58.txt
# gradle.properties
# gradle/libs.versions.toml
# instance-build.gradle
2023-06-02 00:54:05 +09:00
Konrad Pozniak
d839f18267
update ktlint plugin to 11.3.1, format code ( #3442 )
2023-03-13 13:16:39 +01:00
kyori19
52a757e572
Merge remote-tracking branch 'tuskyapp/develop'
...
# Conflicts:
# app/build.gradle
# app/src/main/java/com/keylesspalace/tusky/MainActivity.kt
# app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt
# app/src/main/java/com/keylesspalace/tusky/components/login/LoginActivity.kt
# app/src/main/res/values-cy/strings.xml
# app/src/main/res/values-eu/strings.xml
# app/src/main/res/values-ja/strings.xml
# app/src/main/res/values-oc/strings.xml
# app/src/main/res/values-pt-rBR/strings.xml
# app/src/main/res/values-zh-rCN/strings.xml
# app/src/main/res/values-zh-rSG/strings.xml
# app/src/test/java/com/keylesspalace/tusky/MainActivityTest.kt
# fastlane/metadata/android/en-US/images/phoneScreenshots/00_login.png
2023-01-29 04:50:36 +09:00
Levi Bard
412a28e9a9
Reinstate optional login via custom browser tab ( #3165 )
...
* Reinstate optional login via custom browser tab
* Clarify the buttons for the different login options
* Add informative labels for the different login options
* Move "Login with Browser" to the options menu
2023-01-25 19:26:29 +01:00
kyori19
004a9b4921
Merge remote-tracking branch 'tuskyapp/develop'
2022-11-12 04:35:49 +09:00
Konrad Pozniak
1fb58a9116
revert CompatExtensions ( #2773 )
2022-11-09 19:32:54 +01:00
Josh Soref
98092e6ff7
Spelling ( #2771 )
...
* spelling: activity
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
* spelling: animation
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
* spelling: detailed
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
* spelling: hierarchy
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
* spelling: javascript
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
* spelling: memory
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
* spelling: notification
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
* spelling: opened
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
* spelling: preferable
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
* spelling: repetitive
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
* spelling: spoiler
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
* spelling: thumbnail
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
* spelling: visibility
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
* spelling: whitespace
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2022-11-09 19:32:39 +01:00
Konrad Pozniak
8e9b356074
show rules on the login screen ( #2746 )
...
* show rules on the login screen
* fix code formatting
* fix code formatting
* fix tests
2022-11-05 17:37:20 +01:00
Konrad Pozniak
d17a0c43ab
Api 33 support ( #2719 )
...
* update to Api 33, fix some deprecations
* fix deprecated serializable/parcelable methods
* ask for notification permission
* fix code formatting
* add back comment in PreferencesActivity
2022-11-04 19:22:38 +01:00
kyori19
57aab71b0e
Merge remote-tracking branch 'tuskyapp/develop'
...
# Conflicts:
# app/build.gradle
# app/src/main/java/com/keylesspalace/tusky/SplashActivity.kt
# app/src/main/java/com/keylesspalace/tusky/adapter/StatusDetailedViewHolder.java
# app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeViewModel.kt
# app/src/main/java/com/keylesspalace/tusky/components/compose/MediaUploader.kt
# app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationViewHolder.java
# app/src/main/java/com/keylesspalace/tusky/components/search/SearchViewModel.kt
# app/src/main/java/com/keylesspalace/tusky/components/timeline/TimelineTypeMappers.kt
# app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/CachedTimelineViewModel.kt
# app/src/main/res/layout/activity_main.xml
# app/src/main/res/values-cs/strings.xml
# app/src/main/res/values-de/strings.xml
# app/src/main/res/values-fa/strings.xml
# app/src/main/res/values-fr/strings.xml
# app/src/main/res/values-hu/strings.xml
# app/src/main/res/values-it/strings.xml
# app/src/main/res/values-no-rNB/strings.xml
# app/src/main/res/values-zh-rCN/strings.xml
2022-07-16 02:51:51 +09:00
Konrad Pozniak
8a0848d252
fix data loss when re-adding existing account ( #2601 )
2022-06-30 20:49:48 +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
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
becb677176
make WebView debuggable in debug builds ( #2548 )
2022-05-27 18:44:16 +02:00
kyori19
25bee533f1
Merge remote-tracking branch 'tuskyapp/develop'
...
# Conflicts:
# app/build.gradle
# app/src/main/java/com/keylesspalace/tusky/MainActivity.kt
# app/src/main/java/com/keylesspalace/tusky/entity/Account.kt
# app/src/main/res/values-zh-rCN/strings.xml
# app/src/main/res/values-zh-rTW/strings.xml
# app/src/main/res/values/strings.xml
2022-05-19 02:42:27 +09:00
kyori19
0ef03e2bec
Merge commit '0f1e95d0ca81d0254f8d1ae6b60a3130d51b15cf'
2022-05-19 00:15:17 +09: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
db81ede04a
fix login webview title color with light theme ( #2497 )
2022-05-04 18:40:29 +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
kyori19
95a1f5632b
Merge remote-tracking branch 'tuskyapp/develop'
2022-05-01 19:54:22 +09:00
Konrad Pozniak
e5b58770ce
improve LoginWebViewActivityUX ( #2465 )
2022-04-28 20:38:51 +02:00
kyori19
6c630e08dd
Merge remote-tracking branch 'tuskyapp/develop'
2022-04-24 16:42:54 +09:00
Konrad Pozniak
7aa328b3dc
fix login on Android API level <24 ( #2432 )
2022-04-15 10:50:28 +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
1228f645a6
Merge remote-tracking branch 'tuskyapp/develop'
2022-04-13 00:59:06 +09: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
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