From a994966095f57d7f61ad1a4fe5dbd2d1187ee8f6 Mon Sep 17 00:00:00 2001 From: Torsten Grote <t@grobox.de> Date: Wed, 12 Dec 2018 17:21:16 -0200 Subject: [PATCH] [android] address review comments for image fullscreen swiping --- .../briar/android/conversation/ImageActivity.java | 9 ++++++--- .../briar/android/conversation/ImageFragment.java | 2 +- .../briar/android/conversation/ImageViewModel.java | 7 ++++--- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageActivity.java index 7c7a94fc5c..811bf11e38 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageActivity.java @@ -134,7 +134,7 @@ public class ImageActivity extends BriarActivity viewPager.setCurrentItem(position); if (SDK_INT >= 16) { - viewModel.getOnImageClicked().observe(this, this::onPhotoClicked); + viewModel.getOnImageClicked().observe(this, this::onImageClicked); window.getDecorView().setSystemUiVisibility( SYSTEM_UI_FLAG_LAYOUT_STABLE | SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); @@ -168,6 +168,8 @@ public class ImageActivity extends BriarActivity ); if (SDK_INT >= 16) { layout.getViewTreeObserver().removeOnGlobalLayoutListener(this); + } else { + layout.getViewTreeObserver().removeGlobalOnLayoutListener(this); } } @@ -203,8 +205,9 @@ public class ImageActivity extends BriarActivity supportFinishAfterTransition(); } - private void onPhotoClicked(@Nullable Boolean clicked) { - if (clicked != null&& clicked && SDK_INT >= 16) { + @RequiresApi(api = 16) + private void onImageClicked(@Nullable Boolean clicked) { + if (clicked != null && clicked) { toggleSystemUi(); viewModel.onOnImageClickSeen(); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageFragment.java index 7a95d0f552..ba4bfec9c4 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageFragment.java @@ -77,7 +77,7 @@ public class ImageFragment extends Fragment { viewModelFactory).get(ImageViewModel.class); photoView = v.findViewById(R.id.photoView); - photoView.setOnClickListener(view -> viewModel.clickPhoto()); + photoView.setOnClickListener(view -> viewModel.clickImage()); // Request Listener RequestListener<Drawable> listener = new RequestListener<Drawable>() { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageViewModel.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageViewModel.java index 42e31bf156..fc5b6cdff0 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageViewModel.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageViewModel.java @@ -50,7 +50,8 @@ public class ImageViewModel extends AndroidViewModel { @IoExecutor private final Executor ioExecutor; - private final MutableLiveData<Boolean> imageClicked = new MutableLiveData<>(); + private final MutableLiveData<Boolean> imageClicked = + new MutableLiveData<>(); private final MutableLiveData<Boolean> saveState = new MutableLiveData<>(); private int toolbarTop, toolbarBottom; @@ -65,7 +66,7 @@ public class ImageViewModel extends AndroidViewModel { this.ioExecutor = ioExecutor; } - void clickPhoto() { + void clickImage() { imageClicked.setValue(true); } @@ -97,7 +98,7 @@ public class ImageViewModel extends AndroidViewModel { float scaleFactor = Math.min(widthPercentage, heightPercentage); int realWidth = (int) (width * scaleFactor); int realHeight = (int) (height * scaleFactor); - // return if photo doesn't use the full width, + // return if image doesn't use the full width, // because it will be moved to the right otherwise if (realWidth < screenView.getWidth()) return false; int drawableTop = (screenView.getHeight() - realHeight) / 2; -- GitLab