Skip to content

Commit d4cacc4

Browse files
committed
Cleanup and fix warnings
1 parent bcd0519 commit d4cacc4

File tree

8 files changed

+137
-156
lines changed

8 files changed

+137
-156
lines changed

core/src/main/java/io/snabble/sdk/CheckoutApi.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import java.util.Date;
1616
import java.util.List;
1717
import java.util.Map;
18-
import java.util.UUID;
1918
import java.util.concurrent.TimeUnit;
2019

2120
import io.snabble.sdk.payment.PaymentCredentials;
@@ -100,7 +99,7 @@ public PaymentMethodInfo[] getAvailablePaymentMethods(PaymentMethod[] clientAcce
10099
}
101100
}
102101

103-
return result.toArray(new PaymentMethodInfo[result.size()]);
102+
return result.toArray(new PaymentMethodInfo[0]);
104103
}
105104
}
106105

core/src/main/java/io/snabble/sdk/payment/PaymentCredentials.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import io.snabble.sdk.PaymentMethod;
2626
import io.snabble.sdk.R;
2727
import io.snabble.sdk.Snabble;
28-
import io.snabble.sdk.utils.Dispatch;
2928
import io.snabble.sdk.utils.GsonHolder;
3029
import io.snabble.sdk.utils.Logger;
3130
import io.snabble.sdk.utils.Utils;
@@ -34,6 +33,7 @@ public class PaymentCredentials {
3433
public enum Type {
3534
SEPA(null, false, Collections.singletonList(PaymentMethod.DE_DIRECT_DEBIT)),
3635
// legacy credit card type, not used anymore.
36+
@Deprecated
3737
CREDIT_CARD(null, true, Arrays.asList(PaymentMethod.VISA, PaymentMethod.MASTERCARD, PaymentMethod.AMEX)),
3838
CREDIT_CARD_PSD2(null, true, Arrays.asList(PaymentMethod.VISA, PaymentMethod.MASTERCARD, PaymentMethod.AMEX)),
3939
PAYDIREKT(null, false, Collections.singletonList(PaymentMethod.PAYDIREKT)),

ui/src/main/java/io/snabble/sdk/ui/cart/PaymentSelectionDialogFragment.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package io.snabble.sdk.ui.cart;
22

3-
import android.app.Activity;
43
import android.graphics.ColorMatrix;
54
import android.graphics.ColorMatrixColorFilter;
65
import android.os.Bundle;
@@ -11,19 +10,13 @@
1110
import android.widget.LinearLayout;
1211
import android.widget.TextView;
1312

14-
import androidx.fragment.app.FragmentActivity;
15-
1613
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
1714

1815
import java.util.ArrayList;
1916

20-
import io.snabble.sdk.PaymentMethodDescriptor;
21-
import io.snabble.sdk.Snabble;
2217
import io.snabble.sdk.ui.R;
2318
import io.snabble.sdk.ui.SnabbleUI;
2419
import io.snabble.sdk.ui.payment.PaymentInputViewHelper;
25-
import io.snabble.sdk.ui.payment.SelectPaymentMethodFragment;
26-
import io.snabble.sdk.ui.utils.UIUtils;
2720

2821
public class PaymentSelectionDialogFragment extends BottomSheetDialogFragment {
2922
public static final String ARG_ENTRIES = "entries";
@@ -99,7 +92,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
9992
PaymentSelectionHelper.getInstance().select(entry);
10093
dismissAllowingStateLoss();
10194
} else {
102-
PaymentInputViewHelper.openPaymentInputView(getContext(), entry.paymentMethod, SnabbleUI.getProject().getId());
95+
PaymentInputViewHelper.openPaymentInputView(requireContext(), entry.paymentMethod, SnabbleUI.getProject().getId());
10396
dismissAllowingStateLoss();
10497
}
10598
});

ui/src/main/java/io/snabble/sdk/ui/payment/Datatrans.kt

Lines changed: 123 additions & 125 deletions
Original file line numberDiff line numberDiff line change
@@ -27,156 +27,154 @@ import okhttp3.MediaType.Companion.toMediaType
2727
import okhttp3.RequestBody.Companion.toRequestBody
2828
import java.util.*
2929

30-
class Datatrans {
31-
companion object {
32-
data class DatatransTokenizationRequest(
33-
val paymentMethod: PaymentMethod,
34-
val language: String = Locale.getDefault().language,
35-
)
36-
37-
data class DatatransTokenizationResponse(
38-
val mobileToken: String,
39-
val isTesting: Boolean?,
40-
)
41-
42-
val datatransPaymentMethods = mapOf(
43-
PaymentMethod.MASTERCARD to "ECA",
44-
PaymentMethod.VISA to "VIS",
45-
PaymentMethod.AMEX to "AMX",
46-
PaymentMethod.TWINT to "TWI",
47-
PaymentMethod.POST_FINANCE_CARD to "PFC"
48-
)
49-
50-
@JvmStatic
51-
fun registerCard(activity: FragmentActivity, project: Project, paymentMethod: PaymentMethod) {
52-
val descriptor = project.paymentMethodDescriptors.find { it.paymentMethod == paymentMethod }
53-
if (descriptor == null) {
54-
project.events.logError("Datatrans Error: No payment descriptor")
55-
Logger.e("Datatrans error: No payment method descriptor for $paymentMethod")
30+
object Datatrans {
31+
data class DatatransTokenizationRequest(
32+
val paymentMethod: PaymentMethod,
33+
val language: String = Locale.getDefault().language,
34+
)
35+
36+
data class DatatransTokenizationResponse(
37+
val mobileToken: String,
38+
val isTesting: Boolean?,
39+
)
40+
41+
val datatransPaymentMethods = mapOf(
42+
PaymentMethod.MASTERCARD to "ECA",
43+
PaymentMethod.VISA to "VIS",
44+
PaymentMethod.AMEX to "AMX",
45+
PaymentMethod.TWINT to "TWI",
46+
PaymentMethod.POST_FINANCE_CARD to "PFC"
47+
)
48+
49+
@JvmStatic
50+
fun registerCard(activity: FragmentActivity, project: Project, paymentMethod: PaymentMethod) {
51+
val descriptor = project.paymentMethodDescriptors.find { it.paymentMethod == paymentMethod }
52+
if (descriptor == null) {
53+
project.events.logError("Datatrans Error: No payment descriptor")
54+
Logger.e("Datatrans error: No payment method descriptor for $paymentMethod")
5655

57-
Dispatch.mainThread {
58-
showError(activity, paymentMethod)
59-
}
60-
return
56+
Dispatch.mainThread {
57+
showError(activity, paymentMethod)
58+
}
59+
return
60+
}
61+
62+
val url = descriptor.links?.get("tokenization")
63+
if (url == null) {
64+
project.events.logError("Datatrans Error: No tokenization url")
65+
Logger.e("Datatrans error: No tokenization url")
66+
67+
Dispatch.mainThread {
68+
showError(activity, paymentMethod)
6169
}
70+
return
71+
}
6272

63-
val url = descriptor.links?.get("tokenization")
64-
if (url == null) {
65-
project.events.logError("Datatrans Error: No tokenization url")
66-
Logger.e("Datatrans error: No tokenization url")
73+
val request: Request = Request.Builder()
74+
.url(Snabble.getInstance().absoluteUrl(url.href))
75+
.post(GsonHolder.get().toJson(
76+
DatatransTokenizationRequest(paymentMethod)
77+
).toRequestBody("application/json".toMediaType()))
78+
.build()
79+
80+
val okClient = project.okHttpClient
81+
okClient.newCall(request).enqueue(object : SimpleJsonCallback<DatatransTokenizationResponse>(DatatransTokenizationResponse::class.java), Callback {
82+
override fun success(response: DatatransTokenizationResponse) {
83+
startDatatransTransaction(activity, response, paymentMethod, project)
84+
}
6785

86+
override fun error(t: Throwable?) {
6887
Dispatch.mainThread {
6988
showError(activity, paymentMethod)
7089
}
71-
return
90+
91+
project.events.logError("Datatrans Tokenization Error: " + t?.message)
92+
Logger.e("Datatrans Tokenization Error: ${t?.message}")
7293
}
94+
})
95+
}
7396

74-
val request: Request = Request.Builder()
75-
.url(Snabble.getInstance().absoluteUrl(url.href))
76-
.post(GsonHolder.get().toJson(
77-
DatatransTokenizationRequest(paymentMethod)
78-
).toRequestBody("application/json".toMediaType()))
79-
.build()
80-
81-
val okClient = project.okHttpClient
82-
okClient.newCall(request).enqueue(object : SimpleJsonCallback<DatatransTokenizationResponse>(DatatransTokenizationResponse::class.java), Callback {
83-
override fun success(response: DatatransTokenizationResponse) {
84-
startDatatransTransaction(activity, response, paymentMethod, project)
97+
private fun showError(activity: FragmentActivity, paymentMethod: PaymentMethod) {
98+
if (!activity.isDestroyed) {
99+
val err = when (paymentMethod) {
100+
PaymentMethod.TWINT -> {
101+
R.string.Snabble_Payment_Twint_error
85102
}
86-
87-
override fun error(t: Throwable?) {
88-
Dispatch.mainThread {
89-
showError(activity, paymentMethod)
90-
}
91-
92-
project.events.logError("Datatrans Tokenization Error: " + t?.message)
93-
Logger.e("Datatrans Tokenization Error: ${t?.message}")
103+
PaymentMethod.POST_FINANCE_CARD -> {
104+
R.string.Snabble_Payment_PostFinanceCard_error
94105
}
95-
})
96-
}
97-
98-
private fun showError(activity: FragmentActivity, paymentMethod: PaymentMethod) {
99-
if (!activity.isDestroyed) {
100-
val err = when (paymentMethod) {
101-
PaymentMethod.TWINT -> {
102-
R.string.Snabble_Payment_Twint_error
103-
}
104-
PaymentMethod.POST_FINANCE_CARD -> {
105-
R.string.Snabble_Payment_PostFinanceCard_error
106-
}
107-
else -> {
108-
R.string.Snabble_Payment_CreditCard_error
109-
}
106+
else -> {
107+
R.string.Snabble_Payment_CreditCard_error
110108
}
111-
112-
Toast.makeText(activity, err, Toast.LENGTH_LONG).show()
113109
}
110+
111+
Toast.makeText(activity, err, Toast.LENGTH_LONG).show()
114112
}
113+
}
115114

116-
private fun startDatatransTransaction(activity: FragmentActivity,
117-
tokenizationResponse: DatatransTokenizationResponse,
118-
paymentMethod: PaymentMethod,
119-
project: Project) {
120-
val transaction = Transaction(tokenizationResponse.mobileToken)
121-
transaction.listener = object : TransactionListener {
122-
override fun onTransactionSuccess(result: TransactionSuccess) {
123-
activity.runOnUiThreadWhenResumed {
124-
val token = result.paymentMethodToken
125-
var month = ""
126-
var year = ""
127-
128-
when (token) {
129-
is PostFinanceCardToken -> {
130-
token.cardExpiryDate?.let {
131-
month = it.formattedMonth
132-
year = it.formattedYear
133-
}
115+
private fun startDatatransTransaction(activity: FragmentActivity,
116+
tokenizationResponse: DatatransTokenizationResponse,
117+
paymentMethod: PaymentMethod,
118+
project: Project) {
119+
val transaction = Transaction(tokenizationResponse.mobileToken)
120+
transaction.listener = object : TransactionListener {
121+
override fun onTransactionSuccess(result: TransactionSuccess) {
122+
activity.runOnUiThreadWhenResumed {
123+
val token = result.paymentMethodToken
124+
var month = ""
125+
var year = ""
126+
127+
when (token) {
128+
is PostFinanceCardToken -> {
129+
token.cardExpiryDate?.let {
130+
month = it.formattedMonth
131+
year = it.formattedYear
134132
}
135-
is CardToken -> {
136-
token.cardExpiryDate?.let {
137-
month = it.formattedMonth
138-
year = it.formattedYear
139-
}
133+
}
134+
is CardToken -> {
135+
token.cardExpiryDate?.let {
136+
month = it.formattedMonth
137+
year = it.formattedYear
140138
}
141139
}
140+
}
142141

143-
if (token != null) {
144-
Keyguard.unlock(activity, object : Keyguard.Callback {
145-
override fun success() {
146-
val store = Snabble.getInstance().paymentCredentialsStore
147-
val credentials = PaymentCredentials.fromDatatrans(
148-
token.token,
149-
PaymentCredentials.Brand.fromPaymentMethod(paymentMethod),
150-
result.paymentMethodToken?.getDisplayTitle(activity),
151-
month,
152-
year,
153-
project.id,
154-
)
155-
store.add(credentials)
156-
}
157-
158-
override fun error() {
159-
Toast.makeText(activity, R.string.Snabble_SEPA_encryptionError, Toast.LENGTH_LONG).show()
160-
}
161-
})
162-
} else {
163-
Toast.makeText(activity, R.string.Snabble_SEPA_encryptionError, Toast.LENGTH_LONG).show()
164-
}
142+
if (token != null) {
143+
Keyguard.unlock(activity, object : Keyguard.Callback {
144+
override fun success() {
145+
val store = Snabble.getInstance().paymentCredentialsStore
146+
val credentials = PaymentCredentials.fromDatatrans(
147+
token.token,
148+
PaymentCredentials.Brand.fromPaymentMethod(paymentMethod),
149+
result.paymentMethodToken?.getDisplayTitle(activity),
150+
month,
151+
year,
152+
project.id,
153+
)
154+
store.add(credentials)
155+
}
156+
157+
override fun error() {
158+
Toast.makeText(activity, R.string.Snabble_SEPA_encryptionError, Toast.LENGTH_LONG).show()
159+
}
160+
})
161+
} else {
162+
Toast.makeText(activity, R.string.Snabble_SEPA_encryptionError, Toast.LENGTH_LONG).show()
165163
}
166164
}
165+
}
167166

168-
override fun onTransactionError(exception: TransactionException) {
169-
activity.runOnUiThreadWhenResumed {
170-
project.events.logError("Datatrans TransactionException: " + exception.message)
171-
showError(activity, paymentMethod)
172-
}
167+
override fun onTransactionError(exception: TransactionException) {
168+
activity.runOnUiThreadWhenResumed {
169+
project.events.logError("Datatrans TransactionException: " + exception.message)
170+
showError(activity, paymentMethod)
173171
}
174172
}
175-
transaction.options.appCallbackScheme = "snabble"
176-
transaction.options.isTesting = tokenizationResponse.isTesting ?: false
177-
transaction.options.useCertificatePinning = true
178-
TransactionRegistry.startTransaction(activity, transaction)
179173
}
174+
transaction.options.appCallbackScheme = "snabble"
175+
transaction.options.isTesting = tokenizationResponse.isTesting ?: false
176+
transaction.options.useCertificatePinning = true
177+
TransactionRegistry.startTransaction(activity, transaction)
180178
}
181179
}
182180

ui/src/main/java/io/snabble/sdk/ui/payment/PaymentCredentialsListView.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,15 @@
1414

1515
import androidx.appcompat.app.AlertDialog;
1616
import androidx.fragment.app.FragmentActivity;
17-
import androidx.recyclerview.widget.DividerItemDecoration;
1817
import androidx.recyclerview.widget.LinearLayoutManager;
1918
import androidx.recyclerview.widget.RecyclerView;
2019

2120
import java.text.SimpleDateFormat;
2221
import java.util.ArrayList;
23-
import java.util.Arrays;
2422
import java.util.List;
2523

26-
import io.snabble.sdk.PaymentMethod;
2724
import io.snabble.sdk.Project;
2825
import io.snabble.sdk.Snabble;
29-
import io.snabble.sdk.googlepay.IsReadyToPayListener;
3026
import io.snabble.sdk.payment.PaymentCredentials;
3127
import io.snabble.sdk.payment.PaymentCredentialsStore;
3228
import io.snabble.sdk.ui.R;
@@ -35,7 +31,6 @@
3531
import io.snabble.sdk.ui.utils.KeyguardUtils;
3632
import io.snabble.sdk.ui.utils.OneShotClickListener;
3733
import io.snabble.sdk.ui.utils.UIUtils;
38-
import io.snabble.sdk.utils.Logger;
3934
import io.snabble.sdk.utils.SimpleActivityLifecycleCallbacks;
4035

4136
public class PaymentCredentialsListView extends FrameLayout implements PaymentCredentialsStore.Callback {

0 commit comments

Comments
 (0)