Browse Source

Rebase on develop and refactoring

pull/1037/head
yostyle 1 year ago
parent
commit
69905afbd9
  1. 1
      features/analytics/api/src/main/kotlin/io/element/android/features/analytics/api/preferences/AnalyticsPreferencesState.kt
  2. 12
      features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/PreferencesFlowNode.kt
  3. 16
      features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/notifications/NotificationSettingsNode.kt
  4. 6
      features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/notifications/NotificationSettingsPresenter.kt
  5. 2
      features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/notifications/NotificationSettingsState.kt
  6. 8
      features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/notifications/NotificationSettingsStateProvider.kt
  7. 12
      features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/notifications/NotificationSettingsView.kt
  8. 2
      features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/root/PreferencesRootNode.kt
  9. 2
      features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/root/PreferencesRootView.kt
  10. 2
      features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/tasks/ComputeCacheSizeUseCase.kt

1
features/analytics/api/src/main/kotlin/io/element/android/features/analytics/api/preferences/AnalyticsPreferencesState.kt

@ -21,4 +21,5 @@ import io.element.android.features.analytics.api.AnalyticsOptInEvents
data class AnalyticsPreferencesState( data class AnalyticsPreferencesState(
val applicationName: String, val applicationName: String,
val isEnabled: Boolean, val isEnabled: Boolean,
val eventSink: (AnalyticsOptInEvents) -> Unit,
) )

12
features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/PreferencesFlowNode.kt

@ -33,7 +33,7 @@ import io.element.android.features.preferences.api.PreferencesEntryPoint
import io.element.android.features.preferences.impl.about.AboutNode import io.element.android.features.preferences.impl.about.AboutNode
import io.element.android.features.preferences.impl.analytics.AnalyticsSettingsNode import io.element.android.features.preferences.impl.analytics.AnalyticsSettingsNode
import io.element.android.features.preferences.impl.developer.DeveloperSettingsNode import io.element.android.features.preferences.impl.developer.DeveloperSettingsNode
import io.element.android.features.preferences.impl.notifications.NotificationsSettingsNode import io.element.android.features.preferences.impl.notifications.NotificationSettingsNode
import io.element.android.features.preferences.impl.root.PreferencesRootNode import io.element.android.features.preferences.impl.root.PreferencesRootNode
import io.element.android.libraries.architecture.BackstackNode import io.element.android.libraries.architecture.BackstackNode
import io.element.android.libraries.architecture.animation.rememberDefaultTransitionHandler import io.element.android.libraries.architecture.animation.rememberDefaultTransitionHandler
@ -68,7 +68,7 @@ class PreferencesFlowNode @AssistedInject constructor(
object About : NavTarget object About : NavTarget
@Parcelize @Parcelize
object NotificationsSettings : NavTarget object NotificationSettings : NavTarget
} }
override fun resolve(navTarget: NavTarget, buildContext: BuildContext): Node { override fun resolve(navTarget: NavTarget, buildContext: BuildContext): Node {
@ -95,8 +95,8 @@ class PreferencesFlowNode @AssistedInject constructor(
backstack.push(NavTarget.DeveloperSettings) backstack.push(NavTarget.DeveloperSettings)
} }
override fun onOpenNotificationsSettings() { override fun onOpenNotificationSettings() {
backstack.push(NavTarget.NotificationsSettings) backstack.push(NavTarget.NotificationSettings)
} }
} }
createNode<PreferencesRootNode>(buildContext, plugins = listOf(callback)) createNode<PreferencesRootNode>(buildContext, plugins = listOf(callback))
@ -110,8 +110,8 @@ class PreferencesFlowNode @AssistedInject constructor(
NavTarget.AnalyticsSettings -> { NavTarget.AnalyticsSettings -> {
createNode<AnalyticsSettingsNode>(buildContext) createNode<AnalyticsSettingsNode>(buildContext)
} }
NavTarget.NotificationsSettings -> { NavTarget.NotificationSettings -> {
createNode<NotificationsSettingsNode>(buildContext) createNode<NotificationSettingsNode>(buildContext)
} }
} }
} }

16
features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/notifications/NotificationsSettingsNode.kt → features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/notifications/NotificationSettingsNode.kt

@ -16,6 +16,8 @@
package io.element.android.features.preferences.impl.notifications package io.element.android.features.preferences.impl.notifications
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import com.bumble.appyx.core.modality.BuildContext import com.bumble.appyx.core.modality.BuildContext
import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.Node
import com.bumble.appyx.core.plugin.Plugin import com.bumble.appyx.core.plugin.Plugin
@ -25,10 +27,18 @@ import io.element.android.anvilannotations.ContributesNode
import io.element.android.libraries.di.SessionScope import io.element.android.libraries.di.SessionScope
@ContributesNode(SessionScope::class) @ContributesNode(SessionScope::class)
class NotificationsSettingsNode @AssistedInject constructor( class NotificationSettingsNode @AssistedInject constructor(
@Assisted buildContext: BuildContext, @Assisted buildContext: BuildContext,
@Assisted plugins: List<Plugin>, @Assisted plugins: List<Plugin>,
private val presenter: NotificationsSettingsPresenter, private val presenter: NotificationSettingsPresenter,
) : Node(buildContext, plugins = plugins) { ) : Node(buildContext, plugins = plugins) {
@Composable
override fun View(modifier: Modifier) {
val state = presenter.present()
NotificationSettingsView(
state = state,
onBackPressed = ::navigateUp,
modifier = modifier
)
}
} }

6
features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/notifications/NotificationsSettingsPresenter.kt → features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/notifications/NotificationSettingsPresenter.kt

@ -20,11 +20,11 @@ import androidx.compose.runtime.Composable
import io.element.android.libraries.architecture.Presenter import io.element.android.libraries.architecture.Presenter
import javax.inject.Inject import javax.inject.Inject
class NotificationsSettingsPresenter @Inject constructor() : Presenter<NotificationsSettingsState> { class NotificationSettingsPresenter @Inject constructor() : Presenter<NotificationSettingsState> {
@Composable @Composable
override fun present(): NotificationsSettingsState { override fun present(): NotificationSettingsState {
return NotificationsSettingsState( return NotificationSettingsState(
isEnabled = true, isEnabled = true,
hasSystemPermission = true, hasSystemPermission = true,
notifyMeOnRoom = true, notifyMeOnRoom = true,

2
features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/notifications/NotificationsSettingsState.kt → features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/notifications/NotificationSettingsState.kt

@ -16,7 +16,7 @@
package io.element.android.features.preferences.impl.notifications package io.element.android.features.preferences.impl.notifications
data class NotificationsSettingsState( data class NotificationSettingsState(
val hasSystemPermission: Boolean, val hasSystemPermission: Boolean,
val isEnabled: Boolean, val isEnabled: Boolean,
val notifyMeOnRoom: Boolean, val notifyMeOnRoom: Boolean,

8
features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/notifications/NotificationsSettingsStateProvider.kt → features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/notifications/NotificationSettingsStateProvider.kt

@ -18,14 +18,14 @@ package io.element.android.features.preferences.impl.notifications
import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.tooling.preview.PreviewParameterProvider
open class NotificationsSettingsStateProvider : PreviewParameterProvider<NotificationsSettingsState> { open class NotificationSettingsStateProvider : PreviewParameterProvider<NotificationSettingsState> {
override val values: Sequence<NotificationsSettingsState> override val values: Sequence<NotificationSettingsState>
get() = sequenceOf( get() = sequenceOf(
aNotificationsSettingsState(), aNotificationSettingsState(),
) )
} }
fun aNotificationsSettingsState() = NotificationsSettingsState( fun aNotificationSettingsState() = NotificationSettingsState(
isEnabled = true, isEnabled = true,
hasSystemPermission = false, hasSystemPermission = false,
notifyMeOnRoom = true, notifyMeOnRoom = true,

12
features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/notifications/NotificationsSettingsView.kt → features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/notifications/NotificationSettingsView.kt

@ -33,8 +33,8 @@ import io.element.android.libraries.designsystem.preview.ElementPreviewLight
import io.element.android.libraries.ui.strings.CommonStrings import io.element.android.libraries.ui.strings.CommonStrings
@Composable @Composable
fun NotificationsSettingsView( fun NotificationSettingsView(
state: NotificationsSettingsState, state: NotificationSettingsState,
onBackPressed: () -> Unit, onBackPressed: () -> Unit,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
) { ) {
@ -100,17 +100,17 @@ fun NotificationsSettingsView(
@Preview @Preview
@Composable @Composable
internal fun AboutViewLightPreview(@PreviewParameter(NotificationsSettingsStateProvider::class) state: NotificationsSettingsState) = internal fun AboutViewLightPreview(@PreviewParameter(NotificationSettingsStateProvider::class) state: NotificationSettingsState) =
ElementPreviewLight { ContentToPreview(state) } ElementPreviewLight { ContentToPreview(state) }
@Preview @Preview
@Composable @Composable
internal fun AboutViewDarkPreview(@PreviewParameter(NotificationsSettingsStateProvider::class) state: NotificationsSettingsState) = internal fun AboutViewDarkPreview(@PreviewParameter(NotificationSettingsStateProvider::class) state: NotificationSettingsState) =
ElementPreviewDark { ContentToPreview(state) } ElementPreviewDark { ContentToPreview(state) }
@Composable @Composable
private fun ContentToPreview(state: NotificationsSettingsState) { private fun ContentToPreview(state: NotificationSettingsState) {
NotificationsSettingsView( NotificationSettingsView(
state = state, state = state,
onBackPressed = {}, onBackPressed = {},
) )

2
features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/root/PreferencesRootNode.kt

@ -44,7 +44,7 @@ class PreferencesRootNode @AssistedInject constructor(
fun onOpenAnalytics() fun onOpenAnalytics()
fun onOpenAbout() fun onOpenAbout()
fun onOpenDeveloperSettings() fun onOpenDeveloperSettings()
fun onOpenNotificationsSettings() fun onOpenNotificationSettings()
} }
private fun onOpenBugReport() { private fun onOpenBugReport() {

2
features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/root/PreferencesRootView.kt

@ -97,7 +97,7 @@ fun PreferencesRootView(
PreferenceText( PreferenceText(
title = stringResource(id = CommonStrings.screen_notification_settings_title), title = stringResource(id = CommonStrings.screen_notification_settings_title),
icon = Icons.Outlined.Notifications, icon = Icons.Outlined.Notifications,
onClick = onOpenNotificationsSettings, onClick = onOpenNotificationSettings,
) )
PreferenceText( PreferenceText(
title = stringResource(id = CommonStrings.action_report_bug), title = stringResource(id = CommonStrings.action_report_bug),

2
features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/tasks/ComputeCacheSizeUseCase.kt

@ -18,8 +18,8 @@ package io.element.android.features.preferences.impl.tasks
import android.content.Context import android.content.Context
import com.squareup.anvil.annotations.ContributesBinding import com.squareup.anvil.annotations.ContributesBinding
import io.element.android.libraries.androidutils.filesize.FileSizeFormatter
import io.element.android.libraries.androidutils.file.getSizeOfFiles import io.element.android.libraries.androidutils.file.getSizeOfFiles
import io.element.android.libraries.androidutils.filesize.FileSizeFormatter
import io.element.android.libraries.core.coroutine.CoroutineDispatchers import io.element.android.libraries.core.coroutine.CoroutineDispatchers
import io.element.android.libraries.di.ApplicationContext import io.element.android.libraries.di.ApplicationContext
import io.element.android.libraries.di.SessionScope import io.element.android.libraries.di.SessionScope

Loading…
Cancel
Save