chore: Remove duplicate and obsolete legacy code#807
Merged
Conversation
|
Contributor
There was a problem hiding this comment.
Pull request overview
This PR continues the Legacy module cleanup by deleting duplicated/obsolete implementations (networking, Room persistence, Coil2 avatar helpers, API models) and reducing Legacy’s dependency surface, keeping only a minimal compatibility shim where needed.
Changes:
- Removed large sets of Legacy-only utilities and models (Room
UserDatabase, OkHttp networking stack, API response/error types, avatar helpers, etc.). - Simplified Legacy
ApiControllerdown to akotlinx.serializationJsoninstance for temporary compatibility. - Updated Gradle dependencies and the version catalog to drop legacy-only libraries (e.g., Coil2).
Reviewed changes
Copilot reviewed 51 out of 51 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| Legacy/src/main/java/com/infomaniak/core/legacy/utils/UtilsUi.kt | Removed shared-element + avatar-related legacy helpers; kept only openUrl. |
| Legacy/src/main/java/com/infomaniak/core/legacy/utils/OkHttpClientExt.kt | Deleted deprecated OkHttp coroutine/body extensions. |
| Legacy/src/main/java/com/infomaniak/core/legacy/utils/Extensions.kt | Removed legacy avatar-loading helpers and dropped Gson-specific serialization exception handling. |
| Legacy/src/main/java/com/infomaniak/core/legacy/utils/CustomDateTypeAdapter.kt | Deleted Gson Date adapter (legacy-only). |
| Legacy/src/main/java/com/infomaniak/core/legacy/utils/CoilUtils.kt | Deleted legacy Coil2 image loader utilities. |
| Legacy/src/main/java/com/infomaniak/core/legacy/utils/ApiErrorCode.kt | Deleted legacy error-code translation types. |
| Legacy/src/main/java/com/infomaniak/core/legacy/room/UserMigration.kt | Deleted Room auto-migration specs for legacy user DB. |
| Legacy/src/main/java/com/infomaniak/core/legacy/room/UserDatabase.kt | Deleted legacy Room database + type converters. |
| Legacy/src/main/java/com/infomaniak/core/legacy/room/UserDao.kt | Deleted legacy Room DAO. |
| Legacy/src/main/java/com/infomaniak/core/legacy/networking/ManualAuthorizationRequired.kt | Deleted opt-in annotation tied to the removed legacy networking stack. |
| Legacy/src/main/java/com/infomaniak/core/legacy/networking/HttpUtils.kt | Deleted legacy HTTP header utility. |
| Legacy/src/main/java/com/infomaniak/core/legacy/networking/HttpClientConfig.kt | Deleted legacy OkHttp configuration object. |
| Legacy/src/main/java/com/infomaniak/core/legacy/networking/HttpClient.kt | Deleted legacy OkHttp client factory. |
| Legacy/src/main/java/com/infomaniak/core/legacy/networking/GZipInterceptor.kt | Deleted legacy gzip response interceptor. |
| Legacy/src/main/java/com/infomaniak/core/legacy/networking/AccessTokenUsageInterceptor.kt | Deleted legacy Sentry reporting interceptor. |
| Legacy/src/main/java/com/infomaniak/core/legacy/models/user/User.kt | Deleted legacy user model (and related token/preferences payload). |
| Legacy/src/main/java/com/infomaniak/core/legacy/models/user/preferences/TimeZone.kt | Deleted legacy preference model. |
| Legacy/src/main/java/com/infomaniak/core/legacy/models/user/preferences/security/Security.kt | Deleted legacy security preference model. |
| Legacy/src/main/java/com/infomaniak/core/legacy/models/user/preferences/security/AuthDevices.kt | Deleted legacy auth-device model. |
| Legacy/src/main/java/com/infomaniak/core/legacy/models/user/preferences/PreferenceTemplate.kt | Deleted legacy preference base class. |
| Legacy/src/main/java/com/infomaniak/core/legacy/models/user/preferences/Preferences.kt | Deleted legacy preferences container model. |
| Legacy/src/main/java/com/infomaniak/core/legacy/models/user/preferences/OrganizationPreference.kt | Deleted legacy org preference model. |
| Legacy/src/main/java/com/infomaniak/core/legacy/models/user/preferences/Language.kt | Deleted legacy language model. |
| Legacy/src/main/java/com/infomaniak/core/legacy/models/user/preferences/Country.kt | Deleted legacy country model. |
| Legacy/src/main/java/com/infomaniak/core/legacy/models/user/Phone.kt | Deleted legacy phone contact model. |
| Legacy/src/main/java/com/infomaniak/core/legacy/models/user/Email.kt | Deleted legacy email contact model. |
| Legacy/src/main/java/com/infomaniak/core/legacy/models/user/ContactMethod.kt | Deleted legacy contact-method base class. |
| Legacy/src/main/java/com/infomaniak/core/legacy/models/OrganizationAccount.kt | Deleted legacy organization account model. |
| Legacy/src/main/java/com/infomaniak/core/legacy/models/ApiResponseStatus.kt | Deleted legacy API response status enum. |
| Legacy/src/main/java/com/infomaniak/core/legacy/models/ApiResponse.kt | Deleted legacy API response wrapper. |
| Legacy/src/main/java/com/infomaniak/core/legacy/models/ApiError.kt | Deleted legacy API error payload. |
| Legacy/src/main/java/com/infomaniak/core/legacy/models/Address.kt | Deleted legacy address model. |
| Legacy/src/main/java/com/infomaniak/core/legacy/InfomaniakCore.kt | Deleted legacy global configuration object. |
| Legacy/src/main/java/com/infomaniak/core/legacy/fdroidTools/FdroidRelease.kt | Deleted legacy FDroid DTO. |
| Legacy/src/main/java/com/infomaniak/core/legacy/fdroidTools/FdroidApiTools.kt | Deleted legacy FDroid API helper. |
| Legacy/src/main/java/com/infomaniak/core/legacy/auth/TokenInterceptorListener.kt | Deleted legacy token listener. |
| Legacy/src/main/java/com/infomaniak/core/legacy/auth/TokenInterceptor.kt | Deleted legacy token interceptor. |
| Legacy/src/main/java/com/infomaniak/core/legacy/auth/TokenAuthenticator.kt | Deleted legacy token authenticator. |
| Legacy/src/main/java/com/infomaniak/core/legacy/auth/CredentialManager.kt | Deleted legacy credential manager. |
| Legacy/src/main/java/com/infomaniak/core/legacy/api/InternalTranslatedErrorCode.kt | Deleted legacy internal error-code enum. |
| Legacy/src/main/java/com/infomaniak/core/legacy/api/ApiRoutesCore.kt | Deleted legacy core API routes helper. |
| Legacy/src/main/java/com/infomaniak/core/legacy/api/ApiRepositoryCore.kt | Deleted legacy API repository base class. |
| Legacy/src/main/java/com/infomaniak/core/legacy/api/ApiController.kt | Reduced to a temporary Json config singleton. |
| Legacy/src/androidTest/java/com/infomaniak/core/legacy/HttpUtilsTest.kt | Deleted Android test for removed HttpUtils. |
| Legacy/schemas/com.infomaniak.core.legacy.room.UserDatabase/5.json | Deleted legacy Room schema snapshot. |
| Legacy/schemas/com.infomaniak.core.legacy.room.UserDatabase/4.json | Deleted legacy Room schema snapshot. |
| Legacy/schemas/com.infomaniak.core.legacy.room.UserDatabase/3.json | Deleted legacy Room schema snapshot. |
| Legacy/schemas/com.infomaniak.core.legacy.room.UserDatabase/2.json | Deleted legacy Room schema snapshot. |
| Legacy/schemas/com.infomaniak.core.legacy.room.UserDatabase/1.json | Deleted legacy Room schema snapshot. |
| Legacy/build.gradle | Removed legacy-only dependencies and adjusted OkHttp dependency exposure. |
| gradle/core.versions.toml | Removed Coil2 version + library aliases from the version catalog. |
sirambd
approved these changes
Jul 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

I checked all the usages through our projects (GitHub hosted or not).
Apart from kDrive, which is getting its own PR, the only breaking changes just require to remove usages, with no replacement needed.