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..81eb84ab90 --- /dev/null +++ b/app/src/main/java/eu/faircode/email/BehaviorBottomMargin.java @@ -0,0 +1,67 @@ +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-2020 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 onLayoutChild(@NonNull CoordinatorLayout parent, @NonNull View child, int layoutDirection) { + setMargin(child, 0); + return super.onLayoutChild(parent, child, layoutDirection); + } + + @Override + public boolean onDependentViewChanged(@NonNull CoordinatorLayout parent, @NonNull View child, @NonNull View dependency) { + setMargin(child, dependency.getHeight()); + return true; + } + + @Override + public void onDependentViewRemoved(CoordinatorLayout parent, View child, View dependency) { + setMargin(child, 0); + } + + private static void setMargin(View child, int value) { + CoordinatorLayout.LayoutParams lparam = (CoordinatorLayout.LayoutParams) child.getLayoutParams(); + lparam.setMargins(0, 0, 0, value); + child.setLayoutParams(lparam); + } +} diff --git a/app/src/main/res/layout/fragment_messages.xml b/app/src/main/res/layout/fragment_messages.xml index 2a88b580a7..8651896d78 100644 --- a/app/src/main/res/layout/fragment_messages.xml +++ b/app/src/main/res/layout/fragment_messages.xml @@ -10,7 +10,7 @@ android:id="@+id/swipeRefresh" android:layout_width="match_parent" android:layout_height="match_parent" - app:layout_behavior="eu.faircode.email.BehaviorBottomPadding"> + app:layout_behavior="eu.faircode.email.BehaviorBottomMargin">