From c06b9e09e03f11d73e694e8fade6c8605d56fcac Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 27 Oct 2024 18:04:48 +0100 Subject: [PATCH] Inset undo snackbar --- app/src/main/java/eu/faircode/email/ActivityBase.java | 11 ++++++++++- app/src/main/java/eu/faircode/email/ActivityView.java | 2 ++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/faircode/email/ActivityBase.java b/app/src/main/java/eu/faircode/email/ActivityBase.java index 8bd4277734..899da8720c 100644 --- a/app/src/main/java/eu/faircode/email/ActivityBase.java +++ b/app/src/main/java/eu/faircode/email/ActivityBase.java @@ -71,6 +71,7 @@ import androidx.lifecycle.OnLifecycleEvent; import androidx.preference.PreferenceManager; import com.google.android.material.appbar.AppBarLayout; +import com.google.android.material.snackbar.Snackbar; import java.io.File; import java.io.FileNotFoundException; @@ -214,10 +215,18 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc if (cf != null) { Insets nav = windowInsets.getInsets(WindowInsetsCompat.Type.navigationBars()); int pad = Math.max(0, cfpb + (nav.bottom - nav.top)); + Snackbar.SnackbarLayout sl = Helper.findSnackbarLayout(cf.getRootView()); + if (sl != null) { + pad = cfpb; + if (sl.getPaddingBottom() != nav.bottom - nav.top) + sl.setPaddingRelative( + sl.getPaddingStart(), sl.getPaddingTop(), + sl.getPaddingEnd(), nav.bottom - nav.top); + } if (pad != cf.getPaddingBottom()) cf.setPaddingRelative( cf.getPaddingStart(), cf.getPaddingTop(), - cf.getPaddingEnd(), cfpb + (nav.bottom - nav.top)); + cf.getPaddingEnd(), pad); } //for (View child : Helper.getViewsWithTag(v, "inset")) { // mlp = (ViewGroup.MarginLayoutParams) child.getLayoutParams(); diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java index 9fc7edd394..28709b1814 100644 --- a/app/src/main/java/eu/faircode/email/ActivityView.java +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -1577,6 +1577,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB ViewGroup.MarginLayoutParams lparam = (ViewGroup.MarginLayoutParams) content.getLayoutParams(); lparam.bottomMargin = snackbar.getView().getHeight(); content.setLayoutParams(lparam); + content.requestApplyInsets(); } @Override @@ -1584,6 +1585,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB ViewGroup.MarginLayoutParams lparam = (ViewGroup.MarginLayoutParams) content.getLayoutParams(); lparam.bottomMargin = 0; content.setLayoutParams(lparam); + content.requestApplyInsets(); } });