2525import android .support .graphics .drawable .VectorDrawableCompat ;
2626import android .support .v4 .app .ActivityCompat ;
2727import android .support .v4 .content .ContextCompat ;
28+ import android .view .KeyEvent ;
2829import android .view .MenuItem ;
2930import android .view .View ;
3031import android .view .animation .DecelerateInterpolator ;
@@ -137,6 +138,8 @@ public class ShareActivity
137138 private long ShortAnimationDuration ;
138139 private boolean isFABOpen = false ;
139140 private float startScaleFinal ;
141+ private boolean isZoom = false ;
142+
140143
141144 /**
142145 * Called when user taps the submit button.
@@ -505,6 +508,7 @@ private void zoomImageFromThumb(final View thumbView, Uri imageuri) {
505508 if (CurrentAnimator != null ) {
506509 CurrentAnimator .cancel ();
507510 }
511+ isZoom = true ;
508512 ViewUtil .hideKeyboard (ShareActivity .this .findViewById (R .id .titleEdit | R .id .descEdit ));
509513 closeFABMenu ();
510514 mainFab .setVisibility (View .GONE );
@@ -521,7 +525,6 @@ private void zoomImageFromThumb(final View thumbView, Uri imageuri) {
521525
522526 // Load the high-resolution "zoomed-in" image.
523527 expandedImageView .setImageBitmap (scaledImage );
524-
525528 float startScale = zoomObj .adjustStartEndBounds (startBounds , finalBounds , globalOffset );
526529
527530 // Hide the thumbnail and show the zoomed-in view. When the animation
@@ -593,6 +596,7 @@ public void onZoomOutFabClicked() {
593596 if (CurrentAnimator != null ) {
594597 CurrentAnimator .cancel ();
595598 }
599+ isZoom = false ;
596600 zoomOutButton .setVisibility (View .GONE );
597601 mainFab .setVisibility (View .VISIBLE );
598602
@@ -603,6 +607,7 @@ public void onZoomOutFabClicked() {
603607 .with (ObjectAnimator .ofFloat (expandedImageView , View .Y , startBounds .top ))
604608 .with (ObjectAnimator .ofFloat (expandedImageView , View .SCALE_X , startScaleFinal ))
605609 .with (ObjectAnimator .ofFloat (expandedImageView , View .SCALE_Y , startScaleFinal ));
610+
606611 set .setDuration (ShortAnimationDuration );
607612 set .setInterpolator (new DecelerateInterpolator ());
608613 set .addListener (new AnimatorListenerAdapter () {
@@ -635,4 +640,17 @@ public void onFabShowMapsClicked() {
635640 startActivity (mapIntent );
636641 }
637642 }
643+
644+ @ Override
645+ public boolean onKeyDown (int keyCode , KeyEvent event ) {
646+ switch (keyCode ) {
647+ case KeyEvent .KEYCODE_BACK :
648+ if (isZoom ) {
649+ onZoomOutFabClicked ();
650+ return true ;
651+ }
652+ }
653+ return super .onKeyDown (keyCode ,event );
654+
655+ }
638656}
0 commit comments