Don't throw DuplicateQualificationException

In gitlab by @NFarrington on Jun 7, 2016, 17:05
Don't throw DuplicateQualificationException when adding a new qualification that the account already has.

In gitlab by @NFarrington on Jun 7, 2016, 18:02
Since this is done for most setters on Account, I'll leave this be, and fix the resulting issue.

In gitlab by @NFarrington on Jun 7, 2016, 18:03
Status changed to closed by commit 5f477927b73fe7588e8506c61a6cc05e54d47c66

In gitlab by @NFarrington on Jun 7, 2016, 22:34
mentioned in commit 5f477927b73fe7588e8506c61a6cc05e54d47c66


Kubernetes healthchecks for proxy

The proxy should expose something which can be used as the basis of a Kubernetes healthcheck (liveness and readiness probes). The operator should then configure those probes for the proxy Deployment.

Need to think through what health means to the proxy...


CheerioCrawler reuses proxy connections, breaking upstream IP rotation

Describe the bug
In Apify v0.2.*, every proxy request made by requestAsBrowser() used a distinct connection (https://github.com/apify/http-request/blob/d4a12a856acebfebbf22a5cf57593c81a4be6462/src/index.js#L136). With Apify v2.* and the move to got-scraping (and possibly v1.* though we skipped that version), proxy agent connections are now globally cached. This causes multiple proxied requests to an origin to travel down the same encrypted CONNECT tunnel, breaking upstream IP rotation done at the proxy layer (as is common with most datacentre offerings from providers like Bright Data or Proxy Rack). Essentially, requests that should exit the upstream proxy provider with different IPs all end up exiting with the same IP (leading to easy banning).
To Reproduce
Setup a CheerioCrawler run to use a rotating proxy service and crawl through a few hundred https://httpbin.org/ip?random_string URLs. The exit IP will remain static.
If you comment out the agent caching logic in https://github.com/apify/got-scraping/blob/master/src/hooks/proxy.ts and re-run you will get the Apify 0.2.* behaviour (a different exit IP per request).
Expected behavior
Same as Apify 0.2.* (proxy connections are not globally cached and re-used). Failing that, a migration path that lets you disable the agent caching done in got-scraping via an option to requestAsBrowser().
This behaviour would also match that of PuppeteerCrawler (incognito tabs result in a new proxy connection - and thus exit IP - per tab when used in conjunction with a rotating proxy service)
System information:

OS: Ubuntu: 20
Node.js version:16.x
Apify SDK version: 2.1

Additional context
Add any other context about the problem here.

This has been introduced in https://github.com/apify/got-scraping/pull/28/files#diff-9b5d2dcc6f21e909c7edca3b61c05d2dd7da22890eccb901e39689cfccc30e80R92
We can revert this, however this will result in significant increase of open sockets and bigger latency.


Health check should display image file size

Code was present earlier for this, need to push to Github.

Resolved with AddImageSizeHealth branch


Where are the test?

How did you test your generic repositories and your Unit Of work?. (Unit test, mock, etc.)
Thank you

In the next version I'll write the tests.


The wallet dimensions are not the same after install, in chrome I get a skinny rectangle.

The wallet dimensions are not the same after install, in chrome I get a skinny rectangle.

This one is really annoying - can anyone replicate this? I swear I've "fixed" this multiple times, there are just wonky behaviors with how Chrome renders that frame. I'm unfortunately unable to replicate to be able to diagnose this. I will dig deeper, and have some thoughts for how to potentially make this more robust.

yes, I could replicate it, it was narrow the first time I install it.
If it's CSS related we can troubleshoot it together.

This has been resolved, closing


Jean Kim Review Ticket Week 7: AP Exams Week 1

Points: 2/2

[x] GH Indi Page, Review Ticket, Crossover graded, Study Plan
Github Page
[x] Quiz5 MCQ results >50%, (1 or 0) and test corrections (47/50)
Quiz Corrections

Crossover Grade: 2/2

[x] GH Indi Page, Review Ticket, Crossover graded, Study Plan
Github Page
[x] Quiz5 MCQ results >50%, (1 or 0) and test corrections (47/50)
Quiz Corrections


add run command

Codecov Report

Merging #20 (f6490f5) into master (e55f632) will decrease coverage by 0.31%.
The diff coverage is 76.08%.

@@            Coverage Diff             @@
##           master      #20      +/-   ##
==========================================
- Coverage   82.37%   82.05%   -0.32%
==========================================
  Files          62       63       +1
  Lines        1509     1544      +35
  Branches      178      181       +3
==========================================
+ Hits         1243     1267      +24
- Misses        252      263      +11
  Partials       14       14

Impacted Files
Coverage Δ

vedro/core/__init__.py
100.00% <ø> (ø)

vedro/_core/_arg_parser.py
57.69% <57.69%> (ø)

vedro/_core/__init__.py
100.00% <100.00%> (ø)

vedro/_core/_lifecycle.py
100.00% <100.00%> (ø)

vedro/events/__init__.py
100.00% <100.00%> (ø)

vedro/plugins/director/rich/_rich_reporter.py
82.35% <100.00%> (+0.10%)
:arrow_up:

vedro/plugins/slicer/_slicer.py
72.72% <100.00%> (+0.85%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e55f632...f6490f5. Read the comment docs.


[BUG] No images on iOS (real device) after upgrade (master channel) !!

Dear Flutter Team,
I am using Flutter master channel. After the last upgrade all assets images are not appearing any more when testing my flutter app on iOS real device. They were working perfectly before upgrade.
Regarding android real device, it is running fine. The problem only on iOS of real device (iPhone 7)
Here is the output of flutter doctor --verbose
flutter doctor --verbose

Downloading android-arm-profile/darwin-x64 tools...                 1.5s
Downloading android-arm-release/darwin-x64 tools...                 1.5s
Downloading android-arm64-profile/darwin-x64 tools...               1.5s
Downloading android-arm64-release/darwin-x64 tools...               1.4s
Downloading android-x86 tools...                                    5.4s
Downloading android-x64 tools...                                    5.1s
Downloading android-arm tools...                                    3.0s
Downloading android-arm-profile tools...                            2.0s
Downloading android-arm-release tools...                            1.8s
Downloading android-arm64 tools...                                  2.9s
Downloading android-arm64-profile tools...                          1.9s
Downloading android-arm64-release tools...                          1.9s
Downloading package sky_engine...                                   1.2s
Downloading common tools...                                         2.9s
Downloading common tools...                                         3.0s
Downloading darwin-x64 tools...                                     9.9s
[✓] Flutter (Channel stable, v1.9.1+hotfix.6, on Mac OS X 10.14.6 18G103, locale en-SA)
• Flutter version 1.9.1+hotfix.6 at /Users/mahmoudrabie/MyMobileDev/flutter
• Framework revision 68587a0916 (9 weeks ago), 2019-09-13 19:46:58 -0700
• Engine revision b863200c37
• Dart version 2.5.0
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
• Android SDK at /Users/mahmoudrabie/Library/Android/sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-29, build-tools 29.0.2
• ANDROID_HOME = /Users/mahmoudrabie/Library/Android/sdk
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 11.2.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 11.2.1, Build version 11B53
• CocoaPods version 1.6.2
[✓] Android Studio (version 3.5)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 41.1.2
• Dart plugin version 191.8593
• Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
[✓] Android Studio (version 3.4)
• Android Studio at /Users/mahmoudrabie/Library/Application
flutter doctor --verbose
[✓] Flutter (Channel master, v1.12.3-pre.43, on Mac OS X 10.14.6 18G103, locale en-SA)
• Flutter version 1.12.3-pre.43 at /Users/mahmoudrabie/MyMobileDev/flutter
• Framework revision 35043cbbe3 (2 hours ago), 2019-11-15 23:52:17 -0500
• Engine revision 59b5a0cf76
• Dart version 2.7.0
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
• Android SDK at /Users/mahmoudrabie/Library/Android/sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-29, build-tools 29.0.2
• ANDROID_HOME = /Users/mahmoudrabie/Library/Android/sdk
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 11.2.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 11.2.1, Build version 11B53
• CocoaPods version 1.6.2
[✓] Android Studio (version 3.5)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 41.1.2
• Dart plugin version 191.8593
• Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
[✓] Android Studio (version 3.4)
• Android Studio at /Users/mahmoudrabie/Library/Application
Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/183.5692245/Android Studio.app/Contents
• Flutter plugin version 38.2.1
• Dart plugin version 183.6270
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
[✓] VS Code (version 1.40.0)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.6.0
[✓] Connected device (2 available)
• SM J600F • 5200e04dee5885d1                         • android-arm • Android 9 (API 28)
• MMSS     • 40238a9f36e8911c5c875e1403ed4d3e125071d0 • ios         • iOS 13.1.3
• No issues found!

I would appreciate your help
Regards
Mahmoud

I have the same issue after upgrade,no just pictures, but other ui.

I have found my reason. It is because a third-party plug-in "flutter_screenutil" was used incorrectly, which caused the image width and height to be set to 0. It is normal after I fixed it, I hope it can help you

Thanks a lot for your feedback.
Here is the dependencies section of my pubspec.yaml
dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter
  random_pk: any
  shimmer: ^0.0.6
  flutter_slidable: ^0.4.9
  flutter_rating: ^0.0.2
  flutter_auth_buttons: ^0.5.0
  firebase_core: ^0.4.1+3
  google_sign_in: ^4.0.11
  firebase_auth: ^0.14.0+8
  #firebase_crashlytics: ^0.1.1+2
  firebase_dynamic_links: ^0.5.0
  cloud_firestore: ^0.12.9
  flutter_facebook_login: ^2.0.1
  carousel_slider: ^1.3.0
  provider: ^2.0.1+1
  libphonenumber: ^1.0.0
  font_awesome_flutter: ^8.5.0
  http: ^0.12.0+2
  cloud_functions: ^0.4.1
  grouped_buttons: ^1.0.4
  get_it: ^3.0.0+1
  transparent_image: ^1.0.0
  flutter_google_places: ^0.2.3
  google_maps_webservice: ^0.0.16

dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_launcher_icons: "^0.7.2"

Any suggestions are more than welcome
Regards
Mahmoud

Same here!!! Any advice?

Flutter's channels
Flutter has the following channels, in increasing order of stability:
master

The current tip-of-tree, absolute latest cutting edge build. Usually functional, though sometimes we accidentally break things.

Here is the latest commit from around 7 hours
https://github.com/flutter/flutter/commit/35043cbbe39b579587e1671143ed500ee1f0d347
I am not sure if it is the cause of that break

flutter channel dev solved the issue.. Try it.

Thanks a lot.
Switching the channel from master to dev is the workaround until the team fixes the BUG in master

This fixed my issue too

Hi @mahmoudrabie
I'm glad that you found a workaround,
nevertheless would be great if you could provide a code sample
that created the issue in the with master channel
thank you

I used the dev branch in my code.
Get Outlook for iOShttps://aka.ms/o0ukef

From: Francecsco Iapicca<EMAIL_ADDRESS>Sent: Monday, November 18, 2019 6:10:35 PM
To: flutter/flutter<EMAIL_ADDRESS>Cc: Rajiv Singh<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [flutter/flutter] [BUG] No images on iOS (real device) after upgrade (master channel) !! (#45032)
Hi @mahmoudrabiehttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmahmoudrabie&data=02|01||f254b21482324ba4c09b08d76c2482c9|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637096776370808261&sdata=Df73PevlF0iP38oEAOA5wvVhYqgqwTDM39XNXi7bAV8%3D&reserved=0 and @jogijihttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fjogiji&data=02|01||f254b21482324ba4c09b08d76c2482c9|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637096776371258620&sdata=k9h5WYXZ%2FZQjnGrEpQLpQRJo5tWK9rygf6Pn%2BFZOfus%3D&reserved=0
I'm glad that you found a workaround,
nevertheless would be great if you could provide a code sample
that created the issue in the with master channel
thank you
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fflutter%2Fflutter%2Fissues%2F45032%3Femail_source%3Dnotifications%26email_token%3DAKKIIHIXVY2PIF5QFQZKFD3QUKEMHA5CNFSM4JOD6EU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEEKJUXQ%23issuecomment-554998366&data=02|01||f254b21482324ba4c09b08d76c2482c9|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637096776371268632&sdata=3DlCMHlr%2FzlIfoFW7W88mOKB1XkrSRIaKFycj910umo%3D&reserved=0, or unsubscribehttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAKKIIHNCXDKO26TJVZUQBF3QUKEMHANCNFSM4JOD6EUQ&data=02|01||f254b21482324ba4c09b08d76c2482c9|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637096776371278637&sdata=O5zkaV7Vft20W%2BNPfA%2FzFrc08YHaVXhT5m5vC8AMx1c%3D&reserved=0.

Hi @jogiji
could you kindly provide a code sample,
it would be useful to fix the issue in the master channel
thank you

This is a duplicate of https://github.com/flutter/flutter/issues/45098.  This was opened first, but that has the TODAY label on it and has already been mentioned in Bad Builds.

Fixed on channel master.


search for MEG modalities

fixes #489

Awesome thanks!

Happy to help :-) What's the merging policy?


Update _loadtick in alpacadata.py

Type casting msg['time'] to int in _loadtick causes the timestamp to lose the millisecond attribute and appearing as resampled seconds inside backtrader strategy data.

thanks, makes sense. I will test it soon.

thanks, makes sense. I will test it soon.


Placeholder Image is not accessible

This placeholder image hosted by github is blocked by CORS. This can be resolved by uploading the image to another host and changing the url in code.
https://github.com/Dhaiwat10/react-link-preview/blob/master/src/assets/img-placeholder.jpg

Thanks for reporting this. Should be fixed now. :)


Include rationale behind using DNS Packet as wire protocol

is the primary reason behind using DNS packets as the wire protocol because did:dht leverages pkarr relays?
I did notice the gateway /did/:did endpoint which is nice, but i wanted sig verification. found it a bit strange that i was making HTTP requests to get back a DNS packet.
I had to handroll DNS packet decoding because there wasn't a third party lib available to do so.
Not complaining since the work is done, and I imagine most languages to have dns packet decoding libs. Just more-so wondering if there's specific reasons for having selected it. If compression is the sole reason, is there a comparison available between DNS packet sizes for this usecase vs. say CBOR?
I would think KRPC protocol mentioned in bep005 would even make more sense because thats the protocol used to communicate with Mainline DHT nodes over UDP. This way relays wouldn't have to transform DNS records into KRPC payloads.
Anyway, wondering if it'd be helpful to include rationale behind using DNS packets or simply defer to rationale behind using pkarr.

I would think KRPC protocol mentioned in bep005 would even make more sense because thats the protocol used to communicate with Mainline DHT nodes over UDP. This way relays wouldn't have to transform DNS records into KRPC payloads

This is almost but not entirely true. You still use KRPC in Mainline, but the payload of BEP_0044 is not KRPC (that wouldn't make sense) but rather just any valid (arbitrary, hence the name of the BEP) Bencode. It happens though that binary string is just as valid Bencode as any.
The relay actually help you avoid using or implementing Bencode at all because it just concatenates signature, 6 bytes timestamp and the raw value, but that is beside the point.
The point here is what would be the best format to store Routing data in the arbitrary part of BEP_0044?
You can for sure use CBOR or even JSON (as I started with), but there is no upside for that. As you said any language that supports JSON would also support deserializing DNS packets, the encoding is actually very smart and economic, I couldn't have done much better, but I would have lost on one very important upside:

If you ever get to the point of serving Pkarr records over regular DNS servers like <IP_ADDRESS> they sure would appreciate that the raw data they receive (and cache) needs no transformation whatsoever at request time. Same applies to local DNS servers on one's machine.

Encoding IPv4 and IPv6 is first class, you can't do it any better than that.

Maybe that is too theoretical of an advantage, but all other encoding choices don't have anything over DNS packets either, so ~the~ routing packet encoding for a routing protocol, couldn't get any more conservative than that.
Of course, you can decide to stop using Pkarr and just use BEP_0044 directly and send the DID as a Bencode or JSON object, but then you make it very hard to leverage DNS servers and many caching layers.
If you convince <IP_ADDRESS> to respond to queries like o4dksfbqk85ogzdb5osziw6befigbuxmuxkuxq8434q89uj56uyy by using Mainline as the Root name server then every recursive DNS resolver downstream will be helping cache responses for everyone reducing the load over Mainline, without actually implementing any special code themselves, because you already chose to speak their language.

For inspiration https://iroh.computer/blog/iroh-global-node-discovery

Closing, if you feel the current spec should be adjusted @mistermoe please re-open.


feat(UI): Created a basic message UI

PR related to this trello task --> https://trello.com/c/Xn092UuE

:tada: This PR is included in version 1.2.0 :tada:
Your semantic-release bot :package::rocket:


cast format 'yyyymmdd'  to Date32 give a error

Describe the bug
when cast string like '19990819' to Date32, it will give a error， but for '1999-08-19' it secceed
To Reproduce
In arrow-datafusion
For a date column run a query with the date in string format 'yyyymmdd' as shown below
--this query fails
select * from orders where o_orderdate = '19961006'

it get
Arrow error: Cast error: Cannot cast string '19961006' to value of Date32 type

Expected behavior
This should return the correct result and not fail
Additional context

@alamb hey! the bug for https://github.com/apache/arrow-datafusion/issues/7465 is belong to this, maybe this issue can be assigned to me and i will fix it

Assigned -- thanks @Tangruilin
@tustvold  can you confirm this is a reasonable change to add to arrow-rs? If not, I think we should add the code to DataFusion instead

I see no issue with this

@alamb @tustvold

I have initiated a PR, thanks for review

label_issue.py automatically added labels {'arrow'} from #5078


Parsing triple backticks with langage name

Hi,
This is more of a help question than an issue, however markdig indicates that it works to the CommonMark standard which, as I understand it, is capable of parsing code in the format of:

However when I parse it, this is the output:

I'm trying to parse my markdown code so I can use something like Prism for front end syntax higlighting, however it's not parsing the block at all when I add the language name.
This is how I'm parsing it:
var pipeline = new MarkdownPipelineBuilder().UseAdvancedExtensions().Build();
var result = Markdown.ToHtml(inter == null ? string.Empty : (string)inter, pipeline);

Where inter is a string value passed into an object, e.g. public object ParseValue(object inter) (the method is part of an interface hence the object return type and input type however it cannot be changed.
Any ideas why it's not parsing the codeblock would be greatly appreciated.
Many thanks,
Nik

Seems to be reproducible on babelmark as well:
https://babelmark.github.io/?text=%23+This+is+a+header
%23%23+This+is+a+level+2+heading

<p+class%3D"text-xl">
This+is+a+normal+paragraph
<%2Fp>
```css
This+is+code+in+three+`'s
```
However, it works as expected when there is an empty line between the </p> and  ```css
https://babelmark.github.io/?text=%23+This+is+a+header
%23%23+This+is+a+level+2+heading

<p+class%3D"text-xl">
This+is+a+normal+paragraph
<%2Fp>

```css
This+is+code+in+three+`'s
```
I don't know if this is intended or a bug in markdig though.

Ohh, I can work with that as a work around if it is a bug. I'm fairly new to markdown in general (at least the nuances of it at least) so if it's meant to have the extra space that's no problem :) Thanks you!

It's not a bug, you need an empty line after the closing html tag. Other CommonMark have similar behavior.


Fixed #27300 -- Fixed encoding of makemigrations output

When using --dry-run and -v 3 with makemigrations on Python 3 the
content of the migration file is not properly decoded.

This doesn't look to be a regression in 1.10 is it?

Closing in favor of #7329

It's not a regression, @charettes. I had the wrong policy on backports in my mind.


External Address Id Scheme not being passed to API

The Ext Address Id Scheme is not being passed to the API on an add address.

Please retest in 0.8.11

Closed pending testing

Passed.


Works! Requires some setup

Hey. First thank you for this. Much appreciated!
I had to manually add the app to not only the Accessibility but also Input monitoring. Running on Big Sur.
It might not be obvious for some users they need to do that. There was no pop up for permissions. And also the obvious Shift Right Click and open to avoid Gatekeeper check on the first run.

Thanks for the input!
I will add it to the readme.


lexical closures without ell funcs

we actually might be able to entirely drop functional syntax and keep versioning in a future of ell btw
potential future to do this
ell.simple(model="gpt-4o", messages=["hello there"])
# > "hello back to you!"


Update quantum-concepts-4-Qubit.md

Expanded further on derivation/generation of the single-qubit rotation unitary matrices.

:warning: Validation status: warnings

File
Status
Preview URL
Details

articles/quantum-concepts-4-Qubit.md
:warning:Warning

Details

articles/quantum-concepts-4-Qubit.md

Line 52: [Warning] Invalid file link:(~/media/concepts_bloch.png).

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/quantum-concepts-4-Qubit.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

My apologies that I didn't notice your updates, @fadi-wassaf. Would you be willing to update this to master so that we can merge it in? Thanks!

Re-implemented in #493


vendor page

Creates a layout for a vendor page /vendors with data drawn from the new _data/vendors.yml (currently using fake demo data)

partially addresses #14

@hillmk1 - I took your vendor page and worked it up as a bootstrap/jekyll layout.
Would something like this work?

Thanks Ken! Yes, I like that. I'm wondering though if there will be any visual delineation between each section? I was imagining there would be, but maybe there doesn't need to be, just white space? Should we do a second one to preview that?

I've updated the PR to include two entries and some updated styling -- how
does that look to you?
http://miamioh.edu/
Ken Irwin
Web Services Librarian
Miami University
King Library 302
151 S. Campus Avenue
Oxford, OH 45056
O:<PHONE_NUMBER> | @.*** *Pronouns: he/him/his *
On Fri, Aug 6, 2021 at 1:38 PM hillmk1 @.***> wrote:

Thanks Ken! Yes, I like that. I'm wondering though if there will be any
visual delineation between each section? I was imagining there would be,
but maybe there doesn't need to be, just white space? Should we do a second
one to preview that?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/alaoweb/2021.alaoweb.org/pull/84#issuecomment-894413028,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAOORIM24IYY3J24STJS2Z3T3QMXRANCNFSM5BHHE4YQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.

I think that looks good, Ken. Nice and clean. Thank you!
When I look at the pull request, it says "This branch has conflicts that
must be resolved" and asks me to "resolve conflicts". Is that normal?
Melissa
On Fri, Aug 6, 2021 at 1:59 PM Ken Irwin @.***> wrote:

I've updated the PR to include two entries and some updated styling -- how
does that look to you?
http://miamioh.edu/
Ken Irwin
Web Services Librarian
Miami University
King Library 302
151 S. Campus Avenue
Oxford, OH 45056
O:<PHONE_NUMBER> | @.*** *Pronouns: he/him/his *
On Fri, Aug 6, 2021 at 1:38 PM hillmk1 @.***> wrote:

Thanks Ken! Yes, I like that. I'm wondering though if there will be any
visual delineation between each section? I was imagining there would be,
but maybe there doesn't need to be, just white space? Should we do a
second
one to preview that?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<
https://github.com/alaoweb/2021.alaoweb.org/pull/84#issuecomment-894413028
,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AAOORIM24IYY3J24STJS2Z3T3QMXRANCNFSM5BHHE4YQ
.
Triage notifications on the go with GitHub Mobile for iOS
<
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
<
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/alaoweb/2021.alaoweb.org/pull/84#issuecomment-894424642,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APV7NXR5IVIPROIK423LFODT3QPIZANCNFSM5BHHE4YQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.

--
Melissa Hill
Serials & Electronic Resources Manager
Ohio Wesleyan University
Beeghly Library
43 Rowland Ave.
Delaware, OH  43015
740-368-3252
Tell us how we're doing! https://owu.edu/feedback

Ok - I've cleaned up the conflict and it should be able to merge now. (Conflicts are "normal" but not desirable... much like in the rest of life...)

Ok, but now the proportions are all off. = )
Web design, like life, is a messy team sport
On Fri, Aug 6, 2021 at 2:18 PM Ken Irwin @.***> wrote:

Ok - I've cleaned up the conflict and it should be able to merge now.
(Conflicts are "normal" but not desirable... much like in the rest of
life...)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/alaoweb/2021.alaoweb.org/pull/84#issuecomment-894436331,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APV7NXRDTXMPGBYZUPC2XR3T3QRRBANCNFSM5BHHE4YQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.

--
Melissa Hill
Serials & Electronic Resources Manager
Ohio Wesleyan University
Beeghly Library
43 Rowland Ave.
Delaware, OH  43015
740-368-3252
Tell us how we're doing! https://owu.edu/feedback

@hillmk1 - well shoot, i'll try again...

@hillmk1 -- I think it's fixed now; have another look?


typo: Double word "new"

@nschonni : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Verified the update.
@nschonni - Thanks for submitting this fix.


logs that contain json appear truncated

When running $ harbor-compose logs against a container that is writing json to stdout, the logs seem to get truncated.

Closed in this PR


Invalid syntax in output when using an Array in "externals"

Bug report
What is the current behavior?
Using an array in externals produces invalid syntax.
If the current behavior is a bug, please provide the steps to reproduce.
In webpack.config.js:
// Same as https://webpack.js.org/configuration/externals/#array
externals: {
  subtract: ['./math', 'subtract']
}

It outputs in dist/app.js:
eval("if(typeof ./math === 'undefined') {var e = new Error(\"Cannot find module './math.subtract'\"); e.code = 'MODULE_NOT_FOUND'; throw e;}\nmodule.exports = ./math[\"subtract\"];\n\n//# sourceURL=webpack:///external_%5B%22./math%22,%22subtract%22%5D?");

This triggers an error at runtime for two reasons:

if(typeof ./math === 'undefined')
module.exports = ./math[\"subtract\"];

Here's the full test case:
https://github.com/wildpeaks/issue-webpack-externals-array/
What is the expected behavior?
It should use a variable instead of the path directly because ./math cannot be used as variable name.
Other relevant information:
webpack version: 4.41.5
Node.js version: 12.14.0 LTS
Operating System: Windows 10
Additional tools:

You need to set output.libraryTarget: "commonjs2" to create a commonjs module

Are you implying that array externals only work when generating CommonJS libraries, not for regular bundles ?
Because if so, then I'd recommend the documentation should mention it, the same way it mentions object externals are only for libraryTarget: umd.

array externals also work for other libraryTargets, e. g. externals: { subtract: ["Math", "subtract"] } would reference the property subtract on the global Math: Math.subtract, but you example uses './math' which looks like some request string for require(), which implies that you probably don't want to generate a normal browser script but a commonjs module instead.

So it sounds like it's not usable for regular node bundles, only libraries; ok, so it's an issue for the documentation repository instead then.
Also, it's not my example, this was the example from the documentation.


share_plus - Give back result of user action

I will propose below a feature for the plugin https://pub.dev/packages/share_plus
Request is:
Give back some enum of user action after share screen is shown.
Currently we have this signature, which returns void
  static Future<void> share(
    String text, {
    String? subject,
    Rect? sharePositionOrigin,
  })

In many use cases as I will describe in the other section, will be very useful to know what user did in the share screen.
Use case

Tracking. We need to know if user shared the text/file/etc =, or just closed the dialog(view) without doing nothing. This enabled a lot of opportunities, like A/B testing, trying to improve ui (explanation text) for what user is about to share and so on.
Follow up logic. Based on whether user shared or not, app might want to follow up with different code paths. Example: thank you for sharing, you received 10 super app points.

Proposal
The functions will return instead of Future Future
  static Future<Result> share(
    String text, {
    String? subject,
    Rect? sharePositionOrigin,
  })

//where Result can be something like

enum ShareResult {
  shared,
  closed,
  // maybe something else here no idea currently i see big need for binary did share or not
}

While this is great idea and I do agree we should enhance this, this might not be as easy as it looks.
I suggest, you take the lead on this suggestion and send US a PR so then we can discuss on your PR what can be establish as a public api and how to move feather.
Thanks for the proposal btw, this looks very promising.

@kristijorgji  I think IntentSender can be used for this on the android side.

In iOS, it can be done like this:
activityViewController.CompletionWithItemsHandler = (activityType, completed, returnedItems, error) => {
    if (completed)
    {
        // do something with the result
    }
};

In Android, implement PluginRegistry.ActivityResultListener in MethodCallHandler.java:
Then override onActivityResult:
override fun onActivityResult(code: Int, resultCode: Int, data: Intent?): Boolean {
    if (resultCode == Activity.RESULT_OK) {
        // do something with the result
    }
}

here is needed

@mhadaily can you please assign me this issue I would love to take it.
Thanks

Hey @champ96k are you currently working on this? If not can somebody maybe share her/his thoughts about how this should be integrated with the current methods.
One solution would be to add a parameter to the share method: waitForCompletion and return the results to make it a non-breaking change.

Any news on this?

I thought it was just me but seems like everyone is yarning for the success/fail/cancel callback support, that's reassuring! LOL

How i am going to increase a share count without knowing if the user actually share or hit cancel?

any update of this?

any updates?

@champ96k or @elias8 did you make any progress don't his issue?

I could have a look into this - no guarantees though. As it looks this should be fairly simple for IOS, Android will be a little bit more tricky...
We probably want to avoid breaking the current API, so maybe we can use an extra method and let the old one simply filter out the result.
Ill have a look!

Update
This feature can only be implemented from Android API level 21+, we are currently supporting level 16+... The only way around this would be to completly re-implement all sharing logic (the share sheet -> what android does atm -> not really a good idea) :(
So there are two options:
1: Drop support for API version 16 (2012) and move to API version 21 (2014)
2: Leave this feature alone

@Coronon Is there a branch this work was done in?

@Coronon Is there a branch this work was done in?

I have forked the repo and am testing out my implementation locally, just looked for a solution for ~3hours until I now know that we need public static Intent createChooser(Intent, CharSequence, IntentSender)

Would you mind pushing the branch so I can have a look? Curious to see what it entails...

There are basically ~10 more lines atm but sure ^^
Here you go: https://github.com/Coronon/plus_plugins/tree/playground/packages/share_plus/share_plus/android/src/main/kotlin/dev/fluttercommunity/plus/share

Thanks!

I will try implementing this with API version 21 now!

Using your code I got it to work with Android_Intent_Plus (see https://github.com/fluttercommunity/plus_plugins/issues/344). Perhaps consider creating a pull request for that as well.

And perhaps instead of replacing the current method, add another one for the result, and that way the api version doesn't have to be updated

Im very close to a working implementation that can figure out if you actually called another app or dismissed the share sheet. The problem is mainly that we need to use two different "async" ways of being informed about success and dismiss -> BroadcastReceiver and onActivityResult. I am currently building a manager class that will handle these. I will then have to implement the dart bindings.

And perhaps instead of replacing the current method, add another one for the result, and that way the api version doesn't have to be updated

That was the plan ;)

UPDATE: The android side is now implemented, you can have a look here

UPDATE: Dart bindings are now available, while it states that they are available for both 'IOS' and 'Android', only 'Android' is supported atm. Link

Ok, so the IOS side basically works now, the only problem is that we get more information on IOS then on Android: On Android we only know if the user selected an option on the share-sheet, but not if he actually went through with it. On IOS we get both what he selected and if he actually completed the option.
To question is how consistent we should be: Should we count a started action but then dismissed one on IOS as success or rather always return the best information we have -> For this case dismissed on IOS but success on Android?

Update: This feature is now fully implemented for IOS and Android
It even handles if the share-sheet is closed for an action (like create IOS photo album) and then reappears after canceling that action :P
You can have a look on my fork. I will create a pull request soon :)
If you have any comments, I would love to hear from you. This has been my first time writing Kotlin and Objective C, so any feedback is greatly appreciated ;)

Just added tests, should be pretty much ready to merge if the maintainers agree with the changes 🥳

waiting such a must feature for a "plus" plugin )

Hey, maintainer here. I would like to ask the people in the thread to try to give it a go to the PR and reply with their experiences. It is a big change and needs to be well tested, and as well try to test it on Desktop and Web just to verify that nothing is broken.

Update: This feature is now fully implemented for IOS and Android
It even handles if the share-sheet is closed for an action (like create IOS photo album) and then reappears after canceling that action :P (At least on IOS, as Android does not provide a way to find out to the best of my knowledge)
You can have a look on my fork. The pull request is #765
If you have any comments, I would love to hear from you. This has been my first time writing Kotlin and Objective C, so any feedback is greatly appreciated ;)

How can I use your fork in pubspec.yaml file?
Currently, I use:
share_plus:
    git:
      url: https://github.com/Coronon/plus_plugins.git
      path: packages/share_plus/share_plus/

But I got this error
Launching lib[/main.dart]() on iPhone 12 in debug mode...
lib/main.dart:1
Xcode build done.                                           31.7s
Failed to build iOS app
Error output from Xcode build:
↳
    ** BUILD FAILED **
Xcode's output:
↳
    Writing result bundle at path:
    	[/var/folders/q5/qm7y6dqn3mjfj7g3zrwgwcz00000gn/T/flutter_tools.RQ906a/flutter_ios_build_temp_dirnWUgks/temporary_xcresult_bundle]()
[/Users/andy/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.3.2/ios/Classes/InAppBrowser/InAppBrowserWebViewController.swift:557:13](): warning: setter for 'statusBarStyle' was deprecated in iOS 9.0: Use -[UIViewController preferredStatusBarStyle]
                UIApplication.shared.statusBarStyle = UIStatusBarStyle(rawValue: previousStatusBarStyle)!
                ^
[/Users/andy/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.3.2/ios/Classes/InAppWebView/InAppWebView.swift:517:31](): warning: 'mediaPlaybackRequiresUserAction' was deprecated in iOS 9.0
                    configuration.mediaPlaybackRequiresUserAction = options.mediaPlaybackRequiresUserGesture
                                  ^
[/Users/andy/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.3.2/ios/Classes/InAppWebView/InAppWebView.swift:928:31](): warning: 'mediaPlaybackRequiresUserAction' was deprecated in iOS 9.0
                    configuration.mediaPlaybackRequiresUserAction = newOptions.mediaPlaybackRequiresUserGesture
                                  ^
[/Users/andy/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.3.2/ios/Classes/InAppWebView/InAppWebViewOptions.swift:102:81](): warning: 'mediaPlaybackRequiresUserAction' was deprecated in iOS 9.0
                    realOptions["mediaPlaybackRequiresUserGesture"] = configuration.mediaPlaybackRequiresUserAction
                                                                                ^
[/Users/andy/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.3.2/ios/Classes/InAppBrowser/InAppBrowserWebViewController.swift:557:13](): warning: setter for 'statusBarStyle' was deprecated in iOS 9.0: Use -[UIViewController preferredStatusBarStyle]
                UIApplication.shared.statusBarStyle = UIStatusBarStyle(rawValue: previousStatusBarStyle)!
                ^
[/Users/andy/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.3.2/ios/Classes/InAppWebView/InAppWebView.swift:517:31](): warning: 'mediaPlaybackRequiresUserAction' was deprecated in iOS 9.0
                    configuration.mediaPlaybackRequiresUserAction = options.mediaPlaybackRequiresUserGesture
                                  ^
[/Users/andy/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.3.2/ios/Classes/InAppWebView/InAppWebView.swift:928:31](): warning: 'mediaPlaybackRequiresUserAction' was deprecated in iOS 9.0
                    configuration.mediaPlaybackRequiresUserAction = newOptions.mediaPlaybackRequiresUserGesture
                                  ^
[/Users/andy/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.3.2/ios/Classes/InAppWebView/InAppWebViewOptions.swift:102:81](): warning: 'mediaPlaybackRequiresUserAction' was deprecated in iOS 9.0

is the share_plus plugin referencing the original share_plus_platform_interface instead of the fork somehow?

Yes, that's going to be an issue.
I think it may work this way:

Clone @Coronon repo in a folder
Run the melos bootstrap in the root, this setups the repository to use local dependencies and not pub.dev, see intrucctions to instlal melos in repo
Use the plugin as a path reference, not as a git reference

@miquelbeltran is right. My new share_plus version requires my new share_plus_interface version, which when you only include share_plus in your pubspec.yml will fetch the one from pub -> error!

Just added macOS support too

@miquelbeltran is right. My share_plus forks version requires my share_plus_interface forks version, which when you only include share_plus in your pubspec.yml will fetch the one from pub -> error!
@leidig54 - thats pretty much exactly the issue :P You might also manually change the pubspec.yml in each share_plus subpackage to something with path: (you will also need to add publish_to: none) if you dont want to use melos.

Could you make a repo as a pubspec.yml useable before merging the PR?
I'd like to use it in my project. Thank you

is the share_plus plugin referencing the original share_plus_platform_interface instead of the fork somehow?

Yes, that's going to be an issue.
I think it may work this way:

Clone @Coronon repo in a folder
Run the melos bootstrap in the root, this setups the repository to use local dependencies and not pub.dev, see intrucctions to instlal melos in repo
Use the plugin as a path reference, not as a git reference

@andynvt You can just follow these instructions to get it to work :)

WOW @Coronon! Thanks a million 💯 times for your implementation 🤩
Sadly, I'm also not able to get the fork working with my app. Did the melos bootstrap inside your fork and added it to my pubspec.yaml like that:
share_plus:
    path: ../share_plus_fork/packages/share_plus/share_plus

But I get the same issue as @andynvt. Also tried to add share_plus_platform_interface in dependencies and in dependency_overrides but with no luck.
Any suggestions how to get it working to test that?

WOW @Coronon! Thanks a million 💯 times for your implementation 🤩
Sadly, I'm also not able to get the fork working with my app. Did the melos bootstrap inside your fork and added it to my pubspec.yaml like that:
share_plus:
    path: ../share_plus_fork/packages/share_plus/share_plus

But I get the same issue as @andynvt. Also tried to add share_plus_platform_interface in dependencies and in dependency_overrides but with no luck.
Any suggestions how to get it working to test that?

Thanks for raising the issue, I will try to put together a test project (to show how to integrate my changes) tomorrow (CET) 👍🏻

Here you go everyone, a flutter project that you should be able to run without any modifications: share_plus_return_example

@Coronon on iOS it does work like expected, but I get following messages, I guess they are debug messages by you?
[LayoutConstraints] Changing the translatesAutoresizingMaskIntoConstraints property of a UICollectionReusableView that is managed by a UICollectionView is not supported, and will result in incorrect self-sizing. View: <_UIActivityContentFooterView: 0x1060d2480; baseClass = UICollectionReusableView; frame = (16 638.333; 343 52); layer = <CALayer: 0x280e9cd00>>
[Process] 0x105969018 - [pageProxyID=448, webPageID=449, PID=49127] WebPageProxy::didFailProvisionalLoadForFrame: frameID=6, domain=WebKitErrorDomain, code=102
[assertion] Error acquiring assertion: <Error Domain=RBSServiceErrorDomain Code=1 "target is not running or doesn't have entitlement com.apple.runningboard.assertions.webkit" UserInfo={NSLocalizedFailureReason=target is not running or doesn't have entitlement com.apple.runningboard.assertions.webkit}>
[ProcessSuspension] 0x1158f9aa0 - ProcessAssertion: Failed to acquire RBS assertion 'ConnectionTerminationWatchdog' for process with PID=49127, error: Error Domain=RBSServiceErrorDomain Code=1 "target is not running or doesn't have entitlement com.apple.runningboard.assertions.webkit" UserInfo={NSLocalizedFailureReason=target is not running or doesn't have entitlement com.apple.runningboard.assertions.webkit}
[assertion] Error acquiring assertion: <Error Domain=RBSAssertionErrorDomain Code=2 "Specified target process does not exist" UserInfo={NSLocalizedFailureReason=Specified target process does not exist}>
[ProcessSuspension] 0x1158f9b00 - ProcessAssertion: Failed to acquire RBS assertion 'WebProcess Background Assertion' for process with PID=49127, error: Error Domain=RBSAssertionErrorDomain Code=2 "Specified target process does not exist" UserInfo={NSLocalizedFailureReason=Specified target process does not exist}
[assertion] Error acquiring assertion: <Error Domain=RBSAssertionErrorDomain Code=2 "Specified target process does not exist" UserInfo={NSLocalizedFailureReason=Specified target process does not exist}>
[ProcessSuspension] 0x1158f9b60 - ProcessAssertion: Failed to acquire RBS assertion 'WebProcess Suspended Assertion' for process with PID=49127, error: Error Domain=RBSAssertionErrorDomain Code=2 "Specified target process does not exist" UserInfo={NSLocalizedFailureReason=Specified target process does not exist}

for Reference, I use Flutter 2.10

@Coronon on iOS it does work like expected, but I get following messages, I guess they are debug messages by you?

[LayoutConstraints] Changing the translatesAutoresizingMaskIntoConstraints property of a UICollectionReusableView that is managed by a UICollectionView is not supported, and will result in incorrect self-sizing. View: <_UIActivityContentFooterView: 0x1060d2480; baseClass = UICollectionReusableView; frame = (16 638.333; 343 52); layer = <CALayer: 0x280e9cd00>>

[Process] 0x105969018 - [pageProxyID=448, webPageID=449, PID=49127] WebPageProxy::didFailProvisionalLoadForFrame: frameID=6, domain=WebKitErrorDomain, code=102

[assertion] Error acquiring assertion: <Error Domain=RBSServiceErrorDomain Code=1 "target is not running or doesn't have entitlement com.apple.runningboard.assertions.webkit" UserInfo={NSLocalizedFailureReason=target is not running or doesn't have entitlement com.apple.runningboard.assertions.webkit}>

[ProcessSuspension] 0x1158f9aa0 - ProcessAssertion: Failed to acquire RBS assertion 'ConnectionTerminationWatchdog' for process with PID=49127, error: Error Domain=RBSServiceErrorDomain Code=1 "target is not running or doesn't have entitlement com.apple.runningboard.assertions.webkit" UserInfo={NSLocalizedFailureReason=target is not running or doesn't have entitlement com.apple.runningboard.assertions.webkit}

[assertion] Error acquiring assertion: <Error Domain=RBSAssertionErrorDomain Code=2 "Specified target process does not exist" UserInfo={NSLocalizedFailureReason=Specified target process does not exist}>

[ProcessSuspension] 0x1158f9b00 - ProcessAssertion: Failed to acquire RBS assertion 'WebProcess Background Assertion' for process with PID=49127, error: Error Domain=RBSAssertionErrorDomain Code=2 "Specified target process does not exist" UserInfo={NSLocalizedFailureReason=Specified target process does not exist}

[assertion] Error acquiring assertion: <Error Domain=RBSAssertionErrorDomain Code=2 "Specified target process does not exist" UserInfo={NSLocalizedFailureReason=Specified target process does not exist}>

[ProcessSuspension] 0x1158f9b60 - ProcessAssertion: Failed to acquire RBS assertion 'WebProcess Suspended Assertion' for process with PID=49127, error: Error Domain=RBSAssertionErrorDomain Code=2 "Specified target process does not exist" UserInfo={NSLocalizedFailureReason=Specified target process does not exist}

On Android I had to add implementation 'androidx.work:work-runtime-ktx:2.7.1' to the dependencies section in build.gradle but I still dont get the dialog in the simulator:

D[/EGL_emulation]()( 7817): app_time_stats: avg=180.38ms min=13.32ms max=4607.33ms count=28

E[/flutter]() ( 7817): [ERROR:flutter[/lib/ui/ui_dart_state.cc]()(209)] Unhandled Exception: PlatformException(prior share-sheet did not call back, did you await it? Maybe use non-result variant, null, null, null)

E[/flutter]() ( 7817): #0      StandardMethodCodec.decodeEnvelope

package:flutter/…/services/message_codecs.dart:607

E[/flutter]() ( 7817): #1      MethodChannel._invokeMethod

package:flutter/…/services/platform_channel.dart:177

E[/flutter]() ( 7817): <asynchronous suspension>

E[/flutter]() ( 7817): #2      MethodChannelShare.shareWithResult

package:share_plus_platform_interface/method_channel/method_channel_share.dart:95

E[/flutter]() ( 7817): <asynchronous suspension>

E[/flutter]() ( 7817): #3      _HomePageState.build.<anonymous closure>

package:example/main.dart:54

E[/flutter]() ( 7817): <asynchronous suspension>

E[/flutter]() ( 7817):

Nope, thats not debug but rather outputs from the share_plus ios implementation mistreating some components that it uses (which seem to be mostly deprecated since IOS 9). That was there before, that will stay there until a full rewrite probably.

For Android:
That is funny, I am running a simulator with API Version 30 and don't get any messages... The message you get can only be produced if you use ?WithResult without awaiting it, so if you did that then AtomicBool in the Java std is broken? This seems totally weird to me... Did you make any modifications to my code? What is the error if you dont add that androidx line?

When tapping the button I get:
E[/flutter]() ( 2369): Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles., null, java.lang.IllegalArgumentException: com.example.example: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
E[/flutter]() ( 2369): Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
E[/flutter]() ( 2369): 	at android.app.PendingIntent.checkFlags(PendingIntent.java:375)
E[/flutter]() ( 2369): 	at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:645)
E[/flutter]() ( 2369): 	at android.app.PendingIntent.getBroadcast(PendingIntent.java:632)
E[/flutter]() ( 2369): 	at dev.fluttercommunity.plus.share.Share.share(Share.kt:57)
E[/flutter]() ( 2369): 	at dev.fluttercommunity.plus.share.MethodCallHandler.onMethodCall(MethodCallHandler.kt:44)
E[/flutter]() ( 2369): 	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:262)
E[/flutter]() ( 2369): 	at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:296)
E[/flutter]() ( 2369): 	at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$DartMessenger(DartMessenger.java:320)
E[/flutter]() ( 2369): 	at io.flutter.embedding.engine.dart.-$$Lambda$DartMessenger$TsixYUB5E6FpKhMtCSQVHKE89gQ.run(Unknown Source:12)
E[/flutter]() ( 2369): 	at android.os.Handler.handleCallback(Handler.java:938)
E[/flutter]() ( 2369): 	at android.os.Handler.dispatchMessage(Handler.java:99)
E[/flutter]() ( 2369): 	at android.os.Looper.loopOnce(Looper.java:201)
E[/flutter]() ( 2369): 	at android.os.Looper.loop(Looper.java:288)
E[/flutter]() ( 2369): 	at android.app.ActivityThread.main(ActivityThread.java:7839)
E[/flutter]() ( 2369): 	at java.lang.reflect.Method.invoke(Native Method)
E[/flutter]() ( 2369): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
E[/flutter]() ( 2369): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
E[/flutter]() ( 2369): )
E[/flutter]() ( 2369): #0      StandardMethodCodec.decodeEnvelope
package:flutter/…/services/message_codecs.dart:607
E[/flutter]() ( 2369): #1      MethodChannel._invokeMethod
package:flutter/…/services/platform_channel.dart:177
E[/flutter]() ( 2369): <asynchronous suspension>
E[/flutter]() ( 2369): #2      MethodChannelShare.shareWithResult
package:share_plus_platform_interface/method_channel/method_channel_share.dart:95
E[/flutter]() ( 2369): <asynchronous suspension>
E[/flutter]() ( 2369): #3      _HomePageState.build.<anonymous closure>
package:example/main.dart:54
E[/flutter]() ( 2369): <asynchronous suspension>
E[/flutter]() ( 2369):

You are totally right, that was added in 31 and I did not catch that! Thank you! Will boot up my PC now and fix it very quickly - thanks for uncovering this! 👍🏻

@Coronon and yes I did alter the code a bit to better test my use case of sharing a link but I`m also using async/await:
                onPressed: () async {
                  final result = await Share.shareWithResult(
                    'https://github.com',
                  );
                  setState(() {
                    status = result.status.name;
                    raw = result.raw;
                  });
                },
                ```

@Coronon and yes I did alter the code a bit to better test my use case of sharing a link but I`m also using async/await:

                onPressed: () async {

                  final result = await Share.shareWithResult(

                    'https://github.com',

                  );

                  setState(() {

                    status = result.status.name;

                    raw = result.raw;

                  });

                },

That seems like it should work - let me fix the FLAG thing really quick and then see again? :) ~5-10min probably

Just added the FLAG_IMMUTABLE - sorry for taking so long, had to fight with my build environment quite a bit ^^
This little flag, which is required from V31+ requires us to up our minSdkVersion once more from 21->23...

still have that message:
E[/flutter]() ( 5535): Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles., null, java.lang.IllegalArgumentException: com.example.example: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
E[/flutter]() ( 5535): Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
E[/flutter]() ( 5535): 	at android.app.PendingIntent.checkFlags(PendingIntent.java:375)
E[/flutter]() ( 5535): 	at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:645)
E[/flutter]() ( 5535): 	at android.app.PendingIntent.getBroadcast(PendingIntent.java:632)
E[/flutter]() ( 5535): 	at dev.fluttercommunity.plus.share.Share.share(Share.kt:57)
E[/flutter]() ( 5535): 	at dev.fluttercommunity.plus.share.MethodCallHandler.onMethodCall(MethodCallHandler.kt:44)
E[/flutter]() ( 5535): 	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:262)
E[/flutter]() ( 5535): 	at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:296)
E[/flutter]() ( 5535): 	at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$DartMessenger(DartMessenger.java:320)
E[/flutter]() ( 5535): 	at io.flutter.embedding.engine.dart.-$$Lambda$DartMessenger$TsixYUB5E6FpKhMtCSQVHKE89gQ.run(Unknown Source:12)
E[/flutter]() ( 5535): 	at android.os.Handler.handleCallback(Handler.java:938)
E[/flutter]() ( 5535): 	at android.os.Handler.dispatchMessage(Handler.java:99)
E[/flutter]() ( 5535): 	at android.os.Looper.loopOnce(Looper.java:201)
E[/flutter]() ( 5535): 	at android.os.Looper.loop(Looper.java:288)
E[/flutter]() ( 5535): 	at android.app.ActivityThread.main(ActivityThread.java:7839)
E[/flutter]() ( 5535): 	at java.lang.reflect.Method.invoke(Native Method)
E[/flutter]() ( 5535): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
E[/flutter]() ( 5535): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
E[/flutter]() ( 5535): )
E[/flutter]() ( 5535): #0      StandardMethodCodec.decodeEnvelope
package:flutter/…/services/message_codecs.dart:607
E[/flutter]() ( 5535): #1      MethodChannel._invokeMethod
package:flutter/…/services/platform_channel.dart:177
E[/flutter]() ( 5535): <asynchronous suspension>
E[/flutter]() ( 5535): #2      MethodChannelShare.shareWithResult
package:share_plus_platform_interface/method_channel/method_channel_share.dart:95
E[/flutter]() ( 5535): <asynchronous suspension>
E[/flutter]() ( 5535): #3      _HomePageState.build.<anonymous closure>
package:example/main.dart:50
E[/flutter]() ( 5535): <asynchronous suspension>
E[/flutter]() ( 5535):

Did you flutter clean before testing the new changes to ensure it pulls the newest version? That was one of my bigges problems when I was trying to test the new flag.

Thanks! The message is gone but when tapping I get:
D[/EGL_emulation]()( 6044): app_time_stats: avg=257.37ms min=14.94ms max=6758.12ms count=28
E[/flutter]() ( 6044): [ERROR:flutter[/lib/ui/ui_dart_state.cc]()(209)] Unhandled Exception: PlatformException(prior share-sheet did not call back, did you await it? Maybe use non-result variant, null, null, null)
E[/flutter]() ( 6044): #0      StandardMethodCodec.decodeEnvelope
package:flutter/…/services/message_codecs.dart:607
E[/flutter]() ( 6044): #1      MethodChannel._invokeMethod
package:flutter/…/services/platform_channel.dart:177
E[/flutter]() ( 6044): <asynchronous suspension>
E[/flutter]() ( 6044): #2      MethodChannelShare.shareFilesWithResult
package:share_plus_platform_interface/method_channel/method_channel_share.dart:129
E[/flutter]() ( 6044): <asynchronous suspension>
E[/flutter]() ( 6044): #3      HomePage.build.<anonymous closure>
package:example/main.dart:47
E[/flutter]() ( 6044): <asynchronous suspension>
E[/flutter]() ( 6044):

That is super weird… Could you tell me the exact emulator you use, so I can have a deeper look this evening. I am very sorry this doesn’t work for you - all my tests did not raise any issues :/

I just checked my version with a Pixel4 API v31 emulator and it works like a charm. Did you flutter clean + update the minSdkVersion & clean gradle caches? The error you are experiencing is pretty much impossible with my example code - thats why I am asking. Maybe hit me up on Discord Coronon#5077 so we can resolve this together.

 So did I increase the minSDK from 21 to 23 on your branch (which is still 21) but with no luck. flutter clean does not bring any difference. So did I upgrade my android studio with no effect.
Only difference could be that I'm on an ARM machine (Apple M1) !?
The callback does run just once!
Is there another step needed beside flutter clean && flutter pub get?

Ok... I just tried the exact same settings here:
https://user-images.githubusercontent.com/33808743/158076687-ddbfa6cc-8af4-46f2-9d4e-66edf9186e3e.mp4
Did you make sure that you have the latest version from git? You said I was still using minSdkVersion 21, which indicates you did not pull the latest version. git pull in the example project should fix that, as I just added the ref to all git dependencies, so you don't have to ensure that it uses the latest _https://github.com/Coronon/plus_plugins_ commit.

And regarding the results, shareWithResult.raw does only output the chosen option on iOS correct? Android does not return anything here as fare as I can tell. Just to be sure what the expected/possible behavior is.

Hey @Coronon it works 🥳 sorry for that hickups, I did the pull part but somehow it was not enough 🙄 Huge thanks to you for your work! 🤝
Just one questions that is remotely related, but do you know why safari is not shown as an option when sharing a link? Is there another property needed for that kind of sharing? Use case is when trying to share a deep link from an app (which has a microsite with preview).
Thanks again!

I have not tested that scenario but can have a look into it. The raw property is pretty much all we can get our hands on I am afraid…

I do not need any special app, I just might be interested in tracking the user behavior here.
On Android, I do not get any raw date, even if success is true. Unfortunately, I can't complete any of the actions because I only have the simulator and a dummy phone which can't send SMS.
So does the copy command on iOS get a success but not on android (which can be caught in code if needed and the raw data is present)
I do have a strange behavior with mail where I can't get back to the app without closing it, but that's Android being confusing?
https://user-images.githubusercontent.com/432828/158237103-7f135be0-550e-404e-9e41-55c5be990290.mp4
On iOS everything works like expected beside some apps reporting success when dismissing (like telegram) but I guess that's their implementation.

I do not need any special app, I just might be interested in tracking the user behavior here.
On Android, I do not get any raw date, even if success is true. Unfortunately, I can't complete any of the actions because I only have the simulator and a dummy phone which can't send SMS.
So does the copy command on iOS get a success but not on android (which can be caught in code if needed and the raw data is present)
I do have a strange behavior with mail where I can't get back to the app without closing it, but that's Android being confusing?
share.mp4
On iOS everything works like expected beside some apps reporting success when dismissing (like telegram) but I guess that's their implementation.

You are absolutely right!!! The FLAG_IMMUTABLE prevents the selected action from editing the PendingIntent, causing us to always receive the string 'null'. We would need to use FLAG_MUTABLE, but here comes the problem: That flag is only available v31+ -> We would need to raise our minSdkVersion to 31... Luckily, there is a way to avoid these shenanigans by checking the API version at runtime and specifying appropriate flags. We could in theory now support minSdkVersion 21 again, but 23 sounds reasonable to me, considering that's 2015...
This should be fixed now - just git pull in the example again ;)

When this will be merged in the main branch and released in the official plugin?

soon :tm:

share_plus 4.0.0 has been published!
Thanks a lot to @Coronon and everyone else who helped to test.

@miquelbeltran  , Thanks a lot for publishing the feature ,
all good , but there's something that's need some updates , which is the share_plus_platform_interface is 2.0.0 and the feature is returning ShareResult object that's need share_plus_platform_interface is 2.1.0 i fixed it internally and it works now good

Could not build it on android and now when trying to use 4.0.0 in my real project I get (yes I did flutter clean) following :
Launching lib[/main.dart]() on sdk gphone64 arm64 in debug mode...
lib/main.dart:1
[/opt/homebrew/Caskroom/flutter/2.10.3/flutter/.pub-cache/hosted/pub.dartlang.org/share_plus-4.0.0/lib/share_plus.dart:96:17](): Error: Type 'ShareResult' not found.
  static Future<ShareResult> shareWithResult(
                ^^^^^^^^^^^
[/opt/homebrew/Caskroom/flutter/2.10.3/flutter/.pub-cache/hosted/pub.dartlang.org/share_plus-4.0.0/lib/share_plus.dart:120:17](): Error: Type 'ShareResult' not found.
  static Future<ShareResult> shareFilesWithResult(

                ^^^^^^^^^^^
[/opt/homebrew/Caskroom/flutter/2.10.3/flutter/.pub-cache/hosted/pub.dartlang.org/share_plus-4.0.0/lib/share_plus.dart:102:22](): Error: The method 'shareWithResult' isn't defined for the class 'SharePlatform'.
- 'SharePlatform' is from 'package:share_plus_platform_interface[/share_plus_platform_interface.dart]()' ('[/opt/homebrew/Caskroom/flutter/2.10.3/flutter/.pub-cache/hosted/pub.dartlang.org/share_plus_platform_interface-2.0.1/lib/share_plus_platform_interface.dart]()').
package:share_plus_platform_interface/share_plus_platform_interface.dart:1
Try correcting the name to the name of an existing method, or defining a method named 'shareWithResult'.
    return _platform.shareWithResult(
                     ^^^^^^^^^^^^^^^
[/opt/homebrew/Caskroom/flutter/2.10.3/flutter/.pub-cache/hosted/pub.dartlang.org/share_plus-4.0.0/lib/share_plus.dart:129:22](): Error: The method 'shareFilesWithResult' isn't defined for the class 'SharePlatform'.
- 'SharePlatform' is from 'package:share_plus_platform_interface[/share_plus_platform_interface.dart]()' ('[/opt/homebrew/Caskroom/flutter/2.10.3/flutter/.pub-cache/hosted/pub.dartlang.org/share_plus_platform_interface-2.0.1/lib/share_plus_platform_interface.dart]()').
package:share_plus_platform_interface/share_plus_platform_interface.dart:1

Try correcting the name to the name of an existing method, or defining a method named 'shareFilesWithResult'.
    return _platform.shareFilesWithResult(
                     ^^^^^^^^^^^^^^^^^^^^

FAILURE: Build failed with an exception.

@appinteractive yes , I faced the same issue but i did fix it locally by going to the plugin folder and changed the share_plus_platform_interface is 2.0.0 to share_plus_platform_interface is 2.1.0
also make sure that's  android min sdk is 23 in the plugin , so it's need match or be under your project min. sdk

Same here, ShareResult not found, with complaints about method shareWithResult on class SharePlatform not being defined.
Launching lib/main_verbose.dart on sdk gphone x86 64 in debug mode...
: Error: Type 'ShareResult' not found.
  static Future<ShareResult> shareWithResult(
                ^^^^^^^^^^^
: Error: Type 'ShareResult' not found.
  static Future<ShareResult> shareFilesWithResult(
                ^^^^^^^^^^^

: Error: The method 'shareWithResult' isn't defined for the class 'SharePlatform'.
- 'SharePlatform' is from 'package:share_plus_platform_interface/share_plus_platform_interface.dart' ('../../../../.pub-cache/hosted/pub.dartlang.org/share_plus_platform_interface-2.0.1/lib/share_plus_platform_interface.dart').
Try correcting the name to the name of an existing method, or defining a method named 'shareWithResult'.
    return _platform.shareWithResult(
                     ^^^^^^^^^^^^^^^
: Error: The method 'shareFilesWithResult' isn't defined for the class 'SharePlatform'.

- 'SharePlatform' is from 'package:share_plus_platform_interface/share_plus_platform_interface.dart' ('../../../../.pub-cache/hosted/pub.dartlang.org/share_plus_platform_interface-2.0.1/lib/share_plus_platform_interface.dart').
Try correcting the name to the name of an existing method, or defining a method named 'shareFilesWithResult'.
    return _platform.shareFilesWithResult(
                     ^^^^^^^^^^^^^^^^^^^^

FAILURE: Build failed with an exception.

* Where:
Script '/home/skela/files/sdks/flutter/packages/flutter_tools/gradle/flutter.gradle' line: 1102
* What went wrong:
Execution failed for task ':app:compileFlutterBuildDebug'.
> Process 'command '/home/skela/files/sdks/flutter/bin/flutter'' finished with non-zero exit value 1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org

BUILD FAILED in 33s
Exception: Gradle task assembleDebug failed with exit code 1
Exited (sigterm)

hmm, the internal dependency in the pubspec.yaml was not updated, so the plugin is still using 2.0.0 instead of 2.1.0 internally. You should be able to fix this with a flutter pub upgrade so the pubspec.lock will point to 2.1.0.

@miquelbeltran , Thanks a lot for publishing the feature ,
all good , but there's something that's need some updates , which is the share_plus_platform_interface is 2.0.0 and the feature is returning ShareResult object that's need share_plus_platform_interface is 2.1.0 i fixed it internally and it works now good
also its need after this update to make the android min sdk to 23 , it's not possible to do it under 21 (the min. for most plugins)

We could actually roll back to 21 as pointed out earlier

I am publishing a hotfix now.

True - because ^2.0.0 means: from 2.0.0->3.0.0(exclusive)

No really. It is because the pubspec.yaml was still referencing the 2.0.0 instead of 2.1.0, so when updating to 4.0.0 of share_plus the project was still using platform internace 2.0.0 instead of being forced to 2.1.0.
Since there was been breaking changes, I am bumping all federated share_plus plugins to 3.0.0 to avoid mistakes

I am publishing a hotfix now.

True - because ^2.0.0 means: from 2.0.0->3.0.0(exclusive)

No really. It is because the pubspec.yaml was still referencing the 2.0.0 instead of 2.1.0, so when updating to 4.0.0 of share_plus the project was still using platform internace 2.0.0 instead of being forced to 2.1.0.
Since there was been breaking changes, I am bumping all federated share_plus plugins to 3.0.0 to avoid mistakes

I think we just misunderstood each other ^^ But thanks for forcing the update :)

4.0.1 has been published, let me know if you still face errors. A flutter pub upgrade should help as well.

Works like a charm, thank you guys!
I'm very thankfull for your work, thausend thanks 🙌

As I described in issue #789 this change drops support for a lot of old Android devices still being used and this Android minSdk bump is above Flutter's own min supported Android API version. Given that share_plus in its roots one of the platform's core plugins, it should match with the Android versions currently supported by Flutter core.
A better approach would be to gracefully ignore feature not supported on some older devices. For example, have a separate method that provides feedback if running on supported Android version, and keep the old method for the apps that don't need to deal with cancel vs send (as it's been the case before this change).

First of all, we are talking about API version 22 now (2015), which is now 7 years old - most people probably posses much more current devices. The changes you suggested would also be quite cumbersome to implement on the plugin side, as we would have to pull out the tight intergration with the "normal" share and seperate them completely - which in my humble opinion would be way harder to maintain and lead to stark code duplication.
While Flutter supports minSdkVersion version 19, it probably doesn't run all that smooth on them anyway (assumption) and you have to drop support at some point. We have a feature that a lot of people requested for a long time, and you can still depend on an older version of share_plus if you need to support legacy systems.
I think that the needs of the many out way the needs of the few in this case.
PS: Thank you, @vbuberen, for the PR to decrease minSdkVersionto 22 :)

I think that the needs of the many out way the needs of the few in this case.

While I am strongly with you here that even Plus plugins should move forward to at least 21 already (as it is really time even for Flutter to move forward as we have quite a lot of better APIs available, so we would simplify the code for plugins, like network_info), we would still cut not few, but quite a lot of devices with minSDK version 22.
Here is the screenshot from Android Studio project creation wizard which helps you pick the min supported Android version for your project:

2.7% seems like not much, but if you consider that it is 2.7% from 2.5 billion devices it feels like we are cutting a big amount of users.
I feel till Flutter team pushes minimum supported version to 21 we will see lots of angry devs demanding us to support APIs 16-19 even though they might not have such users of their apps at all.

First of all, we are talking about API version 22 now (2015), which is now 7 years old - most people probably posses much more current devices.

Regardless how old is the Android APIs are, in the end it is about being able to run the Flutter-based app on devices that users have, without forcing them to update their hardware.

While Flutter supports minSdkVersion version 19, it probably doesn't run all that smooth on them anyway (assumption) and you have to drop support at some point.

I'm not playing with assumptions here, but on my actual user base and devices they are using. I understand it is much easier for plugin developers to drop the old APIs, but the app developers have to take care and support their users. It is unfortunate when plugin developers forgetting that.

We have a feature that a lot of people requested for a long time, and you can still depend on an older version of share_plus if you need to support legacy systems.

The problem with the old version is that sticking one plugin to an old version quickly forces you to also stick many other to the old versions, which quickly turns into dependency hell. We just went through all of that when migrating everything to null safety.

I think that the needs of the many out way the needs of the few in this case.

I wonder what data this statement is based on? I've been using the share plugin for several years before this change and didn't need to know if data was shared or canceled. Meaning this new feature is not an essential one.
Hence my request to not break the existing use of the plugin and add this new feature as a separate API only supported on newer devices, which you can easily do in Android code using Build.VERSION.SDK_INT > Build.VERSION_CODES.L check, which is a common approach in native Android development to accommodate to platform API specifics and it is not considered cumbersome.

Here is the screenshot from Android Studio project creation wizard which helps you pick the min supported Android version for your project:
2.7% seems like not much, but if you consider that it is 2.7% from 2.5 billion devices it feels like we are cutting a big amount of users.
I feel till Flutter team pushes minimum supported version to 21 we will see lots of angry devs demanding us to support APIs 16-19 even though they might not have such users of their apps at all.

The problem with these numbers in Android studio, they are too broad general and don't take into account device categories (phone vs tablets) or even the app categories. Distribution for real apps can be well off those numbers.
Without going into specifics, the app is one of those that users are buying tablets to run just this one app on them. For them buying these tablets is a big investment and they don't want to do that investment over and over again every few years just because Android or iOS APIs became dated. The tablets are keep going, even the nearly 10 years old 1st gen iPad Minis (these still supported by Flutter, at least of mid of this year).
Here are the number of users of my app from the 2021 (ones that came online at least once, but there are more offline users). The numbers with API <=21 add up to ~1500 users out of 44K-ish total (~3.5%). For comparison, there are about 4.5K more have non-upgradeable Android tablets with API 22.
The 1.5K end users don't seem a lot in the grand scheme of things, but those users will have to get new hardware in order to keep using the app, which will make them very very very unhappy users.
Also the Flutter core is yet to decide if they are going to bump the Android min API level. Also not stated in the roadmap.

The newly introduced shareWithResult() method is only implemented on Android, iOS and macos and it should be simple enough to further restrict only this method by Android API version rather than increasing Android API level for entire share_plus plugin.
So, just check Build.VERSION.SDK_INT > Build.VERSION_CODES.L or whichever version is required for this new functionality.

The newly introduced shareWithResult() method is only implemented on Android, iOS and macos and it should be simple enough to further restrict only this method by Android API version rather than increasing Android API level for entire share_plus plugin.
So, just check Build.VERSION.SDK_INT > Build.VERSION_CODES.L or whichever version is required for this new functionality.

Your PRs are also welcome with your vision/solution as it is an open source project.

I don't see a point of supporting a 9 years old OS with only 0.8% of market share. The chance of your app reaching those devices is basically close to none.

By the way, while testing lowering minSDK to 22 today I saw that newly introduced callback don't give us a 100% guarantee that user actually shared something as I can select any app (like default Messages) and close it without actually sending any message and I would still get success result by share_plus. I feel like it makes the merged solution not valid for the 1 use case described by the original issue author.

Your PRs are also welcome with your vision/solution as it is an open source project.

Normally that is what I would do. But the whole plus_plugins monorepo with this Melos thing is beyond my comprehension.

I don't see a point of supporting a 9 years old OS with only 0.8% of market share. The chance of your app reaching those devices is basically close to none.

How about close to 1500 chances where my real app actually reached those devices?

I don't see a point of supporting a 9 years old OS with only 0.8% of market share. The chance of your app reaching those devices is basically close to none.

I suggest to move such comments and discussion back into #789
It was me, who initially suggested @ekuleshov to move here to share his concerns, but the discussion here turns from discussion of share_plus feature to versions I feel like mentioned issue will be a better place for that.

By the way, while testing lowering minSDK to 22 today I saw that newly introduced callback don't give us a 100% guarantee that user actually shared something as I can select any app (like default Messages) and close it without actually sending any message and I would still get success result by share_plus. I feel like it makes the merged solution not valid for the 1 use case described by the original issue author:

Tracking. We need to know if user shared the text/file/etc =, or just closed the dialog(view) without doing nothing. This enabled a lot of opportunities, like A/B testing, trying to improve ui (explanation text) for what user is about to share and so on.

Yes, that is true and I have stated that multiple times and included it in the documentation. That is a limitation by android and we simply have to accept it or dont get a result at all. While IOS also supports an actual share result, applications are free to return whatever they want (I belive Telegram always returns the same? Someone stated that in one of the comments in this issue I think), so we decided that we go for the best thing we got on each platform.

PS: isn't it ironic that new functionality is not completely working for the cost of supported devices

I understand it is much easier for plugin developers to drop the old APIs, but the app developers have to take care and support their users. It is unfortunate when plugin developers forgetting that.

I can’t help to feel that you think you are entitled to support. I contributed to this project because I saw people that really wanted this feature and considered it possible for me to implement. Now you come along and seemingly blame me. If you want that version check: please implement it yourself. You don’t even need melos to work on share_plus. I always like receiving constructive criticism because I can learn from it and improve - but yours doesn’t feel all that constructive anymore I am afraid.
Please submit a PR so everybody can be happy.

I can’t help to feel that you think you are entitled to support.

Not at all. It is unfortunate it came across this way. The issue I've been trying to explain is about introducing a new feature and API at the cost of dropping large chunk of existing functionality on devices generally supported by the Flutter platform. I guess no one else sees that important.
As for Melos, the contribution guide does not provide alternative setup options. I'd appreciate any guidelines on not using it, e.g. on this issue https://github.com/fluttercommunity/plus_plugins/issues/724

Yes, that is true and I have stated that multiple times and included it in the documentation. That is a limitation by android (at least I couldn’t find another way) and we simply have to accept it or dont get a result at all.

Could documentation further extended to state these limitations on android platform? The current shareWithResult method doc, quoted below, doesn't seem clear about Android or iOS not always returning the accurate result. It may need to state that result is provided on the best effort as platform allows it.
  /// Behaves exactly like [share] while providing feedback on how the user
  /// interacted with the share-sheet. Until the returned future is completed,
  /// any other call to any share method that returns a result _might_ result in
  /// a [PlatformException] (on Android).
  ///
  /// Because IOS, Android and macOS provide different feedback on share-sheet interaction,
  /// a result on IOS will be more specific than on Android or macOS. While IOS can detect if
  /// the user actually completed his selected action or aborted it midway, Android and macOS
  /// only record if the user selected an action or outright dismissed the share-sheet.
  ///
  /// **Currently only implemented on IOS, Android and macOS.**

Is getting a result from an intent possible or not?  Looking at the code, it seems not...

is this implemented pls ?

is this implemented pls ?

Could you please make your question a bit more specific? The general ShareResult functionality has been implemented for quite some time now :)

is this implemented pls ?

Could you please make your question a bit more specific? The general ShareResult functionality has been implemented for quite some time now :)
Please consult the documentation on:

shareWithResult
shareXFiles

Sorry ment this https://github.com/fluttercommunity/plus_plugins/issues/2039

Does anyone know accurate solution? Didn't find any solution.


Bower ignore

It looks like you're including a lot of extra stuff in the bower install that users probably won't need, you can use the ignore in your bower.json file to skip files from being downloaded.

https://github.com/bower/spec/blob/master/json.md

For example, all I do is point to bower_components/family.scss/source/src and then I'm able to @import family and it will work. But I don't need any of the other files it pulled down (except maybe the bower.json itself and the readme and license if they're required by Bower).
And if you ever move the family.scss file to a different folder, make sure to do a major version change as some people will be pointing directly to it and that will be a breaking change for them.

Hey man, I sent you an email about that.
I'd love to chat with you about bower.
I would like to remove my package from the bower list to repush a clean one. But it seems you cannot remove a package from bower.. I also have several other questions.
What would be the best way to reach you out ?

https://gitter.im/TheJaredWilcurt

Fixed in https://github.com/LukyVj/family.scss/commit/9eb6d207ad10f4d3e7e72b3958b08e373de7eb09


HTTP load failed

When I trying to push data to cleverTap I am getting HTTP load failed and that data is not passing to clever tap dashboard as well.
Task .<7> HTTP load failed (error code: -1003 [12:8])
Task .<7> finished with error - code: -1003

Hey @lintocj
To help you better, I would request you enable debug logs in your application and email us on<EMAIL_ADDRESS>Helping link to enable debug logs: https://developer.clevertap.com/docs/ios#section-debugging

Hey @lintocj
Could you verify the CleverTap credentials once? Check the values of the CleverTapAccountID and CleverTapToken in your Info.Plist.
Basically, when you add incorrect values for CleverTap credentials, in that case, will get this error.

Okay! it started working after changing the device.

Glad it worked for you. Closing it, feel free to reopen if you need further help or you can also write to<EMAIL_ADDRESS>


ModelToModel Distance Output Mesh doesnot have same topology as the VTKFile1

Number of points (and cells) in the output vtk model is not the same as input vtkfile1.
Doesn't match the description https://www.slicer.org/wiki/Documentation/4.6/Extensions/ModelToModelDistance

I'm unable to reproduce this in the latest version. Since the issue is so old, and I am unable to reproduce, I'm closing.
Please re-open or create a new issue if this is still a problem. It would be helpful to include some sample data which produces the problem.


Feat/https for everyone

Motivation
Closes #144
This pr implements the features requested in #144
Serve API over https
Adds a tls config to allow configuring the server to use https instead of http
HTTP targets in targetmanager
Changes the targetmanager to allow non https targets by setting a new scheme value in the config
Changes

For additional information look at the commits.
Tests done

[ ] Unit tests succeeded
[ ] E2E tests succeeded

TODO

[x] I've assigned this PR to myself
[x] I've labeled this PR correctly
[ ] I've fixed the tests

Looks quite good to me!


[Suggestion] Add version info for gorelease compile

Is this a BUG REPORT or FEATURE REQUEST?:

Uncomment only one, leave it on its own line:
/kind bug
/kind feature

What happened:
Now, the release don't have version info by run ormb version.
What you expected to happen:
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:

/kind feature

/assign @simon-cj


The CustomLearningWebPart has not been properly configured and you do not have Owner rights to complete the operation. Please contact the site administrator

Hello,
After installing the Custom learning for Office 365 in SharePoint, we have faced 1 annoying issue that prevents users from using the portal.
When users try to use the learning portal, the sometimes receive the error:
“The CustomLearningWebPart has not been properly configured and you do not have Owner rights to complete the operation. Please contact the site administrator.”
Any ideas what can it be?
Side note: I have tried modifying the site (removed some web parts) before receiving the notification email.

I have the same issue with this. I deployed the solution using my tenant admin account and this account can see the pages. I shared the link to one of the other owners to the site and she can see the page but when I use my normal account I get the same errors message as the web part is not configured.
How would you configure the user access list? Is this is not based on the SharePoint groups for the site collection its deployed to.

Yes it is based on SharePoint user groups.  Did you do a manual installation or use the PnP Provisioning service?  The latter should configure everything for you but you will need to place users in the right groups.  All users that should view the custom learning web part should be in the visitors group.  Any users that you want to administrate content need to be at least in the members group but also could be in the owners group, your choice.

Thanks for the feedback @juliemturner
Yes I did a manual install and these are the steps I followed.

Downloaded the repository from here.
Installed the app in our existing app catalog
3, Had to modify the PowerShell(or took sections from it to create a new PowerShell script). So I connect to my tenant admin (xx-admin). Get the appcatalog. Create the PnPStorageEntitiies successfully and then create the pages on the site to deploy as our existing comms site is on "/teams/" path.
Ran the script as SharePoint admin using my admin account.
I have added my normal account in the default owners groups same as the other user in my team but I cannot see the page and she can

Any help would be appreciated.

If you have at least 1 user able to see the webpart successfully then it would appear you have it properly configured. What is a bit hard to understand is what webpart you're trying to look at. Can you tell me the name of the page that you're looking at, CustomLearningAdmin or CustomLearningViewer?
I can't come up with a good reason as to why you're having issues based on what you're describing. If you could paste in any errors you get from the browser's debug console that would maybe point me in the right direction to help you.

After some experimentation I think I have figured out where the problem is coming from.
Admin user had no issue in viewing the page and using all the web parts. The problem was present only for regular users, and it appeared irregularly.
Also, thing to note: I was using custom SharePoint groups with slightly modified custom permissions.
After collaboration with MS support, we did find out that problem is in the permissions. It said that two permissions are missing: "Browse directories" and "Browse user information".
I did check the permissions, and default ones and custom ones had the same thing: “Browse directories” was disabled, and "Browse user information" was enabled.
In the end I have created a new site using the provisioning service and deleted the old one. The new site works fine (no changes made in the new site).

Hi @juliemturner
I have enclosed the console log from our version of IE (Version 11.379.17763.0) but just by trying other browsers (Chrome & Edge) it works for me and other users as well. Its only IE that fails

The issue is that one of the site owners can see it in all browsers but based on the console output for IE, hopefully you can provide more insight?

I've noticed that when browsing to the Learning site from a machine not joined to our domain that the pages will render the message, "The CustomLearningWebPart has not been properly configured and you do not have Owner rights to complete the operation. Please contact the site administrator."
I've tried with 2 different tenants (DEV and PROD) with regular user accounts and Global Admin, SCA accounts. This was provisioned from the Provisioning Service site. Am I overlooking something? Permissions?

All users that need to access the custom learning web part must be in the viewers group of the site collection that is the home for custom learning (ie where the admin page is and the custom lists)

Hi Julie,
I've successfully deployed this site collection and even after adding Read or View access to everyone in the company on the top site collection, we still get "The CustomLearningWebPart has not been properly configured and you do not have Owner rights to complete the operation. Please contact the site administrator." on IE 11 browser.
Thanks,
Karen

I can confirmed this can only be reproduced on IE 11. On the same computer Edge and Chrome works fine.
Deployed a few sites, its all the same, only on IE11.

When will this be corrected?
Dave Clay
SharePoint Administrator
O<PHONE_NUMBER>
David.Clay<EMAIL_ADDRESS>From: batilcl<EMAIL_ADDRESS>Sent: Tuesday, April 16, 2019 2:44 AM
To: pnp/custom-learning-office-365<EMAIL_ADDRESS>Cc: Clay, Dave<EMAIL_ADDRESS>Manual<EMAIL_ADDRESS>Subject: Re: [pnp/custom-learning-office-365] The CustomLearningWebPart has not been properly configured and you do not have Owner rights to complete the operation. Please contact the site administrator (#18)
I can confirmed this can only be reproduced on IE 11. On the same computer Edge and Chrome works fine.
Deployed a few sites, its all the same, only on IE11.
[Image removed by sender. custlearn]https://user-images.githubusercontent.com/28776353/56195047-be785a80-6066-11e9-9854-a90391ee467e.png
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/pnp/custom-learning-office-365/issues/18#issuecomment-483568448, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AuWoW9xyREX3BGkOoTXiqeAozgOLZhE_ks5vhY01gaJpZM4cOGmw.

Yes there is a known issue on IE11, it will be fixed in a future release.

DO you have an ETA on the fix?
Dave Clay
SharePoint Administrator
O<PHONE_NUMBER>
David.Clay<EMAIL_ADDRESS>From: Julie Turner<EMAIL_ADDRESS>Sent: Tuesday, April 16, 2019 7:26 AM
To: pnp/custom-learning-office-365<EMAIL_ADDRESS>Cc: Clay, Dave<EMAIL_ADDRESS>Manual<EMAIL_ADDRESS>Subject: Re: [pnp/custom-learning-office-365] The CustomLearningWebPart has not been properly configured and you do not have Owner rights to complete the operation. Please contact the site administrator (#18)
Yes there is a known issue on IE11, it will be fixed in a future release.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/pnp/custom-learning-office-365/issues/18#issuecomment-483658211, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AuWoW3_kD03Wo_n_DxG1dvH_5cNz0KoWks5vhc9WgaJpZM4cOGmw.

I believe the IE issue remains. I removed old site, provisioned new site and IE 11 still throws the error:
The CustomLearningWebPart has not been properly configured and you do not have Owner rights to complete the operation. Please contact the site administrator.
Dave Clay
SharePoint Administrator
O<PHONE_NUMBER>
David.Clay<EMAIL_ADDRESS>From: Julie Turner<EMAIL_ADDRESS>Sent: Wednesday, April 17, 2019 1:08 PM
To: pnp/custom-learning-office-365<EMAIL_ADDRESS>Cc: Clay, Dave<EMAIL_ADDRESS>Manual<EMAIL_ADDRESS>Subject: Re: [pnp/custom-learning-office-365] The CustomLearningWebPart has not been properly configured and you do not have Owner rights to complete the operation. Please contact the site administrator (#18)
Closed #18https://github.com/pnp/custom-learning-office-365/issues/18 via #36https://github.com/pnp/custom-learning-office-365/pull/36.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/pnp/custom-learning-office-365/issues/18#event-2283713413, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ALS2QW6633Y4X7OG2VJR7TDPQ5YPXANCNFSM4HBYNGYA.

And you're saying that if you go to the same page in Chrome it works fine?

That is correct, NO error in Chrome
Dave Clay
SharePoint Administrator
O<PHONE_NUMBER>
David.Clay<EMAIL_ADDRESS>From: Julie Turner<EMAIL_ADDRESS>Sent: Thursday, April 18, 2019 10:04 AM
To: pnp/custom-learning-office-365<EMAIL_ADDRESS>Cc: Clay, Dave<EMAIL_ADDRESS>Manual<EMAIL_ADDRESS>Subject: Re: [pnp/custom-learning-office-365] The CustomLearningWebPart has not been properly configured and you do not have Owner rights to complete the operation. Please contact the site administrator (#18)
And you're saying that if you go to the same page in Chrome it works fine?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/pnp/custom-learning-office-365/issues/18#issuecomment-484574247, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ALS2QW4TSMHNAOS4MJMSYNLPRCLVZANCNFSM4HBYNGYA.

And you're saying that if you go to the same page in Chrome it works fine?

@juliemturner I can repro this on IE 11 and works fine in any other browser. I can help to share more if required.

It has been confirmed by  multiple people that this issue is closed.  The last person did not have the updated web part in their site collection.  From site contents, if you select 'Details' for the Custom Learning for Office 365 app, you should see verison 2.0.11.  If you do not then you do not have the latest version of the code.  Please verify that version 2.0.11 is installed in your tenant app catalog first.  If not download it from this repository and upload it into the tenant app catalog, which will upgrade the solution.  Click "Deploy", and optionally check in the solution making sure that the version is updated.  Then navigate to the site collection and update the version there.  Also please make sure you clear the cache in IE.  If you're still experiencing issues please create a new issue.

I am seeing this today with some IE 11 users, but not all.  It does not appear to be an issue in Chrome.  We have already deployed version <IP_ADDRESS>, Release Date May 2019.

@MichaelMontMoore -- The current release is 2.0.17.  If you could please update to that version and then if you're still having issues please submit start a new issue.