Skip to content

Introduce feature module daita#9767

Merged
Rawa merged 2 commits intomainfrom
feature-module-daita
Feb 9, 2026
Merged

Introduce feature module daita#9767
Rawa merged 2 commits intomainfrom
feature-module-daita

Conversation

@Rawa
Copy link
Collaborator

@Rawa Rawa commented Feb 5, 2026


This change is Reviewable

@Rawa Rawa force-pushed the feature-module-daita branch from c9a8a77 to 53b4b10 Compare February 5, 2026 12:07
@Pururun Pururun added the Android Issues related to Android label Feb 5, 2026
Copy link
Contributor

@Pururun Pururun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Pururun partially reviewed 204 files and all commit messages, and made 12 comments.
Reviewable status: all files reviewed, 12 unresolved discussions (waiting on @Rawa).


android/gradle/libs.versions.toml line 74 at r1 (raw file):

turbine = "1.2.1"
annotation-jvm = "1.9.1"
junit-version = "4.13.2"

Do we need to add junit4?


android/gradle/libs.versions.toml line 170 at r1 (raw file):

protobuf-kotlin-lite = { module = "com.google.protobuf:protobuf-kotlin-lite", version.ref = "protobuf" }
turbine = { module = "app.cash.turbine:turbine", version.ref = "turbine" }
junit = { group = "junit", name = "junit", version.ref = "junit-version" }

See above


android/gradle/libs.versions.toml line 171 at r1 (raw file):

turbine = { module = "app.cash.turbine:turbine", version.ref = "turbine" }
junit = { group = "junit", name = "junit", version.ref = "junit-version" }
material = { group = "com.google.android.material", name = "material", version.ref = "material" }

Do we need to use ordinary material since we have material3?


android/lib/navigation/src/main/java/net/mullvad/mullvadvpn/core/animation/SlideInFromRightTransition.kt line 26 at r2 (raw file):

        AnimatedContentTransitionScope<NavBackStackEntry>.() -> ExitTransition =
        {
            ExitTransition.Companion.None

Remove companion


android/gradle/build-logic/src/main/kotlin/AndroidLibraryFeatureImplPlugin.kt line 27 at r2 (raw file):

                                // Fixes packaging error caused by:
                                // androidx.compose.ui:ui-test-junit4
                                "META-INF/AL2.0",

Probably don't need all of them


android/lib/navigation/src/test/java/net/mullvad/mullvadvpn/core/ExampleUnitTest.kt line 11 at r2 (raw file):

 * See [testing documentation](http://d.android.com/tools/testing).
 */
class ExampleUnitTest {

Remove file


android/lib/feature/daita/impl/build.gradle.kts line 16 at r2 (raw file):

}

junitPlatform {

This could maybe be moved into the compose plugin. (Memory note)


android/lib/navigation/.gitignore line 1 at r1 (raw file):

/build

Newline, maybe remove


android/lib/screen-test/.gitignore line 1 at r2 (raw file):

/build

Remove?


android/lib/navigation/src/androidTest/java/net/mullvad/mullvadvpn/core/ExampleInstrumentedTest.kt line 15 at r2 (raw file):

 */
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {

Remove file


android/lib/feature/daita/impl/src/main/java/net/mullvad/mullvadvpn/feature/daita/impl/DaitaScreen.kt line 3 at r2 (raw file):

package net.mullvad.mullvadvpn.feature.daita.impl

// import

Remove


android/lib/feature/daita/impl/src/androidTest/java/net/mullvad/mullvadvpn/feature/daita/impl/DaitaScreenTest.kt line 27 at r2 (raw file):

    private fun ComposeContext.initScreen(
        state: Lc<Boolean, DaitaUiState> =
            DaitaUiState(daitaEnabled = false, directOnly = false).toLc(),

Loading should probably be loading state

@Pururun
Copy link
Contributor

Pururun commented Feb 5, 2026

Tests in the feature module are not run on CI, we should look into a scalable way to do this.

Copy link
Contributor

@Pururun Pururun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Pururun made 10 comments and resolved 10 discussions.
Reviewable status: all files reviewed, 2 unresolved discussions (waiting on @Rawa).


android/gradle/libs.versions.toml line 74 at r1 (raw file):

Previously, Pururun (Jonatan Rhodin) wrote…

Do we need to add junit4?

Fixed


android/gradle/libs.versions.toml line 170 at r1 (raw file):

Previously, Pururun (Jonatan Rhodin) wrote…

See above

Fixed


android/gradle/libs.versions.toml line 171 at r1 (raw file):

Previously, Pururun (Jonatan Rhodin) wrote…

Do we need to use ordinary material since we have material3?

Fixed


android/gradle/build-logic/src/main/kotlin/AndroidLibraryFeatureImplPlugin.kt line 27 at r2 (raw file):

Previously, Pururun (Jonatan Rhodin) wrote…

Probably don't need all of them

Fixed


android/lib/feature/daita/impl/src/androidTest/java/net/mullvad/mullvadvpn/feature/daita/impl/DaitaScreenTest.kt line 27 at r2 (raw file):

Previously, Pururun (Jonatan Rhodin) wrote…

Loading should probably be loading state

Fixed


android/lib/navigation/.gitignore line 1 at r1 (raw file):

Previously, Pururun (Jonatan Rhodin) wrote…

Newline, maybe remove

Fixed


android/lib/navigation/src/androidTest/java/net/mullvad/mullvadvpn/core/ExampleInstrumentedTest.kt line 15 at r2 (raw file):

Previously, Pururun (Jonatan Rhodin) wrote…

Remove file

Fixed


android/lib/navigation/src/test/java/net/mullvad/mullvadvpn/core/ExampleUnitTest.kt line 11 at r2 (raw file):

Previously, Pururun (Jonatan Rhodin) wrote…

Remove file

Fixed


android/lib/feature/daita/impl/src/main/java/net/mullvad/mullvadvpn/feature/daita/impl/DaitaScreen.kt line 3 at r2 (raw file):

Previously, Pururun (Jonatan Rhodin) wrote…

Remove

Fixed


android/lib/navigation/src/main/java/net/mullvad/mullvadvpn/core/animation/SlideInFromRightTransition.kt line 26 at r2 (raw file):

Previously, Pururun (Jonatan Rhodin) wrote…

Remove companion

Fixed

Copy link
Contributor

@Pururun Pururun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Pururun partially reviewed 9 files and all commit messages, made 1 comment, and resolved 1 discussion.
Reviewable status: all files reviewed, 1 unresolved discussion (waiting on @Rawa).


android/lib/screen-test/.gitignore line 1 at r2 (raw file):

Previously, Pururun (Jonatan Rhodin) wrote…

Remove?

Done

@Rawa Rawa force-pushed the feature-module-daita branch 4 times, most recently from 1f648f2 to b79db4e Compare February 6, 2026 11:30
Copy link
Contributor

@Pururun Pururun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Pururun partially reviewed 56 files and all commit messages, and resolved 1 discussion.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved.

Copy link
Collaborator Author

@Rawa Rawa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Rawa reviewed 189 files and all commit messages, and made 2 comments.
Reviewable status: all files reviewed, 2 unresolved discussions.


android/gradle/libs.versions.toml line 194 at r6 (raw file):

mullvad-android-library-feature-impl = { id = "mullvad.android-library-feature-impl" }
mullvad-android-library-compose = { id = "mullvad.android-library-compose" }
mullvad-android-library-unit-test = { id = "mullvad.android-library-unit-test" }

Is this still dependent on Android Library? If so fix app otherwise adjust name


android/gradle/build-logic/src/main/kotlin/MullvadUnitTestPlugin.kt line 8 at r6 (raw file):

import utilities.libs

class MullvadUnitTestPlugin : Plugin<Project> {

Remove mullvad from name

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request introduces a new "daita" feature module and performs significant refactoring of the Android build configuration and codebase structure.

Changes:

  • Introduces a new feature module architecture with lib/feature/daita/impl
  • Refactors build configuration to use convention plugins instead of inline gradle scripts
  • Migrates utility classes from net.mullvad.mullvadvpn.util to net.mullvad.mullvadvpn.lib.common
  • Creates new shared modules for navigation and screen testing
  • Updates navigation graph from RootGraph to MainGraph with external module support

Reviewed changes

Copilot reviewed 233 out of 233 changed files in this pull request and generated no comments.

Show a summary per file
File Description
android/gradle/build-logic/* New convention plugins for library, compose, testing configurations
android/lib/feature/daita/impl/* New DAITA feature implementation with ViewModel, UI state, dialogs, and tests
android/lib/navigation/* New navigation utilities module
android/lib/screen-test/* New shared test utilities module
android/lib/common/* Package refactoring for Lc/Lce utilities
android/app/* Navigation graph updates and import fixes
Multiple build.gradle.kts Migration to convention plugins

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Pururun Pururun force-pushed the feature-module-daita branch from 0f0f1ea to 46ec3e2 Compare February 6, 2026 22:49
Rawa added 2 commits February 9, 2026 09:19
Add new DAITA feature module along with convention plugins for:
- New features
- Unit tests
- Instrumented tests

These makes it easier to get make a new feature module along with
simplifying the use of tests in submodules.
@Rawa Rawa force-pushed the feature-module-daita branch from 8de0327 to a68719d Compare February 9, 2026 08:21
@Rawa Rawa marked this pull request as ready for review February 9, 2026 08:21
Copy link
Contributor

@kl kl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kl partially reviewed 237 files and all commit messages.
Reviewable status: all files reviewed, 2 unresolved discussions.

@Rawa Rawa merged commit 410a2ad into main Feb 9, 2026
35 of 36 checks passed
@Rawa Rawa deleted the feature-module-daita branch February 9, 2026 08:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Android Issues related to Android

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants