public async void Init(object obj = null) { await App.Configuration.InitialAsync(this); NavigationPage.SetHasNavigationBar(this, false); BindingContext = _model; if (!await _devicePermissionServices.RequestReadStoragePermission()) { _model.SetActivityResource(showError: true, errorMessage: TextResources.MessagePermissionReadStorageRequired); return; } if (!await _devicePermissionServices.RequestCameraPermission()) { _model.SetActivityResource(showError: true, errorMessage: TextResources.MessagePermissionCameraRequired); return; } if (!await _devicePermissionServices.RequestWriteStoragePermission()) { _model.SetActivityResource(showError: true, errorMessage: TextResources.MessagePermissionCameraRequired); return; } _model.WebUri = await _model.GetLink(); contentView.Content = new HybridChromeWebView() { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, Margin = new Thickness(0, -6, 0, 0), BackgroundColor = Palette._MainBackground, Uri = _model.WebUri + $"?token={App.Configuration.UserToken}" }; }
private async void ChangeProfilePhoto(object sender, EventArgs args) { var result = await DisplayActionSheet(TextResources.ChooseOption, TextResources.Cancel, null, new string[] { TextResources.PickFromGallery, TextResources.TakeFromCamera }); if (!string.IsNullOrEmpty(result) && result?.ToLower() != "cancel") { if (!await _devicePermissionServices.RequestReadStoragePermission()) { _model.SetActivityResource(showError: true, errorMessage: TextResources.MessagePermissionReadStorageRequired); } else { _media.Refresh(); if (result == TextResources.PickFromGallery) { UploadPhoto(await _media.PickPhotoAsync()); } else if (result == TextResources.TakeFromCamera) { if (!await _devicePermissionServices.RequestCameraPermission()) { _model.SetActivityResource(showError: true, errorMessage: TextResources.MessagePermissionCameraRequired); } else if (!await _devicePermissionServices.RequestWriteStoragePermission()) { _model.SetActivityResource(showError: true, errorMessage: TextResources.MessagePermissionCameraRequired); } else { UploadPhoto(await _media.TakePhotoAsync()); } } } } }
protected async Task UploadImageAsync(ImageSide side) { if (side == ImageSide.SIDE) { _model.ImageSide = _model.ImageDefault; } else { _model.ImageFront = _model.ImageDefault; } //var result = await DisplayActionSheet(TextResources.ChooseOption, TextResources.Cancel, null, // new string[] { TextResources.PickFromGallery, TextResources.TakeFromCamera }); //var result = await DisplayAlert(TextResources.ChooseOption, string.Empty, TextResources.PickFromGallery, TextResources.TakeFromCamera ); var result = TextResources.TakeFromCamera; if (result != null) { if (result == "Cancel") { return; } if (!await _devicePermissionServices.RequestReadStoragePermission()) { await DisplayAlert(TextResources.Review, TextResources.MessagePermissionReadStorageRequired, TextResources.Ok); return; } media.Refresh(); if (result.ToString() == TextResources.PickFromGallery) { var _mediaFile = await media.PickPhotoAsync(); if (_mediaFile == null) { _model.SetActivityResource(showError: true, errorMessage: media.Message); return; } (side == ImageSide.SIDE ? imageSide : imageFront).Source = ImageSource.FromStream(() => { return(_mediaFile.GetStream()); }); if (media.FileName != null) { if (side == ImageSide.SIDE) { _model.ImageSide = media.FileName; } else { _model.ImageFront = media.FileName; } } else { _model.SetActivityResource(showError: true, errorMessage: media.Message); } } else if (result.ToString() == TextResources.TakeFromCamera) { if (!await _devicePermissionServices.RequestCameraPermission()) { await DisplayAlert(TextResources.Review, TextResources.MessagePermissionCameraRequired, TextResources.Ok); return; } if (!await _devicePermissionServices.RequestWriteStoragePermission()) { await DisplayAlert(TextResources.Review, TextResources.MessagePermissionCameraRequired, TextResources.Ok); return; } var mediaFile = await media.TakePhotoAsync(); if (mediaFile == null) { _model.SetActivityResource(showError: true, errorMessage: media.Message); return; } (side == ImageSide.SIDE ? imageSide : imageFront).Source = ImageSource.FromStream(() => { return(mediaFile.GetStream()); }); if (media.FileName != null && media.FileName.Trim().Length > 0) { var index = media.FileName.LastIndexOf("\""); var fileName = media.FileName.Remove(index, 1); if (side == ImageSide.SIDE) { _model.ImageSide = fileName; } else { _model.ImageFront = fileName; } } else { _model.SetActivityResource(showError: true, errorMessage: media.Message); } } } }
private async Task UploadImageAsync(ImageSide side) { if (side == ImageSide.SIDE) { _model.ImageSide = _model.ImageDefault; } else { _model.ImageFront = _model.ImageDefault; } Device.BeginInvokeOnMainThread(async() => { var localMessage = ""; var result = await DisplayActionSheet(TextResources.ChooseOption, TextResources.Cancel, null, new string[] { TextResources.PickFromGallery, TextResources.TakeFromCamera }); if (result != null) { if (result == "Cancel") { return; } if (!await _devicePermissionServices.RequestReadStoragePermission()) { _model.SetActivityResource(showError: true, errorMessage: TextResources.MessagePermissionReadStorageRequired); return; } _media.Refresh(); if (result.ToString() == TextResources.PickFromGallery) { var mediaFile = await _media.PickPhotoAsync(); if (mediaFile == null) { localMessage = _media.Message; } else { _model.SetActivityResource(false, true); var response = await _media.UploadPhotoAsync(mediaFile); if (response) { if (side == ImageSide.SIDE) { _model.ImageSide = _media.FileName; } else { _model.ImageFront = _media.FileName; } (side == ImageSide.SIDE ? imageSide : imageFront).Source = ImageSource.FromStream(() => { return(mediaFile.GetStream()); }); } else { localMessage = _media.Message; } _model.SetActivityResource(); } } else if (result.ToString() == TextResources.TakeFromCamera) { if (!await _devicePermissionServices.RequestCameraPermission()) { _model.SetActivityResource(showError: true, errorMessage: TextResources.MessagePermissionCameraRequired); return; } if (!await _devicePermissionServices.RequestWriteStoragePermission()) { _model.SetActivityResource(showError: true, errorMessage: TextResources.MessagePermissionCameraRequired); return; } var mediaFile = await _media.TakePhotoAsync(); if (mediaFile == null) { localMessage = _media.Message; } else { _model.SetActivityResource(false, true); var response = await _media.UploadPhotoAsync(mediaFile); if (response) { if (side == ImageSide.SIDE) { _model.ImageSide = _media.FileName; } else { _model.ImageFront = _media.FileName; } (side == ImageSide.SIDE ? imageSide : imageFront).Source = ImageSource.FromStream(() => { return(mediaFile.GetStream()); }); } else { localMessage = _media.Message; } _model.SetActivityResource(); } } if (!string.IsNullOrEmpty(localMessage)) { _model.SetActivityResource(showError: true, errorMessage: localMessage); } } }); await Task.Delay(TimeSpan.FromMilliseconds(1)); }
private async void ChangeProfilePhoto(object sender, EventArgs args) { var result = await DisplayActionSheet(TextResources.ChooseOption, TextResources.Cancel, null, new string[] { TextResources.PickFromGallery, TextResources.TakeFromCamera }); if (result != null) { if (result == "Cancel") { return; } if (!await _devicePermissionServices.RequestReadStoragePermission()) { _model.SetActivityResource(showError: true, errorMessage: TextResources.MessagePermissionReadStorageRequired); return; } if (result == TextResources.PickFromGallery) { _media.Refresh(); var mediaFile = await _media.PickPhotoAsync(); if (mediaFile == null) { _model.SetActivityResource(showError: true, errorMessage: _media.Message); return; } _model.SetActivityResource(false, true); var response = await _media.UploadPhotoAsync(mediaFile); if (!response) { _model.SetActivityResource(true, false, showError: true, errorMessage: _media.Message); return; } } else if (result == TextResources.TakeFromCamera) { if (!await _devicePermissionServices.RequestCameraPermission()) { _model.SetActivityResource(showError: true, errorMessage: TextResources.MessagePermissionCameraRequired); return; } if (!await _devicePermissionServices.RequestWriteStoragePermission()) { _model.SetActivityResource(showError: true, errorMessage: TextResources.MessagePermissionCameraRequired); return; } _media.Refresh(); var mediaFile = await _media.TakePhotoAsync(); if (mediaFile == null) { _model.SetActivityResource(showError: true, errorMessage: _media.Message); return; } _model.SetActivityResource(false, true); var response = await _media.UploadPhotoAsync(mediaFile); if (!response) { _model.SetActivityResource(true, false, showError: true, errorMessage: _media.Message); return; } } _model.SetActivityResource(); if (!string.IsNullOrEmpty(_media.FileName)) { var profileImage = _metaPivotService.AddMeta(_media.FileName, MetaConstants.PROFILE_PHOTO.ToCapital(), MetaConstants.PROFILE_PHOTO, MetaConstants.PROFILE_PHOTO); var response = await _metaPivotService.SaveMetaAsync(profileImage); if (response != null && response.Contains(HttpConstants.SUCCESS)) { _model.User.ProfileImage = _media.FileName; App.CurrentUser.UserInfo = _model.User; _model.ProfileImagePath = _model.User.ProfileImage; _model.SetActivityResource(showMessage: true, message: TextResources.ChangeProfilePhoto + " " + TextResources.Change + " " + TextResources.Success); } } else { _model.SetActivityResource(showError: true, errorMessage: _media.Message); } } }
private async Task UploadImageAsync(ImageSide side) { if (side == ImageSide.SIDE) { _imageSideName = string.Empty; _model.ImageSide = _model.ImageDefault; } else { _imageFrontName = string.Empty; _model.ImageFront = _model.ImageDefault; } var result = await DisplayActionSheet(TextResources.ChooseOption, TextResources.Cancel, null, new string[] { TextResources.PickFromGallery, TextResources.TakeFromCamera }); if (result != null) { if (result == "Cancel") { return; } if (!await _devicePermissionServices.RequestReadStoragePermission()) { _model.SetActivityResource(showError: true, errorMessage: TextResources.MessagePermissionReadStorageRequired); return; } _media.Refresh(); if (result == TextResources.PickFromGallery) { var mediaFile = await _media.PickPhotoAsync(); if (mediaFile == null) { _model.SetActivityResource(showError: true, errorMessage: _media.Message); return; } _model.SetActivityResource(false, true); var response = await _media.UploadPhotoAsync(mediaFile); if (!response) { _model.SetActivityResource(true, false, showError: true, errorMessage: _media.Message); return; } _model.SetActivityResource(); (side == ImageSide.SIDE ? imageSide : imageFront).Source = ImageSource.FromStream(() => { return(mediaFile.GetStream()); }); if (_media.FileName != null) { if (side == ImageSide.SIDE) { _imageSideName = _model.ImageSide = _media.FileName; } else { _imageFrontName = _model.ImageFront = _media.FileName; } (side == ImageSide.SIDE ? imageSide : imageFront).Source = ImageSource.FromStream(() => { return(mediaFile.GetStream()); }); } else { _model.SetActivityResource(showError: true, errorMessage: _media.Message); } } else if (result == TextResources.TakeFromCamera) { if (!await _devicePermissionServices.RequestCameraPermission()) { _model.SetActivityResource(showError: true, errorMessage: TextResources.MessagePermissionCameraRequired); return; } if (!await _devicePermissionServices.RequestWriteStoragePermission()) { _model.SetActivityResource(showError: true, errorMessage: TextResources.MessagePermissionCameraRequired); return; } var mediaFile = await _media.TakePhotoAsync(); if (mediaFile == null) { _model.SetActivityResource(showError: true, errorMessage: _media.Message); return; } _model.SetActivityResource(false, true); var response = await _media.UploadPhotoAsync(mediaFile); if (!response) { _model.SetActivityResource(true, false, showError: true, errorMessage: _media.Message); return; } _model.SetActivityResource(); if (_media.FileName != null && _media.FileName.Trim().Length > 0) { if (side == ImageSide.SIDE) { _imageSideName = _model.ImageSide = _media.FileName; } else { _imageFrontName = _model.ImageFront = _media.FileName; } (side == ImageSide.SIDE ? imageSide : imageFront).Source = ImageSource.FromStream(() => { return(mediaFile.GetStream()); }); } else { _model.SetActivityResource(showError: true, errorMessage: _media.Message); } } } }