Skip to content

Commit 03b39ac

Browse files
authored
Apple silicon (#39)
* build: Update protobuf version * refactor: clean code * Bump version
1 parent 737d9e1 commit 03b39ac

File tree

6 files changed

+61
-29
lines changed

6 files changed

+61
-29
lines changed

packages/mad_pay/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 2.2.7
2+
3+
* Bump `mad_pay_android` version to `2.2.6` (Added support for building on Apple Silicon)
4+
15
## 2.2.6
26

37
* Bump `mad_pay_android` version to `2.2.5`

packages/mad_pay/pubspec.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: mad_pay
22
description: Mad Pay will help you make payments through Apple Pay and Google Pay
3-
version: 2.2.6
3+
version: 2.2.7
44
repository: https://github.com/MadBrains/Mad-Pay-Flutter
55
issue_tracker: https://github.com/MadBrains/Mad-Pay-Flutter/issues
66
homepage: https://madbrains.ru/
@@ -13,7 +13,7 @@ dependencies:
1313
flutter:
1414
sdk: flutter
1515
mad_pay_platform_interface: ^2.2.2
16-
mad_pay_android: ^2.2.5
16+
mad_pay_android: ^2.2.6
1717
mad_pay_ios: ^2.2.3
1818

1919
# For development. Remove/comment before publishing to pub.

packages/mad_pay_android/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 2.2.6
2+
3+
* Added support for building on Apple Silicon
4+
15
## 2.2.5
26

37
* Bump `flutter_svg` version to `0.23.0+1`

packages/mad_pay_android/android/build.gradle

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ version '1.0-SNAPSHOT'
33

44
buildscript {
55
ext.kotlin_version = '1.4.31'
6-
ext.protobufVersion = '0.8.15'
6+
ext.protobuf_version = '0.8.18'
7+
ext.protobuf_javalite_version = '3.19.1'
8+
79
repositories {
810
google()
911
jcenter()
@@ -12,7 +14,7 @@ buildscript {
1214
dependencies {
1315
classpath 'com.android.tools.build:gradle:3.5.0'
1416
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
15-
classpath "com.google.protobuf:protobuf-gradle-plugin:$protobufVersion"
17+
classpath "com.google.protobuf:protobuf-gradle-plugin:$protobuf_version"
1618
}
1719
}
1820

@@ -51,7 +53,7 @@ android {
5153

5254
protobuf {
5355
protoc {
54-
artifact = 'com.google.protobuf:protoc:3.14.0'
56+
artifact = "com.google.protobuf:protoc:$protobuf_javalite_version"
5557
}
5658
generateProtoTasks {
5759
all().each { task ->
@@ -70,7 +72,7 @@ clean {
7072

7173
dependencies {
7274
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
73-
implementation 'com.google.protobuf:protobuf-javalite:3.14.0'
74-
implementation 'com.google.android.gms:play-services-wallet:18.1.2'
75+
implementation "com.google.protobuf:protobuf-javalite:$protobuf_javalite_version"
76+
implementation 'com.google.android.gms:play-services-wallet:18.1.3'
7577
implementation "androidx.multidex:multidex:2.0.1"
7678
}

packages/mad_pay_android/android/src/main/kotlin/ru/madbrains/mad_pay_android/MadPayAndroidPlugin.kt

Lines changed: 43 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ import io.flutter.plugin.common.MethodChannel.Result
1919
import io.flutter.plugin.common.PluginRegistry
2020
import org.json.JSONObject
2121

22-
class MadPayAndroidPlugin : FlutterPlugin, MethodCallHandler, PluginRegistry.ActivityResultListener, ActivityAware {
22+
class MadPayAndroidPlugin : FlutterPlugin, MethodCallHandler, PluginRegistry.ActivityResultListener,
23+
ActivityAware {
2324
private lateinit var channel: MethodChannel
2425
private lateinit var activeResult: Result
2526

@@ -45,7 +46,10 @@ class MadPayAndroidPlugin : FlutterPlugin, MethodCallHandler, PluginRegistry.Act
4546
try {
4647
fn()
4748
} catch (e: IllegalStateException) {
48-
Log.d(CHANNEL, "ignoring exception: $e. See https://github.com/flutter/flutter/issues/29092 for details.")
49+
Log.d(
50+
CHANNEL,
51+
"ignoring exception: $e. See https://github.com/flutter/flutter/issues/29092 for details."
52+
)
4953
}
5054
}
5155

@@ -72,7 +76,11 @@ class MadPayAndroidPlugin : FlutterPlugin, MethodCallHandler, PluginRegistry.Act
7276
ignoreIllegalState { activeResult.success(res.build().toByteArray()) }
7377
}
7478

75-
private fun invokeErrorResult(@Nullable errorCode: String?, @Nullable message: String?, @Nullable data: ByteArray?) {
79+
private fun invokeErrorResult(
80+
@Nullable errorCode: String?,
81+
@Nullable message: String?,
82+
@Nullable data: ByteArray?
83+
) {
7684
val res = MadPay.Response.newBuilder().setSuccess(false)
7785
if (errorCode != null)
7886
res.errorCode = errorCode
@@ -139,17 +147,22 @@ class MadPayAndroidPlugin : FlutterPlugin, MethodCallHandler, PluginRegistry.Act
139147

140148
private fun payment(@NonNull arguments: MadPay.PaymentRequest) {
141149
if (arguments.parametersCase != MadPay.PaymentRequest.ParametersCase.GOOGLE || arguments.google == null) {
142-
invokeErrorResult(INVALID_PARAMETERS_CODE, "Invalid Payment parameters. " +
143-
"\"Google\" parameter required")
150+
invokeErrorResult(
151+
INVALID_PARAMETERS_CODE, "Invalid Payment parameters. " +
152+
"\"Google\" parameter required"
153+
)
144154
return
145155
}
146156
if (arguments.google.gatewayName.isNullOrEmpty() || arguments.google.gatewayMerchantId.isNullOrEmpty() ||
147-
arguments.currencyCode.isNullOrEmpty() || arguments.countryCode.isNullOrEmpty()) {
148-
invokeErrorResult(INVALID_PARAMETERS_CODE, "Invalid Payment parameters." +
149-
"\ngatewayName: ${arguments.google.gatewayName}" +
150-
"\ngatewayMerchantId: ${arguments.google.gatewayMerchantId}" +
151-
"\ncurrencyCode: ${arguments.currencyCode}" +
152-
"\ncountryCode: ${arguments.countryCode}")
157+
arguments.currencyCode.isNullOrEmpty() || arguments.countryCode.isNullOrEmpty()
158+
) {
159+
invokeErrorResult(
160+
INVALID_PARAMETERS_CODE, "Invalid Payment parameters." +
161+
"\ngatewayName: ${arguments.google.gatewayName}" +
162+
"\ngatewayMerchantId: ${arguments.google.gatewayMerchantId}" +
163+
"\ncurrencyCode: ${arguments.currencyCode}" +
164+
"\ncountryCode: ${arguments.countryCode}"
165+
)
153166
return
154167
}
155168

@@ -166,8 +179,10 @@ class MadPayAndroidPlugin : FlutterPlugin, MethodCallHandler, PluginRegistry.Act
166179
return
167180
}
168181

169-
val paymentRequestJson = RawMethods.getPaymentMethod(arguments.google, arguments.allowedPaymentNetworksList, totalPrice,
170-
arguments.currencyCode, arguments.countryCode, arguments.google.emailRequired)
182+
val paymentRequestJson = RawMethods.getPaymentMethod(
183+
arguments.google, arguments.allowedPaymentNetworksList, totalPrice,
184+
arguments.currencyCode, arguments.countryCode, arguments.google.emailRequired
185+
)
171186

172187
val paymentDataRequest = PaymentDataRequest.fromJson(paymentRequestJson.toString(4))
173188

@@ -183,7 +198,8 @@ class MadPayAndroidPlugin : FlutterPlugin, MethodCallHandler, PluginRegistry.Act
183198

184199
override fun onDetachedFromActivityForConfigChanges() {}
185200

186-
override fun onReattachedToActivityForConfigChanges(binding: ActivityPluginBinding) = setActivity(binding)
201+
override fun onReattachedToActivityForConfigChanges(binding: ActivityPluginBinding) =
202+
setActivity(binding)
187203

188204
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?): Boolean {
189205
if (requestCode == LOAD_PAYMENT_DATA_REQUEST_CODE) {
@@ -200,10 +216,16 @@ class MadPayAndroidPlugin : FlutterPlugin, MethodCallHandler, PluginRegistry.Act
200216
}
201217
AutoResolveHelper.RESULT_ERROR -> {
202218
AutoResolveHelper.getStatusFromIntent(data)?.let {
203-
val errorData: Map<String, String> = mapOf("statusCode" to it.statusCode.toString(),
204-
"statusMessage" to it.statusMessage.toString())
205-
206-
invokeErrorResult(INVALID_PAYMENT_CODE, "Google Pay returned payment error", errorData.toString().toByteArray())
219+
val errorData: Map<String, String?> = mapOf(
220+
"statusCode" to it.statusCode.toString(),
221+
"statusMessage" to it.statusMessage?.toString()
222+
)
223+
224+
invokeErrorResult(
225+
INVALID_PAYMENT_CODE,
226+
"Google Pay returned payment error",
227+
errorData.toString().toByteArray()
228+
)
207229
}
208230
return false
209231
}
@@ -224,9 +246,9 @@ class MadPayAndroidPlugin : FlutterPlugin, MethodCallHandler, PluginRegistry.Act
224246

225247
private fun createPaymentsClient() {
226248
val walletOptions = Wallet.WalletOptions.Builder()
227-
.setEnvironment(paymentsEnvironment)
228-
.setTheme(WalletConstants.THEME_LIGHT)
229-
.build()
249+
.setEnvironment(paymentsEnvironment)
250+
.setTheme(WalletConstants.THEME_LIGHT)
251+
.build()
230252
this.paymentsClient = Wallet.getPaymentsClient(this.activity, walletOptions)
231253
}
232254

packages/mad_pay_android/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: mad_pay_android
22
description: A plug-in to add support for payments on the Android side of Mad Pay
3-
version: 2.2.5
3+
version: 2.2.6
44
repository: https://github.com/MadBrains/Mad-Pay-Flutter
55
issue_tracker: https://github.com/MadBrains/Mad-Pay-Flutter/issues
66
homepage: https://madbrains.ru/

0 commit comments

Comments
 (0)