Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit bdaac18a authored by Tobias Kaminsky's avatar Tobias Kaminsky Committed by GitHub
Browse files

Merge pull request #2701 from nextcloud/bugfix/set-ime-insets-edit-note-activity

BugFix - Add IME Insets In EditNoteActivity
parents 6d64fb87 62fb1be3
Loading
Loading
Loading
Loading
+32 −0
Original line number Diff line number Diff line
@@ -20,6 +20,10 @@ import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.fragment.app.Fragment;
import androidx.preference.PreferenceManager;

@@ -101,6 +105,34 @@ public class EditNoteActivity extends LockedActivity implements BaseNoteFragment

        setSupportActionBar(binding.toolbar);
        binding.toolbar.setOnClickListener((v) -> fragment.showEditTitleDialog());
        setImeInsets();
    }

    private void setImeInsets() {
        final var window = getWindow();
        if (window == null) {
            return;
        }

        WindowCompat.setDecorFitsSystemWindows(window, false);

        final var decorView = window.getDecorView();
        ViewCompat.setOnApplyWindowInsetsListener(decorView, (v, insets) -> {
            Insets imeInsets = insets.getInsets(WindowInsetsCompat.Type.ime());
            Insets navBarInsets = insets.getInsets(WindowInsetsCompat.Type.navigationBars());

            // Apply bottom padding when keyboard is shown
            int bottomPadding = Math.max(imeInsets.bottom, navBarInsets.bottom);

            v.setPadding(
                    v.getPaddingLeft(),
                    v.getPaddingTop(),
                    v.getPaddingRight(),
                    bottomPadding
            );

            return insets;
        });
    }

    @Override