Skip to content

Commit cdf79d7

Browse files
authored
Restore view log code (#5294)
* Restore commented out code. Fix regression from #5253 * Format files. * Improve rendering of title of the folder view * Compute the content in the LaunchEffect
2 parents c90efdc + e3f7865 commit cdf79d7

File tree

7 files changed

+62
-30
lines changed

7 files changed

+62
-30
lines changed

features/invite/impl/src/main/kotlin/io/element/android/features/invite/impl/declineandblock/DeclineAndBlockPresenter.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ import kotlinx.coroutines.CoroutineScope
2929
import kotlinx.coroutines.launch
3030

3131
@Inject
32-
class DeclineAndBlockPresenter(
32+
class DeclineAndBlockPresenter(
3333
@Assisted private val inviteData: InviteData,
3434
private val declineInvite: DeclineInvite,
3535
private val snackbarDispatcher: SnackbarDispatcher,
36-
) : Presenter<DeclineAndBlockState> {
36+
) : Presenter<DeclineAndBlockState> {
3737
@AssistedFactory
3838
interface Factory {
3939
fun create(inviteData: InviteData): DeclineAndBlockPresenter
@@ -90,4 +90,4 @@ import kotlinx.coroutines.launch
9090
}
9191
}
9292
}
93-
}
93+
}

features/viewfolder/impl/src/main/kotlin/io/element/android/features/viewfolder/impl/folder/ViewFolderNode.kt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import io.element.android.libraries.architecture.inputs
2626
class ViewFolderNode(
2727
@Assisted buildContext: BuildContext,
2828
@Assisted plugins: List<Plugin>,
29-
// presenterFactory: ViewFolderPresenter.Factory,
29+
presenterFactory: ViewFolderPresenter.Factory,
3030
) : Node(buildContext, plugins = plugins) {
3131
data class Inputs(
3232
val canGoUp: Boolean,
@@ -40,10 +40,10 @@ class ViewFolderNode(
4040

4141
private val inputs: Inputs = inputs()
4242

43-
// private val presenter = presenterFactory.create(
44-
// canGoUp = inputs.canGoUp,
45-
// path = inputs.path,
46-
// )
43+
private val presenter = presenterFactory.create(
44+
canGoUp = inputs.canGoUp,
45+
path = inputs.path,
46+
)
4747

4848
private fun onBackClick() {
4949
plugins<Callback>().forEach { it.onBackClick() }
@@ -55,12 +55,12 @@ class ViewFolderNode(
5555

5656
@Composable
5757
override fun View(modifier: Modifier) {
58-
// val state = presenter.present()
59-
// ViewFolderView(
60-
// state = state,
61-
// modifier = modifier,
62-
// onNavigateTo = ::onNavigateTo,
63-
// onBackClick = ::onBackClick,
64-
// )
58+
val state = presenter.present()
59+
ViewFolderView(
60+
state = state,
61+
modifier = modifier,
62+
onNavigateTo = ::onNavigateTo,
63+
onBackClick = ::onBackClick,
64+
)
6565
}
6666
}

features/viewfolder/impl/src/main/kotlin/io/element/android/features/viewfolder/impl/folder/ViewFolderPresenter.kt

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,31 +18,42 @@ import dev.zacsweers.metro.AssistedFactory
1818
import dev.zacsweers.metro.Inject
1919
import io.element.android.features.viewfolder.impl.model.Item
2020
import io.element.android.libraries.architecture.Presenter
21-
import kotlinx.collections.immutable.toImmutableList
21+
import io.element.android.libraries.core.meta.BuildMeta
22+
import kotlinx.collections.immutable.persistentListOf
23+
import kotlinx.collections.immutable.toPersistentList
2224

2325
@Inject
24-
class ViewFolderPresenter(
26+
class ViewFolderPresenter(
2527
@Assisted val canGoUp: Boolean,
2628
@Assisted val path: String,
2729
private val folderExplorer: FolderExplorer,
28-
) : Presenter<ViewFolderState> {
30+
private val buildMeta: BuildMeta,
31+
) : Presenter<ViewFolderState> {
2932
@AssistedFactory
3033
interface Factory {
3134
fun create(canGoUp: Boolean, path: String): ViewFolderPresenter
3235
}
3336

3437
@Composable
3538
override fun present(): ViewFolderState {
36-
var content by remember { mutableStateOf(emptyList<Item>()) }
39+
var content by remember { mutableStateOf(persistentListOf<Item>()) }
40+
val title = remember {
41+
buildString {
42+
if (path.contains(buildMeta.applicationId)) {
43+
append("")
44+
}
45+
append(path.substringAfter(buildMeta.applicationId))
46+
}
47+
}
3748
LaunchedEffect(Unit) {
3849
content = buildList {
3950
if (canGoUp) add(Item.Parent)
4051
addAll(folderExplorer.getItems(path))
41-
}
52+
}.toPersistentList()
4253
}
4354
return ViewFolderState(
44-
path = path,
45-
content = content.toImmutableList(),
55+
title = title,
56+
content = content,
4657
)
4758
}
48-
}
59+
}

features/viewfolder/impl/src/main/kotlin/io/element/android/features/viewfolder/impl/folder/ViewFolderState.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ import io.element.android.features.viewfolder.impl.model.Item
1111
import kotlinx.collections.immutable.ImmutableList
1212

1313
data class ViewFolderState(
14-
val path: String,
14+
val title: String,
1515
val content: ImmutableList<Item>,
1616
)

features/viewfolder/impl/src/main/kotlin/io/element/android/features/viewfolder/impl/folder/ViewFolderStateProvider.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ open class ViewFolderStateProvider : PreviewParameterProvider<ViewFolderState> {
2626
}
2727

2828
fun aViewFolderState(
29-
path: String = "aPath",
29+
title: String = "aPath",
3030
content: List<Item> = emptyList(),
3131
) = ViewFolderState(
32-
path = path,
32+
title = title,
3333
content = content.toImmutableList(),
3434
)

features/viewfolder/impl/src/main/kotlin/io/element/android/features/viewfolder/impl/folder/ViewFolderView.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ fun ViewFolderView(
5353
navigationIcon = {
5454
BackButton(onClick = onBackClick)
5555
},
56-
titleStr = state.path,
56+
titleStr = state.title,
5757
)
5858
},
5959
content = { padding ->

features/viewfolder/impl/src/test/kotlin/io/element/android/features/viewfolder/test/folder/ViewFolderPresenterTest.kt

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@ import com.google.common.truth.Truth.assertThat
1414
import io.element.android.features.viewfolder.impl.folder.FolderExplorer
1515
import io.element.android.features.viewfolder.impl.folder.ViewFolderPresenter
1616
import io.element.android.features.viewfolder.impl.model.Item
17+
import io.element.android.libraries.core.meta.BuildMeta
18+
import io.element.android.libraries.matrix.test.core.aBuildMeta
1719
import io.element.android.tests.testutils.WarmUpRule
20+
import io.element.android.tests.testutils.test
1821
import kotlinx.coroutines.test.runTest
1922
import org.junit.Rule
2023
import org.junit.Test
@@ -30,11 +33,25 @@ class ViewFolderPresenterTest {
3033
presenter.present()
3134
}.test {
3235
val initialState = awaitItem()
33-
assertThat(initialState.path).isEqualTo("aPath")
36+
assertThat(initialState.title).isEqualTo("aPath")
3437
assertThat(initialState.content).isEmpty()
3538
}
3639
}
3740

41+
@Test
42+
fun `present - title is built regarding the applicationId`() = runTest {
43+
val presenter = createPresenter(
44+
path = "/data/user/O/appId/cache/logs",
45+
buildMeta = aBuildMeta(
46+
applicationId = "appId",
47+
)
48+
)
49+
presenter.test {
50+
val initialState = awaitItem()
51+
assertThat(initialState.title).isEqualTo("…/cache/logs")
52+
}
53+
}
54+
3855
@Test
3956
fun `present - list items from root`() = runTest {
4057
val items = listOf(
@@ -50,7 +67,7 @@ class ViewFolderPresenterTest {
5067
}.test {
5168
skipItems(1)
5269
val initialState = awaitItem()
53-
assertThat(initialState.path).isEqualTo("aPath")
70+
assertThat(initialState.title).isEqualTo("aPath")
5471
assertThat(initialState.content.toList()).isEqualTo(items)
5572
}
5673
}
@@ -73,7 +90,7 @@ class ViewFolderPresenterTest {
7390
}.test {
7491
skipItems(1)
7592
val initialState = awaitItem()
76-
assertThat(initialState.path).isEqualTo("aPath")
93+
assertThat(initialState.title).isEqualTo("aPath")
7794
assertThat(initialState.content.toList()).isEqualTo(listOf(Item.Parent) + items)
7895
}
7996
}
@@ -82,9 +99,13 @@ class ViewFolderPresenterTest {
8299
canGoUp: Boolean = false,
83100
path: String = "aPath",
84101
folderExplorer: FolderExplorer = FakeFolderExplorer(),
102+
buildMeta: BuildMeta = aBuildMeta(
103+
applicationId = "appId",
104+
),
85105
) = ViewFolderPresenter(
86106
path = path,
87107
canGoUp = canGoUp,
88108
folderExplorer = folderExplorer,
109+
buildMeta = buildMeta,
89110
)
90111
}

0 commit comments

Comments
 (0)