summaryrefslogtreecommitdiffhomepage
path: root/app/src/main/java
diff options
context:
space:
mode:
authorHarsh Shandilya <me@msfjarvis.dev>2018-07-17 20:31:41 +0530
committerJason A. Donenfeld <Jason@zx2c4.com>2018-07-18 02:15:06 +0200
commitd43e77867c3a58e434307b4eb9469b1766ddc6c8 (patch)
tree93e5076cfa85b8d2c120f96ec37a709ca27108b2 /app/src/main/java
parentdf03bdd7f967525a90e54e306dd84aa81583c26d (diff)
fab: slide fab up when a snackbar shows
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Diffstat (limited to 'app/src/main/java')
-rw-r--r--app/src/main/java/com/wireguard/android/widget/fab/FloatingActionButtonBehavior.java32
1 files changed, 32 insertions, 0 deletions
diff --git a/app/src/main/java/com/wireguard/android/widget/fab/FloatingActionButtonBehavior.java b/app/src/main/java/com/wireguard/android/widget/fab/FloatingActionButtonBehavior.java
new file mode 100644
index 00000000..84868a4c
--- /dev/null
+++ b/app/src/main/java/com/wireguard/android/widget/fab/FloatingActionButtonBehavior.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright © 2018 Harsh Shandilya <msfjarvis@gmail.com>
+ * Copyright © 2018 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package com.wireguard.android.widget.fab;
+
+import android.content.Context;
+import android.support.design.widget.CoordinatorLayout;
+import android.support.design.widget.Snackbar;
+import android.util.AttributeSet;
+import android.view.View;
+
+public class FloatingActionButtonBehavior extends CoordinatorLayout.Behavior<FloatingActionsMenu> {
+
+ public FloatingActionButtonBehavior(final Context context, final AttributeSet attrs) { }
+
+ @Override
+ public boolean layoutDependsOn(final CoordinatorLayout parent, final FloatingActionsMenu child,
+ final View dependency) {
+ return dependency instanceof Snackbar.SnackbarLayout;
+ }
+
+ @Override
+ public boolean onDependentViewChanged(final CoordinatorLayout parent, final FloatingActionsMenu child,
+ final View dependency) {
+ final float translationY = Math.min(0, dependency.getTranslationY() - dependency.getHeight());
+ child.setTranslationY(translationY);
+ return true;
+ }
+}