25
25
import android .support .graphics .drawable .VectorDrawableCompat ;
26
26
import android .support .v4 .app .ActivityCompat ;
27
27
import android .support .v4 .content .ContextCompat ;
28
+ import android .view .KeyEvent ;
28
29
import android .view .MenuItem ;
29
30
import android .view .View ;
30
31
import android .view .animation .DecelerateInterpolator ;
@@ -137,6 +138,8 @@ public class ShareActivity
137
138
private long ShortAnimationDuration ;
138
139
private boolean isFABOpen = false ;
139
140
private float startScaleFinal ;
141
+ private boolean isZoom = false ;
142
+
140
143
141
144
/**
142
145
* Called when user taps the submit button.
@@ -505,6 +508,7 @@ private void zoomImageFromThumb(final View thumbView, Uri imageuri) {
505
508
if (CurrentAnimator != null ) {
506
509
CurrentAnimator .cancel ();
507
510
}
511
+ isZoom = true ;
508
512
ViewUtil .hideKeyboard (ShareActivity .this .findViewById (R .id .titleEdit | R .id .descEdit ));
509
513
closeFABMenu ();
510
514
mainFab .setVisibility (View .GONE );
@@ -521,7 +525,6 @@ private void zoomImageFromThumb(final View thumbView, Uri imageuri) {
521
525
522
526
// Load the high-resolution "zoomed-in" image.
523
527
expandedImageView .setImageBitmap (scaledImage );
524
-
525
528
float startScale = zoomObj .adjustStartEndBounds (startBounds , finalBounds , globalOffset );
526
529
527
530
// Hide the thumbnail and show the zoomed-in view. When the animation
@@ -593,6 +596,7 @@ public void onZoomOutFabClicked() {
593
596
if (CurrentAnimator != null ) {
594
597
CurrentAnimator .cancel ();
595
598
}
599
+ isZoom = false ;
596
600
zoomOutButton .setVisibility (View .GONE );
597
601
mainFab .setVisibility (View .VISIBLE );
598
602
@@ -603,6 +607,7 @@ public void onZoomOutFabClicked() {
603
607
.with (ObjectAnimator .ofFloat (expandedImageView , View .Y , startBounds .top ))
604
608
.with (ObjectAnimator .ofFloat (expandedImageView , View .SCALE_X , startScaleFinal ))
605
609
.with (ObjectAnimator .ofFloat (expandedImageView , View .SCALE_Y , startScaleFinal ));
610
+
606
611
set .setDuration (ShortAnimationDuration );
607
612
set .setInterpolator (new DecelerateInterpolator ());
608
613
set .addListener (new AnimatorListenerAdapter () {
@@ -635,4 +640,17 @@ public void onFabShowMapsClicked() {
635
640
startActivity (mapIntent );
636
641
}
637
642
}
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
+ }
638
656
}
0 commit comments