Skip to content
This repository has been archived by the owner on Jul 5, 2024. It is now read-only.

Please revert issue 598 #917

Open
ivmazurenko opened this issue Jan 21, 2021 · 3 comments
Open

Please revert issue 598 #917

ivmazurenko opened this issue Jan 21, 2021 · 3 comments

Comments

@ivmazurenko
Copy link

Bug Information

Version Number of Plugin: 5.0.1
Device Tested On: Samsung s20, Pixel 3
Simulator Tested On: -
Version of VS: does not matter
Version of Xamarin: does not matter
Versions of other things you are using: does not matter

Steps to reproduce the Behavior

Go to developer settings and enable 'Don't keep activities' option
Implement some code like this:

  var file = await CrossMedia.Current.TakePhotoAsync(
      new StoreCameraMediaOptions
      {
          Directory = StorageDirectoryOption,
          Name = $"{DateTime.Now:yyyy-MM-dd_hhmmss}.jpg",
          PhotoSize = PhotoSizeOption,
          CompressionQuality = CompressionQualityOption,
          ModalPresentationStyle = MediaPickerModalPresentationStyle.OverFullScreen,
      });
  
  DoSomething(file);    // This Line will never be acheived 

Expected Behavior

await CrossMedia.Current.TakePhotoAsync(...) ends after photo is taken

Actual Behavior

await CrossMedia.Current.TakePhotoAsync(...) never ends after photo is taken

Code snippet

see above

Screenshots

not needed

It looks like this behavior introduced in
#598 (comment)
vagrawal1986@0bc5eca

with these lines in MediaPickerActvity:

  protected override void OnDestroy()
  {
      if(!completed)
      {
          DeleteOutputFile();
          MediaImplementation.CompletionSource = null;      // THIS
          MediaImplementation.CompletionSourceMulti = null; // THIS
          MediaPicked = null;                               // THIS
      } 
      base.OnDestroy();
  }

According to message from @motoko89, these changes are not fixing anything, but destroys our application.

Any chance to revert these changes?

@jamesmontemagno
Copy link
Owner

I don't think any version of the plugin is compatible if you have "don't keep activities" on.

@ivmazurenko
Copy link
Author

ivmazurenko commented Jan 22, 2021

3.13 perfectly handles this case.

On the other hand, "don't keep activities" simulates situation when there is no memory on the phone, and this case is very common. The Task is never completes and it is very hard to workaround this problem.

Any chance to fail operation Task in such case? We will handle this failing task, and show for example dialog for user?

Anyway, this library is pretty good and we don't want to fork it for our project

@jamesmontemagno
Copy link
Owner

are you getting exceptions? maybe i should try/catch it, you can send down a PR.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants