Migrated to android v2 embedding
This commit is contained in:
parent
fb17e22c47
commit
82d92dbfef
@ -1,3 +1,7 @@
|
||||
# 2.3.2
|
||||
|
||||
* Update Android plugin to use V2 embedding.
|
||||
|
||||
## 2.3.1
|
||||
|
||||
* Full null safety
|
||||
|
@ -9,7 +9,7 @@ buildscript {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.5.0'
|
||||
classpath 'com.android.tools.build:gradle:3.5.4'
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||
}
|
||||
}
|
||||
@ -25,7 +25,7 @@ apply plugin: 'com.android.library'
|
||||
apply plugin: 'kotlin-android'
|
||||
|
||||
android {
|
||||
compileSdkVersion 28
|
||||
compileSdkVersion 31
|
||||
|
||||
sourceSets {
|
||||
main.java.srcDirs += 'src/main/kotlin'
|
||||
|
@ -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-5.4.1-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
|
||||
|
@ -6,36 +6,69 @@ import io.flutter.plugin.common.MethodChannel
|
||||
import io.flutter.plugin.common.MethodChannel.MethodCallHandler
|
||||
import io.flutter.plugin.common.MethodChannel.Result
|
||||
import io.flutter.plugin.common.PluginRegistry.Registrar
|
||||
import io.flutter.plugin.common.PluginRegistry.ActivityResultListener
|
||||
import android.app.Activity
|
||||
import android.net.Uri
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.os.Build
|
||||
import androidx.annotation.NonNull
|
||||
import io.flutter.embedding.engine.plugins.FlutterPlugin
|
||||
import io.flutter.embedding.engine.plugins.activity.ActivityAware
|
||||
import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding
|
||||
import io.flutter.plugin.common.BinaryMessenger
|
||||
|
||||
class FlutterSmsPlugin(registrar: Registrar) : MethodCallHandler {
|
||||
class FlutterSmsPlugin: FlutterPlugin, MethodCallHandler, ActivityAware {
|
||||
private lateinit var mChannel: MethodChannel
|
||||
private var activity: Activity? = null
|
||||
private val REQUEST_CODE_SEND_SMS = 205
|
||||
|
||||
var activity: Activity? = null
|
||||
private var result: Result? = null
|
||||
override fun onAttachedToActivity(binding: ActivityPluginBinding) {
|
||||
activity = binding.activity
|
||||
}
|
||||
|
||||
override fun onDetachedFromActivity() {
|
||||
activity = null
|
||||
}
|
||||
|
||||
override fun onDetachedFromActivityForConfigChanges() {
|
||||
activity = null
|
||||
}
|
||||
|
||||
override fun onReattachedToActivityForConfigChanges(binding: ActivityPluginBinding) {
|
||||
activity = binding.activity
|
||||
}
|
||||
|
||||
override fun onAttachedToEngine(@NonNull flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) {
|
||||
setupCallbackChannels(flutterPluginBinding.binaryMessenger)
|
||||
}
|
||||
|
||||
override fun onDetachedFromEngine(@NonNull binding: FlutterPlugin.FlutterPluginBinding) {
|
||||
teardown()
|
||||
}
|
||||
|
||||
private fun setupCallbackChannels(messenger: BinaryMessenger) {
|
||||
mChannel = MethodChannel(messenger, "flutter_sms")
|
||||
mChannel.setMethodCallHandler(this)
|
||||
}
|
||||
|
||||
private fun teardown() {
|
||||
mChannel.setMethodCallHandler(null)
|
||||
}
|
||||
|
||||
// V1 embedding entry point. This is deprecated and will be removed in a future Flutter
|
||||
// release but we leave it here in case someone's app does not utilize the V2 embedding yet.
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun registerWith(registrar: Registrar) {
|
||||
val channel = MethodChannel(registrar.messenger(), "flutter_sms")
|
||||
channel.setMethodCallHandler(FlutterSmsPlugin(registrar))
|
||||
val inst = FlutterSmsPlugin()
|
||||
inst.activity = registrar.activity()
|
||||
inst.setupCallbackChannels(registrar.messenger())
|
||||
}
|
||||
}
|
||||
|
||||
init {
|
||||
this.activity = registrar.activity()
|
||||
// registrar.addActivityResultListener(this)
|
||||
}
|
||||
|
||||
override fun onMethodCall(call: MethodCall, result: Result) {
|
||||
this.result = result
|
||||
when {
|
||||
call.method == "sendSMS" -> {
|
||||
when (call.method) {
|
||||
"sendSMS" -> {
|
||||
if (!canSendSMS()) {
|
||||
result.error(
|
||||
"device_not_capable",
|
||||
@ -46,9 +79,8 @@ class FlutterSmsPlugin(registrar: Registrar) : MethodCallHandler {
|
||||
val message = call.argument<String?>("message")
|
||||
val recipients = call.argument<String?>("recipients")
|
||||
sendSMS(result, recipients, message!!)
|
||||
result.success("SMS Sent!")
|
||||
}
|
||||
call.method == "canSendSMS" -> result.success(canSendSMS())
|
||||
"canSendSMS" -> result.success(canSendSMS())
|
||||
else -> result.notImplemented()
|
||||
}
|
||||
}
|
||||
@ -59,9 +91,8 @@ class FlutterSmsPlugin(registrar: Registrar) : MethodCallHandler {
|
||||
return false
|
||||
val intent = Intent(Intent.ACTION_SENDTO)
|
||||
intent.data = Uri.parse("smsto:")
|
||||
val activityInfo = intent.resolveActivityInfo(activity!!.packageManager, intent.flags)
|
||||
val activityInfo = intent.resolveActivityInfo(activity!!.packageManager, intent.flags.toInt())
|
||||
return !(activityInfo == null || !activityInfo.exported)
|
||||
|
||||
}
|
||||
|
||||
private fun sendSMS(result: Result, phones: String?, message: String?) {
|
||||
@ -69,16 +100,7 @@ class FlutterSmsPlugin(registrar: Registrar) : MethodCallHandler {
|
||||
intent.data = Uri.parse("smsto:$phones")
|
||||
intent.putExtra("sms_body", message)
|
||||
intent.putExtra(Intent.EXTRA_TEXT, message)
|
||||
// intent.putExtra(Intent.EXTRA_STREAM, attachment);
|
||||
activity?.startActivityForResult(intent, REQUEST_CODE_SEND_SMS)
|
||||
result.success("SMS Sent!")
|
||||
}
|
||||
|
||||
// override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent): Boolean {
|
||||
// if (requestCode == REQUEST_CODE_SEND_SMS && this.result != null) {
|
||||
// this.result!!.success("finished")
|
||||
// this.result = null
|
||||
// return true
|
||||
// }
|
||||
// return false
|
||||
// }
|
||||
}
|
||||
|
@ -1 +1 @@
|
||||
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"flutter_sms","path":"/Users/rodydavis/Developer/GitHub/plugins/packages/flutter_sms/","dependencies":["url_launcher"]},{"name":"url_launcher","path":"/usr/local/Caskroom/flutter/1.2.1/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-6.0.3/","dependencies":[]}],"android":[{"name":"flutter_sms","path":"/Users/rodydavis/Developer/GitHub/plugins/packages/flutter_sms/","dependencies":["url_launcher"]},{"name":"url_launcher","path":"/usr/local/Caskroom/flutter/1.2.1/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-6.0.3/","dependencies":[]}],"macos":[{"name":"url_launcher_macos","path":"/usr/local/Caskroom/flutter/1.2.1/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher_macos-2.0.0/","dependencies":[]}],"linux":[{"name":"url_launcher_linux","path":"/usr/local/Caskroom/flutter/1.2.1/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher_linux-2.0.0/","dependencies":[]}],"windows":[{"name":"url_launcher_windows","path":"/usr/local/Caskroom/flutter/1.2.1/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher_windows-2.0.0/","dependencies":[]}],"web":[{"name":"flutter_sms","path":"/Users/rodydavis/Developer/GitHub/plugins/packages/flutter_sms/","dependencies":[]},{"name":"url_launcher_web","path":"/usr/local/Caskroom/flutter/1.2.1/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher_web-2.0.0/","dependencies":[]}]},"dependencyGraph":[{"name":"flutter_sms","dependencies":["url_launcher"]},{"name":"url_launcher","dependencies":["url_launcher_linux","url_launcher_macos","url_launcher_windows","url_launcher_web"]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]}],"date_created":"2021-04-05 14:34:03.212116","version":"2.1.0-13.0.pre.206"}
|
||||
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"flutter_sms","path":"/Users/andrewcoutts/Projects/flutter_sms/","dependencies":["url_launcher"]},{"name":"url_launcher","path":"/Users/andrewcoutts/.pub-cache/hosted/pub.dartlang.org/url_launcher-6.0.9/","dependencies":[]}],"android":[{"name":"flutter_sms","path":"/Users/andrewcoutts/Projects/flutter_sms/","dependencies":["url_launcher"]},{"name":"url_launcher","path":"/Users/andrewcoutts/.pub-cache/hosted/pub.dartlang.org/url_launcher-6.0.9/","dependencies":[]}],"macos":[{"name":"url_launcher_macos","path":"/Users/andrewcoutts/.pub-cache/hosted/pub.dartlang.org/url_launcher_macos-2.0.1/","dependencies":[]}],"linux":[{"name":"url_launcher_linux","path":"/Users/andrewcoutts/.pub-cache/hosted/pub.dartlang.org/url_launcher_linux-2.0.1/","dependencies":[]}],"windows":[{"name":"url_launcher_windows","path":"/Users/andrewcoutts/.pub-cache/hosted/pub.dartlang.org/url_launcher_windows-2.0.1/","dependencies":[]}],"web":[{"name":"flutter_sms","path":"/Users/andrewcoutts/Projects/flutter_sms/","dependencies":[]},{"name":"url_launcher_web","path":"/Users/andrewcoutts/.pub-cache/hosted/pub.dartlang.org/url_launcher_web-2.0.2/","dependencies":[]}]},"dependencyGraph":[{"name":"flutter_sms","dependencies":["url_launcher"]},{"name":"url_launcher","dependencies":["url_launcher_linux","url_launcher_macos","url_launcher_web","url_launcher_windows"]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]}],"date_created":"2021-08-13 16:31:57.080699","version":"2.5.0-6.0.pre"}
|
@ -26,7 +26,7 @@ apply plugin: 'kotlin-android'
|
||||
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
|
||||
|
||||
android {
|
||||
compileSdkVersion 28
|
||||
compileSdkVersion 31
|
||||
|
||||
sourceSets {
|
||||
main.java.srcDirs += 'src/main/kotlin'
|
||||
@ -40,7 +40,7 @@ android {
|
||||
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
||||
applicationId "com.example.example"
|
||||
minSdkVersion 16
|
||||
targetSdkVersion 28
|
||||
targetSdkVersion 31
|
||||
versionCode flutterVersionCode.toInteger()
|
||||
versionName flutterVersionName
|
||||
}
|
||||
@ -59,5 +59,5 @@ flutter {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ buildscript {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.5.0'
|
||||
classpath 'com.android.tools.build:gradle:3.5.4'
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||
}
|
||||
}
|
||||
|
@ -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-5.6.2-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
|
||||
|
@ -1,13 +1,12 @@
|
||||
name: flutter_sms
|
||||
description: A Flutter plugin to Send SMS and MMS on iOS and Android. If iMessage is enabled it will send as iMessage on iOS. This plugin must be tested on a real device on iOS.
|
||||
version: 2.3.1
|
||||
author: Rody Davis <rody.davis.jr@gmail.com>
|
||||
version: 2.3.2
|
||||
homepage: https://github.com/rodydavis/plugins
|
||||
repository: https://github.com/fluttercommunity/flutter_sms
|
||||
maintainer: Rody Davis (@rodydavis)
|
||||
|
||||
environment:
|
||||
sdk: ">=2.12.0-259.8.beta <3.0.0"
|
||||
sdk: ">=2.12.0 <3.0.0"
|
||||
flutter: ^1.10.0
|
||||
|
||||
dependencies:
|
||||
|
Loading…
Reference in New Issue
Block a user