fix(share_plus): remove canLaunch check - #1315

Merged
miquelbeltran merged 7 commits into
fluttercommunity:mainfrom
SirusCodes:patch-1295
Nov 7, 2022
Merged

fix(share_plus): remove canLaunch check#1315
miquelbeltran merged 7 commits into
fluttercommunity:mainfrom
SirusCodes:patch-1295

Conversation

@SirusCodes

@SirusCodesSirusCodes commented Nov 1, 2022

Copy link
Copy Markdown
Contributor

Description

Reverting back to old construct as @stuartmorgan suggested #1295 (comment)

Also remove canLaunch check.

Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I titled the PR using Conventional Commits.
  • I did not modify the CHANGELOG.md nor the pubspec.yaml files.
  • All existing and new tests are passing.
  • The analyzer (flutter analyze) does not report any problems on my PR.

Breaking Change

Does your PR require plugin users to manually update their apps to accommodate your change?

  • Yes, this is a breaking change (please indicate that with a ! in the title as explained in Conventional Commits).
  • No, this is not a breaking change.

} else {
throw Exception('Unable to share on web');
}
await urlLauncher.launchUrl(uri.toString(), const LaunchOptions());

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it intentional that you are ignoring a false return here?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just reverted it back. Initially it was not returning anything. Also, the API is not returning anything to the user.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, the API is not returning anything to the user.

But per the docs for launchUrl:

/// Returns true if the URL was launched successful, otherwise either returns
/// false or throws a [PlatformException] depending on the failure.

Is having share throw an exception for some failures, but failing completely silently for other failures, really the desired behavior?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For what I can see, we can check the result and throw an exception if it was false.

I think using a plain Exception would be fine here. I will push the changes.

@stuartmorgan-g

Copy link
Copy Markdown

Why only Linux? Other implementations were using the same construction.

@SirusCodes

Copy link
Copy Markdown
ContributorAuthor

Why only Linux? Other implementations were using the same construction.

Ahh... missed it. Thought it was only used in Linux. Will change them as well.

@SirusCodesSirusCodes changed the title fix(share_plus): revert to the older contruct for linuxfix(share_plus): remove canLaunch checkNov 1, 2022
}

/// Share text.
/// Throws a [PlatformException] if `mailto:` scheme cannot be handled.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed for consistency with the other platforms

Comment on lines +46 to +47
if (!launchResult) {
throw Exception('Failed to launch mailto: URI');

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As commented, the launchUrl can either return false or fail with an exception, in the case of returning false we throw an Exception.

I did not use PlatformException here because I don't think we should be creating them outside platform code, so I think just a generic Exception is fine here.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, it makes sense.

Comment threadpackages/share_plus/share_plus/test/url_launcher_mock.dart
Comment threadpackages/share_plus/share_plus/lib/src/share_plus_windows.dart Outdated
@SirusCodes

Copy link
Copy Markdown
ContributorAuthor

@miquelbeltran thanks for helping out. This feels fine to me

@miquelbeltran
miquelbeltran requested review from nohli, stuartmorgan-g and vbuberen and removed request for stuartmorgan-gNovember 4, 2022 05:34

@nohlinohli left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, just not sure if the thrown messages should include $uri instead of mailto: URI.

@vbuberenvbuberen left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@miquelbeltran
miquelbeltran merged commit f8f1a0b into fluttercommunity:mainNov 7, 2022
@github-actionsgithub-actionsBot locked as resolved and limited conversation to collaborators Jan 28, 2025
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@SirusCodes@stuartmorgan-g@miquelbeltran@vbuberen@nohli
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix(share_plus): remove canLaunch check - #1315

Merged
miquelbeltran merged 7 commits into
fluttercommunity:mainfrom
SirusCodes:patch-1295
Nov 7, 2022
Merged

fix(share_plus): remove canLaunch check#1315
miquelbeltran merged 7 commits into
fluttercommunity:mainfrom
SirusCodes:patch-1295

Conversation

@SirusCodes

@SirusCodesSirusCodes commented Nov 1, 2022

Copy link
Copy Markdown
Contributor

Description

Reverting back to old construct as @stuartmorgan suggested #1295 (comment)

Also remove canLaunch check.

Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I titled the PR using Conventional Commits.
  • I did not modify the CHANGELOG.md nor the pubspec.yaml files.
  • All existing and new tests are passing.
  • The analyzer (flutter analyze) does not report any problems on my PR.

Breaking Change

Does your PR require plugin users to manually update their apps to accommodate your change?

  • Yes, this is a breaking change (please indicate that with a ! in the title as explained in Conventional Commits).
  • No, this is not a breaking change.

} else {
throw Exception('Unable to share on web');
}
await urlLauncher.launchUrl(uri.toString(), const LaunchOptions());

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it intentional that you are ignoring a false return here?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just reverted it back. Initially it was not returning anything. Also, the API is not returning anything to the user.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, the API is not returning anything to the user.

But per the docs for launchUrl:

/// Returns true if the URL was launched successful, otherwise either returns
/// false or throws a [PlatformException] depending on the failure.

Is having share throw an exception for some failures, but failing completely silently for other failures, really the desired behavior?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For what I can see, we can check the result and throw an exception if it was false.

I think using a plain Exception would be fine here. I will push the changes.

@stuartmorgan-g

Copy link
Copy Markdown

Why only Linux? Other implementations were using the same construction.

@SirusCodes

Copy link
Copy Markdown
ContributorAuthor

Why only Linux? Other implementations were using the same construction.

Ahh... missed it. Thought it was only used in Linux. Will change them as well.

@SirusCodesSirusCodes changed the title fix(share_plus): revert to the older contruct for linuxfix(share_plus): remove canLaunch checkNov 1, 2022
}

/// Share text.
/// Throws a [PlatformException] if `mailto:` scheme cannot be handled.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed for consistency with the other platforms

Comment on lines +46 to +47
if (!launchResult) {
throw Exception('Failed to launch mailto: URI');

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As commented, the launchUrl can either return false or fail with an exception, in the case of returning false we throw an Exception.

I did not use PlatformException here because I don't think we should be creating them outside platform code, so I think just a generic Exception is fine here.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, it makes sense.

Comment threadpackages/share_plus/share_plus/test/url_launcher_mock.dart
Comment threadpackages/share_plus/share_plus/lib/src/share_plus_windows.dart Outdated
@SirusCodes

Copy link
Copy Markdown
ContributorAuthor

@miquelbeltran thanks for helping out. This feels fine to me

@miquelbeltran
miquelbeltran requested review from nohli, stuartmorgan-g and vbuberen and removed request for stuartmorgan-gNovember 4, 2022 05:34

@nohlinohli left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, just not sure if the thrown messages should include $uri instead of mailto: URI.

@vbuberenvbuberen left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@miquelbeltran
miquelbeltran merged commit f8f1a0b into fluttercommunity:mainNov 7, 2022
@github-actionsgithub-actionsBot locked as resolved and limited conversation to collaborators Jan 28, 2025
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@SirusCodes@stuartmorgan-g@miquelbeltran@vbuberen@nohli
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(share_plus): remove canLaunch check - #1315

Merged
miquelbeltran merged 7 commits into
fluttercommunity:mainfrom
SirusCodes:patch-1295
Nov 7, 2022
Merged

fix(share_plus): remove canLaunch check#1315
miquelbeltran merged 7 commits into
fluttercommunity:mainfrom
SirusCodes:patch-1295

Conversation

@SirusCodes

@SirusCodesSirusCodes commented Nov 1, 2022

Copy link
Copy Markdown
Contributor

Description

Reverting back to old construct as @stuartmorgan suggested #1295 (comment)

Also remove canLaunch check.

Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I titled the PR using Conventional Commits.
  • I did not modify the CHANGELOG.md nor the pubspec.yaml files.
  • All existing and new tests are passing.
  • The analyzer (flutter analyze) does not report any problems on my PR.

Breaking Change

Does your PR require plugin users to manually update their apps to accommodate your change?

  • Yes, this is a breaking change (please indicate that with a ! in the title as explained in Conventional Commits).
  • No, this is not a breaking change.

} else {
throw Exception('Unable to share on web');
}
await urlLauncher.launchUrl(uri.toString(), const LaunchOptions());

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it intentional that you are ignoring a false return here?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just reverted it back. Initially it was not returning anything. Also, the API is not returning anything to the user.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, the API is not returning anything to the user.

But per the docs for launchUrl:

/// Returns true if the URL was launched successful, otherwise either returns
/// false or throws a [PlatformException] depending on the failure.

Is having share throw an exception for some failures, but failing completely silently for other failures, really the desired behavior?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For what I can see, we can check the result and throw an exception if it was false.

I think using a plain Exception would be fine here. I will push the changes.

@stuartmorgan-g

Copy link
Copy Markdown

Why only Linux? Other implementations were using the same construction.

@SirusCodes

Copy link
Copy Markdown
ContributorAuthor

Why only Linux? Other implementations were using the same construction.

Ahh... missed it. Thought it was only used in Linux. Will change them as well.

@SirusCodesSirusCodes changed the title fix(share_plus): revert to the older contruct for linuxfix(share_plus): remove canLaunch checkNov 1, 2022
}

/// Share text.
/// Throws a [PlatformException] if `mailto:` scheme cannot be handled.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed for consistency with the other platforms

Comment on lines +46 to +47
if (!launchResult) {
throw Exception('Failed to launch mailto: URI');

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As commented, the launchUrl can either return false or fail with an exception, in the case of returning false we throw an Exception.

I did not use PlatformException here because I don't think we should be creating them outside platform code, so I think just a generic Exception is fine here.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, it makes sense.

Comment threadpackages/share_plus/share_plus/test/url_launcher_mock.dart
Comment threadpackages/share_plus/share_plus/lib/src/share_plus_windows.dart Outdated
@SirusCodes

Copy link
Copy Markdown
ContributorAuthor

@miquelbeltran thanks for helping out. This feels fine to me

@miquelbeltran
miquelbeltran requested review from nohli, stuartmorgan-g and vbuberen and removed request for stuartmorgan-gNovember 4, 2022 05:34

@nohlinohli left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, just not sure if the thrown messages should include $uri instead of mailto: URI.

@vbuberenvbuberen left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@miquelbeltran
miquelbeltran merged commit f8f1a0b into fluttercommunity:mainNov 7, 2022
@github-actionsgithub-actionsBot locked as resolved and limited conversation to collaborators Jan 28, 2025
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@SirusCodes@stuartmorgan-g@miquelbeltran@vbuberen@nohli
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(share_plus): remove canLaunch check - #1315

Merged
miquelbeltran merged 7 commits into
fluttercommunity:mainfrom
SirusCodes:patch-1295
Nov 7, 2022
Merged

fix(share_plus): remove canLaunch check#1315
miquelbeltran merged 7 commits into
fluttercommunity:mainfrom
SirusCodes:patch-1295

Conversation

@SirusCodes

@SirusCodesSirusCodes commented Nov 1, 2022

Copy link
Copy Markdown
Contributor

Description

Reverting back to old construct as @stuartmorgan suggested #1295 (comment)

Also remove canLaunch check.

Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I titled the PR using Conventional Commits.
  • I did not modify the CHANGELOG.md nor the pubspec.yaml files.
  • All existing and new tests are passing.
  • The analyzer (flutter analyze) does not report any problems on my PR.

Breaking Change

Does your PR require plugin users to manually update their apps to accommodate your change?

  • Yes, this is a breaking change (please indicate that with a ! in the title as explained in Conventional Commits).
  • No, this is not a breaking change.

} else {
throw Exception('Unable to share on web');
}
await urlLauncher.launchUrl(uri.toString(), const LaunchOptions());

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it intentional that you are ignoring a false return here?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just reverted it back. Initially it was not returning anything. Also, the API is not returning anything to the user.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, the API is not returning anything to the user.

But per the docs for launchUrl:

/// Returns true if the URL was launched successful, otherwise either returns
/// false or throws a [PlatformException] depending on the failure.

Is having share throw an exception for some failures, but failing completely silently for other failures, really the desired behavior?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For what I can see, we can check the result and throw an exception if it was false.

I think using a plain Exception would be fine here. I will push the changes.

@stuartmorgan-g

Copy link
Copy Markdown

Why only Linux? Other implementations were using the same construction.

@SirusCodes

Copy link
Copy Markdown
ContributorAuthor

Why only Linux? Other implementations were using the same construction.

Ahh... missed it. Thought it was only used in Linux. Will change them as well.

@SirusCodesSirusCodes changed the title fix(share_plus): revert to the older contruct for linuxfix(share_plus): remove canLaunch checkNov 1, 2022
}

/// Share text.
/// Throws a [PlatformException] if `mailto:` scheme cannot be handled.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed for consistency with the other platforms

Comment on lines +46 to +47
if (!launchResult) {
throw Exception('Failed to launch mailto: URI');

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As commented, the launchUrl can either return false or fail with an exception, in the case of returning false we throw an Exception.

I did not use PlatformException here because I don't think we should be creating them outside platform code, so I think just a generic Exception is fine here.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, it makes sense.

Comment threadpackages/share_plus/share_plus/test/url_launcher_mock.dart
Comment threadpackages/share_plus/share_plus/lib/src/share_plus_windows.dart Outdated
@SirusCodes

Copy link
Copy Markdown
ContributorAuthor

@miquelbeltran thanks for helping out. This feels fine to me

@miquelbeltran
miquelbeltran requested review from nohli, stuartmorgan-g and vbuberen and removed request for stuartmorgan-gNovember 4, 2022 05:34

@nohlinohli left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, just not sure if the thrown messages should include $uri instead of mailto: URI.

@vbuberenvbuberen left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@miquelbeltran
miquelbeltran merged commit f8f1a0b into fluttercommunity:mainNov 7, 2022
@github-actionsgithub-actionsBot locked as resolved and limited conversation to collaborators Jan 28, 2025
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@SirusCodes@stuartmorgan-g@miquelbeltran@vbuberen@nohli
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix(share_plus): remove canLaunch check - #1315

Merged
miquelbeltran merged 7 commits into
fluttercommunity:mainfrom
SirusCodes:patch-1295
Nov 7, 2022
Merged

fix(share_plus): remove canLaunch check#1315
miquelbeltran merged 7 commits into
fluttercommunity:mainfrom
SirusCodes:patch-1295

Conversation

@SirusCodes

@SirusCodesSirusCodes commented Nov 1, 2022

Copy link
Copy Markdown
Contributor

Description

Reverting back to old construct as @stuartmorgan suggested #1295 (comment)

Also remove canLaunch check.

Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I titled the PR using Conventional Commits.
  • I did not modify the CHANGELOG.md nor the pubspec.yaml files.
  • All existing and new tests are passing.
  • The analyzer (flutter analyze) does not report any problems on my PR.

Breaking Change

Does your PR require plugin users to manually update their apps to accommodate your change?

  • Yes, this is a breaking change (please indicate that with a ! in the title as explained in Conventional Commits).
  • No, this is not a breaking change.

} else {
throw Exception('Unable to share on web');
}
await urlLauncher.launchUrl(uri.toString(), const LaunchOptions());

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it intentional that you are ignoring a false return here?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just reverted it back. Initially it was not returning anything. Also, the API is not returning anything to the user.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, the API is not returning anything to the user.

But per the docs for launchUrl:

/// Returns true if the URL was launched successful, otherwise either returns
/// false or throws a [PlatformException] depending on the failure.

Is having share throw an exception for some failures, but failing completely silently for other failures, really the desired behavior?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For what I can see, we can check the result and throw an exception if it was false.

I think using a plain Exception would be fine here. I will push the changes.

@stuartmorgan-g

Copy link
Copy Markdown

Why only Linux? Other implementations were using the same construction.

@SirusCodes

Copy link
Copy Markdown
ContributorAuthor

Why only Linux? Other implementations were using the same construction.

Ahh... missed it. Thought it was only used in Linux. Will change them as well.

@SirusCodesSirusCodes changed the title fix(share_plus): revert to the older contruct for linuxfix(share_plus): remove canLaunch checkNov 1, 2022
}

/// Share text.
/// Throws a [PlatformException] if `mailto:` scheme cannot be handled.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed for consistency with the other platforms

Comment on lines +46 to +47
if (!launchResult) {
throw Exception('Failed to launch mailto: URI');

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As commented, the launchUrl can either return false or fail with an exception, in the case of returning false we throw an Exception.

I did not use PlatformException here because I don't think we should be creating them outside platform code, so I think just a generic Exception is fine here.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, it makes sense.

Comment threadpackages/share_plus/share_plus/test/url_launcher_mock.dart
Comment threadpackages/share_plus/share_plus/lib/src/share_plus_windows.dart Outdated
@SirusCodes

Copy link
Copy Markdown
ContributorAuthor

@miquelbeltran thanks for helping out. This feels fine to me

@miquelbeltran
miquelbeltran requested review from nohli, stuartmorgan-g and vbuberen and removed request for stuartmorgan-gNovember 4, 2022 05:34

@nohlinohli left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, just not sure if the thrown messages should include $uri instead of mailto: URI.

@vbuberenvbuberen left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@miquelbeltran
miquelbeltran merged commit f8f1a0b into fluttercommunity:mainNov 7, 2022
@github-actionsgithub-actionsBot locked as resolved and limited conversation to collaborators Jan 28, 2025
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@SirusCodes@stuartmorgan-g@miquelbeltran@vbuberen@nohli
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(share_plus): remove canLaunch check - #1315

Merged
miquelbeltran merged 7 commits into
fluttercommunity:mainfrom
SirusCodes:patch-1295
Nov 7, 2022
Merged

fix(share_plus): remove canLaunch check#1315
miquelbeltran merged 7 commits into
fluttercommunity:mainfrom
SirusCodes:patch-1295

Conversation

@SirusCodes

@SirusCodesSirusCodes commented Nov 1, 2022

Copy link
Copy Markdown
Contributor

Description

Reverting back to old construct as @stuartmorgan suggested #1295 (comment)

Also remove canLaunch check.

Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I titled the PR using Conventional Commits.
  • I did not modify the CHANGELOG.md nor the pubspec.yaml files.
  • All existing and new tests are passing.
  • The analyzer (flutter analyze) does not report any problems on my PR.

Breaking Change

Does your PR require plugin users to manually update their apps to accommodate your change?

  • Yes, this is a breaking change (please indicate that with a ! in the title as explained in Conventional Commits).
  • No, this is not a breaking change.

} else {
throw Exception('Unable to share on web');
}
await urlLauncher.launchUrl(uri.toString(), const LaunchOptions());

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it intentional that you are ignoring a false return here?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just reverted it back. Initially it was not returning anything. Also, the API is not returning anything to the user.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, the API is not returning anything to the user.

But per the docs for launchUrl:

/// Returns true if the URL was launched successful, otherwise either returns
/// false or throws a [PlatformException] depending on the failure.

Is having share throw an exception for some failures, but failing completely silently for other failures, really the desired behavior?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For what I can see, we can check the result and throw an exception if it was false.

I think using a plain Exception would be fine here. I will push the changes.

@stuartmorgan-g

Copy link
Copy Markdown

Why only Linux? Other implementations were using the same construction.

@SirusCodes

Copy link
Copy Markdown
ContributorAuthor

Why only Linux? Other implementations were using the same construction.

Ahh... missed it. Thought it was only used in Linux. Will change them as well.

@SirusCodesSirusCodes changed the title fix(share_plus): revert to the older contruct for linuxfix(share_plus): remove canLaunch checkNov 1, 2022
}

/// Share text.
/// Throws a [PlatformException] if `mailto:` scheme cannot be handled.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed for consistency with the other platforms

Comment on lines +46 to +47
if (!launchResult) {
throw Exception('Failed to launch mailto: URI');

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As commented, the launchUrl can either return false or fail with an exception, in the case of returning false we throw an Exception.

I did not use PlatformException here because I don't think we should be creating them outside platform code, so I think just a generic Exception is fine here.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, it makes sense.

Comment threadpackages/share_plus/share_plus/test/url_launcher_mock.dart
Comment threadpackages/share_plus/share_plus/lib/src/share_plus_windows.dart Outdated
@SirusCodes

Copy link
Copy Markdown
ContributorAuthor

@miquelbeltran thanks for helping out. This feels fine to me

@miquelbeltran
miquelbeltran requested review from nohli, stuartmorgan-g and vbuberen and removed request for stuartmorgan-gNovember 4, 2022 05:34

@nohlinohli left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, just not sure if the thrown messages should include $uri instead of mailto: URI.

@vbuberenvbuberen left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@miquelbeltran
miquelbeltran merged commit f8f1a0b into fluttercommunity:mainNov 7, 2022
@github-actionsgithub-actionsBot locked as resolved and limited conversation to collaborators Jan 28, 2025
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@SirusCodes@stuartmorgan-g@miquelbeltran@vbuberen@nohli
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(share_plus): remove canLaunch check - #1315

Merged
miquelbeltran merged 7 commits into
fluttercommunity:mainfrom
SirusCodes:patch-1295
Nov 7, 2022
Merged

fix(share_plus): remove canLaunch check#1315
miquelbeltran merged 7 commits into
fluttercommunity:mainfrom
SirusCodes:patch-1295

Conversation

@SirusCodes

@SirusCodesSirusCodes commented Nov 1, 2022

Copy link
Copy Markdown
Contributor

Description

Reverting back to old construct as @stuartmorgan suggested #1295 (comment)

Also remove canLaunch check.

Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I titled the PR using Conventional Commits.
  • I did not modify the CHANGELOG.md nor the pubspec.yaml files.
  • All existing and new tests are passing.
  • The analyzer (flutter analyze) does not report any problems on my PR.

Breaking Change

Does your PR require plugin users to manually update their apps to accommodate your change?

  • Yes, this is a breaking change (please indicate that with a ! in the title as explained in Conventional Commits).
  • No, this is not a breaking change.

} else {
throw Exception('Unable to share on web');
}
await urlLauncher.launchUrl(uri.toString(), const LaunchOptions());

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it intentional that you are ignoring a false return here?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just reverted it back. Initially it was not returning anything. Also, the API is not returning anything to the user.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, the API is not returning anything to the user.

But per the docs for launchUrl:

/// Returns true if the URL was launched successful, otherwise either returns
/// false or throws a [PlatformException] depending on the failure.

Is having share throw an exception for some failures, but failing completely silently for other failures, really the desired behavior?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For what I can see, we can check the result and throw an exception if it was false.

I think using a plain Exception would be fine here. I will push the changes.

@stuartmorgan-g

Copy link
Copy Markdown

Why only Linux? Other implementations were using the same construction.

@SirusCodes

Copy link
Copy Markdown
ContributorAuthor

Why only Linux? Other implementations were using the same construction.

Ahh... missed it. Thought it was only used in Linux. Will change them as well.

@SirusCodesSirusCodes changed the title fix(share_plus): revert to the older contruct for linuxfix(share_plus): remove canLaunch checkNov 1, 2022
}

/// Share text.
/// Throws a [PlatformException] if `mailto:` scheme cannot be handled.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed for consistency with the other platforms

Comment on lines +46 to +47
if (!launchResult) {
throw Exception('Failed to launch mailto: URI');

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As commented, the launchUrl can either return false or fail with an exception, in the case of returning false we throw an Exception.

I did not use PlatformException here because I don't think we should be creating them outside platform code, so I think just a generic Exception is fine here.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, it makes sense.

Comment threadpackages/share_plus/share_plus/test/url_launcher_mock.dart
Comment threadpackages/share_plus/share_plus/lib/src/share_plus_windows.dart Outdated
@SirusCodes

Copy link
Copy Markdown
ContributorAuthor

@miquelbeltran thanks for helping out. This feels fine to me

@miquelbeltran
miquelbeltran requested review from nohli, stuartmorgan-g and vbuberen and removed request for stuartmorgan-gNovember 4, 2022 05:34

@nohlinohli left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, just not sure if the thrown messages should include $uri instead of mailto: URI.

@vbuberenvbuberen left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@miquelbeltran
miquelbeltran merged commit f8f1a0b into fluttercommunity:mainNov 7, 2022
@github-actionsgithub-actionsBot locked as resolved and limited conversation to collaborators Jan 28, 2025
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@SirusCodes@stuartmorgan-g@miquelbeltran@vbuberen@nohli
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix(share_plus): remove canLaunch check - #1315

Merged
miquelbeltran merged 7 commits into
fluttercommunity:mainfrom
SirusCodes:patch-1295
Nov 7, 2022
Merged

fix(share_plus): remove canLaunch check#1315
miquelbeltran merged 7 commits into
fluttercommunity:mainfrom
SirusCodes:patch-1295

Conversation

@SirusCodes

@SirusCodesSirusCodes commented Nov 1, 2022

Copy link
Copy Markdown
Contributor

Description

Reverting back to old construct as @stuartmorgan suggested #1295 (comment)

Also remove canLaunch check.

Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I titled the PR using Conventional Commits.
  • I did not modify the CHANGELOG.md nor the pubspec.yaml files.
  • All existing and new tests are passing.
  • The analyzer (flutter analyze) does not report any problems on my PR.

Breaking Change

Does your PR require plugin users to manually update their apps to accommodate your change?

  • Yes, this is a breaking change (please indicate that with a ! in the title as explained in Conventional Commits).
  • No, this is not a breaking change.

} else {
throw Exception('Unable to share on web');
}
await urlLauncher.launchUrl(uri.toString(), const LaunchOptions());

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it intentional that you are ignoring a false return here?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just reverted it back. Initially it was not returning anything. Also, the API is not returning anything to the user.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, the API is not returning anything to the user.

But per the docs for launchUrl:

/// Returns true if the URL was launched successful, otherwise either returns
/// false or throws a [PlatformException] depending on the failure.

Is having share throw an exception for some failures, but failing completely silently for other failures, really the desired behavior?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For what I can see, we can check the result and throw an exception if it was false.

I think using a plain Exception would be fine here. I will push the changes.

@stuartmorgan-g

Copy link
Copy Markdown

Why only Linux? Other implementations were using the same construction.

@SirusCodes

Copy link
Copy Markdown
ContributorAuthor

Why only Linux? Other implementations were using the same construction.

Ahh... missed it. Thought it was only used in Linux. Will change them as well.

@SirusCodesSirusCodes changed the title fix(share_plus): revert to the older contruct for linuxfix(share_plus): remove canLaunch checkNov 1, 2022
}

/// Share text.
/// Throws a [PlatformException] if `mailto:` scheme cannot be handled.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed for consistency with the other platforms

Comment on lines +46 to +47
if (!launchResult) {
throw Exception('Failed to launch mailto: URI');

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As commented, the launchUrl can either return false or fail with an exception, in the case of returning false we throw an Exception.

I did not use PlatformException here because I don't think we should be creating them outside platform code, so I think just a generic Exception is fine here.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, it makes sense.

Comment threadpackages/share_plus/share_plus/test/url_launcher_mock.dart
Comment threadpackages/share_plus/share_plus/lib/src/share_plus_windows.dart Outdated
@SirusCodes

Copy link
Copy Markdown
ContributorAuthor

@miquelbeltran thanks for helping out. This feels fine to me

@miquelbeltran
miquelbeltran requested review from nohli, stuartmorgan-g and vbuberen and removed request for stuartmorgan-gNovember 4, 2022 05:34

@nohlinohli left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, just not sure if the thrown messages should include $uri instead of mailto: URI.

@vbuberenvbuberen left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@miquelbeltran
miquelbeltran merged commit f8f1a0b into fluttercommunity:mainNov 7, 2022
@github-actionsgithub-actionsBot locked as resolved and limited conversation to collaborators Jan 28, 2025
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@SirusCodes@stuartmorgan-g@miquelbeltran@vbuberen@nohli