From 939c706c5933c9cfe3477e995ed8086a13df57ab Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 17 Sep 2019 18:10:52 +0200 Subject: [PATCH] Added behavior to add bottom margin to swipe refresh layout --- .../faircode/email/BehaviorBottomMargin.java | 57 +++++++++++++++++++ app/src/main/res/layout/fragment_messages.xml | 3 +- 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/eu/faircode/email/BehaviorBottomMargin.java diff --git a/app/src/main/java/eu/faircode/email/BehaviorBottomMargin.java b/app/src/main/java/eu/faircode/email/BehaviorBottomMargin.java new file mode 100644 index 0000000000..067fd93ef8 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/BehaviorBottomMargin.java @@ -0,0 +1,57 @@ +package eu.faircode.email; + +/* + This file is part of FairEmail. + + FairEmail is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + FairEmail is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with FairEmail. If not, see . + + Copyright 2018-2019 by Marcel Bokhorst (M66B) +*/ + +import android.content.Context; +import android.util.AttributeSet; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.coordinatorlayout.widget.CoordinatorLayout; + +import com.google.android.material.snackbar.Snackbar; + +public class BehaviorBottomMargin extends CoordinatorLayout.Behavior { + public BehaviorBottomMargin() { + super(); + } + + public BehaviorBottomMargin(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override + public boolean layoutDependsOn(@NonNull CoordinatorLayout parent, @NonNull View child, @NonNull View dependency) { + return dependency instanceof Snackbar.SnackbarLayout; + } + + @Override + public boolean onDependentViewChanged(@NonNull CoordinatorLayout parent, @NonNull View child, @NonNull View dependency) { + CoordinatorLayout.LayoutParams lparam = (CoordinatorLayout.LayoutParams) child.getLayoutParams(); + lparam.setMargins(0, 0, 0, dependency.getHeight()); + return true; + } + + @Override + public void onDependentViewRemoved(CoordinatorLayout parent, View child, View dependency) { + CoordinatorLayout.LayoutParams lparam = (CoordinatorLayout.LayoutParams) child.getLayoutParams(); + lparam.setMargins(0, 0, 0, 0); + } +} diff --git a/app/src/main/res/layout/fragment_messages.xml b/app/src/main/res/layout/fragment_messages.xml index 488ccd4860..f3633e3346 100644 --- a/app/src/main/res/layout/fragment_messages.xml +++ b/app/src/main/res/layout/fragment_messages.xml @@ -9,7 +9,8 @@ + android:layout_height="match_parent" + app:layout_behavior=".BehaviorBottomMargin">