示例#1
0
        //public override void OnPause()
        //{
        //    if (_isEnableSaveState)
        //    {
        //        SaveGalleryTemp();
        //        SavePreparePostTemp();
        //    }

        //    base.OnPause();
        //}

        //private void TitleOnFocusChange(object sender, View.FocusChangeEventArgs e)
        //{
        //    if (!e.HasFocus)
        //        SavePreparePostTemp();
        //}

        //private void LocalTagsChanged(object sender, NotifyCollectionChangedEventArgs e)
        //{
        //    Model.Tags = LocalTagsAdapter.LocalTags.ToArray();
        //    SavePreparePostTemp();
        //}

        //private void TitleChanged(object sender, Android.Text.TextChangedEventArgs e)
        //{
        //    Model.Title = Title.Text;
        //}

        //private void DescriptionChanged(object sender, Android.Text.TextChangedEventArgs e)
        //{
        //    Model.Description = Description.Text;
        //}

        protected virtual async void InitData()
        {
            if (_isSingleMode)
            {
                Photos.Visibility           = ViewStates.Gone;
                PreviewContainer.Visibility = ViewStates.Visible;
                Preview.CornerRadius        = Style.CornerRadius5;
                RatioBtn.Visibility         = ViewStates.Gone;
                RotateBtn.Visibility        = ViewStates.Gone;

                var previewSize  = BitmapUtils.CalculateImagePreviewSize(Media[0].Parameters, Style.ScreenWidth - Style.Margin15 * 2);
                var layoutParams = new RelativeLayout.LayoutParams(previewSize.Width, previewSize.Height);
                layoutParams.SetMargins(Style.Margin15, 0, Style.Margin15, Style.Margin15);
                PreviewContainer.LayoutParameters = layoutParams;
                Preview.Touch += PreviewOnTouch;

                if (Media[0].UploadState >= UploadState.Saved)
                {
                    Preview.SetImageBitmap(Media[0]);
                }
            }
            else
            {
                Photos.Visibility           = ViewStates.Visible;
                PreviewContainer.Visibility = ViewStates.Gone;
                Photos.SetLayoutManager(new LinearLayoutManager(Activity, LinearLayoutManager.Horizontal, false));
                Photos.AddItemDecoration(new ListItemDecoration(Style.Margin10));
                Photos.LayoutParameters.Height = Style.GalleryHorizontalHeight;

                Photos.SetAdapter(_galleryAdapter);
            }

            await ConvertAndSave();

            if (!IsInitialized)
            {
                return;
            }

            await CheckOnSpam();

            if (!IsInitialized)
            {
                return;
            }

            if (IsSpammer == true)
            {
                return;
            }

            StartUploadMedia(true);
        }
        public override void OnViewCreated(View view, Bundle savedInstanceState)
        {
            if (IsInitialized)
            {
                return;
            }

            base.OnViewCreated(view, savedInstanceState);
            _galleryAdapter = new MediaAdapter(_editPost);

            SetEditPost();

            RatioBtn.Visibility = RotateBtn.Visibility = ViewStates.Gone;
            if (_editPost.Media.Length > 1)
            {
                Photos.Visibility           = ViewStates.Visible;
                PreviewContainer.Visibility = ViewStates.Gone;
                Photos.SetLayoutManager(new LinearLayoutManager(Activity, LinearLayoutManager.Horizontal, false));
                Photos.SetAdapter(_galleryAdapter);
                Photos.AddItemDecoration(new ListItemDecoration((int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 10, Resources.DisplayMetrics)));
            }
            else
            {
                Photos.Visibility           = ViewStates.Gone;
                PreviewContainer.Visibility = ViewStates.Visible;
                var margin       = (int)BitmapUtils.DpToPixel(15, Resources);
                var previewSize  = BitmapUtils.CalculateImagePreviewSize(_editPost.Media[0].Size.Width, _editPost.Media[0].Size.Height, Style.ScreenWidth - margin * 2, int.MaxValue);
                var layoutParams = new RelativeLayout.LayoutParams(previewSize.Width, previewSize.Height);
                layoutParams.SetMargins(margin, 0, margin, margin);
                PreviewContainer.LayoutParameters = layoutParams;
                Preview.CornerRadius = Style.CornerRadius5;

                var url = _editPost.Media[0].Thumbnails.Mini;
                Picasso.With(Activity).Load(url).CenterCrop()
                .Resize(PreviewContainer.LayoutParameters.Width, PreviewContainer.LayoutParameters.Height)
                .Into(Preview);

                Preview.Touch += PreviewOnTouch;
            }

            SearchTextChanged();
        }
            public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
            {
                var maxWidth  = Style.GalleryHorizontalScreenWidth;
                var maxHeight = Style.GalleryHorizontalHeight;

                var previewSize = BitmapUtils.CalculateImagePreviewSize(_postMedia[0].Size.Width, _postMedia[0].Size.Height, maxWidth, maxHeight);

                var cardView = new CardView(parent.Context)
                {
                    LayoutParameters = new FrameLayout.LayoutParams(previewSize.Width, previewSize.Height),
                    Radius           = BitmapUtils.DpToPixel(5, parent.Resources)
                };
                var image = new ImageView(parent.Context)
                {
                    Id = Resource.Id.photo,
                    LayoutParameters = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent)
                };

                image.SetScaleType(ImageView.ScaleType.FitXy);
                cardView.AddView(image);
                return(new MediaViewHolder(cardView));
            }
        public override void OnViewCreated(View view, Bundle savedInstanceState)
        {
            if (IsInitialized)
            {
                return;
            }

            base.OnViewCreated(view, savedInstanceState);

            _pageTitle.Text          = AppSettings.LocalizationManager.GetText(LocalizationKeys.PlagiarismTitle);
            _guidelines.Text         = AppSettings.LocalizationManager.GetText(LocalizationKeys.GuidelinesForPlagiarism);
            _cancelPublishing.Text   = AppSettings.LocalizationManager.GetText(LocalizationKeys.CancelPublishing);
            _continuePublishing.Text = AppSettings.LocalizationManager.GetText(LocalizationKeys.ContinuePublishing);

            _pageTitle.Typeface             = Style.Semibold;
            _guidelines.Typeface            = Style.Semibold;
            _plagiarismTitle.Typeface       = Style.Regular;
            _plagiarismDescription.Typeface = Style.Regular;
            _cancelPublishing.Typeface      = Style.Semibold;
            _continuePublishing.Typeface    = Style.Semibold;

            guidelinesUri = Android.Net.Uri.Parse(Constants.Guide);

            _topPanel.BringToFront();

            _backButton.Click += (sender, e) => { ((BaseActivity)Activity).OnBackPressed(); };
            _rootLayout.Click += (sender, e) => { ((BaseActivity)Activity).HideKeyboard(); };

            _guidelines.Click += OpenGuidelines;

            _cancelPublishing.Click   += CancelPublishing;
            _continuePublishing.Click += ContinuePublishing;

            if (media.Count > 1)
            {
                _photos.Visibility           = ViewStates.Visible;
                _previewContainer.Visibility = ViewStates.Gone;
                _photos.SetLayoutManager(new LinearLayoutManager(Activity, LinearLayoutManager.Horizontal, false));
                _photos.SetAdapter(adapter);
                _photos.AddItemDecoration(new ListItemDecoration((int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 10, Resources.DisplayMetrics)));
            }
            else
            {
                _photos.Visibility           = ViewStates.Gone;
                _previewContainer.Visibility = ViewStates.Visible;
                _preview.ClipToOutline       = true;

                var margin = (int)BitmapUtils.DpToPixel(15, Resources);

                if (media[0].PreparedBitmap != null)
                {
                    var previewSize  = BitmapUtils.CalculateImagePreviewSize(media[0].Parameters, Style.ScreenWidth - margin * 2);
                    var layoutParams = new RelativeLayout.LayoutParams(previewSize.Width, previewSize.Height);
                    layoutParams.SetMargins(margin, 0, margin, margin);
                    _previewContainer.LayoutParameters = layoutParams;

                    _preview.SetImageBitmap(media[0].PreparedBitmap);
                }
            }

            var similarText    = AppSettings.LocalizationManager.GetText(LocalizationKeys.SimilarPhoto).ToLower();
            var photoText      = AppSettings.LocalizationManager.GetText(LocalizationKeys.Photo).ToLower();
            var plagiarismText = string.Empty;

            CustomClickableSpan clickableSpan;
            SpannableString     spannableTitle;

            if (model.PlagiarismUsername == AppSettings.User.Login)
            {
                plagiarismText = AppSettings.LocalizationManager.GetText(LocalizationKeys.SelfPlagiarism, similarText);

                clickableSpan        = new CustomClickableSpan();
                clickableSpan.Click += OpenSimilar;

                spannableTitle = SpannableText(plagiarismText, similarText, clickableSpan);
                _plagiarismTitle.SetText(spannableTitle, TextView.BufferType.Spannable);
                _plagiarismDescription.Visibility = ViewStates.Gone;
            }
            else
            {
                var author = $"@{model.PlagiarismUsername}";
                plagiarismText = AppSettings.LocalizationManager.GetText(LocalizationKeys.PhotoPlagiarism, similarText, author);

                spannableTitle = new SpannableString(plagiarismText);
                var similarIndex = plagiarismText.IndexOf(similarText, StringComparison.Ordinal);
                clickableSpan = new CustomClickableSpan();
                var authorIndex     = plagiarismText.IndexOf(author, StringComparison.Ordinal);
                var clickableAuthor = new CustomClickableSpan();

                clickableSpan.Click   += OpenSimilar;
                clickableAuthor.Click += OpenProfile;

                spannableTitle.SetSpan(new ForegroundColorSpan(Resources.GetColor(Resource.Color.rgb255_34_5)), similarIndex, similarIndex + similarText.Length, 0);
                spannableTitle.SetSpan(clickableSpan, similarIndex, similarIndex + similarText.Length, SpanTypes.ExclusiveExclusive);

                spannableTitle.SetSpan(new ForegroundColorSpan(Resources.GetColor(Resource.Color.rgb255_34_5)), authorIndex, authorIndex + author.Length, 0);
                spannableTitle.SetSpan(clickableAuthor, authorIndex, authorIndex + author.Length, SpanTypes.ExclusiveExclusive);
                _plagiarismTitle.SetText(spannableTitle, TextView.BufferType.Spannable);

                var descriptionText = AppSettings.LocalizationManager.GetText(LocalizationKeys.PlagiarismDescription, photoText);

                var clickablePhoto = new CustomClickableSpan();
                clickablePhoto.Click += OpenSimilar;

                var spannableDescription = SpannableText(descriptionText, photoText, clickablePhoto);
                _plagiarismDescription.Visibility = ViewStates.Visible;
                _plagiarismDescription.SetText(spannableDescription, TextView.BufferType.Spannable);
                _plagiarismDescription.MovementMethod = new LinkMovementMethod();
            }

            _plagiarismTitle.MovementMethod = new LinkMovementMethod();
        }