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(); } }
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()); }; }