diff --git a/melos.yaml b/melos.yaml index 6c8cb77..d540194 100644 --- a/melos.yaml +++ b/melos.yaml @@ -39,7 +39,7 @@ scripts: remove_from_coverage -f coverage/lcov.info -r "\.freezed\.dart$","\.g\.dart$","\.config\.dart$","generated_plugin_registrant.dart$" environment: - sdk: '>=2.12.0 <3.0.0' + sdk: ">=2.12.0 <3.5.0" dev_dependencies: lint: ^1.5.3 diff --git a/packages/apklis_direct_payment_checker/android/build.gradle b/packages/apklis_direct_payment_checker/android/build.gradle index 367829a..a136ac0 100644 --- a/packages/apklis_direct_payment_checker/android/build.gradle +++ b/packages/apklis_direct_payment_checker/android/build.gradle @@ -25,7 +25,13 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' android { + namespace="com.fluttercuba.apklis_direct_payment_checker" compileSdkVersion 30 + + compileOptions { + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 + } sourceSets { main.java.srcDirs += 'src/main/kotlin' diff --git a/packages/apklis_direct_payment_checker/android/gradle/wrapper/gradle-wrapper.properties b/packages/apklis_direct_payment_checker/android/gradle/wrapper/gradle-wrapper.properties index 01a286e..097de52 100644 --- a/packages/apklis_direct_payment_checker/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/apklis_direct_payment_checker/android/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ +#Sat Mar 29 01:08:23 CDT 2025 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip diff --git a/packages/apklis_direct_payment_checker/android/src/main/AndroidManifest.xml b/packages/apklis_direct_payment_checker/android/src/main/AndroidManifest.xml index d27d2ff..119d58d 100644 --- a/packages/apklis_direct_payment_checker/android/src/main/AndroidManifest.xml +++ b/packages/apklis_direct_payment_checker/android/src/main/AndroidManifest.xml @@ -1,5 +1,9 @@ + + + + - + \ No newline at end of file diff --git a/packages/apklis_direct_payment_checker/android/src/main/kotlin/com/fluttercuba/apklis_direct_payment_checker/ApklisDirectPaymentCheckerPlugin.kt b/packages/apklis_direct_payment_checker/android/src/main/kotlin/com/fluttercuba/apklis_direct_payment_checker/ApklisDirectPaymentCheckerPlugin.kt index 99ce803..09bcf40 100644 --- a/packages/apklis_direct_payment_checker/android/src/main/kotlin/com/fluttercuba/apklis_direct_payment_checker/ApklisDirectPaymentCheckerPlugin.kt +++ b/packages/apklis_direct_payment_checker/android/src/main/kotlin/com/fluttercuba/apklis_direct_payment_checker/ApklisDirectPaymentCheckerPlugin.kt @@ -26,7 +26,7 @@ class ApklisDirectPaymentCheckerPlugin : FlutterPlugin, MethodCallHandler { override fun onMethodCall(@NonNull call: MethodCall, @NonNull result: Result) { when (call.method) { "isPurchased" -> { - val packageId = call.arguments() + val packageId = call.arguments() ?: "" val response = Verify.isPurchased(context, packageId) val hashMap = HashMap() hashMap["paid"] = response.first diff --git a/packages/apklis_direct_payment_checker/android/src/main/kotlin/com/fluttercuba/apklis_direct_payment_checker/Verify.kt b/packages/apklis_direct_payment_checker/android/src/main/kotlin/com/fluttercuba/apklis_direct_payment_checker/Verify.kt index ed1e0bd..f017c2a 100644 --- a/packages/apklis_direct_payment_checker/android/src/main/kotlin/com/fluttercuba/apklis_direct_payment_checker/Verify.kt +++ b/packages/apklis_direct_payment_checker/android/src/main/kotlin/com/fluttercuba/apklis_direct_payment_checker/Verify.kt @@ -8,7 +8,7 @@ import android.os.RemoteException class Verify { companion object { - private const val APKLIS_PROVIDER = "content://cu.uci.android.apklis.payment.provider/app/" + private const val APKLIS_PROVIDER = "content://cu.uci.android.apklis.PaymentProvider/app/" private const val APKLIS_PAID = "paid" private const val APKLIS_USER_NAME = "user_name" diff --git a/packages/apklis_direct_payment_checker/example/android/app/build.gradle b/packages/apklis_direct_payment_checker/example/android/app/build.gradle index a02a877..269d271 100644 --- a/packages/apklis_direct_payment_checker/example/android/app/build.gradle +++ b/packages/apklis_direct_payment_checker/example/android/app/build.gradle @@ -1,3 +1,9 @@ +plugins { + id "com.android.application" + id "kotlin-android" + id "dev.flutter.flutter-gradle-plugin" +} + def localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { @@ -6,10 +12,6 @@ if (localPropertiesFile.exists()) { } } -def flutterRoot = localProperties.getProperty('flutter.sdk') -if (flutterRoot == null) { - throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") -} def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { @@ -21,12 +23,15 @@ if (flutterVersionName == null) { flutterVersionName = '1.0' } -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { + namespace="com.fluttercuba.apklis_direct_payment_checker_example" compileSdkVersion 31 + + compileOptions { + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 + } sourceSets { main.java.srcDirs += 'src/main/kotlin' @@ -39,8 +44,8 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.fluttercuba.apklis_direct_payment_checker_example" - minSdkVersion 16 - targetSdkVersion 31 + minSdkVersion flutter.minSdkVersion + targetSdkVersion 33 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } @@ -57,7 +62,3 @@ android { flutter { source '../..' } - -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" -} diff --git a/packages/apklis_direct_payment_checker/example/android/app/proguard-rules.pro b/packages/apklis_direct_payment_checker/example/android/app/proguard-rules.pro new file mode 100644 index 0000000..ea31dd0 --- /dev/null +++ b/packages/apklis_direct_payment_checker/example/android/app/proguard-rules.pro @@ -0,0 +1,33 @@ +#Flutter Wrapper +-keep class io.flutter.app.** { *; } +-keep class io.flutter.plugin.** { *; } +-keep class io.flutter.util.** { *; } +-keep class io.flutter.view.** { *; } +-keep class io.flutter.** { *; } +-keep class io.flutter.plugins.** { *; } + +# This is generated automatically by the Android Gradle plugin. +-dontwarn androidx.window.extensions.WindowExtensions +-dontwarn androidx.window.extensions.WindowExtensionsProvider +-dontwarn androidx.window.extensions.area.ExtensionWindowAreaPresentation +-dontwarn androidx.window.extensions.layout.DisplayFeature +-dontwarn androidx.window.extensions.layout.FoldingFeature +-dontwarn androidx.window.extensions.layout.WindowLayoutComponent +-dontwarn androidx.window.extensions.layout.WindowLayoutInfo +-dontwarn androidx.window.sidecar.SidecarDeviceState +-dontwarn androidx.window.sidecar.SidecarDisplayFeature +-dontwarn androidx.window.sidecar.SidecarInterface$SidecarCallback +-dontwarn androidx.window.sidecar.SidecarInterface +-dontwarn androidx.window.sidecar.SidecarProvider +-dontwarn androidx.window.sidecar.SidecarWindowLayoutInfo +-dontwarn com.google.android.play.core.splitcompat.SplitCompatApplication +-dontwarn com.google.android.play.core.splitinstall.SplitInstallException +-dontwarn com.google.android.play.core.splitinstall.SplitInstallManager +-dontwarn com.google.android.play.core.splitinstall.SplitInstallManagerFactory +-dontwarn com.google.android.play.core.splitinstall.SplitInstallRequest$Builder +-dontwarn com.google.android.play.core.splitinstall.SplitInstallRequest +-dontwarn com.google.android.play.core.splitinstall.SplitInstallSessionState +-dontwarn com.google.android.play.core.splitinstall.SplitInstallStateUpdatedListener +-dontwarn com.google.android.play.core.tasks.OnFailureListener +-dontwarn com.google.android.play.core.tasks.OnSuccessListener +-dontwarn com.google.android.play.core.tasks.Task diff --git a/packages/apklis_direct_payment_checker/example/android/app/src/main/AndroidManifest.xml b/packages/apklis_direct_payment_checker/example/android/app/src/main/AndroidManifest.xml index 65dc9fa..755d350 100644 --- a/packages/apklis_direct_payment_checker/example/android/app/src/main/AndroidManifest.xml +++ b/packages/apklis_direct_payment_checker/example/android/app/src/main/AndroidManifest.xml @@ -1,6 +1,10 @@ + xmlns:tools="http://schemas.android.com/tools"> + + + + + - + \ No newline at end of file diff --git a/packages/apklis_direct_payment_checker/example/android/build.gradle b/packages/apklis_direct_payment_checker/example/android/build.gradle index 53f4dbe..390e88d 100644 --- a/packages/apklis_direct_payment_checker/example/android/build.gradle +++ b/packages/apklis_direct_payment_checker/example/android/build.gradle @@ -1,20 +1,20 @@ -buildscript { - ext.kotlin_version = '1.6.10' + +allprojects { repositories { google() jcenter() } - - dependencies { - classpath 'com.android.tools.build:gradle:7.1.1' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - } } -allprojects { - repositories { - google() - jcenter() +subprojects { + afterEvaluate { project -> + if (project.plugins.hasPlugin("com.android.application") || + project.plugins.hasPlugin("com.android.library")) { + project.android { + compileSdkVersion 34 + buildToolsVersion "34.0.0" + } + } } } @@ -24,6 +24,6 @@ subprojects { project.evaluationDependsOn(':app') } -task clean(type: Delete) { +tasks.register("clean", Delete) { delete rootProject.buildDir } diff --git a/packages/apklis_direct_payment_checker/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/apklis_direct_payment_checker/example/android/gradle/wrapper/gradle-wrapper.properties index cc5527d..db18181 100644 --- a/packages/apklis_direct_payment_checker/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/apklis_direct_payment_checker/example/android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip diff --git a/packages/apklis_direct_payment_checker/example/android/settings.gradle b/packages/apklis_direct_payment_checker/example/android/settings.gradle index 44e62bc..43f93b7 100644 --- a/packages/apklis_direct_payment_checker/example/android/settings.gradle +++ b/packages/apklis_direct_payment_checker/example/android/settings.gradle @@ -1,11 +1,25 @@ -include ':app' +pluginManagement { + def flutterSdkPath = { + def properties = new Properties() + file("local.properties").withInputStream { properties.load(it) } + def flutterSdkPath = properties.getProperty("flutter.sdk") + assert flutterSdkPath != null, "flutter.sdk not set in local.properties" + return flutterSdkPath + }() -def localPropertiesFile = new File(rootProject.projectDir, "local.properties") -def properties = new Properties() + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") -assert localPropertiesFile.exists() -localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} -def flutterSdkPath = properties.getProperty("flutter.sdk") -assert flutterSdkPath != null, "flutter.sdk not set in local.properties" -apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" +plugins { + id "dev.flutter.flutter-plugin-loader" version "1.0.0" + id 'com.android.library' version '8.8.2' apply false + id 'org.jetbrains.kotlin.android' version '2.1.10' apply false +} + +include ":app" \ No newline at end of file diff --git a/packages/apklis_direct_payment_checker/pubspec.yaml b/packages/apklis_direct_payment_checker/pubspec.yaml index b7ad6d5..e6176aa 100644 --- a/packages/apklis_direct_payment_checker/pubspec.yaml +++ b/packages/apklis_direct_payment_checker/pubspec.yaml @@ -5,13 +5,13 @@ version: 0.0.1+2 homepage: https://github.com/fluttercuba/apklis-dart-flutter environment: - sdk: '>=2.12.0 <3.0.0' - flutter: '>=1.20.0' + sdk: ">=2.12.0 <3.0.0" + flutter: ">=1.20.0" dependencies: flutter: sdk: flutter - package_info_plus: ^1.0.6 + package_info_plus: ^4.2.0 dev_dependencies: build_runner: ^2.0.4 diff --git a/packages/apklis_direct_payment_checker/test/apklis_direct_payment_checker_test.dart b/packages/apklis_direct_payment_checker/test/apklis_direct_payment_checker_test.dart index 4009c08..3a08cf5 100644 --- a/packages/apklis_direct_payment_checker/test/apklis_direct_payment_checker_test.dart +++ b/packages/apklis_direct_payment_checker/test/apklis_direct_payment_checker_test.dart @@ -9,13 +9,16 @@ void main() { TestWidgetsFlutterBinding.ensureInitialized(); setUp(() { - channel.setMockMethodCallHandler((MethodCall methodCall) async { + handler(MethodCall methodCall) async { return { 'paid': false, 'username': 'example', }; - }); - PackageInfo.disablePackageInfoPlatformOverride = true; + } + + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, handler); + PackageInfo.setMockInitialValues( appName: 'App Example', packageName: 'com.example.nova.prosalud', @@ -26,8 +29,11 @@ void main() { }); tearDown(() { - channel.setMockMethodCallHandler(null); - PackageInfo.disablePackageInfoPlatformOverride = false; + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler( + channel, + null, + ); }); test('isPurchased with packageId', () async { diff --git a/packages/apklis_web_api/lib/apklis_web_api.dart b/packages/apklis_web_api/lib/apklis_web_api.dart index ea357fa..b2369dc 100644 --- a/packages/apklis_web_api/lib/apklis_web_api.dart +++ b/packages/apklis_web_api/lib/apklis_web_api.dart @@ -8,7 +8,7 @@ abstract class ApklisWebApi { static Uri buildUri(List apps) { final uri = Uri.https( 'api.apklis.cu', - 'v2/application', + 'v3/application', {'package_name': apps}, ); return uri; diff --git a/packages/apklis_web_api/test/apklis_web_api_test.dart b/packages/apklis_web_api/test/apklis_web_api_test.dart index 4e6deca..0138074 100644 --- a/packages/apklis_web_api/test/apklis_web_api_test.dart +++ b/packages/apklis_web_api/test/apklis_web_api_test.dart @@ -15,7 +15,7 @@ void main() { test('check build uri', () { final apps = ['com.example.app1', 'com.example.app2']; final queryString = apps.map((e) => 'package_name=$e').join('&'); - final url = '${ApklisWebApi.API_URL}/v2/application?$queryString'; + final url = '${ApklisWebApi.API_URL}/v3/application?$queryString'; final uri = ApklisWebApi.buildUri(apps); expect(uri.toString(), url); }); diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..c9e4df7 --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,7 @@ +name: apklis_dart_flutter + +environment: + sdk: ">=2.12.0 <=3.5.1" + +dev_dependencies: + melos: 6.0.0