tree 433f6ba231d101866eda69a63d790444f1ae59a9
parent b2104b420a76afb060cebe53a92e1f37a3be4c80
author Yusuf <82844127+ydag@users.noreply.github.com> 1620644600 +0200
committer GitHub <noreply@github.com> 1620644600 +0200
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJgmRL4CRBK7hj4Ov3rIwAAHb4IAIIRQpG1Enm3J7kxYzHvwF1J
 eE+XfnECsFKgfCdFP4WEiI/2ppSl+SoynkLujiVFE1eT+gbSKoxYrWE9FHsw+gKd
 WicxcVvby5NWN0UXkUQhRPdo4Lgii4uqrIaUDDdTNM8aXZ05+u2p0S65lvQWz83K
 amc1MODvRhCOpS4gFr0BuUt6yDGQ0zqYIS2MP6lskr4Eu/LdhpkTo8JXdt+JrWwl
 mrQVpEvRhqPvKW8a/plnJ+8Ny9eu6I/H1nGJB9aQ2r4Y/+3n19mNXvF1sbewknM+
 X+f/J7IpoJrty/68hk3J9A+hLJ5w0gwauF051ttWxII8MCgxZToaxQE5/p+YiiA=
 =0BSd
 -----END PGP SIGNATURE-----
 

[image_picker] Image picker phpicker impl (#3835)

* Add PHPicker libraries and its delegate

I have to implement PHPicker to select photos, live photos and videos from the photo library for iOS 14 and higher versions. But I also have to keep old UIImagePickerController for lower iOS versions and to use camera.

* Add PHPicker implementation

* Refactor UIImagePickerController implementation

I moved the UIImagePickerController implementation into pickImageWithUIImagePicker method for code reusability.

* Refactor handleMethodCall function

* Refactor showPhotoLibrary function

* Add the limited access into the photo library

I refactored the checkPhotoAuthorization function to add limited access functionality. Also I implemented showLimitedPhotoLibrary function to call presentLimitedLibraryPickerFromViewController.

* Add the implementation of picker function

I implemented picker function that is came from PHPickerViewControllerDelegate.

* Refactor Info.plist file

I added PHPhotoLibraryPreventAutomaticLimitedAccessAlert = YES into Info.plist to use limited access functionality.

* Add the function to get PHAssetResult

* Change the image to bypass HEIC problem

* Add UITest to test select photo functionality

* Add unit test for PHAssetResult

* Format the codes in all files

* Fix the unit test

* Update the version

* Add the description into CHANGELOG file

* Fix the license header

* Remove the unnecessary if statement

* Refactor PHPickerViewController to use property

* Refactor phPickerFlag state to use property

* Refactor the code to combine lines

* Refactor arguments to use property

* Revert formatting changes

This reverts part of commit 36b6a2aec20be6c76748f27a07d9f670d33a1313.

* Fix the unit test

* Format the code

* Refactor the UITest to skip lower versions

* Fix the property's name

* Refactor the properties to pass them via methods

* Add the getDesiredImageQuality method

* Add API_AVAILABLE for limited access method

* Refactor PHPickerController to use as a property

* Refactor PHPicker picker method and UITest

* Refactor the UITest

Move to UITest to new target file to test on iOS 14 and higher versions.

* Change the team to None  in the RunnerUITestiOS14

* Fix the UITest

* Refactor the method to fix dispatch

* Change to use self instead of weakSelf

* Fix the UITest to use XCTSkip

* Add ImagePickerClassType to use enum

* Remove unused method

If the user enabled limited library access, use presentLimitedLibraryPickerFromViewController to present the limited library picker so they may update their selection. But in this case, limited access status will not return with old requestAuthorization implementation in checkPhotoAuthorization method. So this method will not be used.

* Fix property to change copy to strong

* Refactor enum

* Change argument call

* Add checkPhotoAuthorizationForAccessLevel method

I implemented requestAuthorizationForAccessLevel which is the new way to handle the photo library authorization with iOS 14+.