protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.fullscreen_imageviewer);
            imageView   = (ImageView)FindViewById(Resource.Id.image);
            fullToolbar = (Toolbar)FindViewById(Resource.Id.fullscreen_toolbar);
            SetSupportActionBar(fullToolbar);
            SupportActionBar.SetDisplayHomeAsUpEnabled(true);

            var loupe = new Loupe(imageView);

            loupe.UseDismissAnimation     = false;
            loupe.OnViewTranslateListener = new OnViewTranslateListener((v1) =>
            {
                SupportFinishAfterTransition();
            }, null, null, null);

            try
            {
                Bundle extras = Intent.Extras;
                int    type   = extras.GetInt(Constants.PARCEL_TYPE);
                switch (type)
                {
                case 0:
                    PostParcelable postParcel = (PostParcelable)extras.GetParcelable(Constants.POST_DATA_EXTRA);
                    Glide.With(this).Load(postParcel.PostItem.DownloadUrl).Into(imageView);
                    break;

                default:
                    ProfileParcelable profileParcel = (ProfileParcelable)extras.GetParcelable(Constants.PROFILE_DATA_EXTRA);
                    Glide.With(this).Load(profileParcel.UserProfile.ProfileImgUrl).Into(imageView);
                    break;
                }
                string imageTransitionName = extras.GetString(Constants.TRANSITION_NAME);
                imageView.TransitionName = imageTransitionName;
            }
            catch (Exception e)
            {
                Toast.MakeText(this, e.Message, ToastLength.Short).Show();
            }
        }
예제 #2
0
        private void SetUpRecycler()
        {
            postAdapter = new PostAdapter(this, posts);
            mainRecycler.SetAdapter(postAdapter);
            emptyObserver = new RecyclerViewEmptyObserver(mainRecycler, emptyRoot);
            postAdapter.RegisterAdapterDataObserver(emptyObserver);
            postAdapter.ItemLongClick += (s1, e1) =>
            {
                string postID  = posts[e1.Position].ID;
                string ownerID = posts[e1.Position].OwnerId;

                if (SessionManager.GetFirebaseAuth().CurrentUser.Uid != ownerID)
                {
                    return;
                }

                var sweetDialog = new SweetAlertDialog(this, SweetAlertDialog.WarningType);
                sweetDialog.SetTitleText("Post Options");
                sweetDialog.SetContentText("Do you want to edit or delete selected post?");
                sweetDialog.SetCancelText("Delete");
                sweetDialog.SetConfirmText("Edit");
                sweetDialog.SetConfirmClickListener(new SweetConfirmClick(
                                                        onClick: d1 =>
                {
                    d1.ChangeAlertType(SweetAlertDialog.SuccessType);
                    d1.SetTitleText("Done");
                    d1.SetContentText("");
                    d1.ShowCancelButton(false);
                    d1.SetConfirmText("OK");
                    d1.SetConfirmClickListener(null);
                    d1.Show();
                }));
                sweetDialog.SetCancelClickListener(new SweetConfirmClick(
                                                       onClick: d2 =>
                {
                    SessionManager.GetFireDB().GetReference("posts").Child(postID).RemoveValue()
                    .AddOnCompleteListener(new OncompleteListener((onComplete) =>
                    {
                        switch (onComplete.IsSuccessful)
                        {
                        case false:
                            break;

                        default:
                            StorageReference storageReference = FirebaseStorage.Instance.GetReference("postImages/" + postID);
                            storageReference.DeleteAsync();
                            postAdapter.NotifyItemRemoved(e1.Position);
                            postAdapter.NotifyItemRangeChanged(e1.Position, posts.Count);
                            break;
                        }
                    }));
                    d2.ChangeAlertType(SweetAlertDialog.SuccessType);
                    d2.SetTitleText("Deleted");
                    d2.SetContentText("");
                    d2.ShowCancelButton(false);
                    d2.SetConfirmText("OK");
                    d2.SetConfirmClickListener(null);
                    d2.Show();
                }));
                sweetDialog.Show();
            };

            postAdapter.ItemClick += (s2, e2) =>
            {
                var intent = new Intent(this, typeof(FullscreenImageActivity));

                PostParcelable postParcelable = new PostParcelable();
                postParcelable.PostItem = posts[e2.Position];

                intent.PutExtra(Constants.TRANSITION_NAME, ViewCompat.GetTransitionName(e2.ImageView));
                intent.PutExtra(Constants.POST_DATA_EXTRA, postParcelable);
                intent.PutExtra(Constants.PARCEL_TYPE, 0);
                var options = ActivityOptionsCompat.MakeSceneTransitionAnimation(this, e2.ImageView,
                                                                                 ViewCompat.GetTransitionName(e2.ImageView));
                StartActivity(intent, options.ToBundle());
            };
        }