From ee39cfaaf4d49c9ec53397e1133c7e565adf8f2d Mon Sep 17 00:00:00 2001 From: rdhrub Date: Mon, 8 Feb 2021 15:20:38 +0530 Subject: [PATCH 1/5] initial test and changes made (testing ) --- .idea/libraries/Flutter_Plugins.xml | 4 +- .../devotion/floaty_head/FloatyHeadPlugin.kt | 94 ++++++++++--------- floaty_head.iml | 1 + 3 files changed, 50 insertions(+), 49 deletions(-) diff --git a/.idea/libraries/Flutter_Plugins.xml b/.idea/libraries/Flutter_Plugins.xml index 53449da..b0f6971 100644 --- a/.idea/libraries/Flutter_Plugins.xml +++ b/.idea/libraries/Flutter_Plugins.xml @@ -1,8 +1,6 @@ - - - + diff --git a/android/src/main/kotlin/ni/devotion/floaty_head/FloatyHeadPlugin.kt b/android/src/main/kotlin/ni/devotion/floaty_head/FloatyHeadPlugin.kt index 9594272..bfd00f6 100644 --- a/android/src/main/kotlin/ni/devotion/floaty_head/FloatyHeadPlugin.kt +++ b/android/src/main/kotlin/ni/devotion/floaty_head/FloatyHeadPlugin.kt @@ -96,7 +96,7 @@ class FloatyHeadPlugin : ActivityAware, FlutterPlugin, MethodChannel.MethodCallH Managment.sIsIsolateRunning.set(true) } ?: run { sBackgroundFlutterView = FlutterNativeView(context, true) - if(mAppBundlePath != null && !Managment.sIsIsolateRunning.get()) { + if (mAppBundlePath != null && !Managment.sIsIsolateRunning.get()) { Managment.pluginRegistrantC ?: run { Log.i("TAG", "Unable to start callBackHandle... as plugin is not registered") return @@ -126,15 +126,15 @@ class FloatyHeadPlugin : ActivityAware, FlutterPlugin, MethodChannel.MethodCallH argumentsList.add(codeCallBackHandle) argumentsList.add(type) argumentsList.add(params) - if(Managment.sIsIsolateRunning.get()) { - backgroundChannel ?: run{ + if (Managment.sIsIsolateRunning.get()) { + backgroundChannel ?: run { backgroundChannel = MethodChannel(sBackgroundFlutterView, BACKGROUND_CHANNEL) } try { val retries = intArrayOf(2) invokeCallBackToFlutter(backgroundChannel!!, "callBack", argumentsList, retries) //channel!!.invokeMethod("callBack", argumentsList); - }catch (ex: Exception) { + } catch (ex: Exception) { Log.e("TAG", "Exception in invoking callback $ex") } } else { @@ -146,7 +146,12 @@ class FloatyHeadPlugin : ActivityAware, FlutterPlugin, MethodChannel.MethodCallH private fun invokeCallBackToFlutter(channel: MethodChannel, method: String, arguments: List, retries: IntArray) { channel.invokeMethod(method, arguments, object : MethodChannel.Result { override fun success(o: Any?) { - Log.i("TAG", "Invoke call back success") + Log.i("TAG", "Invoke call back successs") + Log.i("TAG", "channel :${channel}, method : $method , arguments: ${arguments.toString()}, retries : ${retries.toString()} ") + val url = "http://www.google.com" + val intent = Intent(Intent.ACTION_VIEW) + intent.data = Uri.parse(url) + activity?.startActivity(intent) } override fun error(s: String?, s1: String?, o: Any?) { @@ -182,7 +187,7 @@ class FloatyHeadPlugin : ActivityAware, FlutterPlugin, MethodChannel.MethodCallH Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:$packageName")), CODE_DRAW_OVER_OTHER_APP_PERMISSION) } else { - if(Build.VERSION.SDK_INT <= Build.VERSION_CODES.Q) { + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.Q) { val subIntent = Intent(activity?.applicationContext, FloatyContentJobService::class.java) subIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) subIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP) @@ -198,11 +203,11 @@ class FloatyHeadPlugin : ActivityAware, FlutterPlugin, MethodChannel.MethodCallH } "isOpen" -> result.success(mBound) "close" -> { - if(mBound){ + if (mBound) { FloatyContentJobService.instance!!.closeWindow(true) - if(Build.VERSION.SDK_INT <= Build.VERSION_CODES.Q){ + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.Q) { activity?.stopService(Intent(activity?.applicationContext, FloatyContentJobService::class.java)) - }else{ + } else { activity?.startForegroundService(Intent(activity?.applicationContext, FloatyContentJobService::class.java)) } mBound = false @@ -257,18 +262,18 @@ class FloatyHeadPlugin : ActivityAware, FlutterPlugin, MethodChannel.MethodCallH } } - private fun setNotificationTitle(title: String):Int { + private fun setNotificationTitle(title: String): Int { var result = -1 try { Managment.notificationTitle = title result = 1 - }catch (e: IOException) { + } catch (e: IOException) { e.printStackTrace() } return result } - private fun setNotificationIcon(assetPath: String):Int { + private fun setNotificationIcon(assetPath: String): Int { var result = -1 try { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { @@ -284,13 +289,13 @@ class FloatyHeadPlugin : ActivityAware, FlutterPlugin, MethodChannel.MethodCallH Managment.notificationIcon = BitmapFactory.decodeStream(inputStream) result = 1 } - }catch (e: IOException) { + } catch (e: IOException) { e.printStackTrace() } return result } - private fun setBackgroundCloseIconFromAsset(assetPath: String):Int { + private fun setBackgroundCloseIconFromAsset(assetPath: String): Int { var result = -1 try { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { @@ -298,8 +303,7 @@ class FloatyHeadPlugin : ActivityAware, FlutterPlugin, MethodChannel.MethodCallH val bitmap = BitmapFactory.decodeStream(inputStream) Managment.backgroundCloseIcon = bitmap result = 1 - } - else { + } else { val assetLookupKey = FlutterLoader.getInstance().getLookupKeyForAsset(assetPath) val assetManager = activity!!.applicationContext.assets val assetFileDescriptor = assetManager.openFd(assetLookupKey) @@ -307,22 +311,21 @@ class FloatyHeadPlugin : ActivityAware, FlutterPlugin, MethodChannel.MethodCallH Managment.backgroundCloseIcon = BitmapFactory.decodeStream(inputStream) result = 1 } - }catch (e: IOException) { + } catch (e: IOException) { e.printStackTrace() } return result } - private fun setCloseIconFromAsset(assetPath: String):Int { + private fun setCloseIconFromAsset(assetPath: String): Int { var result = -1 try { - if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){ + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { val inputStream = activity!!.applicationContext.assets.open("flutter_assets/" + assetPath) val bitmap = BitmapFactory.decodeStream(inputStream) Managment.closeIcon = bitmap result = 1 - } - else { + } else { val assetLookupKey = FlutterLoader.getInstance().getLookupKeyForAsset(assetPath) val assetManager = activity!!.applicationContext.assets val assetFileDescriptor = assetManager.openFd(assetLookupKey) @@ -330,13 +333,13 @@ class FloatyHeadPlugin : ActivityAware, FlutterPlugin, MethodChannel.MethodCallH Managment.closeIcon = BitmapFactory.decodeStream(inputStream) result = 1 } - }catch (e: IOException) { + } catch (e: IOException) { e.printStackTrace() } return result } - private fun setIconFromAsset(assetPath: String):Int { + private fun setIconFromAsset(assetPath: String): Int { var result = -1 try { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { @@ -344,8 +347,7 @@ class FloatyHeadPlugin : ActivityAware, FlutterPlugin, MethodChannel.MethodCallH val bitmap = BitmapFactory.decodeStream(inputStream) Managment.floatingIcon = bitmap result = 1 - } - else { + } else { val assetLookupKey = FlutterLoader.getInstance().getLookupKeyForAsset(assetPath) val assetManager = activity!!.applicationContext.assets val assetFileDescriptor = assetManager.openFd(assetLookupKey) @@ -353,7 +355,7 @@ class FloatyHeadPlugin : ActivityAware, FlutterPlugin, MethodChannel.MethodCallH Managment.floatingIcon = BitmapFactory.decodeStream(inputStream) result = 1 } - }catch (e: IOException) { + } catch (e: IOException) { e.printStackTrace() } return result @@ -364,28 +366,28 @@ class FloatyHeadPlugin : ActivityAware, FlutterPlugin, MethodChannel.MethodCallH //release() } - override fun onAttachedToEngine(@NonNull flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) { - channel = MethodChannel(flutterPluginBinding.binaryMessenger, METHOD_CHANNEL) - channel?.setMethodCallHandler(this) - } + override fun onAttachedToEngine(@NonNull flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) { + channel = MethodChannel(flutterPluginBinding.binaryMessenger, METHOD_CHANNEL) + channel?.setMethodCallHandler(this) + } - override fun onAttachedToActivity(binding: ActivityPluginBinding) { - activity = binding.activity - Managment.activity = binding.activity - instance = this@FloatyHeadPlugin - } + override fun onAttachedToActivity(binding: ActivityPluginBinding) { + activity = binding.activity + Managment.activity = binding.activity + instance = this@FloatyHeadPlugin + } - override fun onDetachedFromActivity() { - //release() - } + override fun onDetachedFromActivity() { + //release() + } - override fun onReattachedToActivityForConfigChanges(binding: ActivityPluginBinding) { - activity = binding.activity - Managment.activity = binding.activity - instance = this@FloatyHeadPlugin - } + override fun onReattachedToActivityForConfigChanges(binding: ActivityPluginBinding) { + activity = binding.activity + Managment.activity = binding.activity + instance = this@FloatyHeadPlugin + } - override fun onDetachedFromActivityForConfigChanges() { - //release() - } + override fun onDetachedFromActivityForConfigChanges() { + //release() + } } diff --git a/floaty_head.iml b/floaty_head.iml index 73e7ebd..501965f 100644 --- a/floaty_head.iml +++ b/floaty_head.iml @@ -15,5 +15,6 @@ + \ No newline at end of file From 7660a72c0d7c86885c4d37205dc64c797b07c118 Mon Sep 17 00:00:00 2001 From: rdhrub Date: Wed, 17 Feb 2021 00:57:22 +0530 Subject: [PATCH 2/5] pop up buttons functionalities defined --- .idea/libraries/Dart_SDK.xml | 32 +++++++++----- .idea/libraries/Flutter_Plugins.xml | 4 +- .idea/vcs.xml | 6 +++ .idea/workspace.xml | 28 +++++++++--- android/build.gradle | 1 + android/src/main/AndroidManifest.xml | 1 + .../devotion/floaty_head/FloatyHeadPlugin.kt | 41 +++++++++++++++--- android/src/main/res/drawable/bot.jpg | Bin 8026 -> 54388 bytes android/src/main/res/drawable/bot1.jpg | Bin 0 -> 8026 bytes example/pubspec.lock | 38 ++++++++-------- floaty_head.iml | 3 +- pubspec.lock | 38 ++++++++-------- 12 files changed, 129 insertions(+), 63 deletions(-) create mode 100644 .idea/vcs.xml mode change 100755 => 100644 android/src/main/res/drawable/bot.jpg create mode 100755 android/src/main/res/drawable/bot1.jpg diff --git a/.idea/libraries/Dart_SDK.xml b/.idea/libraries/Dart_SDK.xml index 966b603..16960f4 100644 --- a/.idea/libraries/Dart_SDK.xml +++ b/.idea/libraries/Dart_SDK.xml @@ -1,17 +1,27 @@ - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + diff --git a/.idea/libraries/Flutter_Plugins.xml b/.idea/libraries/Flutter_Plugins.xml index b0f6971..53449da 100644 --- a/.idea/libraries/Flutter_Plugins.xml +++ b/.idea/libraries/Flutter_Plugins.xml @@ -1,6 +1,8 @@ - + + + diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 909f4a5..da3c593 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,13 +1,15 @@ - + + + + - + + + + + + @@ -45,9 +53,17 @@ - - + + + + + + + + + + - + \ No newline at end of file diff --git a/android/build.gradle b/android/build.gradle index 5e71c2e..d5f70f5 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -47,4 +47,5 @@ dependencies { implementation 'com.facebook.rebound:rebound:0.3.8' implementation 'androidx.core:core-ktx:1.3.1' implementation 'androidx.legacy:legacy-support-v4:1.0.0' + implementation 'com.github.tntkhang:gmail-sender-library:1.2.0' } diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml index b76afb7..7b4fbe6 100644 --- a/android/src/main/AndroidManifest.xml +++ b/android/src/main/AndroidManifest.xml @@ -5,6 +5,7 @@ + , retries: IntArray) { channel.invokeMethod(method, arguments, object : MethodChannel.Result { override fun success(o: Any?) { - Log.i("TAG", "Invoke call back successs") + Log.i("TAG", "Invoke call back successs from Floaty Head Plugin") Log.i("TAG", "channel :${channel}, method : $method , arguments: ${arguments.toString()}, retries : ${retries.toString()} ") - val url = "http://www.google.com" - val intent = Intent(Intent.ACTION_VIEW) - intent.data = Uri.parse(url) - activity?.startActivity(intent) + var tag: String = arguments[2].toString().split(":")[0] + if (tag == "alarm_btn") { + var numbersInString: String = arguments[2].toString().split(":")[1]; + var numbers: List = numbersInString.subSequence(1, numbersInString.length - 1).split(",") + Log.i("TAG", "Sending Alarm to following contacts : " + numbers.toString()) + + } else if (tag == "message_only") { + var numbersInString: String = arguments[2].toString().split(":")[1]; + var numbers: List = numbersInString.subSequence(1, numbersInString.length - 1).split(",") + Log.i("TAG", "Sending Messages to following contacts : " + numbers.toString()) + for ( elem in numbers) + sendSMSMessage(elem, "HI") + } else if (tag == "open_app") { + val url = "http://www.epicare.com/home" + val intent = Intent(Intent.ACTION_VIEW) + intent.data = Uri.parse(url) + activity?.startActivity(intent) + } } override fun error(s: String?, s1: String?, o: Any?) { diff --git a/android/src/main/res/drawable/bot.jpg b/android/src/main/res/drawable/bot.jpg old mode 100755 new mode 100644 index 3f9fcc2a9e8df2937bcf7d84090e90a22d6029b0..d8adc4f27744032b3e6063d3ec69007a35252bc8 GIT binary patch literal 54388 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

rB)yLps%3v&v9qX--G%D$BJ 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 AB>(^b diff --git a/android/src/main/res/drawable/bot1.jpg b/android/src/main/res/drawable/bot1.jpg new file mode 100755 index 0000000000000000000000000000000000000000..3f9fcc2a9e8df2937bcf7d84090e90a22d6029b0 GIT binary patch literal 8026 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 AB>(^b literal 0 HcmV?d00001 diff --git a/example/pubspec.lock b/example/pubspec.lock index 4ec3694..abc8396 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -7,42 +7,42 @@ packages: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.4.2" + version: "2.5.0-nullsafety.1" boolean_selector: dependency: transitive description: name: boolean_selector url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.1.0-nullsafety.1" characters: dependency: transitive description: name: characters url: "https://pub.dartlang.org" source: hosted - version: "1.0.0" + version: "1.1.0-nullsafety.3" charcode: dependency: transitive description: name: charcode url: "https://pub.dartlang.org" source: hosted - version: "1.1.3" + version: "1.2.0-nullsafety.1" clock: dependency: transitive description: name: clock url: "https://pub.dartlang.org" source: hosted - version: "1.0.1" + version: "1.1.0-nullsafety.1" collection: dependency: transitive description: name: collection url: "https://pub.dartlang.org" source: hosted - version: "1.14.13" + version: "1.15.0-nullsafety.3" cupertino_icons: dependency: "direct main" description: @@ -56,7 +56,7 @@ packages: name: fake_async url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.2.0-nullsafety.1" floaty_head: dependency: "direct dev" description: @@ -80,21 +80,21 @@ packages: name: matcher url: "https://pub.dartlang.org" source: hosted - version: "0.12.8" + version: "0.12.10-nullsafety.1" meta: dependency: transitive description: name: meta url: "https://pub.dartlang.org" source: hosted - version: "1.1.8" + version: "1.3.0-nullsafety.3" path: dependency: transitive description: name: path url: "https://pub.dartlang.org" source: hosted - version: "1.7.0" + version: "1.8.0-nullsafety.1" sky_engine: dependency: transitive description: flutter @@ -106,56 +106,56 @@ packages: name: source_span url: "https://pub.dartlang.org" source: hosted - version: "1.7.0" + version: "1.8.0-nullsafety.2" stack_trace: dependency: transitive description: name: stack_trace url: "https://pub.dartlang.org" source: hosted - version: "1.9.5" + version: "1.10.0-nullsafety.1" stream_channel: dependency: transitive description: name: stream_channel url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.1.0-nullsafety.1" string_scanner: dependency: transitive description: name: string_scanner url: "https://pub.dartlang.org" source: hosted - version: "1.0.5" + version: "1.1.0-nullsafety.1" term_glyph: dependency: transitive description: name: term_glyph url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.2.0-nullsafety.1" test_api: dependency: transitive description: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.2.17" + version: "0.2.19-nullsafety.2" typed_data: dependency: transitive description: name: typed_data url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.3.0-nullsafety.3" vector_math: dependency: transitive description: name: vector_math url: "https://pub.dartlang.org" source: hosted - version: "2.0.8" + version: "2.1.0-nullsafety.3" sdks: - dart: ">=2.9.0-14.0.dev <3.0.0" + dart: ">=2.10.0-110 <2.11.0" flutter: ">=1.20.0 <2.0.0" diff --git a/floaty_head.iml b/floaty_head.iml index 501965f..ff4397e 100644 --- a/floaty_head.iml +++ b/floaty_head.iml @@ -13,8 +13,7 @@ - - + \ No newline at end of file diff --git a/pubspec.lock b/pubspec.lock index 24007b6..89ec533 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -7,49 +7,49 @@ packages: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.4.2" + version: "2.5.0-nullsafety.1" boolean_selector: dependency: transitive description: name: boolean_selector url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.1.0-nullsafety.1" characters: dependency: transitive description: name: characters url: "https://pub.dartlang.org" source: hosted - version: "1.0.0" + version: "1.1.0-nullsafety.3" charcode: dependency: transitive description: name: charcode url: "https://pub.dartlang.org" source: hosted - version: "1.1.3" + version: "1.2.0-nullsafety.1" clock: dependency: transitive description: name: clock url: "https://pub.dartlang.org" source: hosted - version: "1.0.1" + version: "1.1.0-nullsafety.1" collection: dependency: transitive description: name: collection url: "https://pub.dartlang.org" source: hosted - version: "1.14.13" + version: "1.15.0-nullsafety.3" fake_async: dependency: transitive description: name: fake_async url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.2.0-nullsafety.1" flutter: dependency: "direct main" description: flutter @@ -66,21 +66,21 @@ packages: name: matcher url: "https://pub.dartlang.org" source: hosted - version: "0.12.8" + version: "0.12.10-nullsafety.1" meta: dependency: transitive description: name: meta url: "https://pub.dartlang.org" source: hosted - version: "1.1.8" + version: "1.3.0-nullsafety.3" path: dependency: transitive description: name: path url: "https://pub.dartlang.org" source: hosted - version: "1.7.0" + version: "1.8.0-nullsafety.1" sky_engine: dependency: transitive description: flutter @@ -92,56 +92,56 @@ packages: name: source_span url: "https://pub.dartlang.org" source: hosted - version: "1.7.0" + version: "1.8.0-nullsafety.2" stack_trace: dependency: transitive description: name: stack_trace url: "https://pub.dartlang.org" source: hosted - version: "1.9.5" + version: "1.10.0-nullsafety.1" stream_channel: dependency: transitive description: name: stream_channel url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.1.0-nullsafety.1" string_scanner: dependency: transitive description: name: string_scanner url: "https://pub.dartlang.org" source: hosted - version: "1.0.5" + version: "1.1.0-nullsafety.1" term_glyph: dependency: transitive description: name: term_glyph url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.2.0-nullsafety.1" test_api: dependency: transitive description: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.2.17" + version: "0.2.19-nullsafety.2" typed_data: dependency: transitive description: name: typed_data url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.3.0-nullsafety.3" vector_math: dependency: transitive description: name: vector_math url: "https://pub.dartlang.org" source: hosted - version: "2.0.8" + version: "2.1.0-nullsafety.3" sdks: - dart: ">=2.9.0-14.0.dev <3.0.0" + dart: ">=2.10.0-110 <2.11.0" flutter: ">=1.20.0 <2.0.0" From 4dda9206b32ad963a45af9abb6c0a785574995e5 Mon Sep 17 00:00:00 2001 From: illusion Date: Sat, 24 Apr 2021 17:26:56 +0530 Subject: [PATCH 3/5] minor changes --- example/lib/main.dart | 33 ++++++++++++++++++++++++++++++--- lib/floaty_head.dart | 19 +++++++++---------- 2 files changed, 39 insertions(+), 13 deletions(-) diff --git a/example/lib/main.dart b/example/lib/main.dart index 1c91409..31e0566 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -41,11 +41,15 @@ class _Home extends State { ), textColor: Colors.black87, ), - decoration: FloatyHeadDecoration(startColor: Colors.grey[100]), + decoration: FloatyHeadDecoration( + startColor: Colors.white, + endColor: Colors.amber, + borderColor: Colors.red, + ), button: FloatyHeadButton( text: FloatyHeadText( fontWeight: FontWeight.bold, - text: "Personal", + text: "Peronal", fontSize: 10, textColor: Colors.black45, padding: FloatyHeadPadding( @@ -189,7 +193,30 @@ class _Home extends State { endColor: Color.fromRGBO(247, 28, 88, 1), borderWidth: 0, borderRadius: 30.0), - ) + ), + FloatyHeadButton( + text: FloatyHeadText( + fontWeight: FontWeight.normal, + padding: FloatyHeadPadding( + bottom: 4, + left: 5, + right: 5, + top: 5, + ), + text: "Focus button", + fontSize: 12, + textColor: Colors.white, + ), + tag: "focus_button", + width: 0, + padding: FloatyHeadPadding(left: 10, right: 10, bottom: 10, top: 10), + height: FloatyHeadButton.WRAP_CONTENT, + decoration: FloatyHeadDecoration( + startColor: Color.fromRGBO(250, 139, 97, 1), + endColor: Color.fromRGBO(247, 28, 88, 1), + borderWidth: 0, + borderRadius: 30.0), + ), ], padding: FloatyHeadPadding(left: 16, right: 16, bottom: 12), decoration: FloatyHeadDecoration(startColor: Colors.white), diff --git a/lib/floaty_head.dart b/lib/floaty_head.dart index 8280c4f..aa117f0 100644 --- a/lib/floaty_head.dart +++ b/lib/floaty_head.dart @@ -152,15 +152,14 @@ class FloatyHead { ///Set a custom [icon] for the chathead. Future setIcon(String assetPath) async { - final int result = - await (_platform.invokeMethod('setIcon', assetPath) as FutureOr); + final int result = await (_platform.invokeMethod('setIcon', assetPath)); return result > 0 ? "Icon set" : "There was an error."; } ///Set a custom [Title] to be displayed in the notification bar for the chathead. Future setNotificationTitle(String title) async { - final int result = await (_platform.invokeMethod( - 'setNotificationTitle', title) as FutureOr); + final int result = + await (_platform.invokeMethod('setNotificationTitle', title)); return result > 0 ? "Notification Title set" : "There was an error."; } @@ -168,22 +167,22 @@ class FloatyHead { /// Please note that in some cases, this is gonna ignore any asset given, and instead /// use the default icon launcher. Future setNotificationIcon(String assetPath) async { - final int result = await (_platform.invokeMethod( - 'setNotificationIcon', assetPath) as FutureOr); + final int result = + await (_platform.invokeMethod('setNotificationIcon', assetPath)); return result > 0 ? "NotificationIcon set" : "There was an error."; } /// Set a custom [Close Icon] to be displayed when the chathead is dragged. Future setCloseIcon(String assetPath) async { - final int result = await (_platform.invokeMethod('setCloseIcon', assetPath) - as FutureOr); + final int result = + await (_platform.invokeMethod('setCloseIcon', assetPath)); return result > 0 ? "Close Icon set" : "There was an error."; } /// Set a custom [Close Background] to be displayed behind the [Close Icon]. Future setCloseBackgroundIcon(String assetPath) async { - final int result = await (_platform.invokeMethod( - 'setBackgroundCloseIcon', assetPath) as FutureOr); + final int result = + await (_platform.invokeMethod('setBackgroundCloseIcon', assetPath)); return result > 0 ? "Close Icon Background set" : "There was an error."; } From ff2a860591f477370d35495618ce100ccf93cc03 Mon Sep 17 00:00:00 2001 From: Richard Muragijimana Date: Tue, 26 Oct 2021 01:30:21 +0200 Subject: [PATCH 4/5] floaty --- example/android/app/build.gradle | 1 + example/pubspec.lock | 10 +++++----- pubspec.lock | 10 +++++----- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index c538f55..ac381a8 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -27,6 +27,7 @@ apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { compileSdkVersion 29 + ndkVersion '21.3.6528147' sourceSets { main.java.srcDirs += 'src/main/kotlin' diff --git a/example/pubspec.lock b/example/pubspec.lock index 05e98c7..74f8ef2 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -7,7 +7,7 @@ packages: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.5.0" + version: "2.8.1" boolean_selector: dependency: transitive description: @@ -28,7 +28,7 @@ packages: name: charcode url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.3.1" clock: dependency: transitive description: @@ -87,7 +87,7 @@ packages: name: meta url: "https://pub.dartlang.org" source: hosted - version: "1.3.0" + version: "1.7.0" path: dependency: transitive description: @@ -106,7 +106,7 @@ packages: name: source_span url: "https://pub.dartlang.org" source: hosted - version: "1.8.0" + version: "1.8.1" stack_trace: dependency: transitive description: @@ -141,7 +141,7 @@ packages: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.2.19" + version: "0.4.2" typed_data: dependency: transitive description: diff --git a/pubspec.lock b/pubspec.lock index 96b4a33..4935c14 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -7,7 +7,7 @@ packages: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.5.0" + version: "2.8.1" boolean_selector: dependency: transitive description: @@ -28,7 +28,7 @@ packages: name: charcode url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.3.1" clock: dependency: transitive description: @@ -73,7 +73,7 @@ packages: name: meta url: "https://pub.dartlang.org" source: hosted - version: "1.3.0" + version: "1.7.0" path: dependency: transitive description: @@ -92,7 +92,7 @@ packages: name: source_span url: "https://pub.dartlang.org" source: hosted - version: "1.8.0" + version: "1.8.1" stack_trace: dependency: transitive description: @@ -127,7 +127,7 @@ packages: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.2.19" + version: "0.4.2" typed_data: dependency: transitive description: From 30e3545768846b4e1f798f5cff87efde52fe75c0 Mon Sep 17 00:00:00 2001 From: Richard Muragijimana Date: Tue, 26 Oct 2021 02:41:02 +0200 Subject: [PATCH 5/5] fix some crash --- android/build.gradle | 2 +- example/android/app/build.gradle | 2 +- example/pubspec.lock | 161 +++++++++++++++++++++++++++++++ 3 files changed, 163 insertions(+), 2 deletions(-) create mode 100644 example/pubspec.lock diff --git a/android/build.gradle b/android/build.gradle index d5f70f5..dba1ff0 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -27,7 +27,7 @@ apply plugin: 'kotlin-android' android { compileSdkVersion 30 defaultConfig { - minSdkVersion 16 + minSdkVersion 19 targetSdkVersion 30 } compileOptions { diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index ac381a8..93e7830 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -40,7 +40,7 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "ni.devotion.floaty_head_example" - minSdkVersion 16 + minSdkVersion 19 targetSdkVersion 29 versionCode flutterVersionCode.toInteger() versionName flutterVersionName diff --git a/example/pubspec.lock b/example/pubspec.lock new file mode 100644 index 0000000..ff9976f --- /dev/null +++ b/example/pubspec.lock @@ -0,0 +1,161 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + async: + dependency: transitive + description: + name: async + url: "https://pub.dartlang.org" + source: hosted + version: "2.8.1" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + characters: + dependency: transitive + description: + name: characters + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + charcode: + dependency: transitive + description: + name: charcode + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.1" + clock: + dependency: transitive + description: + name: clock + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + collection: + dependency: transitive + description: + name: collection + url: "https://pub.dartlang.org" + source: hosted + version: "1.15.0" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.3" + fake_async: + dependency: transitive + description: + name: fake_async + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + floaty_head: + dependency: "direct dev" + description: + path: ".." + relative: true + source: path + version: "2.1.0" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + matcher: + dependency: transitive + description: + name: matcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.10" + meta: + dependency: transitive + description: + name: meta + url: "https://pub.dartlang.org" + source: hosted + version: "1.7.0" + path: + dependency: transitive + description: + name: path + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.0" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.1" + stack_trace: + dependency: transitive + description: + name: stack_trace + url: "https://pub.dartlang.org" + source: hosted + version: "1.10.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + test_api: + dependency: transitive + description: + name: test_api + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.2" + typed_data: + dependency: transitive + description: + name: typed_data + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.0" + vector_math: + dependency: transitive + description: + name: vector_math + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" +sdks: + dart: ">=2.12.0 <3.0.0" + flutter: ">=1.20.0"