Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2020-11-04 00:04:14 +0300
committerStefan Niedermann <info@niedermann.it>2020-11-04 00:04:14 +0300
commit6bc01a5d2d348ce10b6fad2bbf82ebc2b27c7cce (patch)
tree7e3a08d27030f8618d325c4ac69bb539bddb59e0 /app/src/main/java/it/niedermann/nextcloud/deck/ui
parent85bc8eaa321d16638a732123104c0d221e80f5c7 (diff)
Show / hide picker when swiping up / down
Signed-off-by: Stefan Niedermann <info@niedermann.it>
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java54
1 files changed, 24 insertions, 30 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java
index ec97daa90..f46442c9e 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java
@@ -71,7 +71,6 @@ import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import static androidx.core.content.PermissionChecker.PERMISSION_GRANTED;
import static androidx.core.content.PermissionChecker.checkSelfPermission;
-import static com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_EXPANDED;
import static com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_HALF_EXPANDED;
import static com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_HIDDEN;
import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce;
@@ -101,6 +100,7 @@ public class CardAttachmentsFragment extends BrandedFragment implements Attachme
private FloatingActionButton[] brandedViews;
private GalleryAdapter galleryAdapter;
+ private boolean pickerAnimationInProgress = false;
private final OnBackPressedCallback backPressedCallback = new OnBackPressedCallback(true) {
@Override
@@ -164,42 +164,26 @@ public class CardAttachmentsFragment extends BrandedFragment implements Attachme
mBottomSheetBehaviour.setHideable(true);
mBottomSheetBehaviour.setState(STATE_HIDDEN);
mBottomSheetBehaviour.addBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
-// private float lastOffset = -1;
+ private float lastOffset = -1;
+
@Override
public void onStateChanged(@NonNull View bottomSheet, int newState) {
- switch (newState) {
- case STATE_HIDDEN: {
- DeckLog.log("BottomSheet: HIDDEN");
- backPressedCallback.remove();
- hidePicker();
- break;
- }
- case STATE_EXPANDED: {
- DeckLog.log("BottomSheet: EXPANDED");
- break;
- }
- case STATE_HALF_EXPANDED: {
- DeckLog.log("BottomSheet: HALF_EXPANDED");
- break;
- }
- case BottomSheetBehavior.STATE_COLLAPSED:
- DeckLog.log("BottomSheet: COLLAPSED");
- break;
- case BottomSheetBehavior.STATE_DRAGGING:
- DeckLog.log("BottomSheet: DRAGGING");
- break;
- case BottomSheetBehavior.STATE_SETTLING:
- DeckLog.log("BottomSheet: SETTLING");
- break;
+ if (newState == STATE_HIDDEN) {
+ backPressedCallback.remove();
+ hidePicker();
}
}
@Override
public void onSlide(@NonNull View bottomSheet, float slideOffset) {
-// if(slideOffset < 0 && slideOffset < lastOffset) {
-// Toast.makeText(requireContext(), "Now?", Toast.LENGTH_SHORT).show();
-// }
-// lastOffset = slideOffset;
+ if (!pickerAnimationInProgress) {
+ if (slideOffset < 0 && slideOffset < lastOffset && binding.pickerControlsWrapper.getVisibility() == VISIBLE) {
+ hidePicker();
+ } else if (slideOffset > lastOffset && binding.pickerControlsWrapper.getVisibility() != VISIBLE) {
+ showPicker();
+ }
+ }
+ lastOffset = slideOffset;
}
});
binding.pickerBackdrop.setOnClickListener(v -> mBottomSheetBehaviour.setState(STATE_HIDDEN));
@@ -453,6 +437,7 @@ public class CardAttachmentsFragment extends BrandedFragment implements Attachme
}
private void hidePicker() {
+ pickerAnimationInProgress = true;
ValueAnimator colorAnimation = ValueAnimator.ofObject(new ArgbEvaluator(), getResources().getColor(R.color.mdtp_transparent_black), getResources().getColor(android.R.color.transparent));
colorAnimation.setDuration(250);
colorAnimation.addUpdateListener(animator -> {
@@ -465,6 +450,7 @@ public class CardAttachmentsFragment extends BrandedFragment implements Attachme
super.onAnimationEnd(animation);
binding.pickerBackdrop.setVisibility(GONE);
binding.pickerControlsWrapper.setVisibility(GONE);
+ pickerAnimationInProgress = false;
}
});
colorAnimation.start();
@@ -476,6 +462,7 @@ public class CardAttachmentsFragment extends BrandedFragment implements Attachme
}
private void showPicker() {
+ pickerAnimationInProgress = true;
binding.pickerBackdrop.setVisibility(VISIBLE);
binding.pickerControlsWrapper.setVisibility(VISIBLE);
ValueAnimator colorAnimation = ValueAnimator.ofObject(new ArgbEvaluator(), getResources().getColor(android.R.color.transparent), getResources().getColor(R.color.mdtp_transparent_black));
@@ -484,6 +471,13 @@ public class CardAttachmentsFragment extends BrandedFragment implements Attachme
binding.pickerBackdrop.setBackgroundColor((int) animator.getAnimatedValue());
binding.pickerControls.setBackgroundColor((int) animator.getAnimatedValue());
});
+ colorAnimation.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ super.onAnimationEnd(animation);
+ pickerAnimationInProgress = false;
+ }
+ });
colorAnimation.start();
binding.fab.hide();
for (FloatingActionButton fab : brandedViews) {