Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // ExpertSettingProfileViewController.m
- // Moselo
- //
- // Created by Dominic Vedericho on 5/4/17.
- // Copyright © 2017 Moselo. All rights reserved.
- //
- #import "ExpertSettingProfileViewController.h"
- #import "ExpertSettingProfileView.h"
- #import "SetProfilePictureViewController.h"
- #import "WebViewViewController.h"
- #import "CustomNavigationController.h"
- #import "ImageSelectCoverViewController.h"
- #import "ImagePreviewViewController.h"
- #import "NotificationManager.h"
- #import "PickerViewController.h"
- #import "ChooseCityViewController.h"
- #import "Base64.h"
- #import "PopupInfoExpertChangeNameViewController.h"
- #import "HelpViewController.h"
- #import "ImageCoverPreviewViewController.h"
- @interface ExpertSettingProfileViewController () <UIGestureRecognizerDelegate, MoseloTextFieldDelegate, MoseloCheckerTextFieldDelegate, UIScrollViewDelegate, SetProfilePictureViewControllerDelegate, UITextViewDelegate, MoseloPickerTextFieldDelegate, ChooseCityViewControllerDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate, WebViewViewControllerDelegate, ImageSelectCoverViewControllerDelegate, PopupInfoExpertChangeNameViewControllerDelegate, ImageCoverPreviewViewControllerDelegate>
- @property (strong, nonatomic) ExpertSettingProfileView *expertSettingProfileView;
- @property (strong, nonatomic) PopupInfoExpertChangeNameViewController *popupInfoExpertChangeNameViewController;
- @property (strong, nonatomic) PickerViewController *pickerViewController;
- @property (strong, nonatomic) PhotoPreviewViewController *photoPreviewViewController;
- @property (strong, nonatomic) ImageCoverPreviewViewController *imageCoverPreviewViewController;
- @property (nonatomic) NSInteger buttonTag;
- @property (strong, nonatomic) NSMutableArray *cityListDataArray;
- @property (strong, nonatomic) NSString *existingSelectedCityID;
- @property (strong, nonatomic) NSString *existingSelectedCityName;
- @property (strong, nonatomic) NSString *existingSelectedRegionID;
- @property (strong, nonatomic) NSString *existingSelectedRegionName;
- @property (strong, nonatomic) NSString *existingSelectedCountryID;
- @property (strong, nonatomic) NSString *existingSelectedCountryName;
- @property (strong, nonatomic) NSString *selectedCityID;
- @property (strong, nonatomic) NSString *selectedCityName;
- @property (strong, nonatomic) NSString *selectedRegionID;
- @property (strong, nonatomic) NSString *selectedRegionName;
- @property (strong, nonatomic) NSString *selectedCountryID;
- @property (strong, nonatomic) NSString *selectedCountryName;
- @property (strong, nonatomic) NSString *expertID;
- @property (strong, nonatomic) NSMutableArray *imageDataArray;
- @property (nonatomic) NSInteger activeIndex;
- @property (strong, nonatomic) UIActivityIndicatorView *activityIndicator;
- @property (strong, nonatomic) UIButton *saveButton;
- @property (strong, nonatomic) NSString *expertDescription;
- @property (strong, nonatomic) NSMutableString *appendedCategoryString;
- @property (strong, nonatomic) NSMutableString *appendedSubcategoryString;
- @property (strong, nonatomic) NSString *facebookUsername;
- @property (strong, nonatomic) NSString *twitterUsername;
- @property (strong, nonatomic) NSString *instagramUsername;
- @property (strong, nonatomic) NSString *youtubeUsername;
- @property (strong, nonatomic) NSString *profileCoverURLString;
- @property (strong, nonatomic) NSString *profilePictureURLString;
- @property (strong, nonatomic) NSString *expertExistingName;
- @property (strong, nonatomic) NSString *expertExistingUsername;
- @property (strong, nonatomic) NSString *expertExistingEmail;
- @property (strong, nonatomic) NSString *expertExistingPhoneNumber;
- @property (strong, nonatomic) NSString *expertExistingCity;
- @property (strong, nonatomic) NSString *expertExistingDescription;
- @property (strong, nonatomic) NSString *expertExistingFacebookUsername;
- @property (strong, nonatomic) NSString *expertExistingTwitterUsername;
- @property (strong, nonatomic) NSString *expertExistingInstagramUsername;
- @property (strong, nonatomic) NSString *expertExistingYoutubeUsername;
- @property (strong, nonatomic) NSString *expertCategory;
- @property (strong, nonatomic) NSString *expertSubcategory;
- @property (strong, nonatomic) NSString *editedExpertName;
- @property (strong, nonatomic) NSString *editedExpertUsername;
- @property (strong, nonatomic) NSString *editedExpertCityID;
- @property (strong, nonatomic) NSString *editedExpertCityName;
- @property (strong, nonatomic) NSString *editedExpertRegionID;
- @property (strong, nonatomic) NSString *editedExpertRegionName;
- @property (strong, nonatomic) NSString *editedExpertCountryID;
- @property (strong, nonatomic) NSString *editedExpertCountryName;
- @property (strong, nonatomic) NSString *editedExpertProfileDescription;
- @property (strong, nonatomic) NSString *editedFacebookUsername;
- @property (strong, nonatomic) NSString *editedTwitterUsername;
- @property (strong, nonatomic) NSString *editedInstagramUsername;
- @property (strong, nonatomic) NSString *editedYoutubeUsername;
- @property (strong, nonatomic) NSIndexPath *citySelectedIndexPath;
- @property (nonatomic) BOOL isDoneLoadData;
- @property (nonatomic) BOOL isLoading;
- @property (nonatomic) BOOL isLoadingCover;
- @property (nonatomic) BOOL isFBShimmeringCover;
- @property (nonatomic) NSInteger socialMediaCellTag;
- @property (nonatomic) BOOL isUsernameTaken;
- @property (nonatomic) BOOL isUsernameTooShort;
- - (void)backButtonDidTapped;
- - (void)editCoverButtonDidTapped;
- - (void)editProfilePictureButtonDidTapped;
- - (void)closeEditCoverButtonDidTapped;
- - (void)infoButtonDidTapped;
- - (void)saveButtonDidTapped;
- - (UIImage *)normalizedImage:(UIImage *)image;
- - (void)setIsLoading:(BOOL)isLoading;
- - (void)setIsLoadingCover:(BOOL)isLoadingCover;
- - (void)setIsFBShimmeringCover:(BOOL)isFBShimmeringCover;
- - (void)checkUsername:(NSString *)username;
- - (void)setIsPlaceholderHidden:(BOOL)isHidden;
- @end
- @implementation ExpertSettingProfileViewController
- #pragma mark - Lifecycle
- - (void)loadView {
- [super loadView];
- _expertSettingProfileView = [[ExpertSettingProfileView alloc] initWithFrame:[BaseView frameWithNavigationBar]];
- [self.view addSubview:self.expertSettingProfileView];
- }
- - (void)viewDidLoad {
- [super viewDidLoad];
- // Do any additional setup after loading the view.
- _isDoneLoadData = NO;
- _expertID = @"";
- self.navigationController.interactivePopGestureRecognizer.delegate = self;
- self.navigationController.interactivePopGestureRecognizer.enabled = YES;
- self.title = NSLocalizedString(@"Edit Profile", @"");
- if(IS_IPHONE_4_7_INCH_AND_ABOVE) {
- [self.navigationController.navigationBar setTitleTextAttributes:
- @{NSForegroundColorAttributeName:[Util getColor:@"444444"],
- NSFontAttributeName:[UIFont fontWithName:FONT_NAME_BOLD size:20.0f]}];
- }
- else {
- [self.navigationController.navigationBar setTitleTextAttributes:
- @{NSForegroundColorAttributeName:[Util getColor:@"444444"],
- NSFontAttributeName:[UIFont fontWithName:FONT_NAME_BOLD size:17.0f]}];
- }
- UIImage *buttonImage = [UIImage imageNamed:@"backOn"];
- UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0.0f, 0.0f, buttonImage.size.width, buttonImage.size.height)];
- [button setImage:buttonImage forState:UIControlStateNormal];
- [button addTarget:self action:@selector(backButtonDidTapped) forControlEvents:UIControlEventTouchUpInside];
- UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];
- [self.navigationItem setLeftBarButtonItem:barButtonItem];
- UIView *rightBarItemView = [[UIView alloc] initWithFrame: CGRectMake(0.0f, 0.0f, 50.0f, 44.0f)];
- _saveButton = [[UIButton alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 50.0f, 44.0f)];
- [self.saveButton setTitle:NSLocalizedString(@"Save", @"") forState:UIControlStateNormal];
- [self.saveButton setTitleEdgeInsets:UIEdgeInsetsMake(0.0f, 0.0f, 5.0f, 0.0f)];
- [self.saveButton.titleLabel setFont:[UIFont fontWithName:FONT_LATO_BOLD size:16.0f]];
- [self.saveButton setTitleColor:[Util getColor:@"2ECCAD"] forState:UIControlStateNormal];
- [self.saveButton addTarget:self action:@selector(saveButtonDidTapped) forControlEvents:UIControlEventTouchUpInside];
- self.saveButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight;
- self.saveButton.alpha = 0.0f;
- [rightBarItemView addSubview:self.saveButton];
- _activityIndicator = [[UIActivityIndicatorView alloc] init];
- self.activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray;
- self.activityIndicator.center = self.saveButton.center;
- [self.activityIndicator startAnimating];
- self.activityIndicator.alpha = 0.0f;
- [rightBarItemView addSubview:self.activityIndicator];
- UIBarButtonItem *rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:rightBarItemView];
- [self.navigationItem setRightBarButtonItem:rightBarButtonItem];
- //set text color as disabled
- self.expertSettingProfileView.emailTextField.textField.textColor = [[Util getColor:@"333333"] colorWithAlphaComponent:0.6f];
- self.expertSettingProfileView.phoneNumberTextField.textField.textColor = [[Util getColor:@"333333"] colorWithAlphaComponent:0.6f];
- //for edit cover
- [self.expertSettingProfileView.editCoverButton addTarget:self action:@selector(editCoverButtonDidTapped) forControlEvents:UIControlEventTouchUpInside];
- [self.expertSettingProfileView.cameraButton addTarget:self action:@selector(cameraButtonDidTapped) forControlEvents:UIControlEventTouchUpInside];
- [self.expertSettingProfileView.galleryButton addTarget:self action:@selector(galleryButtonDidTapped) forControlEvents:UIControlEventTouchUpInside];
- [self.expertSettingProfileView.instagramButton addTarget:self action:@selector(instagramButtonDidTapped) forControlEvents:UIControlEventTouchUpInside];
- //for cancel edit cover
- //[self.expertSettingProfileView.cancelEditCoverButton addTarget:self action:@selector(cancelEditCoverButtonDidTapped) forControlEvents:UIControlEventTouchUpInside];
- [self.expertSettingProfileView.closeEditCoverButton addTarget:self action:@selector(closeEditCoverButtonDidTapped) forControlEvents:UIControlEventTouchUpInside];
- //for edit profile picture
- [self.expertSettingProfileView.editProfilePictureButton addTarget:self action:@selector(editProfilePictureButtonDidTapped) forControlEvents:UIControlEventTouchDown];
- //for popupInfoExpertChangeNameViewController
- [self.expertSettingProfileView.iconInfoButton addTarget:self action:@selector(infoButtonDidTapped) forControlEvents:UIControlEventTouchUpInside];
- //register for delegate popUpInfoChangeNameViewController
- _popupInfoExpertChangeNameViewController = [[PopupInfoExpertChangeNameViewController alloc] init];
- self.popupInfoExpertChangeNameViewController.view.frame =CGRectMake(0.0f, 0.0f, CGRectGetWidth([UIScreen mainScreen].bounds), CGRectGetHeight([UIScreen mainScreen].bounds));
- self.popupInfoExpertChangeNameViewController.delegate = self;
- self.popupInfoExpertChangeNameViewController.view.alpha = 0.0f;
- self.popupInfoExpertChangeNameViewController.popupInfoExpertChangeNameView.backgroundView.alpha = 0.6f;
- [self.navigationController.view addSubview:self.popupInfoExpertChangeNameViewController.view];
- [self.navigationController.view bringSubviewToFront:self.popupInfoExpertChangeNameViewController.view];
- //for pick city
- [self.expertSettingProfileView.cityPicker.moseloPickerButton addTarget:self action:@selector(cityListButtonDidTapped) forControlEvents:UIControlEventTouchUpInside];
- //register UITextFieldDelegate
- self.expertSettingProfileView.nameTextField.delegate = self;
- self.expertSettingProfileView.usernameTextField.delegate = self;
- self.expertSettingProfileView.cityTextField.delegate = self;
- self.expertSettingProfileView.cityPicker.delegate = self; //PickerTextFieldDelegate
- self.expertSettingProfileView.textView.delegate = self; //UITextViewDelegate
- self.expertSettingProfileView.socialMediaFacebookTextField.delegate = self;
- self.expertSettingProfileView.socialMediaTwitterTextField.delegate = self;
- self.expertSettingProfileView.socialMediaInstagramTextField.delegate = self;
- self.expertSettingProfileView.socialMediaYoutubeTextField.delegate = self;
- self.expertSettingProfileView.scrollView.delegate = self;
- // AS TEMP
- _photoPreviewViewController = [[PhotoPreviewViewController alloc] init];
- if(self.imageCoverPreviewViewControllerType == ImageCoverPreviewViewControllerTypeImageURL) {
- [self.photoPreviewViewController setPhotoPreviewViewControllerType:PhotoPreviewViewControllerTypeImageURL];
- }
- else if(self.imageCoverPreviewViewControllerType == ImageCoverPreviewViewControllerTypeImageData) {
- [self.photoPreviewViewController setPhotoPreviewViewControllerType:PhotoPreviewViewControllerTypeImageData];
- }
- self.photoPreviewViewController.delegate = self;
- self.photoPreviewViewController.imageDataArray = self.dataArray;
- self.photoPreviewViewController.view.backgroundColor = [UIColor clearColor];
- self.photoPreviewViewController.view.frame = CGRectMake(0.0f, 0.0f, CGRectGetWidth([UIScreen mainScreen].bounds), CGRectGetHeight([UIScreen mainScreen].bounds ) - 64.0f - 48.0f);
- [self.imageCoverPreviewView addSubview:self.photoPreviewViewController.view];
- [self addChildViewController:self.photoPreviewViewController];
- [self.photoPreviewViewController didMoveToParentViewController:self];
- // END AS TEMP
- NSDictionary *activeUser = [[NSUserDefaults standardUserDefaults] secretObjectForKey:PREFS_ACTIVE_USER];
- //NSString *expertID = [activeUser valueForKeyPath:@"userID"];
- self.expertID = [activeUser valueForKeyPath:@"userID"];
- [self setIsFBShimmeringCover:YES];
- [DataManager callAPIGetExpertDetailProfileWithExpertID:self.expertID success:^(UserModel *expertDetailData) {
- [self setIsFBShimmeringCover:NO];
- AvatarURLModel *coverURL = expertDetailData.coverURL;
- NSString *coverSmall = coverURL.small;
- NSString *coverMedium = coverURL.medium;
- NSString *coverLarge = coverURL.large;
- AvatarURLModel *avatarURL = expertDetailData.avatarURL;
- NSString *avatarSmall = avatarURL.small;
- NSString *avatarMedium = avatarURL.medium;
- NSString *avatarLarge = avatarURL.large;
- self.expertExistingName = expertDetailData.name;
- self.expertExistingUsername = expertDetailData.username;
- self.expertExistingEmail = expertDetailData.email;
- self.expertExistingPhoneNumber = expertDetailData.phoneNumber;
- DomicileModel *domicile = expertDetailData.domicile;
- PlaceModel *city = domicile.city;
- PlaceModel *region = domicile.region;
- PlaceModel *country = domicile.country;
- NSString *cityID = city.placeID;
- NSString *cityName = city.placeName;
- NSString *regionID = region.placeID;
- NSString *regionName = region.placeName;
- NSString *countryID = country.placeID;
- NSString *countryName = country.placeName;
- //exisiting cityID & cityName
- self.existingSelectedCityID = cityID;
- self.existingSelectedCityName = cityName;
- self.existingSelectedRegionID = regionID;
- self.existingSelectedRegionName = regionName;
- self.existingSelectedCountryID = countryID;
- self.existingSelectedCountryName = countryName;
- self.selectedCityID = cityID;
- NSString *expertProfileDescription = expertDetailData.profileDescription;
- self.expertExistingDescription = expertDetailData.profileDescription;
- NSArray *categoriesArray = expertDetailData.categoryArray;
- _appendedCategoryString = nil;
- _appendedCategoryString = [NSMutableString string];
- for(NSInteger count = 0; count < [categoriesArray count]; count++) {
- CategoryModel *category = [categoriesArray objectAtIndex:count];
- NSString *categoryName = category.categoryName;
- [self.appendedCategoryString appendString:categoryName];
- if(count != [categoriesArray count] - 1) {
- [self.appendedCategoryString appendString:@", "];
- }
- }
- NSArray *subcategoriesArray = expertDetailData.subcategories;
- _appendedSubcategoryString = nil;
- _appendedSubcategoryString = [NSMutableString string];
- for(NSInteger count = 0; count < [subcategoriesArray count]; count++) {
- SubcategoryModel *subcategory = [subcategoriesArray objectAtIndex:count];
- NSString *subcategoryName = subcategory.subcategoryName;
- [self.appendedSubcategoryString appendString:subcategoryName];
- if(count != [subcategoriesArray count] - 1) {
- [self.appendedSubcategoryString appendString:@", "];
- }
- }
- SocialMediaModel *socialMedia = expertDetailData.socialMedia;
- self.facebookUsername = socialMedia.facebook;
- self.twitterUsername = socialMedia.twitter;
- self.instagramUsername = socialMedia.instagram;
- self.youtubeUsername = socialMedia.youtube;
- self.expertExistingFacebookUsername = self.facebookUsername;
- self.expertExistingTwitterUsername = self.twitterUsername;
- self.expertExistingInstagramUsername = self.instagramUsername;
- self.expertExistingYoutubeUsername = self.youtubeUsername;
- self.isDoneLoadData = YES;
- //code set default cover, if there's no coverURL
- [self.expertSettingProfileView setExpertProfileCoverImageWithData:expertDetailData];
- self.profileCoverURLString = coverLarge;
- [self.expertSettingProfileView.profilePictureImageView setImageWithURLString:avatarLarge];
- self.profilePictureURLString = avatarLarge;
- self.expertSettingProfileView.nameTextField.textField.text = self.expertExistingName;
- [self.expertSettingProfileView.nameTextField isTextFieldContainData:YES];
- self.expertSettingProfileView.usernameTextField.textField.text = self.expertExistingUsername;
- [self.expertSettingProfileView.usernameTextField isTextFieldContainData:YES];
- self.expertSettingProfileView.emailTextField.textField.text = self.expertExistingEmail;
- [self.expertSettingProfileView.emailTextField isTextFieldContainData:YES];
- NSString *formattedPhoneNumber = [NSString stringWithFormat:@"+%@", self.expertExistingPhoneNumber];
- self.expertSettingProfileView.phoneNumberTextField.textField.text = formattedPhoneNumber;
- [self.expertSettingProfileView.phoneNumberTextField isTextFieldContainData:YES];
- self.expertSettingProfileView.expertProfileCategoryTextField.textField.text = self.appendedCategoryString;
- [self.expertSettingProfileView.expertProfileCategoryTextField isTextFieldContainData:YES];
- self.expertSettingProfileView.expertProfileSubcategoryTextField.textField.text = self.appendedSubcategoryString;
- [self.expertSettingProfileView.expertProfileSubcategoryTextField isTextFieldContainData:YES];
- if([expertDetailData.domicile.city.placeName isEqualToString:@""] || expertDetailData.domicile.city.placeName == nil) {
- [self.expertSettingProfileView.cityPicker isTextFieldContainData:NO];
- }
- else{
- [self.expertSettingProfileView.cityPicker setInformationDataWithString:expertDetailData.domicile.city.placeName];
- [self.expertSettingProfileView.cityPicker isTextFieldContainData:YES];
- }
- //PROFILE DESCRIPTION
- if([expertDetailData.profileDescription isEqualToString:@""]) {
- self.expertSettingProfileView.descriptionTitleLabel.textColor = [Util getColor:@"CCCCCC"];
- [self setIsPlaceholderHidden:NO];
- }
- else {
- self.expertSettingProfileView.textView.text = expertProfileDescription;
- [self setIsPlaceholderHidden:YES];
- }
- //SOCIAL MEDIA
- if(![expertDetailData.socialMedia.facebook isEqualToString:@""] || expertDetailData.socialMedia.facebook == nil)
- {
- self.expertSettingProfileView.socialMediaFacebookTextField.textField.text = self.facebookUsername;
- [self.expertSettingProfileView.socialMediaFacebookTextField isTextFieldContainData:YES];
- }
- else {
- self.expertSettingProfileView.socialMediaFacebookTextField.textField.text = @"";
- [self.expertSettingProfileView.socialMediaFacebookTextField isTextFieldContainData:NO];
- }
- if(![expertDetailData.socialMedia.twitter isEqualToString:@""] || expertDetailData.socialMedia.twitter == nil)
- {
- self.expertSettingProfileView.socialMediaTwitterTextField.textField.text = self.twitterUsername;
- [self.expertSettingProfileView.socialMediaTwitterTextField isTextFieldContainData:YES];
- }
- else {
- self.expertSettingProfileView.socialMediaTwitterTextField.textField.text = @"";
- [self.expertSettingProfileView.socialMediaTwitterTextField isTextFieldContainData:NO];
- }
- if(![expertDetailData.socialMedia.instagram isEqualToString:@""] || expertDetailData.socialMedia.instagram == nil)
- {
- self.expertSettingProfileView.socialMediaInstagramTextField.textField.text = self.instagramUsername;
- [self.expertSettingProfileView.socialMediaInstagramTextField isTextFieldContainData:YES];
- }
- else {
- self.expertSettingProfileView.socialMediaInstagramTextField.textField.text = @"";
- [self.expertSettingProfileView.socialMediaInstagramTextField isTextFieldContainData:NO];
- }
- if(![expertDetailData.socialMedia.youtube isEqualToString:@""] || expertDetailData.socialMedia.youtube == nil)
- {
- self.expertSettingProfileView.socialMediaYoutubeTextField.textField.text = self.youtubeUsername;
- [self.expertSettingProfileView.socialMediaYoutubeTextField isTextFieldContainData:YES];
- }
- else {
- self.expertSettingProfileView.socialMediaYoutubeTextField.textField.text = @"";
- [self.expertSettingProfileView.socialMediaYoutubeTextField isTextFieldContainData:NO];
- }
- } failure:^(NSError *error) {
- [self setIsFBShimmeringCover:NO];
- if(error.code != 999) {
- UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Failed", @"") message:error.domain preferredStyle:UIAlertControllerStyleAlert];
- UIAlertAction *okAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
- }];
- [alertController addAction:okAction];
- [self presentViewController:alertController animated:YES completion:nil];
- }
- }];
- _isUsernameTaken = NO;
- _isUsernameTooShort = NO;
- //initiate empty string
- _selectedCityID = @"";
- _selectedCityName = @"";
- _selectedRegionID = @"";
- _selectedRegionName = @"";
- _selectedCountryID = @"";
- _selectedCountryName = @"";
- _citySelectedIndexPath = [NSIndexPath new];
- }
- - (void)viewWillAppear:(BOOL)animated {
- [super viewWillAppear:animated];
- NSDictionary *activeUser = [[NSUserDefaults standardUserDefaults] secretObjectForKey:PREFS_ACTIVE_USER];
- NSString *userRole = [activeUser valueForKeyPath:@"userRole.roleName"];
- if([userRole isEqualToString:@"expert"]) {
- //if Expert Disabled edit Name
- self.expertSettingProfileView.nameTextField.textField.userInteractionEnabled = NO;
- self.expertSettingProfileView.nameTextField.textField.textColor = [[Util getColor:@"333333"] colorWithAlphaComponent:0.6f];
- //if Expert Disabled edit Username
- self.expertSettingProfileView.usernameTextField.textField.userInteractionEnabled = NO;
- self.expertSettingProfileView.usernameTextField.textField.textColor = [[Util getColor:@"333333"] colorWithAlphaComponent:0.6f];
- }
- }
- - (void)didReceiveMemoryWarning {
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
- }
- #pragma mark - Delegate
- #pragma mark UIScrollView
- - (void)scrollViewDidScroll:(UIScrollView *)scrollView{
- }
- - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
- [UIView animateWithDuration:0.2f animations:^{
- self.expertSettingProfileView.logoFacebookImageView.image = [UIImage imageNamed:@"facebookIconOff"];
- self.expertSettingProfileView.logoTwitterImageView.image = [UIImage imageNamed:@"twitterIconOff"];
- self.expertSettingProfileView.logoInstagramImageView.image = [UIImage imageNamed:@"instagramIconOff"];
- self.expertSettingProfileView.logoYoutubeImageView.image = [UIImage imageNamed:@"Yt"];
- }];
- [self.expertSettingProfileView.nameTextField.textField resignFirstResponder];
- [self.expertSettingProfileView.usernameTextField.textField resignFirstResponder];
- [self.expertSettingProfileView.cityTextField.textField resignFirstResponder];
- [self.expertSettingProfileView.textView resignFirstResponder];
- [self.expertSettingProfileView.socialMediaFacebookTextField.textField resignFirstResponder];
- [self.expertSettingProfileView.socialMediaTwitterTextField.textField resignFirstResponder];
- [self.expertSettingProfileView.socialMediaInstagramTextField.textField resignFirstResponder];
- [self.expertSettingProfileView.socialMediaYoutubeTextField.textField resignFirstResponder];
- }
- #pragma mark MoseloTextField
- - (void)moseloTextFieldDelegateTextFieldShouldReturnWithTextField:(UITextField *)textField {
- [UIView animateWithDuration:0.2f animations:^{
- self.expertSettingProfileView.logoFacebookImageView.image = [UIImage imageNamed:@"facebookIconOff"];
- self.expertSettingProfileView.logoTwitterImageView.image = [UIImage imageNamed:@"twitterIconOff"];
- self.expertSettingProfileView.logoInstagramImageView.image = [UIImage imageNamed:@"instagramIconOff"];
- self.expertSettingProfileView.logoYoutubeImageView.image = [UIImage imageNamed:@"Yt"];
- }];
- if(textField == self.expertSettingProfileView.nameTextField.textField) {
- [self.expertSettingProfileView.usernameTextField.textField becomeFirstResponder];
- }
- else if(textField == self.expertSettingProfileView.usernameTextField.textField) {
- [self.expertSettingProfileView.cityTextField.textField becomeFirstResponder];
- }
- else if(textField == self.expertSettingProfileView.cityTextField.textField) {
- //self.expertSettingProfileView.textView.returnKeyType = UIReturnKeyDone;
- [self.expertSettingProfileView.textView becomeFirstResponder];
- }
- else if(textField == self.expertSettingProfileView.socialMediaFacebookTextField.textField) {
- [self.expertSettingProfileView.socialMediaTwitterTextField.textField becomeFirstResponder];
- }
- else if(textField == self.expertSettingProfileView.socialMediaTwitterTextField.textField) {
- [self.expertSettingProfileView.socialMediaInstagramTextField.textField becomeFirstResponder];
- }
- else if(textField == self.expertSettingProfileView.socialMediaInstagramTextField.textField) {
- [self.expertSettingProfileView.socialMediaYoutubeTextField.textField becomeFirstResponder];
- }
- else if(textField == self.expertSettingProfileView.socialMediaYoutubeTextField.textField) {
- self.expertSettingProfileView.socialMediaYoutubeTextField.textField.returnKeyType = UIReturnKeyDone;
- [self.expertSettingProfileView.socialMediaYoutubeTextField.textField resignFirstResponder];
- }
- }
- - (BOOL)moseloTextFieldDelegateTextFieldShouldBeginEditingWithTextField:(UITextField *)textField {
- [UIView animateWithDuration:0.2f animations:^{
- self.expertSettingProfileView.logoFacebookImageView.image = [UIImage imageNamed:@"facebookIconOff"];
- self.expertSettingProfileView.logoTwitterImageView.image = [UIImage imageNamed:@"twitterIconOff"];
- self.expertSettingProfileView.logoInstagramImageView.image = [UIImage imageNamed:@"instagramIconOff"];
- self.expertSettingProfileView.logoYoutubeImageView.image = [UIImage imageNamed:@"Yt"];
- if(textField == self.expertSettingProfileView.socialMediaFacebookTextField.textField) {
- self.expertSettingProfileView.logoFacebookImageView.image = [UIImage imageNamed:@"facebookIcon"];
- }
- else if(textField == self.expertSettingProfileView.socialMediaTwitterTextField.textField) {
- self.expertSettingProfileView.logoTwitterImageView.image = [UIImage imageNamed:@"twitterIcon"];
- }
- else if(textField == self.expertSettingProfileView.socialMediaInstagramTextField.textField) {
- self.expertSettingProfileView.logoInstagramImageView.image = [UIImage imageNamed:@"instagramIcon"];
- }
- else if(textField == self.expertSettingProfileView.socialMediaYoutubeTextField.textField) {
- self.expertSettingProfileView.logoYoutubeImageView.image = [UIImage imageNamed:@"Yt-active"];
- }
- }];
- return YES;
- }
- - (void)moseloTextFieldDelegateTextFieldDidEndEditing:(UITextField *)textField {
- }
- #pragma mark MoseloCheckerTextField
- - (void)moseloCheckerTextFieldDelegateTextFieldShouldReturnWithTextField:(UITextField *)textField {
- if(textField == self.expertSettingProfileView.usernameTextField.textField) {
- [self.expertSettingProfileView.cityTextField.textField becomeFirstResponder];
- }
- else {
- [textField resignFirstResponder];
- }
- }
- - (void)moseloCheckerTextFieldDelegateTextFieldShouldBeginEditingWithTextField:(UITextField *)textField {
- }
- - (void)moseloCheckerTextFieldDelegateTextFieldShouldChangeCharactersInRange:(NSRange)range
- replacementString:(NSString *)string
- textField:(UITextField *)textField {
- NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
- if(textField == self.expertSettingProfileView.usernameTextField.textField) {
- if(newString.length < 5 ) {
- [self.expertSettingProfileView.usernameTextField setErrorMessageInformationWithString:NSLocalizedString(@"Too Short", @"")];
- [self.expertSettingProfileView.usernameTextField setShowErrorMessage:YES];
- _isUsernameTooShort = YES;
- _isUsernameTaken = NO;
- return;
- }
- else {
- [self.expertSettingProfileView.usernameTextField setErrorMessageInformationWithString:@""];
- [self.expertSettingProfileView.usernameTextField setShowErrorMessage:NO];
- if(![newString isEqualToString:self.expertExistingUsername]) {
- [self performSelector:@selector(checkUsername:) withObject:newString afterDelay:0.1f];
- }
- }
- _isUsernameTooShort = NO;
- _isUsernameTaken = NO;
- }
- }
- #pragma mark UITextView
- - (BOOL)textViewShouldBeginEditing:(UITextView *)textView {
- [self.expertSettingProfileView.scrollView setContentOffset:CGPointMake(0.0f, textView.frame.origin.y - 50.0f - 64.0f) animated:YES];
- [UIView animateWithDuration:0.2f animations:^{
- self.expertSettingProfileView.descriptionTitleLabel.textColor = [Util getColor:@"2ECCAD"];
- [self setIsPlaceholderHidden:YES];
- [UIView animateWithDuration:0.2f animations:^{
- self.expertSettingProfileView.logoFacebookImageView.image = [UIImage imageNamed:@"facebookIconOff"];
- self.expertSettingProfileView.logoTwitterImageView.image = [UIImage imageNamed:@"twitterIconOff"];
- self.expertSettingProfileView.logoInstagramImageView.image = [UIImage imageNamed:@"instagramIconOff"];
- self.expertSettingProfileView.logoYoutubeImageView.image = [UIImage imageNamed:@"Yt"];
- }];
- }];
- return YES;
- }
- - (void)textViewDidEndEditing:(UITextView *)textView {
- [UIView animateWithDuration:0.2f animations:^{
- if(![self.expertSettingProfileView.textView.text isEqualToString:@""]) {
- [self setIsPlaceholderHidden:YES];
- }
- else {
- [self setIsPlaceholderHidden:NO];
- }
- self.expertSettingProfileView.descriptionTitleLabel.textColor = [Util getColor:@"CCCCCC"];
- }];
- }
- - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range
- replacementText:(NSString *)text {
- NSString *newText = [textView.text stringByReplacingCharactersInRange:range withString:text];
- if([newText isEqualToString:@""]) {
- [self setIsPlaceholderHidden:NO];
- }
- else {
- [self setIsPlaceholderHidden:YES];
- }
- if ([text isEqualToString:@"\n"]) {
- //[textView resignFirstResponder];
- [self.expertSettingProfileView.socialMediaFacebookTextField.textField becomeFirstResponder];
- // Return FALSE so that the final '\n' character doesn't get added
- return NO;
- }
- // For any other character return TRUE so that the text gets added to the view
- return YES;
- }
- #pragma mark MoseloPickerTextField
- - (void)moseloPickerTextFieldDelegateButtonDidTapped:(UIButton *)button {
- }
- #pragma mark SetProfilePictureViewControllerDelegate
- - (void)isDoneSetProfilePictureWithUserData:(UserModel *)userData {
- NSString *profilePictString = userData.avatarURL.large;
- self.profilePictureURLString = profilePictString;
- [self.expertSettingProfileView.profilePictureImageView setImageWithURLString:profilePictString];
- }
- #pragma mark Choose City
- -(void)chooseCityViewControllerDelegateDidSelectDataWithData:(DomicileModel *)domicile indexPath:(NSIndexPath *)indexPath{
- NSLog(@"%@",domicile.city);
- self.selectedCityID = domicile.city.placeID;
- self.selectedCityName = domicile.city.placeName;
- self.selectedRegionID = domicile.region.placeID;
- self.selectedRegionName = domicile.region.placeName;
- self.selectedCountryID = domicile.country.placeID;
- self.selectedCountryName = domicile.country.placeName;
- self.selectedCityID = [Util nullToEmptyString:self.selectedCityID];
- self.selectedCityName = [Util nullToEmptyString:self.selectedCityName];
- self.selectedRegionID = [Util nullToEmptyString:self.selectedRegionID];
- self.selectedRegionName = [Util nullToEmptyString:self.selectedRegionName];
- self.selectedCountryID = [Util nullToEmptyString:self.selectedCountryID];
- self.selectedCountryName = [Util nullToEmptyString:self.selectedCountryName];
- [self.expertSettingProfileView.cityPicker setInformationDataWithString:self.selectedCityName];
- [self.expertSettingProfileView.cityPicker isTextFieldContainData:YES];
- self.citySelectedIndexPath = indexPath;
- [self dismissViewControllerAnimated:YES completion:nil];
- }
- #pragma mark UIImagePickerController
- - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
- //Output image
- UIImage *chosenImage = info[UIImagePickerControllerOriginalImage];
- chosenImage = [self normalizedImage:chosenImage];
- [picker dismissViewControllerAnimated:NO completion:nil];
- ImageCoverPreviewViewController *imageCoverPreviewViewController = [[ImageCoverPreviewViewController alloc] init];
- imageCoverPreviewViewController.delegate = self;
- [imageCoverPreviewViewController setImageCoverPreviewViewControllerType:ImageCoverPreviewViewControllerTypeImageData];
- imageCoverPreviewViewController.dataArray = @[chosenImage];
- [self.navigationController pushViewController:imageCoverPreviewViewController animated:YES];
- }
- #pragma mark - ImageCoverPreviewViewController
- - (void)ImageCoverPreviewViewControllerDidTappedUploadButtonWithDataArray:(NSArray *)dataArray {
- if ([self.delegate respondsToSelector:@selector(ImageCoverPreviewViewControllerDidTappedUploadButtonWithDataArray:)]) {
- [self.delegate ImageCoverPreviewViewControllerDidTappedUploadButtonWithDataArray:self.dataArray];
- }
- }
- - (void)ImageCoverPreviewViewControllerDidTappedBackButton {
- }
- #pragma mark ImageSelectCoverViewController
- - (void)imageSelectCoverViewControllerDidTappedContinueButtonWithDataArray:(NSArray *)dataArray firstLoginInstagram:(BOOL)isFirstLogin {
- id firstObject = [dataArray firstObject];
- NSLog(@"This is ExpertSettingProfileViewController");
- NSString *imageURLString = [NSString string];
- UIImage *image;
- BOOL isUploadImageURL;
- if([firstObject isKindOfClass:[UIImage class]]) {
- image = [dataArray firstObject];
- self.expertSettingProfileView.coverImage.image = image;
- }
- else {
- AvatarURLModel *avatarURL = [dataArray firstObject];
- imageURLString = avatarURL.large;
- [self.expertSettingProfileView.coverImage setImageWithURLString:imageURLString];
- }
- if(imageURLString != nil && image == nil) {
- //instagram
- isUploadImageURL = YES;
- }
- if(imageURLString == nil && image != nil) {
- //camera or gallery
- isUploadImageURL = NO;
- }
- NSLog(@"------------------------------ BEFORE DISMISS");
- //back to ExpertSettingProfileViewController
- [self dismissViewControllerAnimated:YES completion:nil];
- //SET loadingCover YES
- [self setIsLoadingCover:YES];
- NSLog(@"------------------------------ BEFORE CALL API");
- [DataManager callAPIEditExpertCoverWithImageURL:imageURLString imageData:image isUploadURLData:isUploadImageURL success:^(AvatarURLModel *imageUrl) {
- //set loadingCover NO
- [self setIsLoadingCover:NO];
- } failure:^(NSError *error) {
- if(error.code != 999) {
- UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Failed", @"") message:error.domain preferredStyle:UIAlertControllerStyleAlert];
- UIAlertAction *okAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
- }];
- [alertController addAction:okAction];
- [self presentViewController:alertController animated:YES completion:nil];
- }
- //set loadingCover NO
- [self setIsLoadingCover:NO];
- }];
- }
- #pragma mark WebViewViewController
- - (void)webViewViewControllerDidFinishRetrieveInstagramToken {
- [self dismissViewControllerAnimated:NO completion:nil];
- ImageSelectCoverViewController *imageSelectCoverViewController = [[ImageSelectCoverViewController alloc] init];
- imageSelectCoverViewController.delegate = self;
- imageSelectCoverViewController.isFirstLoginInstagram = YES;
- [imageSelectCoverViewController setImageSelectCoverViewControllerType:ImageSelectViewCoverControllerTypeInstagram];
- [imageSelectCoverViewController setImageSelectCoverViewControllerNavigateType:ImageSelectCoverViewControllerNavigateTypePush];
- [self.navigationController pushViewController:imageSelectCoverViewController animated:YES];
- }
- //- (void)imageSelectCoverViewControllerDidTappedBackButton {
- //
- //}
- #pragma mark - Custom Method
- - (void)backButtonDidTapped {
- if(!self.isLoadingCover)
- {
- [self.navigationController popViewControllerAnimated:YES];
- }
- }
- - (void)editCoverButtonDidTapped {
- [UIView animateWithDuration:0.3f animations:^{
- self.expertSettingProfileView.editCoverButton.alpha = 0.0f;
- self.expertSettingProfileView.editCoverIconImage.alpha = 0.0f;
- self.expertSettingProfileView.coverView.alpha = 0.5f;
- self.expertSettingProfileView.closeEditCoverButton.alpha = 1.0f;
- self.expertSettingProfileView.closeEditCoverIconImage .alpha = 1.0f;
- self.expertSettingProfileView.optionsView.alpha = 1.0f;
- }];
- //1. Camera
- [UIView animateWithDuration:0.1f animations:^{
- [UIView animateWithDuration:0.1f animations:^{
- self.expertSettingProfileView.cameraView.alpha = 1.0f;
- self.expertSettingProfileView.cameraButton.alpha = 1.0f;
- } completion:nil];
- } completion:^(BOOL finished) {
- //2.left separator
- [UIView animateWithDuration:0.1f animations:^{
- self.expertSettingProfileView.leftSeparatorView.alpha = 0.35f;
- } completion:^(BOOL finished) {
- //3. Gallery
- [UIView animateWithDuration:0.1f animations:^{
- [UIView animateWithDuration:0.1f animations:^{
- self.expertSettingProfileView.galleryView.alpha = 1.0f;
- self.expertSettingProfileView.galleryButton.alpha = 1.0f;
- } completion:nil];
- } completion:^(BOOL finished) {
- //4.right separator
- [UIView animateWithDuration:0.1f animations:^{
- self.expertSettingProfileView.rightSeparatorView.alpha = 0.35f;
- } completion:^(BOOL finished) {
- //5.Instagram
- [UIView animateWithDuration:0.1f animations:^{
- [UIView animateWithDuration:0.1f animations:^{
- self.expertSettingProfileView.instagramView.alpha = 1.0f;
- self.expertSettingProfileView.instagramButton.alpha = 1.0f;
- } completion:nil];
- } completion:nil];
- }];
- }];
- }];
- }];
- }
- - (void)cameraButtonDidTapped {
- UIImagePickerController *picker = [[UIImagePickerController alloc] init];
- picker.sourceType = UIImagePickerControllerSourceTypeCamera;
- picker.delegate = self;
- picker.allowsEditing = NO;
- [self presentViewController:picker animated:YES completion:nil];
- }
- - (void)galleryButtonDidTapped {
- ImageSelectCoverViewController *imageSelectCoverViewController = [[ImageSelectCoverViewController alloc] init];
- imageSelectCoverViewController.delegate = self;
- imageSelectCoverViewController.isFirstLoginInstagram = NO;
- [imageSelectCoverViewController setImageSelectCoverViewControllerType:ImageSelectViewCoverControllerTypeCoverGallery];
- [imageSelectCoverViewController setImageSelectCoverViewControllerNavigateType:ImageSelectCoverViewControllerNavigateTypePresent];
- CustomNavigationController *imageSelectCoverNavigationController = [[CustomNavigationController alloc] initWithRootViewController:imageSelectCoverViewController];
- [self presentViewController:imageSelectCoverNavigationController animated:YES completion:nil];
- }
- - (void)instagramButtonDidTapped {
- NSString *accessToken = [[NSUserDefaults standardUserDefaults] secretObjectForKey:PREFS_INSTAGRAM_ACCESS_TOKEN];
- if(accessToken == nil || [accessToken isEqualToString:@""]) {
- WebViewViewController *webViewViewController = [[WebViewViewController alloc] init];
- webViewViewController.delegate = self;
- [webViewViewController setWebViewViewControllerType:WebViewViewControllerTypeLoginInstagram];
- [webViewViewController setWebViewViewControllerHeightType:WebViewViewControllerTypeWithNavigation];
- CustomNavigationController *webViewNavigationController = [[CustomNavigationController alloc] initWithRootViewController:webViewViewController];
- [self presentViewController:webViewNavigationController animated:YES completion:nil];
- }
- else {
- ImageSelectCoverViewController *imageSelectCoverViewController = [[ImageSelectCoverViewController alloc] init];
- imageSelectCoverViewController.delegate = self;
- imageSelectCoverViewController.isFirstLoginInstagram = NO;
- [imageSelectCoverViewController setImageSelectCoverViewControllerType:ImageSelectViewCoverControllerTypeInstagram];
- [imageSelectCoverViewController setImageSelectCoverViewControllerNavigateType:ImageSelectCoverViewControllerNavigateTypePresent];
- CustomNavigationController *imageSelectCoverNavigationController = [[CustomNavigationController alloc] initWithRootViewController:imageSelectCoverViewController];
- [self presentViewController:imageSelectCoverNavigationController animated:YES completion:nil];
- }
- }
- - (void)closeEditCoverButtonDidTapped {
- NSLog(@"CLOSE edit cover button pressed");
- [UIView animateWithDuration:0.2f animations:^{
- self.expertSettingProfileView.closeEditCoverButton.alpha = 0.0f;
- self.expertSettingProfileView.closeEditCoverIconImage .alpha = 0.0f;
- }];
- //5.Instagram
- [UIView animateWithDuration:0.1f animations:^{
- [UIView animateWithDuration:0.1f animations:^{
- self.expertSettingProfileView.instagramView.alpha = 0.0f;
- self.expertSettingProfileView.instagramButton.alpha = 0.0f;
- } completion:nil];
- } completion:^(BOOL finished) {
- //4.right separator
- [UIView animateWithDuration:0.1f animations:^{
- self.expertSettingProfileView.rightSeparatorView.alpha = 0.0f;
- } completion:^(BOOL finished) {
- //3. Gallery
- [UIView animateWithDuration:0.1f animations:^{
- [UIView animateWithDuration:0.1f animations:^{
- self.expertSettingProfileView.galleryView.alpha = 0.0f;
- self.expertSettingProfileView.galleryButton.alpha = 0.0f;
- } completion:nil];
- } completion:^(BOOL finished) {
- //2.left separator
- [UIView animateWithDuration:0.1f animations:^{
- self.expertSettingProfileView.leftSeparatorView.alpha = 0.0f;
- } completion:^(BOOL finished) {
- //1. Camera
- [UIView animateWithDuration:0.1f animations:^{
- [UIView animateWithDuration:0.1f animations:^{
- self.expertSettingProfileView.cameraView.alpha = 0.0f;
- self.expertSettingProfileView.cameraButton.alpha = 0.0f;
- } completion:nil];
- } completion:^(BOOL finished) {
- [UIView animateWithDuration:0.3f animations:^{
- self.expertSettingProfileView.optionsView.alpha = 0.0f;
- self.expertSettingProfileView.cancelEditCoverButton.alpha = 0.0f;
- self.expertSettingProfileView.coverView.alpha = 0.0f;
- self.expertSettingProfileView.editCoverIconImage.alpha = 1.0f;
- self.expertSettingProfileView.editCoverButton.alpha = 1.0f;
- }];
- }];
- }];
- }];
- }];
- }];
- }
- - (void)cancelEditCoverButtonDidTapped {
- NSLog(@"edit cover button pressed");
- //5.Instagram
- [UIView animateWithDuration:0.1f animations:^{
- [UIView animateWithDuration:0.1f animations:^{
- self.expertSettingProfileView.instagramView.alpha = 0.0f;
- self.expertSettingProfileView.instagramButton.alpha = 0.0f;
- } completion:nil];
- } completion:^(BOOL finished) {
- //4.right separator
- [UIView animateWithDuration:0.1f animations:^{
- self.expertSettingProfileView.rightSeparatorView.alpha = 0.0f;
- } completion:^(BOOL finished) {
- //3. Gallery
- [UIView animateWithDuration:0.1f animations:^{
- [UIView animateWithDuration:0.1f animations:^{
- self.expertSettingProfileView.galleryView.alpha = 0.0f;
- self.expertSettingProfileView.galleryButton.alpha = 0.0f;
- } completion:nil];
- } completion:^(BOOL finished) {
- //2.left separator
- [UIView animateWithDuration:0.1f animations:^{
- self.expertSettingProfileView.leftSeparatorView.alpha = 0.0f;
- } completion:^(BOOL finished) {
- //1. Camera
- [UIView animateWithDuration:0.1f animations:^{
- [UIView animateWithDuration:0.1f animations:^{
- self.expertSettingProfileView.cameraView.alpha = 0.0f;
- self.expertSettingProfileView.cameraButton.alpha = 0.0f;
- } completion:nil];
- } completion:^(BOOL finished) {
- [UIView animateWithDuration:0.3f animations:^{
- self.expertSettingProfileView.optionsView.alpha = 0.0f;
- self.expertSettingProfileView.cancelEditCoverButton.alpha = 0.0f;
- self.expertSettingProfileView.coverView.alpha = 0.0f;
- self.expertSettingProfileView.editCoverIconImage.alpha = 1.0f;
- self.expertSettingProfileView.editCoverButton.alpha = 1.0f;
- }];
- }];
- }];
- }];
- }];
- }];
- }
- - (void)editProfilePictureButtonDidTapped {
- SetProfilePictureViewController *setProfilePictureViewController = [[SetProfilePictureViewController alloc] init];
- setProfilePictureViewController.delegate = self;
- setProfilePictureViewController.previousPictureImageString = self.profilePictureURLString;
- [setProfilePictureViewController setSetProfilePictureViewControllerType:SetProfilePictureViewControllerTypeEdit];
- [self presentViewController:setProfilePictureViewController animated:YES completion:nil];
- }
- - (void)infoButtonDidTapped {
- NSLog(@"infoButtonDidTapped Pressed");
- [UIView animateWithDuration:0.2f animations:^{
- self.popupInfoExpertChangeNameViewController.view.alpha = 1.0f;
- }];
- //AS TEMP DEFAULT ALERT
- // UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Changing Your Name", @"") message:NSLocalizedString(@"Moselo requires experts to send\na request to change profile name", @"") preferredStyle:UIAlertControllerStyleAlert];
- //
- // UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
- // NSLog(@"FALSE");
- // }];
- //
- // UIAlertAction *okAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Contact Us", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
- // NSLog(@"TRUE");
- //
- // HelpViewController *helpViewController = [[HelpViewController alloc] init];
- // [self.navigationController pushViewController:helpViewController animated:YES];
- //
- // }];
- //
- // [alertController addAction:cancelAction];
- // [alertController addAction:okAction];
- //
- // [self presentViewController:alertController animated:YES completion:nil];
- //END AS TEMP
- }
- - (void)cityListButtonDidTapped {
- NSLog(@"City List Picker Pressed");
- ChooseCityViewController *chooseCityViewController = [[ChooseCityViewController alloc] init];
- chooseCityViewController.selectedCityID = self.selectedCityID;
- chooseCityViewController.delegate = self;
- CustomNavigationController *chooseCityNavigationController = [[CustomNavigationController alloc] initWithRootViewController:chooseCityViewController];
- [self presentViewController:chooseCityNavigationController animated:YES completion:nil];
- }
- - (void)saveButtonDidTapped {
- [self setIsLoading:YES];
- if([self.expertSettingProfileView.nameTextField.textField.text isEqualToString:@""]) {
- UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Failed", @"") message:NSLocalizedString(@"Please fill your name...", @"") preferredStyle:UIAlertControllerStyleAlert];
- UIAlertAction *okAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
- }];
- [alertController addAction:okAction];
- [self presentViewController:alertController animated:YES completion:nil];
- return;
- }
- if([self.expertSettingProfileView.usernameTextField.textField.text isEqualToString:@""]) {
- UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Failed", @"") message:NSLocalizedString(@"Please fill your username...", @"") preferredStyle:UIAlertControllerStyleAlert];
- UIAlertAction *okAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
- }];
- [alertController addAction:okAction];
- [self presentViewController:alertController animated:YES completion:nil];
- return;
- }
- if(self.isUsernameTaken) {
- UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Failed", @"") message:NSLocalizedString(@"Username already exist, please select another username", @"") preferredStyle:UIAlertControllerStyleAlert];
- UIAlertAction *okAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
- }];
- [alertController addAction:okAction];
- [self presentViewController:alertController animated:YES completion:nil];
- return;
- }
- if(self.isUsernameTooShort) {
- UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Failed", @"") message:NSLocalizedString(@"Username should contain more than 5 characters...", @"") preferredStyle:UIAlertControllerStyleAlert];
- UIAlertAction *okAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
- }];
- [alertController addAction:okAction];
- [self presentViewController:alertController animated:YES completion:nil];
- return;
- }
- UserModel *editedExpertData = [UserModel new];
- self.editedExpertName = self.expertSettingProfileView.nameTextField.textField.text;
- self.editedExpertUsername = self.expertSettingProfileView.usernameTextField.textField.text;
- self.editedExpertCityID = self.selectedCityID;
- self.editedExpertCityName = self.selectedCityName;
- self.editedExpertRegionID = self.selectedRegionID;
- self.editedExpertRegionName = self.selectedRegionName;
- self.editedExpertCountryID = self.selectedCountryID;
- self.editedExpertCountryName = self.selectedCountryName;
- self.editedExpertProfileDescription = self.expertSettingProfileView.textView.text;
- self.editedFacebookUsername = self.expertSettingProfileView.socialMediaFacebookTextField.textField.text;
- self.editedTwitterUsername = self.expertSettingProfileView.socialMediaTwitterTextField.textField.text;
- self.editedInstagramUsername = self.expertSettingProfileView.socialMediaInstagramTextField.textField.text;
- self.editedYoutubeUsername = self.expertSettingProfileView.socialMediaYoutubeTextField.textField.text;
- // CHECKING IF THERES NO CHANGES
- // if([self.editedExpertUsername isEqualToString:self.expertExistingUsername] && [self.editedExpertName isEqualToString:self.expertExistingName] && [self.editedExpertProfileDescription isEqualToString:self.expertExistingDescription] && [self.editedFacebookUsername isEqualToString:self.expertExistingFacebookUsername] && [self.editedTwitterUsername isEqualToString:self.expertExistingTwitterUsername] && [self.editedInstagramUsername isEqualToString:self.expertExistingInstagramUsername] && [self.editedYoutubeUsername isEqualToString:self.expertExistingYoutubeUsername]) {
- // [self.navigationController popViewControllerAnimated:YES];
- // return;
- // }
- if(![self.editedExpertUsername isEqualToString:self.expertExistingUsername]) {
- editedExpertData.username = self.editedExpertUsername;
- }
- else {
- editedExpertData.username = self.expertExistingUsername;
- }
- if(![self.editedExpertName isEqualToString:self.expertExistingName]) {
- editedExpertData.name = self.expertExistingName;
- }
- else {
- editedExpertData.name = self.expertExistingName;
- }
- DomicileModel *editedDomicileModel = [DomicileModel new];
- PlaceModel *cityPlaceModel = [PlaceModel new];
- cityPlaceModel.placeID = self.selectedCityID;
- cityPlaceModel.placeName = self.selectedCityName;
- PlaceModel *regionPlaceModel = [PlaceModel new];
- regionPlaceModel.placeID = self.selectedRegionID;
- regionPlaceModel.placeName= self.selectedRegionName;
- PlaceModel *countryPlaceModel = [PlaceModel new];
- countryPlaceModel.placeID = self.selectedCountryID;
- countryPlaceModel.placeName= self.selectedCountryName;
- editedDomicileModel.city = cityPlaceModel;
- editedDomicileModel.region = regionPlaceModel;
- editedDomicileModel.country = countryPlaceModel;
- if(self.selectedCityID != self.existingSelectedCityID) {
- editedDomicileModel.city = cityPlaceModel;
- editedDomicileModel.region = regionPlaceModel;
- editedDomicileModel.country = countryPlaceModel;
- editedExpertData.domicile = editedDomicileModel;
- }
- else {
- editedDomicileModel.city = cityPlaceModel;
- editedDomicileModel.region = regionPlaceModel;
- editedDomicileModel.country = countryPlaceModel;
- editedExpertData.domicile = editedDomicileModel;
- }
- if(![self.editedExpertProfileDescription isEqualToString:self.expertExistingDescription]) {
- editedExpertData.profileDescription = self.editedExpertProfileDescription;
- }
- else {
- editedExpertData.profileDescription = self.expertExistingDescription;
- }
- SocialMediaModel *editedSocialMedia = [SocialMediaModel new];
- if(![self.editedFacebookUsername isEqualToString:self.expertExistingFacebookUsername]) {
- editedSocialMedia.facebook = self.editedFacebookUsername;
- }
- else {
- editedSocialMedia.facebook = self.expertExistingFacebookUsername;
- }
- if(![self.editedTwitterUsername isEqualToString:self.expertExistingTwitterUsername]) {
- editedSocialMedia.twitter = self.editedTwitterUsername;
- }
- else {
- editedSocialMedia.twitter = self.expertExistingTwitterUsername;
- }
- if(![self.editedInstagramUsername isEqualToString:self.expertExistingInstagramUsername]) {
- editedSocialMedia.instagram = self.editedInstagramUsername;
- }
- else {
- editedSocialMedia.instagram = self.expertExistingInstagramUsername;
- }
- if(![self.editedYoutubeUsername isEqualToString:self.expertExistingYoutubeUsername]) {
- editedSocialMedia.youtube = self.editedYoutubeUsername;
- }
- else {
- editedSocialMedia.youtube = self.expertExistingYoutubeUsername;
- }
- editedExpertData.socialMedia = editedSocialMedia;
- [DataManager callAPIEditExpertProfileWithUserData:editedExpertData success:^{
- [self setIsLoading:NO];
- NSDictionary *activeUser = [[NSUserDefaults standardUserDefaults] secretObjectForKey:PREFS_ACTIVE_USER];
- NSMutableDictionary *editedActiveUser = [activeUser mutableCopy];
- [editedActiveUser setObject:self.editedExpertName forKey:@"name"];
- [editedActiveUser setObject:self.editedExpertUsername forKey:@"username"];
- [editedActiveUser setObject:self.selectedCityID forKey:@"city_id"];
- [editedActiveUser setObject:self.editedExpertProfileDescription forKey:@"description"];
- [editedActiveUser setObject:self.editedFacebookUsername forKey:@"facebook"];
- [editedActiveUser setObject:self.editedTwitterUsername forKey:@"twitter"];
- [editedActiveUser setObject:self.editedInstagramUsername forKey:@"instagram"];
- [editedActiveUser setObject:self.editedYoutubeUsername forKey:@"youtube"];
- [[NSUserDefaults standardUserDefaults] setSecretObject:editedActiveUser forKey:PREFS_ACTIVE_USER];
- [[NSUserDefaults standardUserDefaults] synchronize];
- [[NotificationManager sharedManager] syncTokenToServer];
- [self.navigationController popViewControllerAnimated:YES];
- } failure:^(NSError *error) {
- [self setIsLoading:NO];
- if(error.code != 999) {
- UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Failed", @"") message:error.domain preferredStyle:UIAlertControllerStyleAlert];
- UIAlertAction *okAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
- }];
- [alertController addAction:okAction];
- [self presentViewController:alertController animated:YES completion:nil];
- }
- }];
- }
- - (void)keyboardWillShowWithHeight:(CGFloat)keyboardHeight {
- // [UIView animateWithDuration:0.2f animations:^{
- //// self.expertSettingProfileView.tableView.frame = CGRectMake(CGRectGetMinX(self.expertSettingProfileView.tableView.frame), CGRectGetMinY(self.expertSettingProfileView.tableView.frame), CGRectGetWidth(self.expertSettingProfileView.tableView.frame), CGRectGetHeight(self.expertSettingProfileView.frame) - keyboardHeight);
- ////
- //// self.expertSettingProfileView.tableView.contentInset = UIEdgeInsetsMake(0.0f, 0.0f, keyboardHeight, 0.0f);
- //
- //
- // self.expertSettingProfileView.scrollView.frame = CGRectMake(CGRectGetMinX(self.expertSettingProfileView.scrollView.frame), CGRectGetMinY(self.expertSettingProfileView.scrollView.frame), CGRectGetWidth(self.expertSettingProfileView.scrollView.frame), CGRectGetHeight(self.expertSettingProfileView.frame) - keyboardHeight);
- //
- // self.expertSettingProfileView.scrollView.contentInset = UIEdgeInsetsMake(0.0f, 0.0f, keyboardHeight, 0.0f);
- //
- // }];
- [UIView animateWithDuration:0.2f animations:^{
- self.expertSettingProfileView.scrollView.frame = CGRectMake(CGRectGetMinX(self.expertSettingProfileView.scrollView.frame), CGRectGetMinY(self.expertSettingProfileView.scrollView.frame), CGRectGetWidth(self.expertSettingProfileView.scrollView.frame), CGRectGetHeight(self.expertSettingProfileView.frame) - keyboardHeight);
- // self.expertSettingProfileView.scrollView.contentInset = UIEdgeInsetsMake(0.0f, 0.0f, keyboardHeight, 0.0f);
- }];
- }
- - (void)keyboardWillHideWithHeight:(CGFloat)keyboardHeight {
- // [UIView animateWithDuration:0.2f animations:^{
- // self.expertSettingProfileView.tableView.frame = CGRectMake(CGRectGetMinX(self.expertSettingProfileView.tableView.frame), CGRectGetMinY(self.expertSettingProfileView.tableView.frame), CGRectGetWidth(self.expertSettingProfileView.tableView.frame), CGRectGetHeight(self.expertSettingProfileView.frame));
- //
- // self.expertSettingProfileView.tableView.contentInset = UIEdgeInsetsZero;
- // }];
- // [UIView animateWithDuration:0.2f animations:^{
- // self.expertSettingProfileView.scrollView.frame = CGRectMake(CGRectGetMinX(self.expertSettingProfileView.scrollView.frame), CGRectGetMinY(self.expertSettingProfileView.scrollView.frame), CGRectGetWidth(self.expertSettingProfileView.scrollView.frame), CGRectGetHeight(self.expertSettingProfileView.frame));
- //
- // self.expertSettingProfileView.scrollView.contentInset = UIEdgeInsetsZero;
- // }];
- [UIView animateWithDuration:0.2f animations:^{
- self.expertSettingProfileView.scrollView.frame = CGRectMake(CGRectGetMinX(self.expertSettingProfileView.scrollView.frame), CGRectGetMinY(self.expertSettingProfileView.scrollView.frame), CGRectGetWidth(self.expertSettingProfileView.scrollView.frame), CGRectGetHeight(self.expertSettingProfileView.frame));
- // self.expertSettingProfileView.scrollView.contentInset = UIEdgeInsetsZero;
- }];
- }
- - (void)setIsLoading:(BOOL)isLoading {
- _isLoading = isLoading;
- if(isLoading) {
- [self.saveButton setTitle:NSLocalizedString(@"", @"") forState:UIControlStateNormal];
- self.saveButton.enabled = NO;
- self.activityIndicator.alpha = 1.0f;
- }
- else {
- [self.saveButton setTitle:NSLocalizedString(@"Save", @"") forState:UIControlStateNormal];
- self.saveButton.enabled = YES;
- self.activityIndicator.alpha = 0.0f;
- }
- }
- - (void)checkUsername:(NSString *)username {
- [NSObject cancelPreviousPerformRequestsWithTarget:self];
- [DataManager callAPICheckUsername:username success:^(APIUserAvailabilityResponseType userAvailabilityResponseType, NSString *requestedUsername) {
- if(![requestedUsername isEqualToString:self.expertSettingProfileView.usernameTextField.textField.text]) {
- //Request response is not the latest one
- return ;
- }
- if(userAvailabilityResponseType == APIUserAvailabilityResponseTypeNotAvailable) {
- [self.expertSettingProfileView.usernameTextField setErrorMessageInformationWithString:NSLocalizedString(@"Already Taken", @"")];
- [self.expertSettingProfileView.usernameTextField setShowErrorMessage:YES];
- _isUsernameTaken = YES;
- _isUsernameTooShort = NO;
- return ;
- }
- [self.expertSettingProfileView.usernameTextField setErrorMessageInformationWithString:@""];
- [self.expertSettingProfileView.usernameTextField setShowErrorMessage:NO];
- [self.expertSettingProfileView.usernameTextField setIsSuccessValidating:YES];
- } failure:^(NSError *error) {
- if(error.code != 999) {
- UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Failed", @"") message:error.domain preferredStyle:UIAlertControllerStyleAlert];
- UIAlertAction *okAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
- }];
- [alertController addAction:okAction];
- [self presentViewController:alertController animated:YES completion:nil];
- }
- }];
- }
- - (void)setIsPlaceholderHidden:(BOOL)isHidden {
- if(isHidden) {
- [UIView animateWithDuration:0.2f animations:^{
- self.expertSettingProfileView.descriptionPlaceholderLabel.alpha = 0.0f;
- }];
- }
- else {
- [UIView animateWithDuration:0.2f animations:^{
- self.expertSettingProfileView.descriptionPlaceholderLabel.alpha = 1.0f;
- }];
- }
- }
- - (void)setIsLoadingCover:(BOOL)isLoadingCover {
- _isLoadingCover = isLoadingCover;
- if(isLoadingCover) {
- [UIView animateWithDuration:0.3f animations:^{
- self.expertSettingProfileView.optionsView.alpha = 0.0f; //remove option view Camera/Gallery/Instagram
- self.expertSettingProfileView.cancelEditCoverButton.alpha = 0.0f;
- self.expertSettingProfileView.editCoverIconImage.alpha = 0.0f; //remove editCoverIcon
- self.expertSettingProfileView.editCoverButton.alpha = 0.0f; //remove editCoverButton
- self.expertSettingProfileView.closeEditCoverButton.alpha = 0.0f; //remove closeEditCoverButton
- self.expertSettingProfileView.closeEditCoverIconImage.alpha = 0.0f; //remove closeEditCoverImage
- self.saveButton.userInteractionEnabled = NO; //disabled save button
- self.expertSettingProfileView.iconInfoButton.userInteractionEnabled = NO;
- self.expertSettingProfileView.cityPicker.userInteractionEnabled = NO;
- self.expertSettingProfileView.editProfilePictureButton.userInteractionEnabled = NO; //disabled editProfilePictureButton
- self.expertSettingProfileView.activityIndicator.alpha = 1.0f; //show activity indicator
- [self.expertSettingProfileView.activityIndicator startAnimating];
- }];
- }
- else {
- [UIView animateWithDuration:0.3f animations:^{
- self.expertSettingProfileView.activityIndicator.alpha = 0.0f;
- self.expertSettingProfileView.optionsView.alpha = 0.0f;
- self.expertSettingProfileView.coverView.alpha = 0.0f;
- self.expertSettingProfileView.cancelEditCoverButton.alpha = 0.0f;
- self.expertSettingProfileView.closeEditCoverButton.alpha = 0.0f; //remove closeEditCoverButton
- self.expertSettingProfileView.closeEditCoverIconImage.alpha = 0.0f; //remove closeEditCoverImage
- self.expertSettingProfileView.editCoverIconImage.alpha = 1.0f;
- self.expertSettingProfileView.editCoverButton.alpha = 1.0f;
- self.saveButton.userInteractionEnabled = YES;
- self.expertSettingProfileView.editProfilePictureButton.userInteractionEnabled = YES;
- self.expertSettingProfileView.iconInfoButton.userInteractionEnabled = YES;
- self.expertSettingProfileView.cityPicker.userInteractionEnabled = YES;
- [self.expertSettingProfileView.activityIndicator stopAnimating];
- }];
- }
- }
- - (void)setIsFBShimmeringCover:(BOOL)isFBShimmeringCover {
- _isFBShimmeringCover = isFBShimmeringCover;
- if(isFBShimmeringCover) {
- [UIView animateWithDuration:0.2f delay:0.5f options:UIViewAnimationOptionTransitionNone animations:^{
- self.expertSettingProfileView.coverImage.alpha = 0.0f;
- self.expertSettingProfileView.optionsView.alpha = 0.0f; //remove option view Camera/Gallery/Instagram
- self.expertSettingProfileView.cancelEditCoverButton.alpha = 0.0f;
- self.expertSettingProfileView.editCoverIconImage.alpha = 0.0f; //remove editCoverIcon
- self.expertSettingProfileView.editCoverButton.alpha = 0.0f; //remove editCoverButton
- self.saveButton.alpha = 0.0f;
- self.expertSettingProfileView.loadingCoverImageView.alpha = 1.0f;
- self.expertSettingProfileView.coverImageShimmeringView.alpha = 1.0f;
- self.expertSettingProfileView.fbShimmeringCoverImage.alpha = 1.0f;
- self.expertSettingProfileView.fbShimmeringCoverImage.shimmering = YES;
- }completion:nil];
- }
- else {
- [UIView animateWithDuration:0.2f delay:0.5f options:UIViewAnimationOptionTransitionNone animations:^{
- self.expertSettingProfileView.coverImage.alpha = 1.0f;
- self.expertSettingProfileView.optionsView.alpha = 0.0f;
- self.expertSettingProfileView.coverView.alpha = 0.0f;
- self.expertSettingProfileView.cancelEditCoverButton.alpha = 0.0f;
- self.expertSettingProfileView.editCoverIconImage.alpha = 1.0f;
- self.expertSettingProfileView.editCoverButton.alpha = 1.0f;
- self.expertSettingProfileView.coverImageShimmeringView.alpha = 0.0f;
- self.expertSettingProfileView.fbShimmeringCoverImage.alpha = 0.0f;
- self.expertSettingProfileView.loadingCoverImageView.alpha = 0.0f;
- self.saveButton.alpha = 1.0f;
- self.expertSettingProfileView.fbShimmeringCoverImage.shimmering = NO;
- }completion:nil];
- }
- }
- - (void)popupInfoExpertChangeNameViewDidTappedCancelButton {
- NSLog(@"cancel expertsetting");
- [UIView animateWithDuration:0.2f animations:^{
- self.popupInfoExpertChangeNameViewController.view.alpha = 0.0f;
- }];
- }
- - (void)popupInfoExpertChangeNameViewDidTappedContactUsButton{
- NSLog(@"contact us expertsetting");
- // [UIView animateWithDuration:0.2f animations:^{
- self.popupInfoExpertChangeNameViewController.view.alpha = 0.0f;
- // }];
- HelpViewController *helpViewController = [[HelpViewController alloc] init];
- [self.navigationController pushViewController:helpViewController animated:YES];
- }
- - (void)PopupInfoExpertChangeNameViewDidTappedBackgroundButton {
- NSLog(@"background expertsetting");
- [UIView animateWithDuration:0.2f animations:^{
- self.popupInfoExpertChangeNameViewController.view.alpha = 0.0f;
- }];
- }
- - (UIImage *)normalizedImage:(UIImage *)image {
- if (image.imageOrientation == UIImageOrientationUp) {
- return image;
- }
- UIGraphicsBeginImageContextWithOptions(image.size, NO, image.scale);
- [image drawInRect:(CGRect){0, 0, image.size}];
- UIImage *normalizedImage = UIGraphicsGetImageFromCurrentImageContext();
- UIGraphicsEndImageContext();
- return normalizedImage;
- }
- @end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement