11package io.snabble.sdk.ui.payment
22
33import android.content.Context
4- import android.graphics.Rect
54import android.os.Bundle
65import android.util.AttributeSet
76import android.view.LayoutInflater
@@ -10,6 +9,7 @@ import android.view.ViewGroup
109import android.widget.FrameLayout
1110import android.widget.ImageView
1211import android.widget.TextView
12+ import androidx.appcompat.app.AlertDialog
1313import androidx.fragment.app.FragmentActivity
1414import androidx.lifecycle.Lifecycle
1515import androidx.lifecycle.LifecycleObserver
@@ -23,10 +23,7 @@ import io.snabble.sdk.payment.PaymentCredentials
2323import io.snabble.sdk.payment.PaymentCredentialsStore
2424import io.snabble.sdk.ui.R
2525import io.snabble.sdk.ui.SnabbleUI
26- import io.snabble.sdk.ui.utils.UIUtils
27- import io.snabble.sdk.ui.utils.executeUiAction
28- import io.snabble.sdk.ui.utils.getFragmentActivity
29- import io.snabble.sdk.ui.utils.loadAsset
26+ import io.snabble.sdk.ui.utils.*
3027import java.util.*
3128import kotlin.collections.ArrayList
3229import kotlin.collections.HashMap
@@ -100,7 +97,15 @@ open class PaymentOptionsView @JvmOverloads constructor(
10097 args.putSerializable(PaymentCredentialsListView .ARG_PAYMENT_TYPE , PaymentCredentials .Type .SEPA )
10198 executeUiAction(SnabbleUI .Action .SHOW_PAYMENT_CREDENTIALS_LIST , args)
10299 } else {
103- executeUiAction(SnabbleUI .Action .SHOW_SEPA_CARD_INPUT )
100+ if (KeyguardUtils .isDeviceSecure()) {
101+ executeUiAction(SnabbleUI .Action .SHOW_SEPA_CARD_INPUT )
102+ } else {
103+ AlertDialog .Builder (context)
104+ .setMessage(R .string.Snabble_Keyguard_requireScreenLock )
105+ .setPositiveButton(R .string.Snabble_OK , null )
106+ .setCancelable(false )
107+ .show()
108+ }
104109 }
105110 }
106111 )
@@ -124,7 +129,15 @@ open class PaymentOptionsView @JvmOverloads constructor(
124129 args.putSerializable(PaymentCredentialsListView .ARG_PAYMENT_TYPE , PaymentCredentials .Type .PAYDIREKT )
125130 executeUiAction(SnabbleUI .Action .SHOW_PAYMENT_CREDENTIALS_LIST , args)
126131 } else {
127- executeUiAction(SnabbleUI .Action .SHOW_PAYDIREKT_INPUT )
132+ if (KeyguardUtils .isDeviceSecure()) {
133+ executeUiAction(SnabbleUI .Action .SHOW_PAYDIREKT_INPUT )
134+ } else {
135+ AlertDialog .Builder (context)
136+ .setMessage(R .string.Snabble_Keyguard_requireScreenLock )
137+ .setPositiveButton(R .string.Snabble_OK , null )
138+ .setCancelable(false )
139+ .show()
140+ }
128141 }
129142 }
130143 )
@@ -159,20 +172,28 @@ open class PaymentOptionsView @JvmOverloads constructor(
159172 args.putSerializable(PaymentCredentialsListView .ARG_PROJECT_ID , project.id)
160173 executeUiAction(SnabbleUI .Action .SHOW_PAYMENT_CREDENTIALS_LIST , args)
161174 } else {
162- val activity = UIUtils .getHostActivity(context)
163- if (activity is FragmentActivity ) {
164- val dialogFragment = SelectPaymentMethodFragment ()
165- val args = Bundle ()
166- args.putSerializable(SelectPaymentMethodFragment .ARG_PAYMENT_METHOD_LIST , ArrayList (listOf (
167- PaymentMethod .VISA ,
168- PaymentMethod .MASTERCARD ,
169- PaymentMethod .AMEX ))
170- )
171- args.putString(SelectPaymentMethodFragment .ARG_PROJECT_ID , project.id)
172- dialogFragment.arguments = args
173- dialogFragment.show(activity.supportFragmentManager, null )
175+ if (KeyguardUtils .isDeviceSecure()) {
176+ val activity = UIUtils .getHostActivity(context)
177+ if (activity is FragmentActivity ) {
178+ val dialogFragment = SelectPaymentMethodFragment ()
179+ val args = Bundle ()
180+ args.putSerializable(SelectPaymentMethodFragment .ARG_PAYMENT_METHOD_LIST , ArrayList (listOf (
181+ PaymentMethod .VISA ,
182+ PaymentMethod .MASTERCARD ,
183+ PaymentMethod .AMEX ))
184+ )
185+ args.putString(SelectPaymentMethodFragment .ARG_PROJECT_ID , project.id)
186+ dialogFragment.arguments = args
187+ dialogFragment.show(activity.supportFragmentManager, null )
188+ } else {
189+ throw RuntimeException (" Host activity must be a FragmentActivity" )
190+ }
174191 } else {
175- throw RuntimeException (" Host activity must be a FragmentActivity" )
192+ AlertDialog .Builder (context)
193+ .setMessage(R .string.Snabble_Keyguard_requireScreenLock )
194+ .setPositiveButton(R .string.Snabble_OK , null )
195+ .setCancelable(false )
196+ .show()
176197 }
177198 }
178199 }
0 commit comments