From ed8667335a4090109edb6722f7f2c39cd7d872dd Mon Sep 17 00:00:00 2001 From: Hamdi Kahloun Date: Mon, 7 Sep 2020 12:15:29 +0100 Subject: [PATCH 01/13] [share] MethodCallHandler.java uses unchecked or unsafe operations --- packages/share/android/build.gradle | 1 + .../plugins/share/MethodCallHandler.java | 32 +++++++++---- .../flutter/plugins/share/ShareFilesMap.java | 45 +++++++++++++++++++ .../io/flutter/plugins/share/ShareMap.java | 25 +++++++++++ 4 files changed, 94 insertions(+), 9 deletions(-) create mode 100644 packages/share/android/src/main/java/io/flutter/plugins/share/ShareFilesMap.java create mode 100644 packages/share/android/src/main/java/io/flutter/plugins/share/ShareMap.java diff --git a/packages/share/android/build.gradle b/packages/share/android/build.gradle index 7506f4db8261..15a34f250ecd 100644 --- a/packages/share/android/build.gradle +++ b/packages/share/android/build.gradle @@ -35,5 +35,6 @@ android { dependencies { implementation 'androidx.core:core:1.3.1' implementation 'androidx.annotation:annotation:1.1.0' + implementation 'com.google.code.gson:gson:2.8.6' } } diff --git a/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java b/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java index 02841d3a4ae2..a28400248194 100644 --- a/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java +++ b/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java @@ -7,13 +7,15 @@ import io.flutter.plugin.common.MethodCall; import io.flutter.plugin.common.MethodChannel; import java.io.*; -import java.util.List; import java.util.Map; +import com.google.gson.Gson; +import com.google.gson.JsonSyntaxException; /** Handles the method calls for the plugin. */ class MethodCallHandler implements MethodChannel.MethodCallHandler { private Share share; + private Gson gson = new Gson(); MethodCallHandler(Share share) { this.share = share; @@ -25,21 +27,29 @@ public void onMethodCall(MethodCall call, MethodChannel.Result result) { case "share": expectMapArguments(call); // Android does not support showing the share sheet at a particular point on screen. - share.share((String) call.argument("text"), (String) call.argument("subject")); - result.success(null); + try { + // Avoiding uses unchecked or unsafe Object Type Casting by converting Map to Object using Gson + ShareMap shareMap = gson.fromJson(toJson(call), ShareMap.class); + share.share(shareMap.getText(), shareMap.getSubject()); + result.success(null); + } catch (JsonSyntaxException e) { + result.error(e.getMessage(), null, null); + } break; case "shareFiles": expectMapArguments(call); // Android does not support showing the share sheet at a particular point on screen. try { + // Avoiding uses unchecked or unsafe Object Type Casting by converting Map to Object using Gson + ShareFilesMap shareFilesMap = gson.fromJson(toJson(call), ShareFilesMap.class); share.shareFiles( - (List) call.argument("paths"), - (List) call.argument("mimeTypes"), - (String) call.argument("text"), - (String) call.argument("subject")); + shareFilesMap.getPaths(), + shareFilesMap.getMimeTypes(), + shareFilesMap.getText(), + shareFilesMap.getSubject()); result.success(null); - } catch (IOException e) { + } catch (IOException | JsonSyntaxException e) { result.error(e.getMessage(), null, null); } break; @@ -54,4 +64,8 @@ private void expectMapArguments(MethodCall call) throws IllegalArgumentException throw new IllegalArgumentException("Map argument expected"); } } -} + + private String toJson(MethodCall call) { + return gson.toJson(call.arguments); + } +} \ No newline at end of file diff --git a/packages/share/android/src/main/java/io/flutter/plugins/share/ShareFilesMap.java b/packages/share/android/src/main/java/io/flutter/plugins/share/ShareFilesMap.java new file mode 100644 index 000000000000..c9f5ce34f418 --- /dev/null +++ b/packages/share/android/src/main/java/io/flutter/plugins/share/ShareFilesMap.java @@ -0,0 +1,45 @@ +package io.flutter.plugins.share; + +import java.util.List; + +public class ShareFilesMap { + List paths; + List mimeTypes; + String text; + String subject; + + public ShareFilesMap() { + } + + public List getPaths() { + return paths; + } + + public void setPaths(List paths) { + this.paths = paths; + } + + public List getMimeTypes() { + return mimeTypes; + } + + public void setMimeTypes(List mimeTypes) { + this.mimeTypes = mimeTypes; + } + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getSubject() { + return subject; + } + + public void setSubject(String subject) { + this.subject = subject; + } +} diff --git a/packages/share/android/src/main/java/io/flutter/plugins/share/ShareMap.java b/packages/share/android/src/main/java/io/flutter/plugins/share/ShareMap.java new file mode 100644 index 000000000000..7ca939dabbc0 --- /dev/null +++ b/packages/share/android/src/main/java/io/flutter/plugins/share/ShareMap.java @@ -0,0 +1,25 @@ +package io.flutter.plugins.share; + +public class ShareMap { + String text; + String subject; + + public ShareMap() { + } + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getSubject() { + return subject; + } + + public void setSubject(String subject) { + this.subject = subject; + } +} From cd493116b130a239a51f8203afaa6826db1374e7 Mon Sep 17 00:00:00 2001 From: Hamdi Kahloun Date: Mon, 7 Sep 2020 12:24:02 +0100 Subject: [PATCH 02/13] [share] MethodCallHandler.java uses unchecked or unsafe operations --- packages/share/CHANGELOG.md | 4 ++++ packages/share/pubspec.yaml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/share/CHANGELOG.md b/packages/share/CHANGELOG.md index c4ee830ed34f..8037c75943df 100644 --- a/packages/share/CHANGELOG.md +++ b/packages/share/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.6.5+1 + +* Avoiding uses unchecked or unsafe Object Type Casting + ## 0.6.5 * Added support for sharing files diff --git a/packages/share/pubspec.yaml b/packages/share/pubspec.yaml index 918087b139ec..f9c1f4bad4e6 100644 --- a/packages/share/pubspec.yaml +++ b/packages/share/pubspec.yaml @@ -5,7 +5,7 @@ homepage: https://github.com/flutter/plugins/tree/master/packages/share # 0.6.y+z is compatible with 1.0.0, if you land a breaking change bump # the version to 2.0.0. # See more details: https://github.com/flutter/flutter/wiki/Package-migration-to-1.0.0 -version: 0.6.5 +version: 0.6.5+1 flutter: plugin: From 99b5950a65fc8bf42d0cd9f4fa6d191dae4382d9 Mon Sep 17 00:00:00 2001 From: Hamdi Kahloun Date: Mon, 7 Sep 2020 12:59:56 +0100 Subject: [PATCH 03/13] [share] MethodCallHandler.java uses unchecked or unsafe operations --- .../plugins/share/MethodCallHandler.java | 18 ++++---- .../flutter/plugins/share/ShareFilesMap.java | 45 ------------------- .../io/flutter/plugins/share/ShareMap.java | 20 +++++++++ 3 files changed, 30 insertions(+), 53 deletions(-) delete mode 100644 packages/share/android/src/main/java/io/flutter/plugins/share/ShareFilesMap.java diff --git a/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java b/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java index a28400248194..3cdbc86eb569 100644 --- a/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java +++ b/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java @@ -16,6 +16,7 @@ class MethodCallHandler implements MethodChannel.MethodCallHandler { private Share share; private Gson gson = new Gson(); + private ShareMap shareMap; MethodCallHandler(Share share) { this.share = share; @@ -29,7 +30,7 @@ public void onMethodCall(MethodCall call, MethodChannel.Result result) { // Android does not support showing the share sheet at a particular point on screen. try { // Avoiding uses unchecked or unsafe Object Type Casting by converting Map to Object using Gson - ShareMap shareMap = gson.fromJson(toJson(call), ShareMap.class); + shareMap = getShareMap(call); share.share(shareMap.getText(), shareMap.getSubject()); result.success(null); } catch (JsonSyntaxException e) { @@ -42,12 +43,12 @@ public void onMethodCall(MethodCall call, MethodChannel.Result result) { // Android does not support showing the share sheet at a particular point on screen. try { // Avoiding uses unchecked or unsafe Object Type Casting by converting Map to Object using Gson - ShareFilesMap shareFilesMap = gson.fromJson(toJson(call), ShareFilesMap.class); + shareMap = getShareMap(call); share.shareFiles( - shareFilesMap.getPaths(), - shareFilesMap.getMimeTypes(), - shareFilesMap.getText(), - shareFilesMap.getSubject()); + shareMap.getPaths(), + shareMap.getMimeTypes(), + shareMap.getText(), + shareMap.getSubject()); result.success(null); } catch (IOException | JsonSyntaxException e) { result.error(e.getMessage(), null, null); @@ -65,7 +66,8 @@ private void expectMapArguments(MethodCall call) throws IllegalArgumentException } } - private String toJson(MethodCall call) { - return gson.toJson(call.arguments); + private ShareMap getShareMap(MethodCall call){ + String jsonData = gson.toJson(call.arguments); + return gson.fromJson(jsonData, ShareMap.class); } } \ No newline at end of file diff --git a/packages/share/android/src/main/java/io/flutter/plugins/share/ShareFilesMap.java b/packages/share/android/src/main/java/io/flutter/plugins/share/ShareFilesMap.java deleted file mode 100644 index c9f5ce34f418..000000000000 --- a/packages/share/android/src/main/java/io/flutter/plugins/share/ShareFilesMap.java +++ /dev/null @@ -1,45 +0,0 @@ -package io.flutter.plugins.share; - -import java.util.List; - -public class ShareFilesMap { - List paths; - List mimeTypes; - String text; - String subject; - - public ShareFilesMap() { - } - - public List getPaths() { - return paths; - } - - public void setPaths(List paths) { - this.paths = paths; - } - - public List getMimeTypes() { - return mimeTypes; - } - - public void setMimeTypes(List mimeTypes) { - this.mimeTypes = mimeTypes; - } - - public String getText() { - return text; - } - - public void setText(String text) { - this.text = text; - } - - public String getSubject() { - return subject; - } - - public void setSubject(String subject) { - this.subject = subject; - } -} diff --git a/packages/share/android/src/main/java/io/flutter/plugins/share/ShareMap.java b/packages/share/android/src/main/java/io/flutter/plugins/share/ShareMap.java index 7ca939dabbc0..e2d507f28a44 100644 --- a/packages/share/android/src/main/java/io/flutter/plugins/share/ShareMap.java +++ b/packages/share/android/src/main/java/io/flutter/plugins/share/ShareMap.java @@ -1,12 +1,32 @@ package io.flutter.plugins.share; +import java.util.List; + public class ShareMap { + List paths; + List mimeTypes; String text; String subject; public ShareMap() { } + public List getPaths() { + return paths; + } + + public void setPaths(List paths) { + this.paths = paths; + } + + public List getMimeTypes() { + return mimeTypes; + } + + public void setMimeTypes(List mimeTypes) { + this.mimeTypes = mimeTypes; + } + public String getText() { return text; } From 2f51f5f0f24ba26f97a41dd3c42e54496170b42d Mon Sep 17 00:00:00 2001 From: Hamdi Kahloun Date: Mon, 7 Sep 2020 13:01:11 +0100 Subject: [PATCH 04/13] [share] MethodCallHandler.java uses unchecked or unsafe operations --- .../main/java/io/flutter/plugins/share/MethodCallHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java b/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java index 3cdbc86eb569..90609d6f68d8 100644 --- a/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java +++ b/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java @@ -16,7 +16,6 @@ class MethodCallHandler implements MethodChannel.MethodCallHandler { private Share share; private Gson gson = new Gson(); - private ShareMap shareMap; MethodCallHandler(Share share) { this.share = share; @@ -24,6 +23,7 @@ class MethodCallHandler implements MethodChannel.MethodCallHandler { @Override public void onMethodCall(MethodCall call, MethodChannel.Result result) { + ShareMap shareMap; switch (call.method) { case "share": expectMapArguments(call); From 02d7ef0c1edc7d7e7291779b756e5af88331c655 Mon Sep 17 00:00:00 2001 From: Hamdi Kahloun Date: Mon, 7 Sep 2020 14:40:18 +0100 Subject: [PATCH 05/13] [share] MethodCallHandler.java uses unchecked or unsafe operations --- .../plugins/share/MethodCallHandler.java | 28 +++++---- .../io/flutter/plugins/share/ShareMap.java | 59 +++++++++---------- 2 files changed, 45 insertions(+), 42 deletions(-) diff --git a/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java b/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java index 90609d6f68d8..62f95dcd122e 100644 --- a/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java +++ b/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java @@ -4,13 +4,15 @@ package io.flutter.plugins.share; -import io.flutter.plugin.common.MethodCall; -import io.flutter.plugin.common.MethodChannel; -import java.io.*; -import java.util.Map; import com.google.gson.Gson; import com.google.gson.JsonSyntaxException; +import java.io.IOException; +import java.util.Map; + +import io.flutter.plugin.common.MethodCall; +import io.flutter.plugin.common.MethodChannel; + /** Handles the method calls for the plugin. */ class MethodCallHandler implements MethodChannel.MethodCallHandler { @@ -29,7 +31,8 @@ public void onMethodCall(MethodCall call, MethodChannel.Result result) { expectMapArguments(call); // Android does not support showing the share sheet at a particular point on screen. try { - // Avoiding uses unchecked or unsafe Object Type Casting by converting Map to Object using Gson + // Avoiding uses unchecked or unsafe Object Type Casting by converting Map to Object using + // Gson shareMap = getShareMap(call); share.share(shareMap.getText(), shareMap.getSubject()); result.success(null); @@ -42,13 +45,14 @@ public void onMethodCall(MethodCall call, MethodChannel.Result result) { // Android does not support showing the share sheet at a particular point on screen. try { - // Avoiding uses unchecked or unsafe Object Type Casting by converting Map to Object using Gson + // Avoiding uses unchecked or unsafe Object Type Casting by converting Map to Object using + // Gson shareMap = getShareMap(call); share.shareFiles( - shareMap.getPaths(), - shareMap.getMimeTypes(), - shareMap.getText(), - shareMap.getSubject()); + shareMap.getPaths(), + shareMap.getMimeTypes(), + shareMap.getText(), + shareMap.getSubject()); result.success(null); } catch (IOException | JsonSyntaxException e) { result.error(e.getMessage(), null, null); @@ -66,8 +70,8 @@ private void expectMapArguments(MethodCall call) throws IllegalArgumentException } } - private ShareMap getShareMap(MethodCall call){ + private ShareMap getShareMap(MethodCall call) { String jsonData = gson.toJson(call.arguments); return gson.fromJson(jsonData, ShareMap.class); } -} \ No newline at end of file +} diff --git a/packages/share/android/src/main/java/io/flutter/plugins/share/ShareMap.java b/packages/share/android/src/main/java/io/flutter/plugins/share/ShareMap.java index e2d507f28a44..bad36dfbdc53 100644 --- a/packages/share/android/src/main/java/io/flutter/plugins/share/ShareMap.java +++ b/packages/share/android/src/main/java/io/flutter/plugins/share/ShareMap.java @@ -3,43 +3,42 @@ import java.util.List; public class ShareMap { - List paths; - List mimeTypes; - String text; - String subject; + List paths; + List mimeTypes; + String text; + String subject; - public ShareMap() { - } + public ShareMap() {} - public List getPaths() { - return paths; - } + public List getPaths() { + return paths; + } - public void setPaths(List paths) { - this.paths = paths; - } + public void setPaths(List paths) { + this.paths = paths; + } - public List getMimeTypes() { - return mimeTypes; - } + public List getMimeTypes() { + return mimeTypes; + } - public void setMimeTypes(List mimeTypes) { - this.mimeTypes = mimeTypes; - } + public void setMimeTypes(List mimeTypes) { + this.mimeTypes = mimeTypes; + } - public String getText() { - return text; - } + public String getText() { + return text; + } - public void setText(String text) { - this.text = text; - } + public void setText(String text) { + this.text = text; + } - public String getSubject() { - return subject; - } + public String getSubject() { + return subject; + } - public void setSubject(String subject) { - this.subject = subject; - } + public void setSubject(String subject) { + this.subject = subject; + } } From 6e87f1deff906eb2a5bb10335b9c303f168f9a71 Mon Sep 17 00:00:00 2001 From: Hamdi Kahloun Date: Mon, 7 Sep 2020 15:10:49 +0100 Subject: [PATCH 06/13] [share] MethodCallHandler.java uses unchecked or unsafe operations --- .../io/flutter/plugins/share/MethodCallHandler.java | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java b/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java index 62f95dcd122e..1dd5d5494ffa 100644 --- a/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java +++ b/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java @@ -6,12 +6,10 @@ import com.google.gson.Gson; import com.google.gson.JsonSyntaxException; - -import java.io.IOException; -import java.util.Map; - import io.flutter.plugin.common.MethodCall; import io.flutter.plugin.common.MethodChannel; +import java.io.*; +import java.util.Map; /** Handles the method calls for the plugin. */ class MethodCallHandler implements MethodChannel.MethodCallHandler { @@ -30,9 +28,8 @@ public void onMethodCall(MethodCall call, MethodChannel.Result result) { case "share": expectMapArguments(call); // Android does not support showing the share sheet at a particular point on screen. + // Avoiding uses unchecked or unsafe Casting by converting Map to Object using Gson. try { - // Avoiding uses unchecked or unsafe Object Type Casting by converting Map to Object using - // Gson shareMap = getShareMap(call); share.share(shareMap.getText(), shareMap.getSubject()); result.success(null); @@ -44,9 +41,8 @@ public void onMethodCall(MethodCall call, MethodChannel.Result result) { expectMapArguments(call); // Android does not support showing the share sheet at a particular point on screen. + // Avoiding uses unchecked or unsafe Casting by converting Map to Object using Gson. try { - // Avoiding uses unchecked or unsafe Object Type Casting by converting Map to Object using - // Gson shareMap = getShareMap(call); share.shareFiles( shareMap.getPaths(), From c68a55d53c2e6da0a4d6fb89de058579f68e9250 Mon Sep 17 00:00:00 2001 From: Hamdi Kahloun Date: Thu, 10 Sep 2020 21:12:31 +0100 Subject: [PATCH 07/13] [share] MethodCallHandler.java uses unchecked or unsafe operations --- packages/share/android/build.gradle | 1 - .../plugins/share/MethodCallHandler.java | 44 +++++++------------ 2 files changed, 17 insertions(+), 28 deletions(-) diff --git a/packages/share/android/build.gradle b/packages/share/android/build.gradle index 15a34f250ecd..7506f4db8261 100644 --- a/packages/share/android/build.gradle +++ b/packages/share/android/build.gradle @@ -35,6 +35,5 @@ android { dependencies { implementation 'androidx.core:core:1.3.1' implementation 'androidx.annotation:annotation:1.1.0' - implementation 'com.google.code.gson:gson:2.8.6' } } diff --git a/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java b/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java index 1dd5d5494ffa..2fda77301f51 100644 --- a/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java +++ b/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java @@ -4,18 +4,17 @@ package io.flutter.plugins.share; -import com.google.gson.Gson; -import com.google.gson.JsonSyntaxException; +import java.io.IOException; +import java.util.List; +import java.util.Map; + import io.flutter.plugin.common.MethodCall; import io.flutter.plugin.common.MethodChannel; -import java.io.*; -import java.util.Map; /** Handles the method calls for the plugin. */ class MethodCallHandler implements MethodChannel.MethodCallHandler { private Share share; - private Gson gson = new Gson(); MethodCallHandler(Share share) { this.share = share; @@ -23,34 +22,30 @@ class MethodCallHandler implements MethodChannel.MethodCallHandler { @Override public void onMethodCall(MethodCall call, MethodChannel.Result result) { - ShareMap shareMap; + String text, subject; + List paths, mimeTypes; switch (call.method) { case "share": expectMapArguments(call); // Android does not support showing the share sheet at a particular point on screen. - // Avoiding uses unchecked or unsafe Casting by converting Map to Object using Gson. - try { - shareMap = getShareMap(call); - share.share(shareMap.getText(), shareMap.getSubject()); - result.success(null); - } catch (JsonSyntaxException e) { - result.error(e.getMessage(), null, null); - } + text = call.argument("text"); + subject = call.argument("subject"); + share.share(text, subject); + result.success(null); break; case "shareFiles": expectMapArguments(call); // Android does not support showing the share sheet at a particular point on screen. - // Avoiding uses unchecked or unsafe Casting by converting Map to Object using Gson. try { - shareMap = getShareMap(call); - share.shareFiles( - shareMap.getPaths(), - shareMap.getMimeTypes(), - shareMap.getText(), - shareMap.getSubject()); + paths = call.argument("paths"); + mimeTypes = call.argument("mimeTypes"); + text = call.argument("text"); + subject = call.argument("subject"); + share.shareFiles(paths, mimeTypes, text, subject); + share.shareFiles(paths, mimeTypes, text, subject); result.success(null); - } catch (IOException | JsonSyntaxException e) { + } catch (IOException e) { result.error(e.getMessage(), null, null); } break; @@ -65,9 +60,4 @@ private void expectMapArguments(MethodCall call) throws IllegalArgumentException throw new IllegalArgumentException("Map argument expected"); } } - - private ShareMap getShareMap(MethodCall call) { - String jsonData = gson.toJson(call.arguments); - return gson.fromJson(jsonData, ShareMap.class); - } } From 90529c88127125b82eac0b55794d052f418ecb6a Mon Sep 17 00:00:00 2001 From: Hamdi Kahloun Date: Thu, 10 Sep 2020 21:14:31 +0100 Subject: [PATCH 08/13] [share] MethodCallHandler.java uses unchecked or unsafe operations --- .../main/java/io/flutter/plugins/share/MethodCallHandler.java | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java b/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java index 2fda77301f51..656fea088b33 100644 --- a/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java +++ b/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java @@ -43,7 +43,6 @@ public void onMethodCall(MethodCall call, MethodChannel.Result result) { text = call.argument("text"); subject = call.argument("subject"); share.shareFiles(paths, mimeTypes, text, subject); - share.shareFiles(paths, mimeTypes, text, subject); result.success(null); } catch (IOException e) { result.error(e.getMessage(), null, null); From cbc56a06d11765fa6ee4995a4e7c9d1593717c1b Mon Sep 17 00:00:00 2001 From: Hamdi Kahloun Date: Thu, 10 Sep 2020 21:15:05 +0100 Subject: [PATCH 09/13] [share] MethodCallHandler.java uses unchecked or unsafe operations --- .../io/flutter/plugins/share/ShareMap.java | 44 ------------------- 1 file changed, 44 deletions(-) delete mode 100644 packages/share/android/src/main/java/io/flutter/plugins/share/ShareMap.java diff --git a/packages/share/android/src/main/java/io/flutter/plugins/share/ShareMap.java b/packages/share/android/src/main/java/io/flutter/plugins/share/ShareMap.java deleted file mode 100644 index bad36dfbdc53..000000000000 --- a/packages/share/android/src/main/java/io/flutter/plugins/share/ShareMap.java +++ /dev/null @@ -1,44 +0,0 @@ -package io.flutter.plugins.share; - -import java.util.List; - -public class ShareMap { - List paths; - List mimeTypes; - String text; - String subject; - - public ShareMap() {} - - public List getPaths() { - return paths; - } - - public void setPaths(List paths) { - this.paths = paths; - } - - public List getMimeTypes() { - return mimeTypes; - } - - public void setMimeTypes(List mimeTypes) { - this.mimeTypes = mimeTypes; - } - - public String getText() { - return text; - } - - public void setText(String text) { - this.text = text; - } - - public String getSubject() { - return subject; - } - - public void setSubject(String subject) { - this.subject = subject; - } -} From 714864fcf24d3e38849f2dfb4547d794657444f5 Mon Sep 17 00:00:00 2001 From: Hamdi Kahloun <32666446+hamdikahloun@users.noreply.github.com> Date: Thu, 10 Sep 2020 22:26:26 +0100 Subject: [PATCH 10/13] Update MethodCallHandler.java --- .../java/io/flutter/plugins/share/MethodCallHandler.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java b/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java index 656fea088b33..9eaac3790d1d 100644 --- a/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java +++ b/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java @@ -4,12 +4,11 @@ package io.flutter.plugins.share; -import java.io.IOException; -import java.util.List; -import java.util.Map; - import io.flutter.plugin.common.MethodCall; import io.flutter.plugin.common.MethodChannel; +import java.io.*; +import java.util.List; +import java.util.Map; /** Handles the method calls for the plugin. */ class MethodCallHandler implements MethodChannel.MethodCallHandler { From 629981619fad95f7b3c86254e327edead5c2488e Mon Sep 17 00:00:00 2001 From: Hamdi Kahloun Date: Sun, 13 Sep 2020 11:22:39 +0100 Subject: [PATCH 11/13] Handle deprecation & unchecked warning as error --- packages/share/android/build.gradle | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/share/android/build.gradle b/packages/share/android/build.gradle index 7506f4db8261..ffa1432fa17a 100644 --- a/packages/share/android/build.gradle +++ b/packages/share/android/build.gradle @@ -1,5 +1,6 @@ group 'io.flutter.plugins.share' version '1.0-SNAPSHOT' +def args = ["-Xlint:deprecation","-Xlint:unchecked","-Werror"] buildscript { repositories { @@ -19,6 +20,10 @@ rootProject.allprojects { } } +project.getTasks().withType(JavaCompile){ + options.compilerArgs.addAll(args) +} + apply plugin: 'com.android.library' android { From 244209203c6f4430a5eb29ef08ca9fae06cb4163 Mon Sep 17 00:00:00 2001 From: Hamdi Kahloun Date: Mon, 14 Sep 2020 19:26:21 +0100 Subject: [PATCH 12/13] Update MethodCallHandler.java --- .../io/flutter/plugins/share/MethodCallHandler.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java b/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java index 9eaac3790d1d..3ce6a5821189 100644 --- a/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java +++ b/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java @@ -21,8 +21,8 @@ class MethodCallHandler implements MethodChannel.MethodCallHandler { @Override public void onMethodCall(MethodCall call, MethodChannel.Result result) { - String text, subject; - List paths, mimeTypes; + String text; + String subject; switch (call.method) { case "share": expectMapArguments(call); @@ -35,12 +35,12 @@ public void onMethodCall(MethodCall call, MethodChannel.Result result) { case "shareFiles": expectMapArguments(call); + List paths = call.argument("paths"); + List mimeTypes = call.argument("mimeTypes"); + text = call.argument("text"); + subject = call.argument("subject"); // Android does not support showing the share sheet at a particular point on screen. try { - paths = call.argument("paths"); - mimeTypes = call.argument("mimeTypes"); - text = call.argument("text"); - subject = call.argument("subject"); share.shareFiles(paths, mimeTypes, text, subject); result.success(null); } catch (IOException e) { From c906be11c8a888f98a516c60c7ed3a695d30e654 Mon Sep 17 00:00:00 2001 From: Hamdi Kahloun Date: Mon, 14 Sep 2020 19:52:14 +0100 Subject: [PATCH 13/13] Update MethodCallHandler.java --- .../java/io/flutter/plugins/share/MethodCallHandler.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java b/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java index 3ce6a5821189..99baabeab6b7 100644 --- a/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java +++ b/packages/share/android/src/main/java/io/flutter/plugins/share/MethodCallHandler.java @@ -21,14 +21,12 @@ class MethodCallHandler implements MethodChannel.MethodCallHandler { @Override public void onMethodCall(MethodCall call, MethodChannel.Result result) { - String text; - String subject; switch (call.method) { case "share": expectMapArguments(call); // Android does not support showing the share sheet at a particular point on screen. - text = call.argument("text"); - subject = call.argument("subject"); + String text = call.argument("text"); + String subject = call.argument("subject"); share.share(text, subject); result.success(null); break;