diff --git a/CHANGELOG.md b/CHANGELOG.md index 531b563dc..421e7f563 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ All notable changes to this project will be documented in this file. ## UNRELEASED ### Added +*ui: Add new headline option for the payment options (APPS-1915) ### Changed ### Removed ### Fixed diff --git a/ui/src/main/java/io/snabble/sdk/ui/payment/PaymentOptionsFragment.kt b/ui/src/main/java/io/snabble/sdk/ui/payment/PaymentOptionsFragment.kt index 2ef01470c..e43c4a45d 100644 --- a/ui/src/main/java/io/snabble/sdk/ui/payment/PaymentOptionsFragment.kt +++ b/ui/src/main/java/io/snabble/sdk/ui/payment/PaymentOptionsFragment.kt @@ -1,9 +1,20 @@ package io.snabble.sdk.ui.payment +import android.os.Bundle +import android.view.View import io.snabble.sdk.ui.BaseFragment import io.snabble.sdk.ui.R open class PaymentOptionsFragment : BaseFragment( layoutResId = R.layout.snabble_fragment_payment_options, waitForProject = false -) \ No newline at end of file +) { + companion object { + const val ARG_PAYMENT_OPTIONS_HEADLINE = PaymentOptionsView.ARG_PAYMENT_OPTIONS_HEADLINE + } + + override fun onActualViewCreated(view: View, savedInstanceState: Bundle?) { + val v = view as PaymentOptionsView + arguments?.getString(ARG_PAYMENT_OPTIONS_HEADLINE)?.let { v.setHeadline(it) } + } +} diff --git a/ui/src/main/java/io/snabble/sdk/ui/payment/PaymentOptionsView.kt b/ui/src/main/java/io/snabble/sdk/ui/payment/PaymentOptionsView.kt index 3e790572a..c0812d1a9 100644 --- a/ui/src/main/java/io/snabble/sdk/ui/payment/PaymentOptionsView.kt +++ b/ui/src/main/java/io/snabble/sdk/ui/payment/PaymentOptionsView.kt @@ -9,6 +9,7 @@ import android.view.ViewGroup import android.widget.FrameLayout import android.widget.ImageView import android.widget.TextView +import androidx.core.view.isVisible import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.LifecycleOwner @@ -25,12 +26,15 @@ import io.snabble.sdk.ui.SnabbleUI import io.snabble.sdk.ui.utils.executeUiAction import io.snabble.sdk.ui.utils.getFragmentActivity import io.snabble.sdk.ui.utils.loadAsset -import kotlin.collections.set open class PaymentOptionsView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 ) : FrameLayout(context, attrs, defStyleAttr) { + companion object { + const val ARG_PAYMENT_OPTIONS_HEADLINE = "headline" + } + init { inflate(context, R.layout.snabble_payment_options, this) val recyclerView = findViewById(R.id.recycler_view) @@ -61,6 +65,13 @@ open class PaymentOptionsView @JvmOverloads constructor( }) } + fun setHeadline(headline: String) { + findViewById(R.id.headline).apply { + text = headline + isVisible = true + } + } + private fun getEntries(): List { val projects = Snabble.projects.filter { project -> project.availablePaymentMethods.count { it.isRequiringCredentials } > 0 diff --git a/ui/src/main/res/layout/snabble_payment_options.xml b/ui/src/main/res/layout/snabble_payment_options.xml index 1096ae44c..0150716ec 100644 --- a/ui/src/main/res/layout/snabble_payment_options.xml +++ b/ui/src/main/res/layout/snabble_payment_options.xml @@ -1,5 +1,21 @@ - \ No newline at end of file + android:layout_height="match_parent" + android:orientation="vertical"> + + + + +