An Android client for the microblogging server Mastodon
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

150 lines
9.8 KiB

[versions]
chore(deps): update dependency com.android.application to v8.8.2 (#4954) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.android.application](https://developer.android.com/studio/build) ([source](https://android.googlesource.com/platform/tools/base)) | `8.8.1` -> `8.8.2` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.android.application:com.android.application.gradle.plugin/8.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.android.application:com.android.application.gradle.plugin/8.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.android.application:com.android.application.gradle.plugin/8.8.1/8.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.android.application:com.android.application.gradle.plugin/8.8.1/8.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6W119--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Conny Duck <git@connyduck.at> Co-authored-by: Konrad Pozniak <connyduck@users.noreply.github.com>
1 year ago
agp = "8.8.2"
fix(deps): update dependency androidx.activity:activity to v1.10.1 (#4951) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [androidx.activity:activity](https://developer.android.com/jetpack/androidx/releases/activity#1.10.1) ([source](https://cs.android.com/androidx/platform/frameworks/support)) | `1.10.0` -> `1.10.1` | [![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.activity:activity/1.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.activity:activity/1.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.activity:activity/1.10.0/1.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.activity:activity/1.10.0/1.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1 year ago
androidx-activity = "1.10.1"
Update dependency androidx.appcompat:appcompat to v1.7.0 (#4478) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [androidx.appcompat:appcompat](https://developer.android.com/jetpack/androidx/releases/appcompat#1.7.0) ([source](https://cs.android.com/androidx/platform/frameworks/support)) | `1.6.1` -> `1.7.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.appcompat:appcompat/1.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.appcompat:appcompat/1.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.appcompat:appcompat/1.6.1/1.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.appcompat:appcompat/1.6.1/1.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNzcuOCIsInVwZGF0ZWRJblZlciI6IjM3LjM3Ny44IiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2 years ago
androidx-appcompat = "1.7.0"
Update dependency androidx.browser:browser to v1.8.0 (#4311) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [androidx.browser:browser](https://developer.android.com/jetpack/androidx/releases/browser#1.8.0) ([source](https://cs.android.com/androidx/platform/frameworks/support)) | `1.7.0` -> `1.8.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.browser:browser/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.browser:browser/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.browser:browser/1.7.0/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.browser:browser/1.7.0/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMjcuMiIsInVwZGF0ZWRJblZlciI6IjM3LjIyNy4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2 years ago
androidx-browser = "1.8.0"
androidx-cardview = "1.0.0"
fix(deps): update dependency androidx.constraintlayout:constraintlayout to v2.2.1 (#4952) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [androidx.constraintlayout:constraintlayout](https://developer.android.com/jetpack/androidx/releases/constraintlayout#2.2.1) ([source](https://cs.android.com/androidx/platform/frameworks/support)) | `2.2.0` -> `2.2.1` | [![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.constraintlayout:constraintlayout/2.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.constraintlayout:constraintlayout/2.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.constraintlayout:constraintlayout/2.2.0/2.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.constraintlayout:constraintlayout/2.2.0/2.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1 year ago
androidx-constraintlayout = "2.2.1"
Full support for Android 15, edge-to-edge mode on Android 15 (#4897) - Update to Api 35 - Update all dependencies that were blocked because they require Api 35 - fix some deprecation warnings - implement the now required edge-to-edge mode Edge-to-edge mode means that we now draw under the status bar and the navigation bar and need to make sure we don't overlap with them. Previously the system would do that for us, and we would only provide the color we want the bars in. For the edge-to-edge mode there are two Apis that are important: - `fitsSystemWindows` - some Widgets, mostly from the Material library, automatically handle system insets if you set this attribute on them to true - `ViewCompat.setOnApplyWindowInsetsListener` - this allows you to manually handle the various insets. By returning new insets from the callback it is possible to tell the system which ones are handled and which ones should be taken care of by another view. In most places edge-to-edge was straightforward to implement, except in `ComposeActivity`, `AccountActivity` and `MainActivity` which required a more custom approach, and a hacky solution to make landscape mode work in `BaseActivity`. There is also the `ViewCompat.setWindowInsetsAnimationCallback` Api which allows animating with moving insets. I used that in `LoginActivity` and `ComposeActivity` to animate the Views together with the keyboard. On Android Versions below 15 (Api <= 34) Tusky will look almost the same as before. I think the only exception is the main bottom bar, which is now slighty larger. We customized it to be smaller than the default, but in edge-to-edge mode the height needs to be `wrap_content` or it won't handle insets correctly. Screenshots: <img src="https://github.com/user-attachments/assets/2a1bf5d9-79fb-48eb-affc-1cbb1164d5f0" width="280"/> <img src="https://github.com/user-attachments/assets/9edccdf2-c0e9-4881-a6df-bd0872934f28" width="280"/> <img src="https://github.com/user-attachments/assets/2916a271-f53e-4d38-a83a-69083eb3053f" width="280"/>
1 year ago
androidx-core = "1.15.0"
androidx-drawerlayout = "1.2.0"
fix(deps): update dependency androidx.exifinterface:exifinterface to v1.4.0 (#4956) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [androidx.exifinterface:exifinterface](https://developer.android.com/jetpack/androidx/releases/exifinterface#1.4.0) ([source](https://cs.android.com/androidx/platform/frameworks/support)) | `1.3.7` -> `1.4.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.exifinterface:exifinterface/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.exifinterface:exifinterface/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.exifinterface:exifinterface/1.3.7/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.exifinterface:exifinterface/1.3.7/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1 year ago
androidx-exifinterface = "1.4.0"
Update dependency androidx.fragment:fragment-ktx to v1.8.6 (#4920) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [androidx.fragment:fragment-ktx](https://developer.android.com/jetpack/androidx/releases/fragment#1.8.6) ([source](https://cs.android.com/androidx/platform/frameworks/support)) | `1.8.5` -> `1.8.6` | [![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.fragment:fragment-ktx/1.8.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.fragment:fragment-ktx/1.8.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.fragment:fragment-ktx/1.8.5/1.8.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.fragment:fragment-ktx/1.8.5/1.8.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE2Ny4xIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1 year ago
androidx-fragment = "1.8.6"
Replace Dagger-Android with Hilt and remove Kapt (#4423) Hilt is an annotation processor built on top of Dagger which allows to remove all the Android dependency injection boilerplate code (currently around 900 lines) by writing it for us. Hilt can use KSP instead of Kapt so Kapt can be completely removed from the project. Kapt is slow, deprecated and has a few compatibility issues. Removing Kapt will improve build times since no Java stubs have to be generated for Kotlin classes anymore (Note that KSP also processes annotations in Java classes so it can completely replace Kapt). - Remove all modules related to manual dependency injection configuration. - Rename `AppModule` to `StorageModule` since it now only contains configuration to retrieve the DataBase and SharedPreferences. - Annotate all entry points (Activities, Fragments, BroadcastReceivers and Services) with `@AndroidEntryPoint`. - Annotate all injected ViewModels with `@HiltViewModel` and replace the custom ViewModel Factory with the default one (which integrates with the one generated by Hilt). - Add a public field to allow overriding the default ViewModelProvider.Factory in `BaseActivity` in tests. - Annotate tested Activities with `@OptionalInject` since Activity tests currently rely on the Activities not being injected automatically. - Annotate injected `Context` arguments with `@ApplicationContext`. Hilt provides the `Context` binding automatically but requires to specify if the Application or Activity Context is wanted. - Add WorkManager Hilt integration so all Workers are injected by Hilt automatically using `HiltWorkerFactory`. - Lazily initialize WorkManager in `TuskyApplication`. - Remove Kapt and Kapt workarounds. - ~~Remove toolchain configuration for Java 21. Toolchains force the Java bytecode to match the JDK version used to build the project, and apparently Hilt doesn't run inside the toolchain so cannot process the source code if the JDK version of the toolchain is higher than the JDK used to run Gradle. [And configuring a toolchain for an older Java version causes other issues](https://jakewharton.com/gradle-toolchains-are-rarely-a-good-idea/). **Removing toolchains configuration doesn't prevent the project from being built using JDK 21** or more recent versions but allows to build the project using older JDKs as well.~~ Added a fix to allow Hilt to properly use the JDK toolchain. - ~~Set the Java and Kotlin bytecode target to Java 17. The standard bytecode target for Android projects is usually Java 8 or 11 (any higher version doesn't provide any benefit but may cause compatibility issues). However, since the app currently uses a library built against Java 17 bytecode (`networkresult-calladapter`), it needs to target at least Java 17 bytecode as well.~~ - Update the Dagger 2 URL in the licenses screen. Hilt is part of Dagger 2 so the label wasn't changed.
2 years ago
androidx-hilt = "1.2.0"
Update dependency androidx.test.ext:junit to v1.2.1 (#4530) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [androidx.test.ext:junit](https://developer.android.com/testing) | `1.1.5` -> `1.2.1` | [![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.test.ext:junit/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.test.ext:junit/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.test.ext:junit/1.1.5/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.test.ext:junit/1.1.5/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjQxMy4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2 years ago
androidx-junit = "1.2.1"
fix(deps): update dependency androidx.lifecycle:lifecycle-viewmodel-ktx to v2.8.7 (#4746) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [androidx.lifecycle:lifecycle-viewmodel-ktx](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.7) ([source](https://cs.android.com/androidx/platform/frameworks/support)) | `2.8.6` -> `2.8.7` | [![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.lifecycle:lifecycle-viewmodel-ktx/2.8.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.lifecycle:lifecycle-viewmodel-ktx/2.8.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.lifecycle:lifecycle-viewmodel-ktx/2.8.6/2.8.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.lifecycle:lifecycle-viewmodel-ktx/2.8.6/2.8.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMzUuMiIsInVwZGF0ZWRJblZlciI6IjM4LjEzNS4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1 year ago
androidx-lifecycle = "2.8.7"
Full support for Android 15, edge-to-edge mode on Android 15 (#4897) - Update to Api 35 - Update all dependencies that were blocked because they require Api 35 - fix some deprecation warnings - implement the now required edge-to-edge mode Edge-to-edge mode means that we now draw under the status bar and the navigation bar and need to make sure we don't overlap with them. Previously the system would do that for us, and we would only provide the color we want the bars in. For the edge-to-edge mode there are two Apis that are important: - `fitsSystemWindows` - some Widgets, mostly from the Material library, automatically handle system insets if you set this attribute on them to true - `ViewCompat.setOnApplyWindowInsetsListener` - this allows you to manually handle the various insets. By returning new insets from the callback it is possible to tell the system which ones are handled and which ones should be taken care of by another view. In most places edge-to-edge was straightforward to implement, except in `ComposeActivity`, `AccountActivity` and `MainActivity` which required a more custom approach, and a hacky solution to make landscape mode work in `BaseActivity`. There is also the `ViewCompat.setWindowInsetsAnimationCallback` Api which allows animating with moving insets. I used that in `LoginActivity` and `ComposeActivity` to animate the Views together with the keyboard. On Android Versions below 15 (Api <= 34) Tusky will look almost the same as before. I think the only exception is the main bottom bar, which is now slighty larger. We customized it to be smaller than the default, but in edge-to-edge mode the height needs to be `wrap_content` or it won't handle insets correctly. Screenshots: <img src="https://github.com/user-attachments/assets/2a1bf5d9-79fb-48eb-affc-1cbb1164d5f0" width="280"/> <img src="https://github.com/user-attachments/assets/9edccdf2-c0e9-4881-a6df-bd0872934f28" width="280"/> <img src="https://github.com/user-attachments/assets/2916a271-f53e-4d38-a83a-69083eb3053f" width="280"/>
1 year ago
androidx-media3 = "1.5.1"
Update dependency androidx.paging:paging-runtime-ktx to v3.3.6 (#4921) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [androidx.paging:paging-runtime-ktx](https://developer.android.com/jetpack/androidx/releases/paging#3.3.6) ([source](https://cs.android.com/androidx/platform/frameworks/support)) | `3.3.5` -> `3.3.6` | [![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.paging:paging-runtime-ktx/3.3.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.paging:paging-runtime-ktx/3.3.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.paging:paging-runtime-ktx/3.3.5/3.3.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.paging:paging-runtime-ktx/3.3.5/3.3.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE2Ny4xIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1 year ago
androidx-paging = "3.3.6"
Update dependency androidx.preference:preference-ktx to v1.2.1 (#3944) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [androidx.preference:preference-ktx](https://developer.android.com/jetpack/androidx/releases/preference#1.2.1) ([source](https://cs.android.com/androidx/platform/frameworks/support)) | `1.2.0` -> `1.2.1` | [![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.preference:preference-ktx/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.preference:preference-ktx/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.preference:preference-ktx/1.2.0/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.preference:preference-ktx/1.2.0/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi40MC4zIiwidXBkYXRlZEluVmVyIjoiMzcuMzEuNSIsInRhcmdldEJyYW5jaCI6ImRldmVsb3AifQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2 years ago
androidx-preference = "1.2.1"
Full support for Android 15, edge-to-edge mode on Android 15 (#4897) - Update to Api 35 - Update all dependencies that were blocked because they require Api 35 - fix some deprecation warnings - implement the now required edge-to-edge mode Edge-to-edge mode means that we now draw under the status bar and the navigation bar and need to make sure we don't overlap with them. Previously the system would do that for us, and we would only provide the color we want the bars in. For the edge-to-edge mode there are two Apis that are important: - `fitsSystemWindows` - some Widgets, mostly from the Material library, automatically handle system insets if you set this attribute on them to true - `ViewCompat.setOnApplyWindowInsetsListener` - this allows you to manually handle the various insets. By returning new insets from the callback it is possible to tell the system which ones are handled and which ones should be taken care of by another view. In most places edge-to-edge was straightforward to implement, except in `ComposeActivity`, `AccountActivity` and `MainActivity` which required a more custom approach, and a hacky solution to make landscape mode work in `BaseActivity`. There is also the `ViewCompat.setWindowInsetsAnimationCallback` Api which allows animating with moving insets. I used that in `LoginActivity` and `ComposeActivity` to animate the Views together with the keyboard. On Android Versions below 15 (Api <= 34) Tusky will look almost the same as before. I think the only exception is the main bottom bar, which is now slighty larger. We customized it to be smaller than the default, but in edge-to-edge mode the height needs to be `wrap_content` or it won't handle insets correctly. Screenshots: <img src="https://github.com/user-attachments/assets/2a1bf5d9-79fb-48eb-affc-1cbb1164d5f0" width="280"/> <img src="https://github.com/user-attachments/assets/9edccdf2-c0e9-4881-a6df-bd0872934f28" width="280"/> <img src="https://github.com/user-attachments/assets/2916a271-f53e-4d38-a83a-69083eb3053f" width="280"/>
1 year ago
androidx-recyclerview = "1.4.0"
androidx-sharetarget = "1.2.0"
fix(deps): update dependency androidx.core:core-splashscreen to v1.2.0-beta01 (#4955) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [androidx.core:core-splashscreen](https://developer.android.com/jetpack/androidx/releases/core#1.0.1) ([source](https://cs.android.com/androidx/platform/frameworks/support)) | `1.2.0-alpha02` -> `1.2.0-beta01` | [![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.core:core-splashscreen/1.2.0-beta01?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.core:core-splashscreen/1.2.0-beta01?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.core:core-splashscreen/1.2.0-alpha02/1.2.0-beta01?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.core:core-splashscreen/1.2.0-alpha02/1.2.0-beta01?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1 year ago
androidx-splashscreen = "1.2.0-beta01"
androidx-swiperefresh-layout = "1.1.0"
androidx-testing = "2.2.0"
Update dependency androidx.viewpager2:viewpager2 to v1.1.0 (#4452) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [androidx.viewpager2:viewpager2](https://developer.android.com/jetpack/androidx/releases/viewpager2#1.1.0) ([source](https://cs.android.com/androidx/platform/frameworks/support)) | `1.0.0` -> `1.1.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.viewpager2:viewpager2/1.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.viewpager2:viewpager2/1.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.viewpager2:viewpager2/1.0.0/1.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.viewpager2:viewpager2/1.0.0/1.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNTEuMiIsInVwZGF0ZWRJblZlciI6IjM3LjM1MS4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2 years ago
androidx-viewpager2 = "1.1.0"
Full support for Android 15, edge-to-edge mode on Android 15 (#4897) - Update to Api 35 - Update all dependencies that were blocked because they require Api 35 - fix some deprecation warnings - implement the now required edge-to-edge mode Edge-to-edge mode means that we now draw under the status bar and the navigation bar and need to make sure we don't overlap with them. Previously the system would do that for us, and we would only provide the color we want the bars in. For the edge-to-edge mode there are two Apis that are important: - `fitsSystemWindows` - some Widgets, mostly from the Material library, automatically handle system insets if you set this attribute on them to true - `ViewCompat.setOnApplyWindowInsetsListener` - this allows you to manually handle the various insets. By returning new insets from the callback it is possible to tell the system which ones are handled and which ones should be taken care of by another view. In most places edge-to-edge was straightforward to implement, except in `ComposeActivity`, `AccountActivity` and `MainActivity` which required a more custom approach, and a hacky solution to make landscape mode work in `BaseActivity`. There is also the `ViewCompat.setWindowInsetsAnimationCallback` Api which allows animating with moving insets. I used that in `LoginActivity` and `ComposeActivity` to animate the Views together with the keyboard. On Android Versions below 15 (Api <= 34) Tusky will look almost the same as before. I think the only exception is the main bottom bar, which is now slighty larger. We customized it to be smaller than the default, but in edge-to-edge mode the height needs to be `wrap_content` or it won't handle insets correctly. Screenshots: <img src="https://github.com/user-attachments/assets/2a1bf5d9-79fb-48eb-affc-1cbb1164d5f0" width="280"/> <img src="https://github.com/user-attachments/assets/9edccdf2-c0e9-4881-a6df-bd0872934f28" width="280"/> <img src="https://github.com/user-attachments/assets/2916a271-f53e-4d38-a83a-69083eb3053f" width="280"/>
1 year ago
androidx-work = "2.10.0"
androidx-room = "2.6.1"
bouncycastle = "1.70"
fix(deps): update dependency org.conscrypt:conscrypt-android to v2.5.3 (#4620) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.conscrypt:conscrypt-android](https://conscrypt.org/) ([source](https://togithub.com/google/conscrypt)) | `2.5.2` -> `2.5.3` | [![age](https://developer.mend.io/api/mc/badges/age/maven/org.conscrypt:conscrypt-android/2.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.conscrypt:conscrypt-android/2.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.conscrypt:conscrypt-android/2.5.2/2.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.conscrypt:conscrypt-android/2.5.2/2.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>google/conscrypt (org.conscrypt:conscrypt-android)</summary> ### [`v2.5.3`](https://togithub.com/google/conscrypt/compare/2.5.2...2.5.3) [Compare Source](https://togithub.com/google/conscrypt/compare/2.5.2...2.5.3) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View the [repository job log](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yNi4xIiwidXBkYXRlZEluVmVyIjoiMzguMjYuMSIsInRhcmdldEJyYW5jaCI6ImRldmVsb3AiLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2 years ago
conscrypt = "2.5.3"
fix(deps): update kotlin (#4774) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.devtools.ksp](https://goo.gle/ksp) ([source](https://redirect.github.com/google/ksp)) | `2.0.21-1.0.28` -> `2.1.0-1.0.29` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin/2.1.0-1.0.29?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin/2.1.0-1.0.29?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin/2.0.21-1.0.28/2.1.0-1.0.29?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin/2.0.21-1.0.28/2.1.0-1.0.29?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | org.jetbrains.kotlin.plugin.parcelize | `2.0.21` -> `2.1.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/org.jetbrains.kotlin.plugin.parcelize:org.jetbrains.kotlin.plugin.parcelize.gradle.plugin/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.jetbrains.kotlin.plugin.parcelize:org.jetbrains.kotlin.plugin.parcelize.gradle.plugin/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.jetbrains.kotlin.plugin.parcelize:org.jetbrains.kotlin.plugin.parcelize.gradle.plugin/2.0.21/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.jetbrains.kotlin.plugin.parcelize:org.jetbrains.kotlin.plugin.parcelize.gradle.plugin/2.0.21/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | org.jetbrains.kotlin.android | `2.0.21` -> `2.1.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/org.jetbrains.kotlin.android:org.jetbrains.kotlin.android.gradle.plugin/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.jetbrains.kotlin.android:org.jetbrains.kotlin.android.gradle.plugin/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.jetbrains.kotlin.android:org.jetbrains.kotlin.android.gradle.plugin/2.0.21/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.jetbrains.kotlin.android:org.jetbrains.kotlin.android.gradle.plugin/2.0.21/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [org.jetbrains.kotlinx:kotlinx-coroutines-test](https://redirect.github.com/Kotlin/kotlinx.coroutines) | `1.9.0` -> `1.10.1` | [![age](https://developer.mend.io/api/mc/badges/age/maven/org.jetbrains.kotlinx:kotlinx-coroutines-test/1.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.jetbrains.kotlinx:kotlinx-coroutines-test/1.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.jetbrains.kotlinx:kotlinx-coroutines-test/1.9.0/1.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.jetbrains.kotlinx:kotlinx-coroutines-test/1.9.0/1.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [org.jetbrains.kotlinx:kotlinx-coroutines-android](https://redirect.github.com/Kotlin/kotlinx.coroutines) | `1.9.0` -> `1.10.1` | [![age](https://developer.mend.io/api/mc/badges/age/maven/org.jetbrains.kotlinx:kotlinx-coroutines-android/1.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.jetbrains.kotlinx:kotlinx-coroutines-android/1.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.jetbrains.kotlinx:kotlinx-coroutines-android/1.9.0/1.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.jetbrains.kotlinx:kotlinx-coroutines-android/1.9.0/1.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>google/ksp (com.google.devtools.ksp)</summary> ### [`v2.1.0-1.0.29`](https://redirect.github.com/google/ksp/releases/tag/2.1.0-1.0.29) [Compare Source](https://redirect.github.com/google/ksp/compare/2.1.0-1.0.28...2.1.0-1.0.29) ##### Updates - KSP2: Sanitize dots to underscores in suffixes of internals by [@&#8203;ting-yuan](https://redirect.github.com/ting-yuan) in [https://github.com/google/ksp/pull/2229](https://redirect.github.com/google/ksp/pull/2229) - KSP2: clean up legacy incremental code by [@&#8203;ting-yuan](https://redirect.github.com/ting-yuan) in [https://github.com/google/ksp/pull/2231](https://redirect.github.com/google/ksp/pull/2231) ##### Contributors Thanks to everyone who reported bugs and participated in discussions! ### [`v2.1.0-1.0.28`](https://redirect.github.com/google/ksp/releases/tag/2.1.0-1.0.28) [Compare Source](https://redirect.github.com/google/ksp/compare/2.0.21-1.0.28...2.1.0-1.0.28) ##### What's Changed - Bump Kotlin to 2.1.0 by [@&#8203;mkmuir0](https://redirect.github.com/mkmuir0) in [https://github.com/google/ksp/pull/2235](https://redirect.github.com/google/ksp/pull/2235) - Update intellij to 233.13135.128 by [@&#8203;ting-yuan](https://redirect.github.com/ting-yuan) in [https://github.com/google/ksp/pull/2238](https://redirect.github.com/google/ksp/pull/2238) **Full Changelog**: https://github.com/google/ksp/compare/2.1.0-RC2-1.0.28...2.1.0-1.0.28 </details> <details> <summary>Kotlin/kotlinx.coroutines (org.jetbrains.kotlinx:kotlinx-coroutines-test)</summary> ### [`v1.10.1`](https://redirect.github.com/Kotlin/kotlinx.coroutines/blob/HEAD/CHANGES.md#Version-1101) [Compare Source](https://redirect.github.com/Kotlin/kotlinx.coroutines/compare/1.10.0...1.10.1) - Fixed binary incompatibility introduced for non-JVM targets in [#&#8203;4261](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4261) ([#&#8203;4309](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4309)). ### [`v1.10.0`](https://redirect.github.com/Kotlin/kotlinx.coroutines/blob/HEAD/CHANGES.md#Version-1100) [Compare Source](https://redirect.github.com/Kotlin/kotlinx.coroutines/compare/1.9.0...1.10.0) - Kotlin was updated to 2.1.0 ([#&#8203;4284](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4284)). - Introduced `Flow.any`, `Flow.all`, and `Flow.none` ([#&#8203;4212](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4212)). Thanks, [@&#8203;CLOVIS-AI](https://redirect.github.com/CLOVIS-AI)! - Reorganized `kotlinx-coroutines-debug` and `kotlinx-coroutines-core` code to avoid a split package between the two artifacts ([#&#8203;4247](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4247)). Note that directly referencing `kotlinx.coroutines.debug.AgentPremain` must now be replaced with `kotlinx.coroutines.debug.internal.AgentPremain`. Thanks, [@&#8203;sellmair](https://redirect.github.com/sellmair)! - No longer shade byte-buddy in `kotlinx-coroutines-debug`, reducing the artifact size and simplifying the build configuration of client code. Thanks, [@&#8203;sellmair](https://redirect.github.com/sellmair)! - Fixed `NullPointerException` when using Java-deserialized `kotlinx-coroutines-core` exceptions ([#&#8203;4291](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4291)). Thanks, [@&#8203;AlexRiedler](https://redirect.github.com/AlexRiedler)! - Properly report exceptions thrown by `CoroutineDispatcher.dispatch` instead of raising internal errors ([#&#8203;4091](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4091)). Thanks, [@&#8203;zuevmaxim](https://redirect.github.com/zuevmaxim)! - Fixed a bug that delayed scheduling of a `Dispatchers.Default` or `Dispatchers.IO` task after a `yield()` in rare scenarios ([#&#8203;4248](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4248)). - Fixed a bug that prevented the `main()` coroutine on Wasm/WASI from executing after a `delay()` call in some scenarios ([#&#8203;4239](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4239)). - Fixed scheduling of `runBlocking` tasks on Kotlin/Native that arrive after the `runBlocking` block was exited ([#&#8203;4245](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4245)). - Fixed some terminal `Flow` operators sometimes resuming without taking cancellation into account ([#&#8203;4254](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4254)). Thanks, [@&#8203;jxdabc](https://redirect.github.com/jxdabc)! - Fixed a bug on the JVM that caused coroutine-bound `ThreadLocal` values not to get cleaned when using non-`CoroutineDispatcher` continuation interceptors ([#&#8203;4296](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4296)). - Small tweaks, fixes, and documentation improvements. </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTIuMCIsInRhcmdldEJyYW5jaCI6ImRldmVsb3AiLCJsYWJlbHMiOltdfQ==--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Conny Duck <git@connyduck.at> Co-authored-by: Konrad Pozniak <connyduck@users.noreply.github.com>
1 year ago
coroutines = "1.10.1"
diffx = "1.1.1"
Update emoji2 to v1.4.0 (#3948) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [androidx.emoji2:emoji2-views-helper](https://developer.android.com/jetpack/androidx/releases/emoji2#1.4.0) ([source](https://cs.android.com/androidx/platform/frameworks/support)) | `1.3.0` -> `1.4.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.emoji2:emoji2-views-helper/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.emoji2:emoji2-views-helper/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.emoji2:emoji2-views-helper/1.3.0/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.emoji2:emoji2-views-helper/1.3.0/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [androidx.emoji2:emoji2-views](https://developer.android.com/jetpack/androidx/releases/emoji2#1.4.0) ([source](https://cs.android.com/androidx/platform/frameworks/support)) | `1.3.0` -> `1.4.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.emoji2:emoji2-views/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.emoji2:emoji2-views/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.emoji2:emoji2-views/1.3.0/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.emoji2:emoji2-views/1.3.0/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [androidx.emoji2:emoji2](https://developer.android.com/jetpack/androidx/releases/emoji2#1.4.0) ([source](https://cs.android.com/androidx/platform/frameworks/support)) | `1.3.0` -> `1.4.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.emoji2:emoji2/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.emoji2:emoji2/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.emoji2:emoji2/1.3.0/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.emoji2:emoji2/1.3.0/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi40MC4zIiwidXBkYXRlZEluVmVyIjoiMzcuMjAwLjAiLCJ0YXJnZXRCcmFuY2giOiJkZXZlbG9wIn0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2 years ago
emoji2 = "1.4.0"
filemoji-compat = "3.2.7"
glide = "4.16.0"
Update dependency com.github.penfeizhou.android.animation:glide-plugin to v3 (#4281) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.github.penfeizhou.android.animation:glide-plugin](https://redirect.github.com/penfeizhou/APNG4Android) | `2.23.0` -> `3.0.2` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.github.penfeizhou.android.animation:glide-plugin/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.github.penfeizhou.android.animation:glide-plugin/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.github.penfeizhou.android.animation:glide-plugin/2.23.0/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.github.penfeizhou.android.animation:glide-plugin/2.23.0/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>penfeizhou/APNG4Android (com.github.penfeizhou.android.animation:glide-plugin)</summary> ### [`v3.0.2`](https://redirect.github.com/penfeizhou/APNG4Android/releases/tag/v3.0.2): Release 3.0.2 - [Fix change how the loop count is interpreted in gifs ](https://redirect.github.com/penfeizhou/APNG4Android/pull/229) - [Fix too fast Animation of APNG ](https://redirect.github.com/penfeizhou/APNG4Android/pull/214) ### [`v3.0.1`](https://redirect.github.com/penfeizhou/APNG4Android/releases/tag/v3.0.1): Release 3.0.1 - Update publishing scripts ### [`v3.0.0`](https://redirect.github.com/penfeizhou/APNG4Android/releases/tag/v3.0.0): Release 3.0.0 - Fix issue [https://github.com/penfeizhou/APNG4Android/issues/212](https://redirect.github.com/penfeizhou/APNG4Android/issues/212) - Others ### [`v2.29.0`](https://redirect.github.com/penfeizhou/APNG4Android/releases/tag/v2.29.0): Release 2.29.0 - Fix issue [https://github.com/penfeizhou/APNG4Android/issues/212](https://redirect.github.com/penfeizhou/APNG4Android/issues/212) ### [`v2.28.0`](https://redirect.github.com/penfeizhou/APNG4Android/releases/tag/v2.28.0): Release 2.28.0 - Fix issue [https://github.com/penfeizhou/APNG4Android/issues/203](https://redirect.github.com/penfeizhou/APNG4Android/issues/203) ### [`v2.27.3`](https://redirect.github.com/penfeizhou/APNG4Android/releases/tag/v2.27.3): Release 2.27.3 ### [`v2.26.0`](https://redirect.github.com/penfeizhou/APNG4Android/releases/tag/v2.26.0): Release 2.26.0 - Fix some issues ### [`v2.25.0`](https://redirect.github.com/penfeizhou/APNG4Android/releases/tag/v2.25.0): Release 2.25.0 - [https://github.com/penfeizhou/APNG4Android/pull/184](https://redirect.github.com/penfeizhou/APNG4Android/pull/184) ### [`v2.24.0`](https://redirect.github.com/penfeizhou/APNG4Android/releases/tag/v2.24.0): Relese 2.24.0 - 修复因Bitmap density 影响导致动图抖动 - 修复因并发修改sampleSize导致buffer不够 - 修复其他问题 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMDAuMCIsInVwZGF0ZWRJblZlciI6IjM5LjQyLjQiLCJ0YXJnZXRCcmFuY2giOiJkZXZlbG9wIn0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1 year ago
glide-animation-plugin = "3.0.2"
fix(deps): update hilt to v2.55 (#4862) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.dagger.hilt.android](https://redirect.github.com/google/dagger) | `2.54` -> `2.55` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.dagger.hilt.android:com.google.dagger.hilt.android.gradle.plugin/2.55?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.dagger.hilt.android:com.google.dagger.hilt.android.gradle.plugin/2.55?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.dagger.hilt.android:com.google.dagger.hilt.android.gradle.plugin/2.54/2.55?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.dagger.hilt.android:com.google.dagger.hilt.android.gradle.plugin/2.54/2.55?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [com.google.dagger:hilt-compiler](https://redirect.github.com/google/dagger) | `2.54` -> `2.55` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.dagger:hilt-compiler/2.55?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.dagger:hilt-compiler/2.55?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.dagger:hilt-compiler/2.54/2.55?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.dagger:hilt-compiler/2.54/2.55?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45Mi4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTIuMCIsInRhcmdldEJyYW5jaCI6ImRldmVsb3AiLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1 year ago
hilt = "2.55"
Update Kotlin to v2.1.10 (#4898) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | org.jetbrains.kotlin.plugin.parcelize | `2.1.0` -> `2.1.10` | [![age](https://developer.mend.io/api/mc/badges/age/maven/org.jetbrains.kotlin.plugin.parcelize:org.jetbrains.kotlin.plugin.parcelize.gradle.plugin/2.1.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.jetbrains.kotlin.plugin.parcelize:org.jetbrains.kotlin.plugin.parcelize.gradle.plugin/2.1.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.jetbrains.kotlin.plugin.parcelize:org.jetbrains.kotlin.plugin.parcelize.gradle.plugin/2.1.0/2.1.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.jetbrains.kotlin.plugin.parcelize:org.jetbrains.kotlin.plugin.parcelize.gradle.plugin/2.1.0/2.1.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | org.jetbrains.kotlin.android | `2.1.0` -> `2.1.10` | [![age](https://developer.mend.io/api/mc/badges/age/maven/org.jetbrains.kotlin.android:org.jetbrains.kotlin.android.gradle.plugin/2.1.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.jetbrains.kotlin.android:org.jetbrains.kotlin.android.gradle.plugin/2.1.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.jetbrains.kotlin.android:org.jetbrains.kotlin.android.gradle.plugin/2.1.0/2.1.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.jetbrains.kotlin.android:org.jetbrains.kotlin.android.gradle.plugin/2.1.0/2.1.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMjUuMSIsInVwZGF0ZWRJblZlciI6IjM5LjEyNS4xIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1 year ago
kotlin = "2.1.10"
image-cropper = "4.3.2"
Update dependency com.google.android.material:material to v1.12.0 (#4407) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.android.material:material](https://togithub.com/material-components/material-components-android) | `1.11.0` -> `1.12.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.android.material:material/1.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.android.material:material/1.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.android.material:material/1.11.0/1.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.android.material:material/1.11.0/1.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>material-components/material-components-android (com.google.android.material:material)</summary> ### [`v1.12.0`](https://togithub.com/material-components/material-components-android/releases/tag/1.12.0) [Compare Source](https://togithub.com/material-components/material-components-android/compare/1.11.0...1.12.0) ### What's new since 1.11.0 - `Slider` and `Progress Indicator` have been updated to better support Non-Text Contrast Accessibility requirements. - Predictive Back Fragment/View support added to Material motion transitions (`MaterialSharedAxis`, `MaterialFadeThrough`, `MaterialFade`, `MaterialElevationScale`). #### Important Required `minSdkVersion` is now 19 or higher, for Material and AndroidX ([blog post](https://android-developers.googleblog.com/2023/10/androidx-minsdkversion-19.html)). #### Dependency Updates | Dependency | Previous version | New version | | - | - | - | | androidx.transition | 1.2.0 | 1.5.0 | #### Library Updates - `Gradle` - Update library minSdkVersion to 19. ([`1bbb43d`](https://togithub.com/material-components/material-components-android/commit/1bbb43d155df64d24463455fe6fb291b6940a7b2)) - Upgrade to //third_party/gradle to 8.4 ([`1756f23`](https://togithub.com/material-components/material-components-android/commit/1756f233ec3ac2085c07acf26a65b94e11038bd3)) - `Carousel` - Shifted keylines in contained strategies when there exists padding, and clipToPadding=false ([`1ef42e2`](https://togithub.com/material-components/material-components-android/commit/1ef42e2f23a5ce21d5963c62fe2a7332dadaf296)) - Fixed Javadoc formatting error in `FullScreenCarouselStrategy` class documentation. ([`a0a1c6e`](https://togithub.com/material-components/material-components-android/commit/a0a1c6e04499c324b61c0a5b7b628cd4f9fc3cbc)) - Added support for cross axis wrap_content RecyclerViews ([`e88a1b9`](https://togithub.com/material-components/material-components-android/commit/e88a1b98d240c451a8f1f3920958be28cd2ac563)) - Added documentation recommending snapping for multi-browse strategy ([`9e64a1f`](https://togithub.com/material-components/material-components-android/commit/9e64a1f5f682f435018b6ba4546085745f1b4a8f)) - Add attributes to change small item size ([`92a5444`](https://togithub.com/material-components/material-components-android/commit/92a5444de95501dbf5bc12eaaa7a969b44fe2151)) - `CollapsingToolbarLayout` - Fix text shadow fading when transitioning between expanded and collapsed states ([`7674e12`](https://togithub.com/material-components/material-components-android/commit/7674e12ea818793fe654f7691941f0bdc97c75f3)) - `Checkbox` - Updated string translations ([`198e08c`](https://togithub.com/material-components/material-components-android/commit/198e08cf5ebf77b140c194d6267270d6e52f99ed)) - `Dialog` - Unified scrim opacity in Material themes/theme overlays. ([`f3e4439`](https://togithub.com/material-components/material-components-android/commit/f3e4439ca69f993baa6626ad6a82937c2d283155)) - `Divider` - Fixed divider instantly appearing or disappearing on insertion or removal ([`ef4a0c5`](https://togithub.com/material-components/material-components-android/commit/ef4a0c5e36315904d7bce7f0f33d59b734f2657b)) - `i18n` - Update translated strings ([`a8307ef`](https://togithub.com/material-components/material-components-android/commit/a8307ef79280c1db52728127ae12809e58b82e8f)) - `MaterialDatePicker` - Fix date validation on Samsung devices ([`5aa6edf`](https://togithub.com/material-components/material-components-android/commit/5aa6edfaed08a6dff8439b51e91cd43e2ffb0386)) - `MaterialAutoCompleteTextView` - Enabled switch access in MaterialAutoCompleteTextView. ([`14a7b40`](https://togithub.com/material-components/material-components-android/commit/14a7b4036334e4d0573a46731ea18a388f87dc98)) - `NavigationDrawer` - Fixed wrong item selected after click ([`a3af20a`](https://togithub.com/material-components/material-components-android/commit/a3af20a86970a77c6225c5254c6540bb81bdc049)) - `NavigationRail` - Added label padding for when the label is long enough to reach the sides of the nav rail ([`2439dc0`](https://togithub.com/material-components/material-components-android/commit/2439dc0e8141a44418d32148c16e0cfc7a5beba7)) - Increased padding in between items as per design specs ([`16eca7e`](https://togithub.com/material-components/material-components-android/commit/16eca7eef3af53fe594d66440db796dab8762777)) - `Predictive Back` - Animated corners during predictive back when no drawerLayoutCornerSize is set ([`c8b9b1c`](https://togithub.com/material-components/material-components-android/commit/c8b9b1c0bb8e51501246c902073acc45aedeebd6)) - `ProgressIndicator` - Updated inactive track color from primary container to secondary container. ([`c8cb0c6`](https://togithub.com/material-components/material-components-android/commit/c8cb0c60379adfd76efbf54adeac316a9bfaec4e)) - Updated the setter of track thickness to not update track corner radius. ([`540f5ee`](https://togithub.com/material-components/material-components-android/commit/540f5ee9839ca3472e990f597d6f0a2b203b1b4f)) - Added the limit to not have stop indicator size bigger than track thickness. ([`689e04f`](https://togithub.com/material-components/material-components-android/commit/689e04f9edd1398f53bfc149aa78a2ab864953ba)) - Fixed the rounded ends overlapping bug with semi-transparent track/indicator color in Circular default style. ([`8167c11`](https://togithub.com/material-components/material-components-android/commit/8167c115e34e6b206a8446d98ce22c574d8a1584)) - Removed the call to draw a transparent full track. ([`3f80fdb`](https://togithub.com/material-components/material-components-android/commit/3f80fdb9e1f31df4c970025e34450726bbb822ec)) - Flipped the canvas for different circular directions. ([`bcc27a3`](https://togithub.com/material-components/material-components-android/commit/bcc27a36381d00212056b7f2b0befabb73a12b42)) - Split stop indicator drawing from indicator drawing. ([`76207cb`](https://togithub.com/material-components/material-components-android/commit/76207cb27004025adfa351e86ab5e75138c567c3)) - Added ActiveIndicator to improve readability. ([`6fd920a`](https://togithub.com/material-components/material-components-android/commit/6fd920a2c1fbaf2dec5627fe30dbe0912d458550)) - Fixed ESCAPE animation in linear and added ESCAPE animation in circular. ([`98284e7`](https://togithub.com/material-components/material-components-android/commit/98284e74ad2960bbca2763d0d415c01f6afd3c6e)) - Updated to use the same drawing delegate object between determinate drawable and indeterminate drawable to prevent inconsistent drawings when specs update. ([`52b4845`](https://togithub.com/material-components/material-components-android/commit/52b48450fc63a8aa48ba3d89ae888069e31b874a)) - Added missing graphics updates when spec changes. ([`93b3010`](https://togithub.com/material-components/material-components-android/commit/93b30109b0ccfd1c268a074f4673eb29536467ed)) - Update styles for new Accessibility updates ([`15b533f`](https://togithub.com/material-components/material-components-android/commit/15b533fffbeb1bfbd97b95fcd6b21cbad1ef2bb5)) - Added static drawable for Circular type when system animator is disabled. ([`22e054b`](https://togithub.com/material-components/material-components-android/commit/22e054ba680ecd1618b2ae4f2f48e4f7d13bbde8)) - `Search` - Excluded icons from search bar handwriting bounds ([`387f59b`](https://togithub.com/material-components/material-components-android/commit/387f59b7068866fea34a88bf065c6de96ea6868d)) - Made `searchbar_scrolling_view_behavior` string public ([`ce386e4`](https://togithub.com/material-components/material-components-android/commit/ce386e4c20343d0e5adb08bb001eb05d08c07ff5)) - Updated string translations ([`198e08c`](https://togithub.com/material-components/material-components-android/commit/198e08cf5ebf77b140c194d6267270d6e52f99ed)) - `SideSheet` - Moved the modal side sheet default width/height into style so they can be customized - Updated string translations ([`198e08c`](https://togithub.com/material-components/material-components-android/commit/198e08cf5ebf77b140c194d6267270d6e52f99ed)) - `Slider` - Made tick size defaults to the stop indicator size if set ([`92bc02c`](https://togithub.com/material-components/material-components-android/commit/92bc02c37c1c37c0cf1f84f50d54b49c6caee607)) - Fixed incorrect style of stop indicators near handles ([`d61cffd`](https://togithub.com/material-components/material-components-android/commit/d61cffd7eb0fe8fcd26a2c3927cb8a6ac2dafea1)) - Resolved issues that crash when assigning a large value to `valueTo` ([`4d1b9e5`](https://togithub.com/material-components/material-components-android/commit/4d1b9e58a5ffe11d8bcfc41486e0ea7e021ca436)) - Updated the track drawing for some corner cases. ([`10484df`](https://togithub.com/material-components/material-components-android/commit/10484df4074e0d3de907c2db1d4a241792edbc07)) - Fixed ripple not transparent on API 33 ([`cd4f618`](https://togithub.com/material-components/material-components-android/commit/cd4f618d383c23d09f99f86e56e5583f405fd861)) - Updated documentation ([`a641e18`](https://togithub.com/material-components/material-components-android/commit/a641e18b6ab3bfe7f972c6216ce820fd9bfdd662)) - Updated styles ([`c218b3c`](https://togithub.com/material-components/material-components-android/commit/c218b3c983000f42c7c94dd8a39499cd2762e850))([`3b278d7`](https://togithub.com/material-components/material-components-android/commit/3b278d709756e0a0d2ba856697ef4bcb76ae1544)) - Fixed slider label not moving while scrolling ([`144b515`](https://togithub.com/material-components/material-components-android/commit/144b5159ce414211cf37946ecb819cc976cedae1)) - `Tabs` - Fixed title being announced twice when there's a badge in TalkBack mode. ([`aaa7034`](https://togithub.com/material-components/material-components-android/commit/aaa7034cbf238c9415462c3a6dff888800aafefd)) - `Theming` - Add NoActionBar dynamic color themes ([`81d1b77`](https://togithub.com/material-components/material-components-android/commit/81d1b772b97ee8df94efbb2dfda8d9cd8fe49f29)) - Update Shape Theming bottom sheet text color ([`8ca016f`](https://togithub.com/material-components/material-components-android/commit/8ca016fb01f4bc73d506ae3286e3739ea046df0a)) - `Tokens` - Update tokens to v4.0.0. ([`88acfcd`](https://togithub.com/material-components/material-components-android/commit/88acfcdb63281714d64e863d2e7da3b53b8da9ce)) - Added formatting to break long lines and differentiate different comments. ([`857d6a2`](https://togithub.com/material-components/material-components-android/commit/857d6a2fd9505d25c8a4154e1a9892c47e7cbaae)) - `TopAppBar` - Use an accessibility delegate to add and perform actions ([`929c80f`](https://togithub.com/material-components/material-components-android/commit/929c80f7535bfcef1b306e051cf15e3722c687a4)) - Fixed compress effect clipping on API 21-24 ([`2ac8c1c`](https://togithub.com/material-components/material-components-android/commit/2ac8c1cbf6cb5aea7d60ef5655bed7d014e5f930)) - `TextInputLayout` - Limited the min height reset in text change listener only when line count changes. ([`9b9449c`](https://togithub.com/material-components/material-components-android/commit/9b9449cde18424348cba0d6acc315e07b43dd0f7)) - Fixed unnecessary min height when losing focus with multiple lines. ([`4a2654a`](https://togithub.com/material-components/material-components-android/commit/4a2654a3f389d44f7f7d76da30472c2bc0163ef6)) - `Transitions / Motion` - Updated androidx transition dep to version 1.5.0-beta01 ([`8c63848`](https://togithub.com/material-components/material-components-android/commit/8c638488293a22809d086d053ebb96ffe99cf703)) - Added predictive fade through fragment transition demo to Catalog. ([`6092a7d`](https://togithub.com/material-components/material-components-android/commit/6092a7dfe9a6d50a43b935f6d7e00d859e5d9934)) - Added titles to fade through demo fragments in Catalog. ([`104043c`](https://togithub.com/material-components/material-components-android/commit/104043caeef12bc390e7c06cfe32366017880b03)) - Added predictive transition support for fragments and views to the Material motion library, and enabled it in shared axis fragment transition demo. ([`8ccec33`](https://togithub.com/material-components/material-components-android/commit/8ccec334bda49b12c11d1384190457d27ca78961)) #### Full list of release notes - [1.12.0-alpha01](https://togithub.com/material-components/material-components-android/releases/tag/1.12.0-alpha01) - [1.12.0-alpha02](https://togithub.com/material-components/material-components-android/releases/tag/1.12.0-alpha02) - [1.12.0-alpha03](https://togithub.com/material-components/material-components-android/releases/tag/1.12.0-alpha03) - [1.12.0-beta01](https://togithub.com/material-components/material-components-android/releases/tag/1.12.0-beta01) - [1.12.0-rc01](https://togithub.com/material-components/material-components-android/releases/tag/1.12.0-rc01) #### Full list of changes </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMzEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjMzMS4wIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2 years ago
material = "1.12.0"
material-drawer = "9.0.2"
Update dependency com.mikepenz:google-material-typeface to v4.0.0.3-kotlin (#4479) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.mikepenz:google-material-typeface](https://togithub.com/mikepenz/Android-Iconics) | `4.0.0.2-kotlin` -> `4.0.0.3-kotlin` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.mikepenz:google-material-typeface/4.0.0.3-kotlin?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.mikepenz:google-material-typeface/4.0.0.3-kotlin?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.mikepenz:google-material-typeface/4.0.0.2-kotlin/4.0.0.3-kotlin?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.mikepenz:google-material-typeface/4.0.0.2-kotlin/4.0.0.3-kotlin?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNzcuOCIsInVwZGF0ZWRJblZlciI6IjM3LjM3Ny44IiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2 years ago
material-typeface = "4.0.0.3-kotlin"
mockito-inline = "5.2.0"
Update dependency org.mockito.kotlin:mockito-kotlin to v5.4.0 (#4556) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.mockito.kotlin:mockito-kotlin](https://togithub.com/mockito/mockito-kotlin) | `5.3.1` -> `5.4.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/org.mockito.kotlin:mockito-kotlin/5.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.mockito.kotlin:mockito-kotlin/5.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.mockito.kotlin:mockito-kotlin/5.3.1/5.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.mockito.kotlin:mockito-kotlin/5.3.1/5.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>mockito/mockito-kotlin (org.mockito.kotlin:mockito-kotlin)</summary> ### [`v5.4.0`](https://togithub.com/mockito/mockito-kotlin/releases/tag/5.4.0) [Compare Source](https://togithub.com/mockito/mockito-kotlin/compare/5.3.1...5.4.0) <sup><sup>*Changelog generated by [Shipkit Changelog Gradle Plugin](https://togithub.com/shipkit/shipkit-changelog)*</sup></sup> ##### 5.4.0 - 2024-07-09 - [2 commit(s)](https://togithub.com/mockito/mockito-kotlin/compare/5.3.1...5.4.0) by Lars - Added value class support [(#&#8203;522)](https://togithub.com/mockito/mockito-kotlin/pull/522) - Update mockito to 5.12 [(#&#8203;521)](https://togithub.com/mockito/mockito-kotlin/pull/521) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjUuMSIsInVwZGF0ZWRJblZlciI6IjM3LjQyNS4xIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2 years ago
mockito-kotlin = "5.4.0"
Update moshi to v1.15.2 (#4797) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.squareup.moshi:moshi-kotlin-codegen](https://redirect.github.com/square/moshi) | `1.15.1` -> `1.15.2` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.squareup.moshi:moshi-kotlin-codegen/1.15.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.squareup.moshi:moshi-kotlin-codegen/1.15.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.squareup.moshi:moshi-kotlin-codegen/1.15.1/1.15.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.squareup.moshi:moshi-kotlin-codegen/1.15.1/1.15.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [com.squareup.moshi:moshi-adapters](https://redirect.github.com/square/moshi) | `1.15.1` -> `1.15.2` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.squareup.moshi:moshi-adapters/1.15.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.squareup.moshi:moshi-adapters/1.15.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.squareup.moshi:moshi-adapters/1.15.1/1.15.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.squareup.moshi:moshi-adapters/1.15.1/1.15.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [com.squareup.moshi:moshi](https://redirect.github.com/square/moshi) | `1.15.1` -> `1.15.2` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.squareup.moshi:moshi/1.15.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.squareup.moshi:moshi/1.15.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.squareup.moshi:moshi/1.15.1/1.15.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.squareup.moshi:moshi/1.15.1/1.15.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>square/moshi (com.squareup.moshi:moshi-kotlin-codegen)</summary> ### [`v1.15.2`](https://redirect.github.com/square/moshi/compare/1.15.1...1.15.2) [Compare Source](https://redirect.github.com/square/moshi/compare/1.15.1...1.15.2) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS40Mi40IiwidXBkYXRlZEluVmVyIjoiMzkuNDIuNCIsInRhcmdldEJyYW5jaCI6ImRldmVsb3AiLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1 year ago
moshi = "1.15.2"
fix(deps): update dependency at.connyduck:networkresult-calladapter to v1.2.0 (#4572) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [at.connyduck:networkresult-calladapter](https://togithub.com/connyduck/networkresult-calladapter) | `1.1.0` -> `1.2.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/at.connyduck:networkresult-calladapter/1.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/at.connyduck:networkresult-calladapter/1.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/at.connyduck:networkresult-calladapter/1.1.0/1.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/at.connyduck:networkresult-calladapter/1.1.0/1.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>connyduck/networkresult-calladapter (at.connyduck:networkresult-calladapter)</summary> ### [`v1.2.0`](https://togithub.com/connyduck/networkresult-calladapter/releases/tag/v1.2.0): NetworkResult Calladapter 1.2.0 - New method `NetworkResult<T>.toResult(): Result<T>` to convert a `NetworkResult` to a `kotlin.Result`. - Dependency Updates: - Kotlin 1.9.22 -> 2.0.0 - Kotlin Coroutines 1.8.0 -> 1.8.1 - Retrofit 2.9.0 -> 2.11.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MzEuNCIsInVwZGF0ZWRJblZlciI6IjM3LjQzMS40IiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2 years ago
networkresult-calladapter = "1.2.0"
Update okhttp monorepo to v4.12.0 (#4276) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.squareup.okhttp3:logging-interceptor](https://square.github.io/okhttp/) ([source](https://togithub.com/square/okhttp)) | `4.11.0` -> `4.12.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.squareup.okhttp3:logging-interceptor/4.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.squareup.okhttp3:logging-interceptor/4.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.squareup.okhttp3:logging-interceptor/4.11.0/4.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.squareup.okhttp3:logging-interceptor/4.11.0/4.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [com.squareup.okhttp3:okhttp](https://square.github.io/okhttp/) ([source](https://togithub.com/square/okhttp)) | `4.11.0` -> `4.12.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.squareup.okhttp3:okhttp/4.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.squareup.okhttp3:okhttp/4.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.squareup.okhttp3:okhttp/4.11.0/4.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.squareup.okhttp3:okhttp/4.11.0/4.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [com.squareup.okhttp3:mockwebserver](https://square.github.io/okhttp/) ([source](https://togithub.com/square/okhttp)) | `4.11.0` -> `4.12.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.squareup.okhttp3:mockwebserver/4.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.squareup.okhttp3:mockwebserver/4.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.squareup.okhttp3:mockwebserver/4.11.0/4.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.squareup.okhttp3:mockwebserver/4.11.0/4.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMDAuMCIsInVwZGF0ZWRJblZlciI6IjM3LjIwMC4wIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2 years ago
okhttp = "4.12.0"
fix(deps): update dependency com.squareup.okio:okio to v3.10.2 (#4859) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.squareup.okio:okio](https://redirect.github.com/square/okio) | `3.9.1` -> `3.10.2` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.squareup.okio:okio/3.10.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.squareup.okio:okio/3.10.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.squareup.okio:okio/3.9.1/3.10.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.squareup.okio:okio/3.9.1/3.10.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>square/okio (com.squareup.okio:okio)</summary> ### [`v3.10.2`](https://redirect.github.com/square/okio/blob/HEAD/CHANGELOG.md#Version-3102) [Compare Source](https://redirect.github.com/square/okio/compare/3.10.1...3.10.2) *2025-01-08* - Fix: `okio-nodefilesystem` artifact is no longer empty. ### [`v3.10.1`](https://redirect.github.com/square/okio/blob/HEAD/CHANGELOG.md#Version-3101) [Compare Source](https://redirect.github.com/square/okio/compare/3.10.0...3.10.1) *2025-01-07* - New: `FileSystem.close()` may prevent future access and/or clean up associated resources depending on the backing implementation. `FakeFileSystem` will prevent future operations once closed. - `InputStream`s created from `BufferedSource.inputStream()` now have a more efficient version of `InputStream.transferTo()` which reduces memory copies. - `okio-nodefilesystem` is no longer publised as a JS project, but a Kotlin multiplatform project with only a JS target. ~This change should not affect consumers in any way, and is motivated by the Kotlin Gradle plugin deprecating the JS-only plugin.~ Please use 3.10.2 to ensure this change actually does not affect your builds. ### [`v3.10.0`](https://redirect.github.com/square/okio/blob/HEAD/CHANGELOG.md#Version-3100) [Compare Source](https://redirect.github.com/square/okio/compare/3.9.1...3.10.0) *2025-01-06* This version is equivalent to the subsequent 3.10.1, but it did not fully publish to Maven Central due to infrastructure problems. </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45Mi4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTIuMCIsInRhcmdldEJyYW5jaCI6ImRldmVsb3AiLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1 year ago
okio = "3.10.2"
fix(deps): update retrofit to v2.11.0 (#4342) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.squareup.retrofit2:retrofit](https://togithub.com/square/retrofit) | `2.10.0` -> `2.11.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.squareup.retrofit2:retrofit/2.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.squareup.retrofit2:retrofit/2.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.squareup.retrofit2:retrofit/2.10.0/2.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.squareup.retrofit2:retrofit/2.10.0/2.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [com.squareup.retrofit2:converter-gson](https://togithub.com/square/retrofit) | `2.10.0` -> `2.11.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.squareup.retrofit2:converter-gson/2.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.squareup.retrofit2:converter-gson/2.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.squareup.retrofit2:converter-gson/2.10.0/2.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.squareup.retrofit2:converter-gson/2.10.0/2.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>square/retrofit (com.squareup.retrofit2:retrofit)</summary> ### [`v2.11.0`](https://togithub.com/square/retrofit/blob/HEAD/CHANGELOG.md#2110---2024-03-28) [Compare Source](https://togithub.com/square/retrofit/compare/2.10.0...2.11.0) **New** - The built-in `OptionalConverterFactory` is now public to allow installing it before other converters which consume all types (e.g., Moshi, Gson, Jackson, etc.). **Fixed** - Ensure that exceptions thrown from failure to parse method annotations can be observed by multiple threads/callers. Previously only the first caller would see the actual parsing exception and other callers would get a cryptic `ClassCastException`. </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjkuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2 years ago
retrofit = "2.11.0"
robolectric = "4.14.1"
sparkbutton = "4.2.0"
Update dependency com.github.MikeOrtiz:TouchImageView to v3.6 (#4097) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.github.MikeOrtiz:TouchImageView](https://togithub.com/MikeOrtiz/TouchImageView) | `3.5` -> `3.6` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.github.MikeOrtiz:TouchImageView/3.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.github.MikeOrtiz:TouchImageView/3.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.github.MikeOrtiz:TouchImageView/3.5/3.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.github.MikeOrtiz:TouchImageView/3.5/3.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>MikeOrtiz/TouchImageView (com.github.MikeOrtiz:TouchImageView)</summary> ### [`v3.6`](https://togithub.com/MikeOrtiz/TouchImageView/releases/tag/3.6) [Compare Source](https://togithub.com/MikeOrtiz/TouchImageView/compare/3.5...3.6) <!-- Release notes generated using configuration in .github/release.yml at 3.6 --> #### What's Changed ##### Exciting New Features 🎉 - api34 by [@&#8203;hannesa2](https://togithub.com/hannesa2) in [https://github.com/MikeOrtiz/TouchImageView/pull/555](https://togithub.com/MikeOrtiz/TouchImageView/pull/555) ##### Other Changes - Bump androidx.recyclerview:recyclerview from 1.3.0 to 1.3.1 by [@&#8203;dependabot](https://togithub.com/dependabot) in [https://github.com/MikeOrtiz/TouchImageView/pull/546](https://togithub.com/MikeOrtiz/TouchImageView/pull/546) - Bump Kotlin 1.9 by [@&#8203;hannesa2](https://togithub.com/hannesa2) in [https://github.com/MikeOrtiz/TouchImageView/pull/548](https://togithub.com/MikeOrtiz/TouchImageView/pull/548) - Bump com.github.bumptech.glide:glide from 4.15.1 to 4.16.0 by [@&#8203;dependabot](https://togithub.com/dependabot) in [https://github.com/MikeOrtiz/TouchImageView/pull/549](https://togithub.com/MikeOrtiz/TouchImageView/pull/549) - Bump kotlin_version from 1.9.0 to 1.9.10 by [@&#8203;dependabot](https://togithub.com/dependabot) in [https://github.com/MikeOrtiz/TouchImageView/pull/551](https://togithub.com/MikeOrtiz/TouchImageView/pull/551) - Bump actions/checkout from 3 to 4 by [@&#8203;dependabot](https://togithub.com/dependabot) in [https://github.com/MikeOrtiz/TouchImageView/pull/553](https://togithub.com/MikeOrtiz/TouchImageView/pull/553) - Fix compileSdk deprecation by [@&#8203;hannesa2](https://togithub.com/hannesa2) in [https://github.com/MikeOrtiz/TouchImageView/pull/556](https://togithub.com/MikeOrtiz/TouchImageView/pull/556) - Remove Froyo method by [@&#8203;hannesa2](https://togithub.com/hannesa2) in [https://github.com/MikeOrtiz/TouchImageView/pull/557](https://togithub.com/MikeOrtiz/TouchImageView/pull/557) - Bump com.android.tools.build:gradle from 8.1.0 to 8.1.1 by [@&#8203;dependabot](https://togithub.com/dependabot) in [https://github.com/MikeOrtiz/TouchImageView/pull/550](https://togithub.com/MikeOrtiz/TouchImageView/pull/550) - Bump androidx.core:core-ktx from 1.10.1 to 1.12.0 by [@&#8203;dependabot](https://togithub.com/dependabot) in [https://github.com/MikeOrtiz/TouchImageView/pull/552](https://togithub.com/MikeOrtiz/TouchImageView/pull/552) **Full Changelog**: https://github.com/MikeOrtiz/TouchImageView/compare/3.5...3.6 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS41IiwidXBkYXRlZEluVmVyIjoiMzcuMTUzLjIiLCJ0YXJnZXRCcmFuY2giOiJkZXZlbG9wIn0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2 years ago
touchimageview = "3.6"
fix(deps): update dependency app.cash.turbine:turbine to v1.2.0 (#4728) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [app.cash.turbine:turbine](https://redirect.github.com/cashapp/turbine) | `1.1.0` -> `1.2.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/app.cash.turbine:turbine/1.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/app.cash.turbine:turbine/1.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/app.cash.turbine:turbine/1.1.0/1.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/app.cash.turbine:turbine/1.1.0/1.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>cashapp/turbine (app.cash.turbine:turbine)</summary> ### [`v1.2.0`](https://redirect.github.com/cashapp/turbine/blob/HEAD/CHANGELOG.md#120---2024-10-16) [Compare Source](https://redirect.github.com/cashapp/turbine/compare/1.1.0...1.2.0) [1.2.0]: https://redirect.github.com/cashapp/turbine/releases/tag/1.2.0 ##### Added - Add `wasmWasi` target. </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMjAuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEyMC4xIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1 year ago
turbine = "1.2.0"
Update dependency com.github.UnifiedPush:android-connector to v2.4.0 (#4098) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.github.UnifiedPush:android-connector](https://togithub.com/UnifiedPush/android-connector) | `2.1.1` -> `2.4.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.github.UnifiedPush:android-connector/2.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.github.UnifiedPush:android-connector/2.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.github.UnifiedPush:android-connector/2.1.1/2.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.github.UnifiedPush:android-connector/2.1.1/2.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>UnifiedPush/android-connector (com.github.UnifiedPush:android-connector)</summary> ### [`v2.4.0`](https://togithub.com/UnifiedPush/android-connector/releases/tag/2.4.0) [Compare Source](https://togithub.com/UnifiedPush/android-connector/compare/2.3.1...2.4.0) - Use jvmToolchain(8) with kotlin 1.7.20 to improve compatibility - Remove FCM embedded distributor from distributors if PlayServices is not installed ### [`v2.3.1`](https://togithub.com/UnifiedPush/android-connector/releases/tag/2.3.1) [Compare Source](https://togithub.com/UnifiedPush/android-connector/compare/2.3.0...2.3.1) - Make DEFAULT_FEATURES static ##### 2.3.0 changes: - Change default features to bytes_message :warning: - Introduce getAckDistributor and getSavedDistributor, deprecate getDistributor :warning: - Fix inconsistent JVM-target compatibility - Bump dependencies ### [`v2.3.0`](https://togithub.com/UnifiedPush/android-connector/releases/tag/2.3.0) [Compare Source](https://togithub.com/UnifiedPush/android-connector/compare/2.2.0...2.3.0) - Change default features to bytes_message :warning: - Introduce getAckDistributor and getSavedDistributor, deprecate getDistributor :warning: - Fix inconsistent JVM-target compatibility - Bump dependencies ### [`v2.2.0`](https://togithub.com/UnifiedPush/android-connector/releases/tag/2.2.0) [Compare Source](https://togithub.com/UnifiedPush/android-connector/compare/2.1.1...2.2.0) Bump dependencies Target SDK 34 Avoid race conditions with token, instances and distributors </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS41IiwidXBkYXRlZEluVmVyIjoiMzcuMTUzLjIiLCJ0YXJnZXRCcmFuY2giOiJkZXZlbG9wIn0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2 years ago
unified-push = "2.4.0"
xmlwriter = "1.0.4"
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
chore(deps): update plugin google-ksp to v2.1.10-1.0.31 (#4960) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.devtools.ksp](https://goo.gle/ksp) ([source](https://redirect.github.com/google/ksp)) | `2.1.10-1.0.30` -> `2.1.10-1.0.31` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin/2.1.10-1.0.31?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin/2.1.10-1.0.31?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin/2.1.10-1.0.30/2.1.10-1.0.31?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin/2.1.10-1.0.30/2.1.10-1.0.31?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>google/ksp (com.google.devtools.ksp)</summary> ### [`v2.1.10-1.0.31`](https://redirect.github.com/google/ksp/releases/tag/2.1.10-1.0.31) [Compare Source](https://redirect.github.com/google/ksp/compare/2.1.10-1.0.30...2.1.10-1.0.31) #### Bug Fixes - \[KSP2] KSPropertyDeclaration#type for typealias does not match its declaration. [#&#8203;2345](https://redirect.github.com/google/ksp/issues/2345) - Incorrect isMutable on KSPropertyDeclaration from a JAVA_LIB in 2.1.10-1.0.30 [#&#8203;2346](https://redirect.github.com/google/ksp/issues/2346) - KSP breaks compilation avoidance [#&#8203;2347](https://redirect.github.com/google/ksp/issues/2347) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1 year ago
google-ksp = "com.google.devtools.ksp:2.1.10-1.0.31"
Replace Dagger-Android with Hilt and remove Kapt (#4423) Hilt is an annotation processor built on top of Dagger which allows to remove all the Android dependency injection boilerplate code (currently around 900 lines) by writing it for us. Hilt can use KSP instead of Kapt so Kapt can be completely removed from the project. Kapt is slow, deprecated and has a few compatibility issues. Removing Kapt will improve build times since no Java stubs have to be generated for Kotlin classes anymore (Note that KSP also processes annotations in Java classes so it can completely replace Kapt). - Remove all modules related to manual dependency injection configuration. - Rename `AppModule` to `StorageModule` since it now only contains configuration to retrieve the DataBase and SharedPreferences. - Annotate all entry points (Activities, Fragments, BroadcastReceivers and Services) with `@AndroidEntryPoint`. - Annotate all injected ViewModels with `@HiltViewModel` and replace the custom ViewModel Factory with the default one (which integrates with the one generated by Hilt). - Add a public field to allow overriding the default ViewModelProvider.Factory in `BaseActivity` in tests. - Annotate tested Activities with `@OptionalInject` since Activity tests currently rely on the Activities not being injected automatically. - Annotate injected `Context` arguments with `@ApplicationContext`. Hilt provides the `Context` binding automatically but requires to specify if the Application or Activity Context is wanted. - Add WorkManager Hilt integration so all Workers are injected by Hilt automatically using `HiltWorkerFactory`. - Lazily initialize WorkManager in `TuskyApplication`. - Remove Kapt and Kapt workarounds. - ~~Remove toolchain configuration for Java 21. Toolchains force the Java bytecode to match the JDK version used to build the project, and apparently Hilt doesn't run inside the toolchain so cannot process the source code if the JDK version of the toolchain is higher than the JDK used to run Gradle. [And configuring a toolchain for an older Java version causes other issues](https://jakewharton.com/gradle-toolchains-are-rarely-a-good-idea/). **Removing toolchains configuration doesn't prevent the project from being built using JDK 21** or more recent versions but allows to build the project using older JDKs as well.~~ Added a fix to allow Hilt to properly use the JDK toolchain. - ~~Set the Java and Kotlin bytecode target to Java 17. The standard bytecode target for Android projects is usually Java 8 or 11 (any higher version doesn't provide any benefit but may cause compatibility issues). However, since the app currently uses a library built against Java 17 bytecode (`networkresult-calladapter`), it needs to target at least Java 17 bytecode as well.~~ - Update the Dagger 2 URL in the licenses screen. Hilt is part of Dagger 2 so the label wasn't changed.
2 years ago
hilt-android = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" }
chore(deps): update plugin ktlint to v12.1.2 (#4771) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | org.jlleitschuh.gradle.ktlint | `12.1.1` -> `12.1.2` | [![age](https://developer.mend.io/api/mc/badges/age/maven/org.jlleitschuh.gradle.ktlint:org.jlleitschuh.gradle.ktlint.gradle.plugin/12.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.jlleitschuh.gradle.ktlint:org.jlleitschuh.gradle.ktlint.gradle.plugin/12.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.jlleitschuh.gradle.ktlint:org.jlleitschuh.gradle.ktlint.gradle.plugin/12.1.1/12.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.jlleitschuh.gradle.ktlint:org.jlleitschuh.gradle.ktlint.gradle.plugin/12.1.1/12.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/tuskyapp/Tusky). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6ImRldmVsb3AiLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1 year ago
ktlint = "org.jlleitschuh.gradle.ktlint:12.1.2"
[libraries]
android-material = { module = "com.google.android.material:material", version.ref = "material" }
androidx-activity = { module = "androidx.activity:activity", version.ref = "androidx-activity" }
androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidx-appcompat" }
androidx-browser = { module = "androidx.browser:browser", version.ref = "androidx-browser" }
androidx-cardview = { module = "androidx.cardview:cardview", version.ref = "androidx-cardview" }
androidx-constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "androidx-constraintlayout" }
androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "androidx-core" }
androidx-core-splashscreen = { module = "androidx.core:core-splashscreen", version.ref = "androidx-splashscreen" }
androidx-core-testing = { module = "androidx.arch.core:core-testing", version.ref = "androidx-testing" }
androidx-drawerlayout = { group = "androidx.drawerlayout", name = "drawerlayout", version.ref = "androidx-drawerlayout" }
androidx-emoji2-core = { module = "androidx.emoji2:emoji2", version.ref = "emoji2" }
androidx-emoji2-views-core = { module = "androidx.emoji2:emoji2-views", version.ref = "emoji2" }
androidx-emoji2-view-helper = { module = "androidx.emoji2:emoji2-views-helper", version.ref = "emoji2" }
androidx-exifinterface = { module = "androidx.exifinterface:exifinterface", version.ref = "androidx-exifinterface" }
androidx-fragment-ktx = { module = "androidx.fragment:fragment-ktx", version.ref = "androidx-fragment" }
Replace Dagger-Android with Hilt and remove Kapt (#4423) Hilt is an annotation processor built on top of Dagger which allows to remove all the Android dependency injection boilerplate code (currently around 900 lines) by writing it for us. Hilt can use KSP instead of Kapt so Kapt can be completely removed from the project. Kapt is slow, deprecated and has a few compatibility issues. Removing Kapt will improve build times since no Java stubs have to be generated for Kotlin classes anymore (Note that KSP also processes annotations in Java classes so it can completely replace Kapt). - Remove all modules related to manual dependency injection configuration. - Rename `AppModule` to `StorageModule` since it now only contains configuration to retrieve the DataBase and SharedPreferences. - Annotate all entry points (Activities, Fragments, BroadcastReceivers and Services) with `@AndroidEntryPoint`. - Annotate all injected ViewModels with `@HiltViewModel` and replace the custom ViewModel Factory with the default one (which integrates with the one generated by Hilt). - Add a public field to allow overriding the default ViewModelProvider.Factory in `BaseActivity` in tests. - Annotate tested Activities with `@OptionalInject` since Activity tests currently rely on the Activities not being injected automatically. - Annotate injected `Context` arguments with `@ApplicationContext`. Hilt provides the `Context` binding automatically but requires to specify if the Application or Activity Context is wanted. - Add WorkManager Hilt integration so all Workers are injected by Hilt automatically using `HiltWorkerFactory`. - Lazily initialize WorkManager in `TuskyApplication`. - Remove Kapt and Kapt workarounds. - ~~Remove toolchain configuration for Java 21. Toolchains force the Java bytecode to match the JDK version used to build the project, and apparently Hilt doesn't run inside the toolchain so cannot process the source code if the JDK version of the toolchain is higher than the JDK used to run Gradle. [And configuring a toolchain for an older Java version causes other issues](https://jakewharton.com/gradle-toolchains-are-rarely-a-good-idea/). **Removing toolchains configuration doesn't prevent the project from being built using JDK 21** or more recent versions but allows to build the project using older JDKs as well.~~ Added a fix to allow Hilt to properly use the JDK toolchain. - ~~Set the Java and Kotlin bytecode target to Java 17. The standard bytecode target for Android projects is usually Java 8 or 11 (any higher version doesn't provide any benefit but may cause compatibility issues). However, since the app currently uses a library built against Java 17 bytecode (`networkresult-calladapter`), it needs to target at least Java 17 bytecode as well.~~ - Update the Dagger 2 URL in the licenses screen. Hilt is part of Dagger 2 so the label wasn't changed.
2 years ago
androidx-hilt-compiler = { module = "androidx.hilt:hilt-compiler", version.ref = "androidx-hilt" }
androidx-hilt-work = { module = "androidx.hilt:hilt-work", version.ref = "androidx-hilt" }
androidx-lifecycle-viewmodel-ktx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "androidx-lifecycle" }
androidx-media3-exoplayer = { module = "androidx.media3:media3-exoplayer", version.ref = "androidx-media3" }
androidx-media3-datasource-okhttp = { module = "androidx.media3:media3-datasource-okhttp", version.ref = "androidx-media3" }
androidx-media3-ui = { module = "androidx.media3:media3-ui", version.ref = "androidx-media3" }
androidx-paging-runtime-ktx = { module = "androidx.paging:paging-runtime-ktx", version.ref = "androidx-paging" }
androidx-preference-ktx = { module = "androidx.preference:preference-ktx", version.ref = "androidx-preference" }
androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "androidx-room" }
androidx-room-paging = { module = "androidx.room:room-paging", version.ref = "androidx-room" }
androidx-room-ktx = { module = "androidx.room:room-ktx", version.ref = "androidx-room" }
androidx-room-testing = { module = "androidx.room:room-testing", version.ref = "androidx-room" }
androidx-recyclerview = { module = "androidx.recyclerview:recyclerview", version.ref = "androidx-recyclerview" }
androidx-sharetarget = { module = "androidx.sharetarget:sharetarget", version.ref = "androidx-sharetarget" }
androidx-swiperefreshlayout = { module = "androidx.swiperefreshlayout:swiperefreshlayout", version.ref = "androidx-swiperefresh-layout" }
androidx-test-junit = { module = "androidx.test.ext:junit", version.ref = "androidx-junit" }
androidx-viewpager2 = { module = "androidx.viewpager2:viewpager2", version.ref = "androidx-viewpager2" }
androidx-work-runtime-ktx = { module = "androidx.work:work-runtime-ktx", version.ref = "androidx-work" }
androidx-work-testing = { module = "androidx.work:work-testing", version.ref = "androidx-work" }
bouncycastle = { module = "org.bouncycastle:bcprov-jdk15on", version.ref = "bouncycastle" }
conscrypt-android = { module = "org.conscrypt:conscrypt-android", version.ref = "conscrypt" }
Replace Dagger-Android with Hilt and remove Kapt (#4423) Hilt is an annotation processor built on top of Dagger which allows to remove all the Android dependency injection boilerplate code (currently around 900 lines) by writing it for us. Hilt can use KSP instead of Kapt so Kapt can be completely removed from the project. Kapt is slow, deprecated and has a few compatibility issues. Removing Kapt will improve build times since no Java stubs have to be generated for Kotlin classes anymore (Note that KSP also processes annotations in Java classes so it can completely replace Kapt). - Remove all modules related to manual dependency injection configuration. - Rename `AppModule` to `StorageModule` since it now only contains configuration to retrieve the DataBase and SharedPreferences. - Annotate all entry points (Activities, Fragments, BroadcastReceivers and Services) with `@AndroidEntryPoint`. - Annotate all injected ViewModels with `@HiltViewModel` and replace the custom ViewModel Factory with the default one (which integrates with the one generated by Hilt). - Add a public field to allow overriding the default ViewModelProvider.Factory in `BaseActivity` in tests. - Annotate tested Activities with `@OptionalInject` since Activity tests currently rely on the Activities not being injected automatically. - Annotate injected `Context` arguments with `@ApplicationContext`. Hilt provides the `Context` binding automatically but requires to specify if the Application or Activity Context is wanted. - Add WorkManager Hilt integration so all Workers are injected by Hilt automatically using `HiltWorkerFactory`. - Lazily initialize WorkManager in `TuskyApplication`. - Remove Kapt and Kapt workarounds. - ~~Remove toolchain configuration for Java 21. Toolchains force the Java bytecode to match the JDK version used to build the project, and apparently Hilt doesn't run inside the toolchain so cannot process the source code if the JDK version of the toolchain is higher than the JDK used to run Gradle. [And configuring a toolchain for an older Java version causes other issues](https://jakewharton.com/gradle-toolchains-are-rarely-a-good-idea/). **Removing toolchains configuration doesn't prevent the project from being built using JDK 21** or more recent versions but allows to build the project using older JDKs as well.~~ Added a fix to allow Hilt to properly use the JDK toolchain. - ~~Set the Java and Kotlin bytecode target to Java 17. The standard bytecode target for Android projects is usually Java 8 or 11 (any higher version doesn't provide any benefit but may cause compatibility issues). However, since the app currently uses a library built against Java 17 bytecode (`networkresult-calladapter`), it needs to target at least Java 17 bytecode as well.~~ - Update the Dagger 2 URL in the licenses screen. Hilt is part of Dagger 2 so the label wasn't changed.
2 years ago
hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" }
hilt-compiler = { group = "com.google.dagger", name = "hilt-compiler", version.ref = "hilt" }
diffx = { module = "org.pageseeder.diffx:pso-diffx", version.ref = "diffx" }
filemojicompat-core = { module = "de.c1710:filemojicompat", version.ref = "filemoji-compat" }
filemojicompat-defaults = { module = "de.c1710:filemojicompat-defaults", version.ref = "filemoji-compat" }
filemojicompat-ui = { module = "de.c1710:filemojicompat-ui", version.ref = "filemoji-compat" }
glide-animation-plugin = { module = "com.github.penfeizhou.android.animation:glide-plugin", version.ref = "glide-animation-plugin" }
glide-compiler = { module = "com.github.bumptech.glide:ksp", version.ref = "glide" }
glide-core = { module = "com.github.bumptech.glide:glide", version.ref = "glide" }
glide-okhttp3-integration = { module = "com.github.bumptech.glide:okhttp3-integration", version.ref = "glide" }
kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "coroutines" }
kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutines" }
image-cropper = { module = "com.github.CanHub:Android-Image-Cropper", version.ref = "image-cropper" }
material-drawer-core = { module = "com.mikepenz:materialdrawer", version.ref = "material-drawer" }
material-drawer-iconics = { module = "com.mikepenz:materialdrawer-iconics", version.ref = "material-drawer" }
material-typeface = { module = "com.mikepenz:google-material-typeface", version.ref = "material-typeface" }
mockito-kotlin = { module = "org.mockito.kotlin:mockito-kotlin", version.ref = "mockito-kotlin" }
mockito-inline = { module = "org.mockito:mockito-inline", version.ref = "mockito-inline" }
mockwebserver = { module = "com.squareup.okhttp3:mockwebserver", version.ref = "okhttp" }
Replace Gson library with Moshi (#4309) **! ! Warning**: Do not merge before testing every API call and database read involving JSON ! **Gson** is obsolete and has been superseded by **Moshi**. But more importantly, parsing Kotlin objects using Gson is _dangerous_ because Gson uses Java serialization and is **not Kotlin-aware**. This has two main consequences: - Fields of non-null types may end up null at runtime. Parsing will succeed, but the code may crash later with a `NullPointerException` when trying to access a field member; - Default values of constructor parameters are always ignored. When absent, reference types will be null, booleans will be false and integers will be zero. On the other hand, Kotlin-aware parsers like **Moshi** or **Kotlin Serialization** will validate at parsing time that all received fields comply with the Kotlin contract and avoid errors at runtime, making apps more stable and schema mismatches easier to detect (as long as logs are accessible): - Receiving a null value for a non-null type will generate a parsing error; - Optional types are declared explicitly by adding a default value. **A missing value with no default value declaration will generate a parsing error.** Migrating the entity declarations from Gson to Moshi will make the code more robust but is not an easy task because of the semantic differences. With Gson, both nullable and optional fields are represented with a null value. After converting to Moshi, some nullable entities can become non-null with a default value (if they are optional and not nullable), others can stay nullable with no default value (if they are mandatory and nullable), and others can become **nullable with a default value of null** (if they are optional _or_ nullable _or_ both). That third option is the safest bet when it's not clear if a field is optional or not, except for lists which can usually be declared as non-null with a default value of an empty list (I have yet to see a nullable array type in the Mastodon API). Fields that are currently declared as non-null present another challenge. In theory, they should remain as-is and everything will work fine. In practice, **because Gson is not aware of nullable types at all**, it's possible that some non-null fields currently hold a null value in some cases but the app does not report any error because the field is not accessed by Kotlin code in that scenario. After migrating to Moshi however, parsing such a field will now fail early if a null value or no value is received. These fields will have to be identified by heavily testing the app and looking for parsing errors (`JsonDataException`) and/or by going through the Mastodon documentation. A default value needs to be added for missing optional fields, and their type could optionally be changed to nullable, depending on the case. Gson is also currently used to serialize and deserialize objects to and from the local database, which is also challenging because backwards compatibility needs to be preserved. Fortunately, by default Gson omits writing null fields, so a field of type `List<T>?` could be replaced with a field of type `List<T>` with a default value of `emptyList()` and reading back the old data should still work. However, nullable lists that are written directly (not as a field of another object) will still be serialized to JSON as `"null"` so the deserializing code must still be handling null properly. Finally, changing the database schema is out of scope for this pull request, so database entities that also happen to be serialized with Gson will keep their original types even if they could be made non-null as an improvement. In the end this is all for the best, because the app will be more reliable and errors will be easier to detect by showing up earlier with a clear error message. Not to mention the performance benefits of using Moshi compared to Gson. - Replace Gson reflection with Moshi Kotlin codegen to generate all parsers at compile time. - Replace custom `Rfc3339DateJsonAdapter` with the one provided by moshi-adapters. - Replace custom `JsonDeserializer` classes for Enum types with `EnumJsonAdapter.create(T).withUnknownFallback()` from moshi-adapters to support fallback values. - Replace `GuardedBooleanAdapter` with the more generic `GuardedAdapter` which works with any type. Any nullable field may now be annotated with `@Guarded`. - Remove Proguard rules related to Json entities. Each Json entity needs to be annotated with `@JsonClass` with no exception, and adding this annotation will ensure that R8/Proguard will handle the entities properly. - Replace some nullable Boolean fields with non-null Boolean fields with a default value where possible. - Replace some nullable list fields with non-null list fields with a default value of `emptyList()` where possible. - Update `TimelineDao` to perform all Json conversions internally using `Converters` so no Gson or Moshi instance has to be passed to its methods. - ~~Create a custom `DraftAttachmentJsonAdapter` to serialize and deserialize `DraftAttachment` which is a special entity that supports more than one json name per field. A custom adapter is necessary because there is not direct equivalent of `@SerializedName(alternate = [...])` in Moshi.~~ Remove alternate names for some `DraftAttachment` fields which were used as a workaround to deserialize local data in 2-years old builds of Tusky. - Update tests to make them work with Moshi. - Simplify a few `equals()` implementations. - Change a few functions to `val`s - Turn `NetworkModule` into an `object` (since it contains no abstract methods). Please test the app thoroughly before merging. There may be some fields currently declared as mandatory that are actually optional.
2 years ago
moshi-core = { module = "com.squareup.moshi:moshi", version.ref = "moshi" }
moshi-adapters = { module = "com.squareup.moshi:moshi-adapters", version.ref = "moshi" }
moshi-kotlin-codegen = { module = "com.squareup.moshi:moshi-kotlin-codegen", version.ref = "moshi" }
networkresult-calladapter = { module = "at.connyduck:networkresult-calladapter", version.ref = "networkresult-calladapter" }
okhttp-core = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" }
okhttp-logging-interceptor = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "okhttp" }
okio = { module = "com.squareup.okio:okio", version.ref = "okio" }
Replace Gson library with Moshi (#4309) **! ! Warning**: Do not merge before testing every API call and database read involving JSON ! **Gson** is obsolete and has been superseded by **Moshi**. But more importantly, parsing Kotlin objects using Gson is _dangerous_ because Gson uses Java serialization and is **not Kotlin-aware**. This has two main consequences: - Fields of non-null types may end up null at runtime. Parsing will succeed, but the code may crash later with a `NullPointerException` when trying to access a field member; - Default values of constructor parameters are always ignored. When absent, reference types will be null, booleans will be false and integers will be zero. On the other hand, Kotlin-aware parsers like **Moshi** or **Kotlin Serialization** will validate at parsing time that all received fields comply with the Kotlin contract and avoid errors at runtime, making apps more stable and schema mismatches easier to detect (as long as logs are accessible): - Receiving a null value for a non-null type will generate a parsing error; - Optional types are declared explicitly by adding a default value. **A missing value with no default value declaration will generate a parsing error.** Migrating the entity declarations from Gson to Moshi will make the code more robust but is not an easy task because of the semantic differences. With Gson, both nullable and optional fields are represented with a null value. After converting to Moshi, some nullable entities can become non-null with a default value (if they are optional and not nullable), others can stay nullable with no default value (if they are mandatory and nullable), and others can become **nullable with a default value of null** (if they are optional _or_ nullable _or_ both). That third option is the safest bet when it's not clear if a field is optional or not, except for lists which can usually be declared as non-null with a default value of an empty list (I have yet to see a nullable array type in the Mastodon API). Fields that are currently declared as non-null present another challenge. In theory, they should remain as-is and everything will work fine. In practice, **because Gson is not aware of nullable types at all**, it's possible that some non-null fields currently hold a null value in some cases but the app does not report any error because the field is not accessed by Kotlin code in that scenario. After migrating to Moshi however, parsing such a field will now fail early if a null value or no value is received. These fields will have to be identified by heavily testing the app and looking for parsing errors (`JsonDataException`) and/or by going through the Mastodon documentation. A default value needs to be added for missing optional fields, and their type could optionally be changed to nullable, depending on the case. Gson is also currently used to serialize and deserialize objects to and from the local database, which is also challenging because backwards compatibility needs to be preserved. Fortunately, by default Gson omits writing null fields, so a field of type `List<T>?` could be replaced with a field of type `List<T>` with a default value of `emptyList()` and reading back the old data should still work. However, nullable lists that are written directly (not as a field of another object) will still be serialized to JSON as `"null"` so the deserializing code must still be handling null properly. Finally, changing the database schema is out of scope for this pull request, so database entities that also happen to be serialized with Gson will keep their original types even if they could be made non-null as an improvement. In the end this is all for the best, because the app will be more reliable and errors will be easier to detect by showing up earlier with a clear error message. Not to mention the performance benefits of using Moshi compared to Gson. - Replace Gson reflection with Moshi Kotlin codegen to generate all parsers at compile time. - Replace custom `Rfc3339DateJsonAdapter` with the one provided by moshi-adapters. - Replace custom `JsonDeserializer` classes for Enum types with `EnumJsonAdapter.create(T).withUnknownFallback()` from moshi-adapters to support fallback values. - Replace `GuardedBooleanAdapter` with the more generic `GuardedAdapter` which works with any type. Any nullable field may now be annotated with `@Guarded`. - Remove Proguard rules related to Json entities. Each Json entity needs to be annotated with `@JsonClass` with no exception, and adding this annotation will ensure that R8/Proguard will handle the entities properly. - Replace some nullable Boolean fields with non-null Boolean fields with a default value where possible. - Replace some nullable list fields with non-null list fields with a default value of `emptyList()` where possible. - Update `TimelineDao` to perform all Json conversions internally using `Converters` so no Gson or Moshi instance has to be passed to its methods. - ~~Create a custom `DraftAttachmentJsonAdapter` to serialize and deserialize `DraftAttachment` which is a special entity that supports more than one json name per field. A custom adapter is necessary because there is not direct equivalent of `@SerializedName(alternate = [...])` in Moshi.~~ Remove alternate names for some `DraftAttachment` fields which were used as a workaround to deserialize local data in 2-years old builds of Tusky. - Update tests to make them work with Moshi. - Simplify a few `equals()` implementations. - Change a few functions to `val`s - Turn `NetworkModule` into an `object` (since it contains no abstract methods). Please test the app thoroughly before merging. There may be some fields currently declared as mandatory that are actually optional.
2 years ago
retrofit-converter-moshi = { module = "com.squareup.retrofit2:converter-moshi", version.ref = "retrofit" }
retrofit-core = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" }
robolectric = { module = "org.robolectric:robolectric", version.ref = "robolectric" }
sparkbutton = { module = "at.connyduck.sparkbutton:sparkbutton", version.ref = "sparkbutton" }
touchimageview = { module = "com.github.MikeOrtiz:TouchImageView", version.ref = "touchimageview" }
Convert NotificationsFragment and related code to Kotlin, use the Paging library (#3159) * Unmodified output from "Convert Java to Kotlin" on NotificationsFragment.java * Bare minimum changes to get this to compile and run - Use `lateinit` for `eventhub`, `adapter`, `preferences`, and `scrolllistener` - Removed override for accountManager, it can be used from the superclass - Add `?.` where non-nullity could not (yet) be guaranteed - Remove `?` from type lists where non-nullity is guaranteed - Explicitly convert lists to mutable where necessary - Delete unused function `findReplyPosition` * Remove all unnecessary non-null (!!) assertions The previous change meant some values are no longer nullable. Remove the non-null assertions. * Lint ListStatusAccessibilityDelegate call - Remove redundant constructor - Move block outside of `()` * Use `let` when handling compose button visibility on scroll * Replace a `requireNonNull` with `!!` * Remove redundant return values * Remove or rename unused lambda parameters * Remove unnecessary type parameters * Remove unnecessary null checks * Replace cascading-if statement with `when` * Simplify calculation of `topId` * Use more appropriate list properties and methods - Access the last value with `.last()` - Access the last index with `.lastIndex` - Replace logical-chain with `asRightOrNull` and `?.` - `.isNotEmpty()`, not `!...isEmpty()` * Inline unnecessary variable * Use PrefKeys constants instead of bare strings * Use `requireContext()` instead of `context!!` * Replace deprecated `onActivityCreated()` with `onViewCreated()` * Remove unnecessary variable setting * Replace `size == 0` check with `isEmpty()` * Format with ktlint, no functionality changes * Convert NotifcationsAdapter to Kotlin Does not compile, this is the unchanged output of the "Convert to Kotlin" function * Minimum changes to get NotificationsAdapter to compile * Remove unnecessary visibility modifiers * Use `isNotEmpty()` * Remove unused lambda parameters * Convert cascading-if to `when` * Simplifiy assignment op * Use explicit argument names with `copy()` * Use `.firstOrNull()` instead of `if` * Mark as lateinit to avoid unnecessary null checks * Format with ktlint, whitespace changes only * Bare minimum necessary to demonstrate paging in notifications Create `NotificationsPagingSource`. This uses a new `notifications2()` API call, which will exist until all the code has been adapted. Instead of using placeholders, Create `NotificationsPagingAdapter` (will replace `NotificationsAdapater`) to consume this data. Expose the paging source view a new `NotificationsViewModel` `flow`, and submit new pages to the adapter as they are available in `NotificationsFragment`. Comment out any other code in `NotificationsFragment` that deals with loading data from the network. This will be updated as necessary, either here, or in the view model. Lots of functionality is missing, including: - Different views for different notification types - Starting at the remembered notification position - Interacting with notifications - Adjusting the UI state to match the loading state These will be added incrementally. * Migrate StatusNotificationViewHolder impl. to NotificationsPagingAdapter With this change `NotificationsPagingAdapter` shows notifications about a status correctly. - Introduce a `ViewHolder` abstract class that all Notification view holders derive from. Modify the fallback view holder to use this. - Implement `StatusNotificationViewHolder`. Much of the code is from the existing implementation in the `NotificationAdapater`. - The original code split the code that binds values to views between the adapter's `bindViewHolder` method and the view holder's methods. In this code, all of the binding code is in the view holder, in a `bind` method. This is called by the adapter's `bindViewHolder` method. This keeps all the binding logic in the view holder, where it belongs. - The new `StatusNotificationViewHolder` uses view binding to access its views instead of `findViewById`. - Logically, information about whether to show sensitive media, or open content warnings should be part of the `StatusDisplayOptions`. So add those as fields, and populate them appropriately. This affects code outside notification handling, which will be adjusted later. * Note some TODOs to complete before the PR is finished * Extract StatusNotificationViewHolder to a new file * Add TODO for NotificationViewData.Concrete * Convert the adapter to take NotificationViewData.Concrete * Add a view holder for regular status notifications * Migrate Follow and FollowRequest notifications * Migrate report notifications * Convert onViewThread to use the adapter data * Convert onViewMedia to use the adapter data * Convert onMore to use the adapter data * Convert onReply to use the adapter data * Convert NotificationViewData to Kotlin * Re-implement the reblog functionality - Move reblogging in to the view model - Update the UI via the adapter's `snapshot()` and `notifyItemChanged()` methods * Re-implement the favourite functionality Same approach as reblog * Re-implement the bookmark functionality Same approach as reblog * Add TODO re StatusActionListener interface * Add TODO re event handling * Re-implementing the voting functionality * Re-implement viewing hidden content - Hidden media - Content behind a content warning * Add a TODO re pinning * Re-implement "Show more" / "Show less" * Delete unused updateStatus() function * Comment out the scroll listener for the moment * Re-implement applying filters to notifications Introduce `NotificationsRepository`, to provide access to the notifications stream. When changing the filters the flow is as follows: - User clicks "Apply" in the fragment. - Fragment calls `viewModel.accept()` with a `UiAction.ApplyFilter` (new class). - View model maintains a private flow of incoming UI actions. The new action is emitted to that flow. - In view model, `notificationFilter` waits for `.ApplyFilter` actions, and ensures the filter is saved, then emits it. - In view model, `pagingDataFlow` waits for new items from `notificationsFilter` and fetches the notifications from the repository in response. The repository provides `Notification`, so the model maps them to `NotificationViewData.Concrete` for display by the adapter. - In view model the UI state also waits for new items from `notificationsFilter` and emits a new `UiState` every time the filter is changed. When opening the fragment for the first time: - All of the above machinery, but `notificationFilter` also fetches the filter from the active account and emits that first. This triggers the first fetch and the first update of `uiState`. Also: - Add TODOs for functionality that is not implemented yet - Delete a lot of dead code from NotificationsFragment * Include important preference values in `uiState` Listen to the flow of eventHub events, filtered to preference changes that are relevant to the notification view. When preferences change (or when the view model starts), fetch the current values, and include them in `uiState`. Remove preference handling from `NotificationsFragment`, and just use the values from `uiState`. Adjust how the `useAbsoluteTime` preference is handled. The previous code loaded new content (via a diffutil) in to the adapter, which would trigger a re-binding of the timestamp. As the adapter content is immutable, the new code simply triggers a re-binding of the views that are currently visible on screen. * Update UI in response to different load states Notifications can be loaded at the top and bottom of the timeline. Add a new layout to show the progress of these loads, and any errors that can occur. Catch network errors in `NotificationsPagingSource` and convert to `LoadState.Error`. Add a header/footer to the notifications list to show the load state. Collect the load state from the adapter, use this to drive the visibility of different views. * Save and restore the last read notification ID Use this when fetching notifications, to centre the list around the notification that was last read. * Call notifyItemRangeChanged with the correct parameters * Don't try and save list position if there are no items in the list * Show/hide the "Nothing to see" view appropriately * Update comments * Handle the case where the notification key no longer exists * Re-implement support for showMediaPreview and other settings * Re-implement "hide FAB when scrolling" preference * Delete dead code * Delete Notifications Adapater and Placeholder types * Remove NotificationViewData.Concrete subclass Now there's no Placeholder, everything is a NotificationViewData. * Improve how notification pages are loaded if the first notification is missing or filtered * Re-implement clear notifications, show errors * s/default/from/ * Add missing headers * Don't process bookmarking via EventHub - Initiating a bookmark is triggered by the fragment sending a StatusUiAction.Bookmark - View model receives this, makes API call, waits for response, emits either a success or failure state - Fragment collects success/failure states, updates the UI accordingly * Don't process favourites via EventHub * Don't process reblog via EventHub * Don't process poll votes with EventHub This removes EventHub from the fragment * Respond to follow requests via the view model * Docs and cleanup * Typo and editing pass * Minor edits for clarity * Remove newline in diagram * Reorder sequence diagram * s/authorize/accept/ * s/pagingDataFlow/pagingData/ * Add brief KDoc * Try and fetch a full first page of notifications * Call the API method `notifications` again * Log UI errors at the point of handling * Remove unused variable * Replace String.format() with interpolation * Convert NotificationViewData to data class * Rename copy() to make(), to avoid confusion with default copy() method * Lint * Update app/src/main/res/layout/simple_list_item_1.xml * Update app/src/main/java/com/keylesspalace/tusky/components/notifications/NotificationsPagingAdapter.kt * Update app/src/main/java/com/keylesspalace/tusky/components/notifications/NotificationsViewModel.kt * Update app/src/main/java/com/keylesspalace/tusky/fragment/NotificationsFragment.kt * Update app/src/main/java/com/keylesspalace/tusky/viewdata/NotificationViewData.kt * Initial NotificationsViewModel tests * Add missing import * More tests, some cleanup * Comments, re-order some code * Set StateRestorationPolicy.PREVENT_WHEN_EMPTY * Mark clearNotifications() as "suspend" * Catch exceptions from clearNotifications and emit * Update TODOs with explanations * Ensure initial fetch uses a null ID * Stop/start collecting pagingData based on the lifecycle * Don't hide the list while refreshing * Refresh notifications on mutes and blocks * Update tests now clearNotifications is a suspend fun * Add "Refresh" menu to NotificationsFragment * Use account.name over account.displayName * Update app/src/main/java/com/keylesspalace/tusky/fragment/NotificationsFragment.kt Co-authored-by: Konrad Pozniak <connyduck@users.noreply.github.com> * Mark layoutmanager as lateinit * Mark layoutmanager as lateinit * Refactor generating UI text * Add Copyright header * Correctly apply notification filters * Show follow request header in notifications * Wait for follow request actions to complete, so the reqeuest is sent * Remove duplicate copyright header * Revert copyright change in unmodified file * Null check response body * Move NotificationsFragment to component.notifications * Use viewlifecycleowner.lifecyclescope * Show notification filter as a dialog rather than a popup window The popup window: - Is inconsistent UI - Requires a custom layout - Didn't play nicely with viewbinding * Refresh adapter on block/mute * Scroll up slightly when new content is loaded * Restore progressbar * Lint * Update app/src/main/res/layout/simple_list_item_1.xml --------- Co-authored-by: Konrad Pozniak <connyduck@users.noreply.github.com>
3 years ago
turbine = { module = "app.cash.turbine:turbine", version.ref = "turbine" }
unified-push = { module = "com.github.UnifiedPush:android-connector", version.ref = "unified-push" }
xmlwriter = { module = "org.pageseeder.xmlwriter:pso-xmlwriter", version.ref = "xmlwriter" }
[bundles]
androidx = ["androidx-core-ktx", "androidx-appcompat", "androidx-fragment-ktx", "androidx-browser", "androidx-swiperefreshlayout",
"androidx-recyclerview", "androidx-exifinterface", "androidx-cardview", "androidx-preference-ktx", "androidx-sharetarget",
"androidx-emoji2-core", "androidx-emoji2-views-core", "androidx-emoji2-view-helper", "androidx-lifecycle-viewmodel-ktx",
"androidx-constraintlayout", "androidx-paging-runtime-ktx", "androidx-viewpager2", "androidx-work-runtime-ktx",
Move ExoPlayer initialization to a Dagger module and optimize its dependencies (#4296) Currently, ExoPlayer is initialized explicitly in `ViewMediaFragment` with all its dependencies, including many that are not useful for viewing Mastodon media attachments. This pull request moves most ExoPlayer initialization and configuration to a new Dagger module, and instead a `Provider<ExoPlayer>` factory is injected in the Fragment so it can create new instances when needed. The following ExoPlayer components will be configured: - **Renderers**: all of them (audio, video, metadata, subtitles) except for the `CameraMotionRenderer`. - **Extractors**: FLAC, Wav, Mp4, Ogg, Matroska/WebM and MP3 containers, to provide the same support as Firefox or Chrome browsers. Other container formats that are either image formats (already covered by Glide), not web-friendly or reserved for live streaming are skipped. - **MediaSource**: only progressive download (through OkHttp) is provided. Live streaming support using protocols like RTSP, MPEG/Dash or HLS is skipped, because Mastodon servers don't use these protocols to download attachments. The Mastodon documentation mentions the [supported media formats for attachments](https://docs.joinmastodon.org/user/posting/#media) and this covers them and even more. The docs also mentions that the video and audio files are transcoded to MP4 and MP3 upon upload but that was not the case in the past (for example WebM was used) and it could change again in the future. Specifying these components manually allows reducing the APK size by about 200 KB thanks to R8 shrinking. There are also a few extra code changes: - Remove the code specific to API < 24 since the min SDK of the app is now 24. - Add support for pausing a video when unplugging headphones. - Specify the audio attributes according to content type to help the Android audio mixer.
2 years ago
"androidx-core-splashscreen", "androidx-activity", "androidx-media3-exoplayer", "androidx-media3-datasource-okhttp",
"androidx-media3-ui", "androidx-drawerlayout"]
filemojicompat = ["filemojicompat-core", "filemojicompat-ui", "filemojicompat-defaults"]
glide = ["glide-core", "glide-okhttp3-integration", "glide-animation-plugin"]
material-drawer = ["material-drawer-core", "material-drawer-iconics"]
mockito = ["mockito-kotlin", "mockito-inline"]
Replace Gson library with Moshi (#4309) **! ! Warning**: Do not merge before testing every API call and database read involving JSON ! **Gson** is obsolete and has been superseded by **Moshi**. But more importantly, parsing Kotlin objects using Gson is _dangerous_ because Gson uses Java serialization and is **not Kotlin-aware**. This has two main consequences: - Fields of non-null types may end up null at runtime. Parsing will succeed, but the code may crash later with a `NullPointerException` when trying to access a field member; - Default values of constructor parameters are always ignored. When absent, reference types will be null, booleans will be false and integers will be zero. On the other hand, Kotlin-aware parsers like **Moshi** or **Kotlin Serialization** will validate at parsing time that all received fields comply with the Kotlin contract and avoid errors at runtime, making apps more stable and schema mismatches easier to detect (as long as logs are accessible): - Receiving a null value for a non-null type will generate a parsing error; - Optional types are declared explicitly by adding a default value. **A missing value with no default value declaration will generate a parsing error.** Migrating the entity declarations from Gson to Moshi will make the code more robust but is not an easy task because of the semantic differences. With Gson, both nullable and optional fields are represented with a null value. After converting to Moshi, some nullable entities can become non-null with a default value (if they are optional and not nullable), others can stay nullable with no default value (if they are mandatory and nullable), and others can become **nullable with a default value of null** (if they are optional _or_ nullable _or_ both). That third option is the safest bet when it's not clear if a field is optional or not, except for lists which can usually be declared as non-null with a default value of an empty list (I have yet to see a nullable array type in the Mastodon API). Fields that are currently declared as non-null present another challenge. In theory, they should remain as-is and everything will work fine. In practice, **because Gson is not aware of nullable types at all**, it's possible that some non-null fields currently hold a null value in some cases but the app does not report any error because the field is not accessed by Kotlin code in that scenario. After migrating to Moshi however, parsing such a field will now fail early if a null value or no value is received. These fields will have to be identified by heavily testing the app and looking for parsing errors (`JsonDataException`) and/or by going through the Mastodon documentation. A default value needs to be added for missing optional fields, and their type could optionally be changed to nullable, depending on the case. Gson is also currently used to serialize and deserialize objects to and from the local database, which is also challenging because backwards compatibility needs to be preserved. Fortunately, by default Gson omits writing null fields, so a field of type `List<T>?` could be replaced with a field of type `List<T>` with a default value of `emptyList()` and reading back the old data should still work. However, nullable lists that are written directly (not as a field of another object) will still be serialized to JSON as `"null"` so the deserializing code must still be handling null properly. Finally, changing the database schema is out of scope for this pull request, so database entities that also happen to be serialized with Gson will keep their original types even if they could be made non-null as an improvement. In the end this is all for the best, because the app will be more reliable and errors will be easier to detect by showing up earlier with a clear error message. Not to mention the performance benefits of using Moshi compared to Gson. - Replace Gson reflection with Moshi Kotlin codegen to generate all parsers at compile time. - Replace custom `Rfc3339DateJsonAdapter` with the one provided by moshi-adapters. - Replace custom `JsonDeserializer` classes for Enum types with `EnumJsonAdapter.create(T).withUnknownFallback()` from moshi-adapters to support fallback values. - Replace `GuardedBooleanAdapter` with the more generic `GuardedAdapter` which works with any type. Any nullable field may now be annotated with `@Guarded`. - Remove Proguard rules related to Json entities. Each Json entity needs to be annotated with `@JsonClass` with no exception, and adding this annotation will ensure that R8/Proguard will handle the entities properly. - Replace some nullable Boolean fields with non-null Boolean fields with a default value where possible. - Replace some nullable list fields with non-null list fields with a default value of `emptyList()` where possible. - Update `TimelineDao` to perform all Json conversions internally using `Converters` so no Gson or Moshi instance has to be passed to its methods. - ~~Create a custom `DraftAttachmentJsonAdapter` to serialize and deserialize `DraftAttachment` which is a special entity that supports more than one json name per field. A custom adapter is necessary because there is not direct equivalent of `@SerializedName(alternate = [...])` in Moshi.~~ Remove alternate names for some `DraftAttachment` fields which were used as a workaround to deserialize local data in 2-years old builds of Tusky. - Update tests to make them work with Moshi. - Simplify a few `equals()` implementations. - Change a few functions to `val`s - Turn `NetworkModule` into an `object` (since it contains no abstract methods). Please test the app thoroughly before merging. There may be some fields currently declared as mandatory that are actually optional.
2 years ago
moshi = ["moshi-core", "moshi-adapters"]
okhttp = ["okhttp-core", "okhttp-logging-interceptor"]
Replace Gson library with Moshi (#4309) **! ! Warning**: Do not merge before testing every API call and database read involving JSON ! **Gson** is obsolete and has been superseded by **Moshi**. But more importantly, parsing Kotlin objects using Gson is _dangerous_ because Gson uses Java serialization and is **not Kotlin-aware**. This has two main consequences: - Fields of non-null types may end up null at runtime. Parsing will succeed, but the code may crash later with a `NullPointerException` when trying to access a field member; - Default values of constructor parameters are always ignored. When absent, reference types will be null, booleans will be false and integers will be zero. On the other hand, Kotlin-aware parsers like **Moshi** or **Kotlin Serialization** will validate at parsing time that all received fields comply with the Kotlin contract and avoid errors at runtime, making apps more stable and schema mismatches easier to detect (as long as logs are accessible): - Receiving a null value for a non-null type will generate a parsing error; - Optional types are declared explicitly by adding a default value. **A missing value with no default value declaration will generate a parsing error.** Migrating the entity declarations from Gson to Moshi will make the code more robust but is not an easy task because of the semantic differences. With Gson, both nullable and optional fields are represented with a null value. After converting to Moshi, some nullable entities can become non-null with a default value (if they are optional and not nullable), others can stay nullable with no default value (if they are mandatory and nullable), and others can become **nullable with a default value of null** (if they are optional _or_ nullable _or_ both). That third option is the safest bet when it's not clear if a field is optional or not, except for lists which can usually be declared as non-null with a default value of an empty list (I have yet to see a nullable array type in the Mastodon API). Fields that are currently declared as non-null present another challenge. In theory, they should remain as-is and everything will work fine. In practice, **because Gson is not aware of nullable types at all**, it's possible that some non-null fields currently hold a null value in some cases but the app does not report any error because the field is not accessed by Kotlin code in that scenario. After migrating to Moshi however, parsing such a field will now fail early if a null value or no value is received. These fields will have to be identified by heavily testing the app and looking for parsing errors (`JsonDataException`) and/or by going through the Mastodon documentation. A default value needs to be added for missing optional fields, and their type could optionally be changed to nullable, depending on the case. Gson is also currently used to serialize and deserialize objects to and from the local database, which is also challenging because backwards compatibility needs to be preserved. Fortunately, by default Gson omits writing null fields, so a field of type `List<T>?` could be replaced with a field of type `List<T>` with a default value of `emptyList()` and reading back the old data should still work. However, nullable lists that are written directly (not as a field of another object) will still be serialized to JSON as `"null"` so the deserializing code must still be handling null properly. Finally, changing the database schema is out of scope for this pull request, so database entities that also happen to be serialized with Gson will keep their original types even if they could be made non-null as an improvement. In the end this is all for the best, because the app will be more reliable and errors will be easier to detect by showing up earlier with a clear error message. Not to mention the performance benefits of using Moshi compared to Gson. - Replace Gson reflection with Moshi Kotlin codegen to generate all parsers at compile time. - Replace custom `Rfc3339DateJsonAdapter` with the one provided by moshi-adapters. - Replace custom `JsonDeserializer` classes for Enum types with `EnumJsonAdapter.create(T).withUnknownFallback()` from moshi-adapters to support fallback values. - Replace `GuardedBooleanAdapter` with the more generic `GuardedAdapter` which works with any type. Any nullable field may now be annotated with `@Guarded`. - Remove Proguard rules related to Json entities. Each Json entity needs to be annotated with `@JsonClass` with no exception, and adding this annotation will ensure that R8/Proguard will handle the entities properly. - Replace some nullable Boolean fields with non-null Boolean fields with a default value where possible. - Replace some nullable list fields with non-null list fields with a default value of `emptyList()` where possible. - Update `TimelineDao` to perform all Json conversions internally using `Converters` so no Gson or Moshi instance has to be passed to its methods. - ~~Create a custom `DraftAttachmentJsonAdapter` to serialize and deserialize `DraftAttachment` which is a special entity that supports more than one json name per field. A custom adapter is necessary because there is not direct equivalent of `@SerializedName(alternate = [...])` in Moshi.~~ Remove alternate names for some `DraftAttachment` fields which were used as a workaround to deserialize local data in 2-years old builds of Tusky. - Update tests to make them work with Moshi. - Simplify a few `equals()` implementations. - Change a few functions to `val`s - Turn `NetworkModule` into an `object` (since it contains no abstract methods). Please test the app thoroughly before merging. There may be some fields currently declared as mandatory that are actually optional.
2 years ago
retrofit = ["retrofit-core", "retrofit-converter-moshi"]
room = ["androidx-room-ktx", "androidx-room-paging"]
xmldiff = ["diffx", "xmlwriter"]