예제 #1
0
 public void Clear()
 {
     _cache.RemoveAllObjects();
     // Force immediate Garbage collection. Please note that is resource intensive.
     System.GC.Collect();
     System.GC.WaitForPendingFinalizers();
     System.GC.WaitForPendingFinalizers();              // Double call since GC doesn't always find resources to be collected: https://bugzilla.xamarin.com/show_bug.cgi?id=20503
     System.GC.Collect();
 }
예제 #2
0
        public void Clear()
        {
            lock (_lock)
            {
                _cache.RemoveAllObjects();
                _imageInformations.Clear();
            }

            GC.Collect();
        }
예제 #3
0
        public override async void ViewDidLoad()
        {
            BTProgressHUD.Show(null, -1, ProgressHUD.MaskType.Clear);
            base.ViewDidLoad();

            this.RestrictRotation(UIInterfaceOrientationMask.Portrait);

            imageCache.RemoveAllObjects();
            btnRelationship.SetTitle("", UIControlState.Normal);
            btnRelationship.Hidden = true;
            profileImageView.Layer.MasksToBounds = true;
            profileImageView.Image = null;

            groupModel = await new UserGroupManager().GetGroupById(LoginController.tokenModel.access_token, groupId);

            lblName.Text      = groupModel.name;
            lblName.TextColor = UIColor.FromRGB(90, 89, 89);

            textDescription.Text      = groupModel.description;
            textDescription.TextColor = UIColor.FromRGB(90, 89, 89);

            if (groupModel.profilePicture != null)
            {
                Utils.SetImageFromNSUrlSession(groupModel.profilePicture, profileImageView, this, PictureType.Group);
            }
            else
            {
                profileImageView.Image = UIImage.FromBundle("Group");
            }

            relationshipStatus = await new UserGroupManager().GetGroupRelationshipStatus(LoginController.tokenModel.access_token, groupId, LoginController.userModel.id);

            LoadRelationshipButton();
            btnRelationship.TouchUpInside += BtnRelationship_TouchUpInside;

            if (groupId.Contains(LoginController.userModel.id))
            {
                btnRelationship.Hidden = true;
            }
            else
            {
                btnRelationship.Hidden = false;
            }

            BTProgressHUD.Dismiss();
        }
예제 #4
0
        public override void ViewDidLoad()
        {
            BTProgressHUD.Show(null, -1, ProgressHUD.MaskType.Clear);
            base.ViewDidLoad();

            this.EdgesForExtendedLayout                         = UIRectEdge.None;
            this.ExtendedLayoutIncludesOpaqueBars               = false;
            this.AutomaticallyAdjustsScrollViewInsets           = false;
            this.NavigationController.NavigationBar.Translucent = false;

            UINavigationBar.Appearance.TitleTextAttributes = new UIStringAttributes
            {
                ForegroundColor = UIColor.FromRGB(90, 89, 89)
            };

            this.RestrictRotation(UIInterfaceOrientationMask.Portrait);

            imageCache.RemoveAllObjects();

            profileImageView.Layer.MasksToBounds = true;
            profileImageView.Image = null;

            uploadButton.TouchUpInside       += btnUpload_TouchUpInside;
            nameButton.TouchUpInside         += btnName_TouchUpInside;
            emailButton.TouchUpInside        += btnEmail_TouchUpInside;
            ageButton.TouchUpInside          += btnAge_TouchUpInside;
            manButton.TouchUpInside          += btnMan_TouchUpInside;
            womanButton.TouchUpInside        += btnWoman_TouchUpInside;
            imagePicker.FinishedPickingMedia += Handle_FinishedPickingMedia;
            imagePicker.Canceled             += Handle_Canceled;

            emailText.EditingDidEnd += EmailText_EditingDidEnd;

            logoutBtn.TouchUpInside += LogoutBtn_TouchUpInside;

            deleteBtn.TouchUpInside += DeleteBtn_TouchUpInside;

            ageText.KeyboardType           = UIKeyboardType.NumberPad;
            ageText.ShouldChangeCharacters = (textField, range, replacement) =>
            {
                int number;
                return(replacement.Length == 0 || int.TryParse(replacement, out number));
            };

            uploadButton.Layer.BorderColor = UIColor.FromRGB(90, 89, 89).CGColor;
            uploadButton.Layer.BorderWidth = 1f;

            uploadButton.TintColor = UIColor.FromRGB(90, 89, 89);
            uploadButton.SetTitleColor(UIColor.FromRGB(90, 89, 89), UIControlState.Normal);

            logoutBtn.Layer.BorderColor  = UIColor.FromRGB(90, 89, 89).CGColor;
            logoutBtn.Layer.BorderWidth  = 1f;
            logoutBtn.Layer.CornerRadius = 5;


            logoutBtn.TintColor = UIColor.FromRGB(90, 89, 89);
            logoutBtn.SetTitle("   Logout   ", UIControlState.Normal);
            logoutBtn.SetTitleColor(UIColor.FromRGB(90, 89, 89), UIControlState.Normal);

            deleteBtn.Layer.BorderColor  = UIColor.Red.CGColor;
            deleteBtn.Layer.BorderWidth  = 1f;
            deleteBtn.Layer.CornerRadius = 5;

            deleteBtn.TintColor = UIColor.Red;
            deleteBtn.SetTitle("   Delete Account   ", UIControlState.Normal);
            deleteBtn.SetTitleColor(UIColor.Red, UIControlState.Normal);

            nameText.TextColor   = UIColor.FromRGB(90, 89, 89);
            emailText.TextColor  = UIColor.FromRGB(90, 89, 89);
            ageText.TextColor    = UIColor.FromRGB(90, 89, 89);
            genderText.TextColor = UIColor.FromRGB(90, 89, 89);

            nameText.Text  = LoginController.userModel.name;
            emailText.Text = LoginController.userModel.userName;
            ageText.Text   = LoginController.userModel.age.ToString();

            if ("male".Equals(LoginController.userModel.gender) || "female".Equals(LoginController.userModel.gender))
            {
                genderText.Text = CultureInfo.InvariantCulture.TextInfo.ToTitleCase(LoginController.userModel.gender);
                UpdateGenderButtonStatus(LoginController.userModel.gender);
            }
            else
            {
                manButton.Alpha   = 0.3f;
                womanButton.Alpha = 0.3f;
            }

            if (LoginController.userModel.profilePicturePath != null)
            {
                fileName = LoginController.userModel.profilePicturePath;
                Utils.SetImageFromNSUrlSession(fileName, profileImageView, this, PictureType.Profile);
            }
            else
            {
                profileImageView.Image = UIImage.FromBundle("Profile");
            }
            BTProgressHUD.Dismiss();
        }
        public override async void ViewDidLoad()
        {
            BTProgressHUD.Show(null, -1, ProgressHUD.MaskType.Clear);
            base.ViewDidLoad();

            this.EdgesForExtendedLayout                         = UIRectEdge.None;
            this.ExtendedLayoutIncludesOpaqueBars               = false;
            this.AutomaticallyAdjustsScrollViewInsets           = false;
            this.NavigationController.NavigationBar.Translucent = false;

            this.RestrictRotation(UIInterfaceOrientationMask.Portrait);

            imageCache.RemoveAllObjects();

            try
            {
                btnRelationship.SetTitle("", UIControlState.Normal);
                btnRelationship.Hidden = true;
                btnBlock.SetTitle("", UIControlState.Normal);
                btnBlock.Hidden = true;

                profileImageView.Layer.MasksToBounds = true;

                friendUserModel = await new LoginManager().GetUserById(LoginController.tokenModel.access_token, friendUserId);

                nameText.Text  = friendUserModel.name;
                emailText.Text = friendUserModel.userName;
                ageText.Text   = friendUserModel.age.ToString();

                nameText.TextColor   = UIColor.FromRGB(90, 89, 89);
                emailText.TextColor  = UIColor.FromRGB(90, 89, 89);
                ageText.TextColor    = UIColor.FromRGB(90, 89, 89);
                genderText.TextColor = UIColor.FromRGB(90, 89, 89);

                if ("male".Equals(friendUserModel.gender) || "female".Equals(friendUserModel.gender))
                {
                    genderText.Text = CultureInfo.InvariantCulture.TextInfo.ToTitleCase(friendUserModel.gender);
                }

                if (friendUserModel.profilePicturePath != null)
                {
                    fileName = friendUserModel.profilePicturePath;
                    Utils.SetImageFromNSUrlSession(fileName, profileImageView, this, PictureType.Profile);
                }

                relationshipStatus = await new FriendManager().GetUserRelationshipStatus(LoginController.tokenModel.access_token, friendUserId);
                LoadRelationshipButton();

                isUserBlocked = await new UserManager().IsUserBlocked(friendUserId, LoginController.tokenModel.access_token);
                LoadBlockButton();

                var adminGroups = (await new UserGroupManager().GetGroupsWithMembers(LoginController.userModel.id, LoginController.tokenModel.access_token))
                                  .Where(g => g.userId == LoginController.userModel.id && g.members.Any(m => m.id == friendUserId)).ToList();
                if (adminGroups != null && adminGroups.Count > 0)
                {
                    groupsTableView.RegisterClassForCellReuse(typeof(GroupsTableViewCell), "cellId");
                    groupsTableView.Source = new GroupsTableViewSource(adminGroups, friendUserId);
                    View.AddSubview(groupsTableView);
                    groupsTableView.ReloadData();
                    groupsTableView.TableFooterView = new UIView();
                    groupsTableView.Hidden          = false;
                    groupsTitleLabel.Hidden         = false;
                }
            }
            catch (Exception ex)
            {
                BTProgressHUD.Dismiss();
                Utils.HandleException(ex);
            }

            btnRelationship.TouchUpInside += BtnRelationship_TouchUpInside;
            btnBlock.TouchUpInside        += BtnBlock_TouchUpInside;
            BTProgressHUD.Dismiss();
        }
예제 #6
0
 public void Clear()
 {
     _cache.RemoveAllObjects();
     System.GC.Collect();             // FMT: it's probably better to collect the GC since we need memory back?
 }
 public CustomTileOverlay(string urlTemplate) : base(urlTemplate)
 {
     _cache = new NSCache();
     _cache.RemoveAllObjects();
 }