[Android] Change insets type to exclude ime insets

Signed-off-by: Dzmitry Strekha <mr.choo96@gmail.com>
This commit is contained in:
Dzmitry Strekha 2024-12-01 14:28:43 +03:00
parent 2fab314016
commit d76a734607
2 changed files with 12 additions and 16 deletions

View file

@ -12,8 +12,6 @@ import android.view.ViewTreeObserver;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.OptIn;
import androidx.core.graphics.Insets;
import androidx.core.view.OnApplyWindowInsetsListener;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.fragment.app.Fragment;
@ -33,6 +31,7 @@ import app.organicmaps.routing.RoutingController;
import app.organicmaps.util.Config;
import app.organicmaps.util.ThemeUtils;
import app.organicmaps.util.UiUtils;
import app.organicmaps.util.WindowInsetUtils;
import app.organicmaps.widget.menu.MyPositionButton;
import app.organicmaps.widget.placepage.PlacePageViewModel;
import com.google.android.material.badge.BadgeDrawable;
@ -361,19 +360,11 @@ public class MapButtonsController extends Fragment
mSearchWheel.onResume();
updateMenuBadge();
updateLayerButton();
ViewCompat.setOnApplyWindowInsetsListener(mFrame, new OnApplyWindowInsetsListener()
{
@NonNull
@Override
public WindowInsetsCompat onApplyWindowInsets(@NonNull View v, @NonNull WindowInsetsCompat windowInsets)
{
// ignore ime insets here
final var insetsType = WindowInsetsCompat.Type.systemBars() | WindowInsetsCompat.Type.displayCutout();
final Insets insets = windowInsets.getInsets(insetsType);
v.setPadding(insets.left, insets.top, insets.right, insets.bottom);
return windowInsets;
}
});
final WindowInsetUtils.PaddingInsetsListener insetsListener = new WindowInsetUtils.PaddingInsetsListener.Builder()
.setInsetsTypeMask(WindowInsetsCompat.Type.systemBars() | WindowInsetsCompat.Type.displayCutout())
.setAllSides()
.build();
ViewCompat.setOnApplyWindowInsetsListener(mFrame, insetsListener);
}
@Override

View file

@ -11,6 +11,7 @@ import androidx.annotation.AttrRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
@ -44,7 +45,11 @@ public final class PlacePageButtons extends Fragment implements Observer<List<Pl
{
super.onViewCreated(view, savedInstanceState);
mButtonsContainer = view.findViewById(R.id.container);
ViewCompat.setOnApplyWindowInsetsListener(view, PaddingInsetsListener.excludeTop());
final PaddingInsetsListener insetsListener = new PaddingInsetsListener.Builder()
.setInsetsTypeMask(WindowInsetsCompat.Type.systemBars() | WindowInsetsCompat.Type.displayCutout())
.setExcludeTop()
.build();
ViewCompat.setOnApplyWindowInsetsListener(view, insetsListener);
mMaxButtons = getResources().getInteger(R.integer.pp_buttons_max);
Fragment parentFragment = getParentFragment();