Loading app/src/main/java/app/fedilab/android/mastodon/activities/ProfileActivity.java +6 −0 Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.ActionBar; import androidx.coordinatorlayout.widget.CoordinatorLayout; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.widget.TooltipCompat; import androidx.core.app.ActivityOptionsCompat; Loading Loading @@ -114,6 +115,7 @@ import app.fedilab.android.mastodon.client.entities.app.Timeline; import app.fedilab.android.mastodon.client.entities.app.WellKnownNodeinfo; import app.fedilab.android.mastodon.exception.DBException; import app.fedilab.android.mastodon.helper.CrossActionHelper; import app.fedilab.android.mastodon.helper.FixedAppBarLayoutBehavior; import app.fedilab.android.mastodon.helper.Helper; import app.fedilab.android.mastodon.helper.MastodonHelper; import app.fedilab.android.mastodon.helper.SpannableHelper; Loading Loading @@ -339,6 +341,10 @@ public class ProfileActivity extends BaseActivity { }); // MastodonHelper.loadPPMastodon(binding.profilePicture, account); if (sharedpreferences.getBoolean(getString(R.string.SET_REVERSE_TIMELINE), false)) { CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) binding.appBar.getLayoutParams(); params.setBehavior(new FixedAppBarLayoutBehavior()); } binding.appBar.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> { if (Math.abs(verticalOffset) - binding.appBar.getTotalScrollRange() == 0) { Loading app/src/main/java/app/fedilab/android/mastodon/helper/FixedAppBarLayoutBehavior.java 0 → 100644 +44 −0 Original line number Diff line number Diff line package app.fedilab.android.mastodon.helper; /* Copyright 2026 Thomas Schneider * * This file is a part of Fedilab * * This program 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. * * Fedilab 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 Fedilab; if not, * see <http://www.gnu.org/licenses>. */ import android.content.Context; import android.util.AttributeSet; import android.view.View; import androidx.annotation.NonNull; import androidx.coordinatorlayout.widget.CoordinatorLayout; import androidx.core.view.ViewCompat; import com.google.android.material.appbar.AppBarLayout; public class FixedAppBarLayoutBehavior extends AppBarLayout.Behavior { public FixedAppBarLayoutBehavior() { super(); } public FixedAppBarLayoutBehavior(Context context, AttributeSet attrs) { super(context, attrs); } @Override public boolean onStartNestedScroll(@NonNull CoordinatorLayout parent, @NonNull AppBarLayout child, @NonNull View directTargetChild, View target, int nestedScrollAxes, int type) { if (type == ViewCompat.TYPE_NON_TOUCH) { return false; } return super.onStartNestedScroll(parent, child, directTargetChild, target, nestedScrollAxes, type); } } Loading
app/src/main/java/app/fedilab/android/mastodon/activities/ProfileActivity.java +6 −0 Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.ActionBar; import androidx.coordinatorlayout.widget.CoordinatorLayout; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.widget.TooltipCompat; import androidx.core.app.ActivityOptionsCompat; Loading Loading @@ -114,6 +115,7 @@ import app.fedilab.android.mastodon.client.entities.app.Timeline; import app.fedilab.android.mastodon.client.entities.app.WellKnownNodeinfo; import app.fedilab.android.mastodon.exception.DBException; import app.fedilab.android.mastodon.helper.CrossActionHelper; import app.fedilab.android.mastodon.helper.FixedAppBarLayoutBehavior; import app.fedilab.android.mastodon.helper.Helper; import app.fedilab.android.mastodon.helper.MastodonHelper; import app.fedilab.android.mastodon.helper.SpannableHelper; Loading Loading @@ -339,6 +341,10 @@ public class ProfileActivity extends BaseActivity { }); // MastodonHelper.loadPPMastodon(binding.profilePicture, account); if (sharedpreferences.getBoolean(getString(R.string.SET_REVERSE_TIMELINE), false)) { CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) binding.appBar.getLayoutParams(); params.setBehavior(new FixedAppBarLayoutBehavior()); } binding.appBar.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> { if (Math.abs(verticalOffset) - binding.appBar.getTotalScrollRange() == 0) { Loading
app/src/main/java/app/fedilab/android/mastodon/helper/FixedAppBarLayoutBehavior.java 0 → 100644 +44 −0 Original line number Diff line number Diff line package app.fedilab.android.mastodon.helper; /* Copyright 2026 Thomas Schneider * * This file is a part of Fedilab * * This program 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. * * Fedilab 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 Fedilab; if not, * see <http://www.gnu.org/licenses>. */ import android.content.Context; import android.util.AttributeSet; import android.view.View; import androidx.annotation.NonNull; import androidx.coordinatorlayout.widget.CoordinatorLayout; import androidx.core.view.ViewCompat; import com.google.android.material.appbar.AppBarLayout; public class FixedAppBarLayoutBehavior extends AppBarLayout.Behavior { public FixedAppBarLayoutBehavior() { super(); } public FixedAppBarLayoutBehavior(Context context, AttributeSet attrs) { super(context, attrs); } @Override public boolean onStartNestedScroll(@NonNull CoordinatorLayout parent, @NonNull AppBarLayout child, @NonNull View directTargetChild, View target, int nestedScrollAxes, int type) { if (type == ViewCompat.TYPE_NON_TOUCH) { return false; } return super.onStartNestedScroll(parent, child, directTargetChild, target, nestedScrollAxes, type); } }