Skip to content
Merged
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
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ class ModuleFeatureConventionPlugin : Plugin<Project> {

dependencies {
add("implementation", project(":infra:ui-base"))
add("implementation", project(":infra:core"))
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
package com.simprints.face.capture

import android.os.Bundle
import com.simprints.face.capture.screens.controller.FaceCaptureControllerFragmentArgs
import com.simprints.infra.config.store.models.FaceConfiguration

object FaceCaptureContract {
val DESTINATION = R.id.faceCaptureControllerFragment

fun getArgs(
fun getParams(
samplesToCapture: Int,
faceSDK: FaceConfiguration.BioSdk,
): Bundle = FaceCaptureControllerFragmentArgs(FaceCaptureParams(samplesToCapture, faceSDK)).toBundle()
) = FaceCaptureParams(samplesToCapture, faceSDK)
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
package com.simprints.face.capture

import android.os.Parcelable
import androidx.annotation.Keep
import com.simprints.core.domain.step.StepParams
import com.simprints.infra.config.store.models.FaceConfiguration
import kotlinx.parcelize.Parcelize

@Keep
@Parcelize
data class FaceCaptureParams(
val samplesToCapture: Int,
val faceSDK: FaceConfiguration.BioSdk,
) : Parcelable
) : StepParams
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
package com.simprints.face.capture

import androidx.annotation.Keep
import com.simprints.core.domain.step.StepResult
import com.simprints.infra.images.model.SecuredImageRef
import java.io.Serializable

@Keep
data class FaceCaptureResult(
val referenceId: String,
val results: List<Item>,
) : Serializable {
) : StepResult {
@Keep
data class Item(
val captureEventId: String?,
val index: Int,
val sample: Sample?,
) : Serializable
) : StepResult

@Keep
data class Sample(
val faceId: String,
val template: ByteArray,
val imageRef: SecuredImageRef?,
val format: String,
) : Serializable
) : StepResult
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.navigation.NavController
import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs
import com.simprints.core.livedata.LiveDataEventObserver
import com.simprints.core.livedata.LiveDataEventWithContentObserver
import com.simprints.face.capture.FaceCaptureParams
import com.simprints.face.capture.GraphFaceCaptureInternalDirections
import com.simprints.face.capture.R
import com.simprints.face.capture.screens.FaceCaptureViewModel
Expand All @@ -22,11 +22,12 @@ import com.simprints.infra.logging.Simber
import com.simprints.infra.uibase.navigation.finishWithResult
import com.simprints.infra.uibase.navigation.handleResult
import com.simprints.infra.uibase.navigation.navigateSafely
import com.simprints.infra.uibase.navigation.navigationParams
import dagger.hilt.android.AndroidEntryPoint

@AndroidEntryPoint
internal class FaceCaptureControllerFragment : Fragment(R.layout.fragment_face_capture) {
private val args: FaceCaptureControllerFragmentArgs by navArgs()
private val params: FaceCaptureParams by navigationParams()

private val viewModel: FaceCaptureViewModel by activityViewModels()

Expand Down Expand Up @@ -71,7 +72,7 @@ internal class FaceCaptureControllerFragment : Fragment(R.layout.fragment_face_c
findNavController().finishWithResult(this, result)
}

viewModel.setupCapture(args.params.samplesToCapture)
viewModel.setupCapture(params.samplesToCapture)
initFaceBioSdk()
viewModel.recaptureEvent.observe(
viewLifecycleOwner,
Expand Down Expand Up @@ -147,6 +148,6 @@ internal class FaceCaptureControllerFragment : Fragment(R.layout.fragment_face_c
InvalidFaceLicenseAlert.toAlertArgs(),
)
}
viewModel.initFaceBioSdk(requireActivity(), args.params.faceSDK)
viewModel.initFaceBioSdk(requireActivity(), params.faceSDK)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
android:label="FaceCaptureController">
<argument
android:name="params"
app:argType="com.simprints.face.capture.FaceCaptureParams" />
app:argType="com.simprints.core.domain.step.StepParams"/>
</fragment>

<include app:graph="@navigation/graph_alert" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import com.simprints.core.domain.response.AppErrorReason
import com.simprints.feature.alert.config.AlertButtonConfig
import com.simprints.feature.alert.config.AlertColor
import com.simprints.feature.alert.config.AlertConfiguration
import com.simprints.feature.alert.screen.AlertFragmentArgs
import com.simprints.infra.events.event.domain.models.AlertScreenEvent
import com.simprints.infra.uibase.navigation.toBundle
import com.simprints.infra.resources.R as IDR

data class AlertConfigurationBuilder(
Expand Down Expand Up @@ -40,23 +40,22 @@ data class AlertConfigurationBuilder(
* appErrorReason - Error code that will be returned in app result if the alert is terminal, default - null
* eventType - Event type to be logged on alert opening, default - nothing
* ```
* ```
*/
fun alertConfiguration(block: AlertConfigurationBuilder.() -> Unit) = AlertConfigurationBuilder().apply(block)

fun AlertConfigurationBuilder.toArgs() = AlertFragmentArgs(
AlertConfiguration(
color = this.color,
title = this.title,
titleRes = this.titleRes,
image = this.image,
message = this.message,
messageRes = this.messageRes,
messageIcon = this.messageIcon,
leftButton = this.leftButton,
rightButton = this.rightButton,
eventType = this.eventType,
appErrorReason = this.appErrorReason,
),
fun AlertConfigurationBuilder.toArgs() = AlertConfiguration(
color = this.color,
title = this.title,
titleRes = this.titleRes,
image = this.image,
message = this.message,
messageRes = this.messageRes,
messageIcon = this.messageIcon,
leftButton = this.leftButton,
rightButton = this.rightButton,
eventType = this.eventType,
appErrorReason = this.appErrorReason,
).toBundle()
Comment thread
BurningAXE marked this conversation as resolved.

data class AlertButtonBuilder(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ package com.simprints.feature.alert

import androidx.annotation.Keep
import com.simprints.core.domain.response.AppErrorReason
import java.io.Serializable
import com.simprints.core.domain.step.StepResult

@Keep
data class AlertResult(
val buttonKey: String,
val appErrorReason: AppErrorReason? = null,
) : Serializable
) : StepResult
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
package com.simprints.feature.alert.config

import android.os.Parcelable
import androidx.annotation.Keep
import androidx.annotation.StringRes
import com.simprints.feature.alert.AlertContract
import kotlinx.parcelize.Parcelize
import java.io.Serializable
import com.simprints.infra.resources.R as IDR

@Keep
@Parcelize
data class AlertButtonConfig(
val text: String?,
@StringRes val textRes: Int?,
val resultKey: String?,
val closeOnClick: Boolean,
) : Parcelable {
) : Serializable {
companion object {
val Close = AlertButtonConfig(
text = null,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
package com.simprints.feature.alert.config

import android.os.Parcelable
import androidx.annotation.DrawableRes
import androidx.annotation.Keep
import androidx.annotation.StringRes
import com.simprints.core.domain.response.AppErrorReason
import com.simprints.core.domain.step.StepParams
import com.simprints.infra.events.event.domain.models.AlertScreenEvent
import kotlinx.parcelize.Parcelize

@Keep
@Parcelize
data class AlertConfiguration(
val color: AlertColor,
val title: String?,
Expand All @@ -22,4 +20,4 @@ data class AlertConfiguration(
val rightButton: AlertButtonConfig?,
val eventType: AlertScreenEvent.AlertScreenPayload.AlertScreenEventType?,
val appErrorReason: AppErrorReason? = null,
) : Parcelable
) : StepParams
Original file line number Diff line number Diff line change
Expand Up @@ -10,28 +10,29 @@ import androidx.core.view.isVisible
import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs
import com.simprints.core.domain.response.AppErrorReason
import com.simprints.feature.alert.AlertContract
import com.simprints.feature.alert.AlertResult
import com.simprints.feature.alert.R
import com.simprints.feature.alert.config.AlertButtonConfig
import com.simprints.feature.alert.config.AlertColor
import com.simprints.feature.alert.config.AlertConfiguration
import com.simprints.feature.alert.databinding.FragmentAlertBinding
import com.simprints.infra.logging.LoggingConstants.CrashReportTag.ALERT
import com.simprints.infra.logging.LoggingConstants.CrashReportTag.ORCHESTRATION
import com.simprints.infra.logging.Simber
import com.simprints.infra.uibase.view.applySystemBarInsets
import com.simprints.infra.uibase.navigation.navigationParams
import com.simprints.infra.uibase.navigation.setResult
import com.simprints.infra.uibase.system.Clipboard
import com.simprints.infra.uibase.view.applySystemBarInsets
import com.simprints.infra.uibase.view.setTextWithFallbacks
import com.simprints.infra.uibase.viewbinding.viewBinding
import dagger.hilt.android.AndroidEntryPoint
import com.simprints.infra.resources.R as IDR

@AndroidEntryPoint
internal class AlertFragment : Fragment(R.layout.fragment_alert) {
private val args: AlertFragmentArgs by navArgs()
private val config: AlertConfiguration by navigationParams()
private val vm by viewModels<AlertViewModel>()
private val binding by viewBinding(FragmentAlertBinding::bind)

Expand All @@ -43,7 +44,6 @@ internal class AlertFragment : Fragment(R.layout.fragment_alert) {
applySystemBarInsets(view)
Simber.i("AlertFragment started", tag = ORCHESTRATION)

val config = args.alertConfiguration
Simber.i("Alert reason: ${config.appErrorReason}", tag = ALERT)

binding.root.setBackgroundColor(
Expand All @@ -62,14 +62,15 @@ internal class AlertFragment : Fragment(R.layout.fragment_alert) {

binding.alertImage.setImageResource(config.image)
binding.alertMessage.setTextWithFallbacks(config.message, config.messageRes)
if (config.messageIcon != null) {
binding.alertMessage.setCompoundDrawablesWithIntrinsicBounds(config.messageIcon, 0, 0, 0)

config.messageIcon?.let {
binding.alertMessage.setCompoundDrawablesWithIntrinsicBounds(it, 0, 0, 0)
}

binding.alertLeftButton.setupButton(config.leftButton, config.appErrorReason)
binding.alertRightButton.isVisible = config.rightButton != null
if (config.rightButton != null) {
binding.alertRightButton.setupButton(config.rightButton, config.appErrorReason)
config.rightButton?.let {
binding.alertRightButton.setupButton(it, config.appErrorReason)
}

requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner) {
Expand Down
4 changes: 2 additions & 2 deletions feature/alert/src/main/res/navigation/graph_alert.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
android:label="AlertFragment"
tools:layout="@layout/fragment_alert">
<argument
android:name="alertConfiguration"
app:argType="com.simprints.feature.alert.config.AlertConfiguration" />
android:name="param"
app:argType="com.simprints.core.domain.step.StepParams" />
</fragment>

</navigation>
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
package com.simprints.feature.consent

import com.simprints.feature.consent.screens.consent.ConsentFragmentArgs

object ConsentContract {
val DESTINATION = R.id.consentFragment

fun getArgs(type: ConsentType) = ConsentFragmentArgs(type).toBundle()
fun getParams(type: ConsentType) = ConsentParams(type)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.simprints.feature.consent

import androidx.annotation.Keep
import com.simprints.core.domain.step.StepParams

@Keep
data class ConsentParams(
val type: ConsentType,
) : StepParams
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.simprints.feature.consent

import androidx.annotation.Keep
import java.io.Serializable
import com.simprints.core.domain.step.StepResult

@Keep
data class ConsentResult(
val accepted: Boolean,
) : Serializable
) : StepResult
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,28 @@ import androidx.core.view.isVisible
import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs
import com.google.android.material.tabs.TabLayout
import com.simprints.core.livedata.LiveDataEventObserver
import com.simprints.feature.consent.ConsentParams
import com.simprints.feature.consent.R
import com.simprints.feature.consent.databinding.FragmentConsentBinding
import com.simprints.feature.exitform.ExitFormContract
import com.simprints.feature.exitform.ExitFormResult
import com.simprints.infra.logging.LoggingConstants.CrashReportTag.ORCHESTRATION
import com.simprints.infra.logging.Simber
import com.simprints.infra.uibase.view.applySystemBarInsets
import com.simprints.infra.uibase.listeners.OnTabSelectedListener
import com.simprints.infra.uibase.navigation.finishWithResult
import com.simprints.infra.uibase.navigation.handleResult
import com.simprints.infra.uibase.navigation.navigateSafely
import com.simprints.infra.uibase.navigation.navigationParams
import com.simprints.infra.uibase.view.applySystemBarInsets
import com.simprints.infra.uibase.viewbinding.viewBinding
import dagger.hilt.android.AndroidEntryPoint
import com.simprints.infra.resources.R as IDR

@AndroidEntryPoint
internal class ConsentFragment : Fragment(R.layout.fragment_consent) {
private val args by navArgs<ConsentFragmentArgs>()
private val args: ConsentParams by navigationParams()
private val binding by viewBinding(FragmentConsentBinding::bind)
private val viewModel by viewModels<ConsentViewModel>()

Expand All @@ -53,7 +54,7 @@ internal class ConsentFragment : Fragment(R.layout.fragment_consent) {
ExitFormContract.DESTINATION,
) { viewModel.handleExitFormResponse(it) }

viewModel.loadConfiguration(args.consentType)
viewModel.loadConfiguration(args.type)
}

private fun handleClicks() {
Expand Down
4 changes: 2 additions & 2 deletions feature/consent/src/main/res/navigation/graph_consent.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
android:label="ConsentFragment"
tools:layout="@layout/fragment_consent">
<argument
android:name="consentType"
app:argType="com.simprints.feature.consent.ConsentType" />
android:name="params"
app:argType="com.simprints.core.domain.step.StepParams"/>

<action
android:id="@+id/action_consentFragment_to_privacyNoticeFragment"
Expand Down
Loading
Loading