Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 4 additions & 4 deletions .github/workflows/build-develop-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@ jobs:
build-config: |
[
{
"flavor": "Dev",
"variant": "Debug",
"keystore-type": "debug",
"build-type": "apk",
"flavor": "Alpha",
"variant": "Compat",
"keystore-type": "internal",
"build-type": "both",
"generate-version-file": false,
"deployment-targets": [
{
Expand Down
18 changes: 12 additions & 6 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ plugins {
id(libs.plugins.wire.kover.get().pluginId)
id(libs.plugins.wire.versionizer.get().pluginId)
alias(libs.plugins.screenshot)
id(libs.plugins.wire.android.navigation.get().pluginId)
}

repositories {
Expand All @@ -66,6 +65,17 @@ private fun getFlavorsSettings(): NormalizedFlavorSettings =

android {
defaultConfig {
val navigationDiagnosticsEnabled = providers
.gradleProperty("wire.navigation.diagnostics")
.orNull
?.toBooleanStrictOrNull()
?: false
buildConfigField(
"boolean",
"NAVIGATION_DIAGNOSTICS_ENABLED",
navigationDiagnosticsEnabled.toString(),
)

ndk {
abiFilters.apply {
add("armeabi-v7a")
Expand Down Expand Up @@ -178,10 +188,6 @@ baselineProfile {
dexLayoutOptimization = true
}

ksp {
arg("compose-destinations.moduleName", "app")
}

// Skip AboutLibraries configuration when running lint to reduce memory usage
if (!project.hasProperty("skip.aboutlibraries")) {
aboutLibraries {
Expand All @@ -207,6 +213,7 @@ dependencies {
implementationWithCoverage(projects.core.media)
implementationWithCoverage(projects.core.mediaPlayer)
implementationWithCoverage(projects.core.notification)
implementationWithCoverage(projects.core.navigation)
implementationWithCoverage(projects.core.search)
implementationWithCoverage(projects.features.cells)
implementationWithCoverage(projects.features.sketch)
Expand Down Expand Up @@ -287,7 +294,6 @@ dependencies {

// smaller view models
implementation(libs.resaca.core)
implementation(libs.resaca.metro)
implementation(libs.metrox.viewModelCompose)
implementation(libs.bundlizer.core)

Expand Down
2 changes: 0 additions & 2 deletions app/proguard-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,6 @@
#-keepattributes RuntimeVisibleAnnotations,AnnotationDefault
#-keepattributes InnerClasses # Needed for `getDeclaredClasses`.

-keepnames class * extends com.ramcosta.composedestinations.spec.Route

# For JNA
-dontwarn java.awt.Component
-dontwarn java.awt.GraphicsEnvironment
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,10 @@ import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.onNodeWithText
import androidx.compose.ui.test.performClick
import androidx.compose.ui.test.performTextInput
import androidx.lifecycle.Lifecycle
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.rules.ActivityScenarioRule
import androidx.work.testing.WorkManagerTestInitHelper
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.ViewModelProvider
import co.touchlab.kermit.platformLogWriter
import com.wire.android.extensions.performClickWithNodeWithText
import com.wire.android.extensions.waitUntilExists
Expand Down Expand Up @@ -98,7 +97,7 @@ class WireActivityTest {
} returns SwitchAccountResult.NoOtherAccountToSwitch

composeTestRule.runOnIdle {
val viewModel = ViewModelProvider(composeTestRule.activity)[WireActivityViewModel::class.java]
val viewModel = composeTestRule.activity.viewModelForTest()
viewModel.setAccountSwitchForTest(accountSwitch)
viewModel.setGlobalAppStateForTest(
viewModel.globalAppState.copy(blockUserUI = CurrentSessionErrorState.RemovedClient)
Expand Down

This file was deleted.

5 changes: 5 additions & 0 deletions app/src/main/kotlin/com/wire/android/WireApplication.kt
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,15 @@
import com.wire.android.di.ApplicationScope
import com.wire.android.di.KaliumCoreLogic
import com.wire.android.di.metro.WireApplicationGraph
import com.wire.android.di.metro.WireViewModelDiagnostics
import com.wire.android.di.metro.createWireApplicationGraph
import com.wire.android.feature.analytics.AnonymousAnalyticsManager
import com.wire.android.feature.analytics.AnonymousAnalyticsManagerImpl
import com.wire.android.feature.analytics.AnonymousAnalyticsRecorderImpl
import com.wire.android.feature.analytics.globalAnalyticsManager
import com.wire.android.feature.analytics.model.AnalyticsEvent
import com.wire.android.feature.analytics.model.AnalyticsSettings
import com.wire.android.navigation.runtime.WireNavigationDiagnostics
import com.wire.android.util.AppNameUtil
import com.wire.android.util.CurrentScreenManager
import com.wire.android.util.DataDogLogger
Expand Down Expand Up @@ -128,6 +130,9 @@
appGraph.inject(this)
super.onCreate()
initializeMinimalLogging()
if (WireNavigationDiagnostics.enabled) {
WireViewModelDiagnostics.install(WireNavigationDiagnostics)

Check warning on line 134 in app/src/main/kotlin/com/wire/android/WireApplication.kt

View check run for this annotation

Codecov / codecov/patch

app/src/main/kotlin/com/wire/android/WireApplication.kt#L134

Added line #L134 was not covered by tests
}

enableStrictMode()

Expand Down
5 changes: 0 additions & 5 deletions app/src/main/kotlin/com/wire/android/di/AppModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ import com.wire.android.feature.analytics.AnonymousAnalyticsManagerImpl
import com.wire.android.mapper.MessageResourceProvider
import com.wire.android.ui.analytics.AnalyticsConfiguration
import com.wire.android.ui.debug.securityproviders.AppPathsProvider
import com.wire.android.ui.home.conversations.MessageSharedState
import com.wire.android.ui.home.messagecomposer.location.LocationPickerParameters
import com.wire.android.util.CurrentTimeProvider
import com.wire.android.util.GetMediaMetadataUseCase
Expand Down Expand Up @@ -129,10 +128,6 @@ object AppModule {
@Named("inAppImageViewerEnabled")
fun provideInAppImageViewerEnabled(): Boolean = BuildConfig.IN_APP_IMAGE_VIEWER_ENABLED

@Provides
@SingleIn(AppScope::class)
fun provideMessageSharedState(): MessageSharedState = MessageSharedState()

@Provides
fun provideGetMediaMetadataUseCase(): GetMediaMetadataUseCase = GetMediaMetadataUseCaseImpl()

Expand Down
35 changes: 0 additions & 35 deletions app/src/main/kotlin/com/wire/android/di/CoreLogicModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@ import com.wire.kalium.logic.feature.server.GetServerConfigUseCase
import com.wire.kalium.logic.feature.server.ServerConfigForAccountUseCase
import com.wire.kalium.logic.feature.server.GetTeamUrlUseCase
import com.wire.kalium.logic.feature.session.CurrentSessionFlowUseCase
import com.wire.kalium.logic.feature.session.CurrentSessionResult
import com.wire.kalium.logic.feature.session.CurrentSessionUseCase
import com.wire.kalium.logic.feature.session.DeleteSessionUseCase
import com.wire.kalium.logic.feature.session.DoesValidNomadAccountExistUseCase
Expand Down Expand Up @@ -94,8 +93,6 @@ import com.wire.kalium.logic.util.RandomPassword
import com.wire.kalium.network.NetworkStateObserver
import dev.zacsweers.metro.BindingContainer
import dev.zacsweers.metro.Provides
import dev.zacsweers.metro.Inject
import kotlinx.coroutines.runBlocking
import dev.zacsweers.metro.Qualifier
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.SingleIn
Expand All @@ -112,18 +109,6 @@ annotation class NoSession
@Retention(AnnotationRetention.BINARY)
annotation class DefaultWebSocketEnabledByDefault

@SingleIn(AppScope::class)
class LastKnownCurrentAccount @Inject constructor() {
@Volatile
private var userId: UserId? = null

fun update(userId: UserId) {
this.userId = userId
}

fun get(): UserId? = userId
}

@BindingContainer
class CoreLogicModule {

Expand Down Expand Up @@ -200,26 +185,6 @@ class CoreLogicModule {

@BindingContainer
class SessionModule {
// TODO: remove this fallback once root/auth ViewModel graphs no longer include session ViewModel bindings.

@CurrentAccount
@Provides
fun provideCurrentSession(
@KaliumCoreLogic coreLogic: CoreLogic,
lastKnownCurrentAccount: LastKnownCurrentAccount,
): UserId {
return runBlocking {
return@runBlocking when (val result = coreLogic.getGlobalScope().session.currentSession.invoke()) {
is CurrentSessionResult.Success -> result.accountInfo.userId.also(lastKnownCurrentAccount::update)
else -> {
// During logout, Compose may still dispose/move old session content and ask the root factory for
// account-scoped dependencies after Kalium has already cleared the current session.
lastKnownCurrentAccount.get() ?: throw IllegalStateException("no current session was found")
}
}
}
}

@Provides
fun provideCurrentAccountUserDataStore(
@CurrentAccount currentAccount: UserId,
Expand Down
Loading
Loading