summaryrefslogtreecommitdiffhomepage
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
parentdf03bdd7f967525a90e54e306dd84aa81583c26d (diff)
fab: slide fab up when a snackbar shows
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
-rw-r--r--app/src/main/java/com/wireguard/android/widget/fab/FloatingActionButtonBehavior.java32
-rw-r--r--app/src/main/res/layout/tunnel_list_fragment.xml3
2 files changed, 34 insertions, 1 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;
+ }
+}
diff --git a/app/src/main/res/layout/tunnel_list_fragment.xml b/app/src/main/res/layout/tunnel_list_fragment.xml
index 5aff4739..a8a33dcc 100644
--- a/app/src/main/res/layout/tunnel_list_fragment.xml
+++ b/app/src/main/res/layout/tunnel_list_fragment.xml
@@ -43,7 +43,8 @@
android:layout_margin="16dp"
app:fab_labelStyle="@style/fab_label"
android:clipChildren="false"
- app:fab_labelsPosition="left" >
+ app:fab_labelsPosition="left"
+ app:layout_behavior="com.wireguard.android.widget.fab.FloatingActionButtonBehavior" >
<com.wireguard.android.widget.fab.LabeledFloatingActionButton
android:id="@+id/create_empty"