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

Commit ddb166f4 authored by Matt Casey's avatar Matt Casey
Browse files

Honor system insets in EditTextActivity

Bug: 330268089
Test: Manual inspection of 'Done' button relative to status bar.
Flag: NONE
Change-Id: Ia0310545721258037a01f8e6169fe5c12f7a8c6f
parent 109b07f3
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/editor_root"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

+24 −0
Original line number Diff line number Diff line
@@ -23,14 +23,20 @@ import android.content.ClipData;
import android.content.ClipDescription;
import android.content.ClipboardManager;
import android.content.pm.PackageManager;
import android.graphics.Insets;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.text.Editable;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowInsets;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.TextView;

import androidx.annotation.NonNull;

import com.android.systemui.res.R;

/**
@@ -53,6 +59,24 @@ public class EditTextActivity extends Activity
        mEditText = findViewById(R.id.edit_text);
        mAttribution = findViewById(R.id.attribution);
        mClipboardManager = requireNonNull(getSystemService(ClipboardManager.class));

        findViewById(R.id.editor_root).setOnApplyWindowInsetsListener(
                new View.OnApplyWindowInsetsListener() {
                    @NonNull
                    @Override
                    public WindowInsets onApplyWindowInsets(@NonNull View view,
                            @NonNull WindowInsets windowInsets) {
                        Insets insets = windowInsets.getInsets(WindowInsets.Type.systemBars());
                        ViewGroup.MarginLayoutParams layoutParams =
                                (ViewGroup.MarginLayoutParams) view.getLayoutParams();
                        layoutParams.leftMargin = insets.left;
                        layoutParams.bottomMargin = insets.bottom;
                        layoutParams.rightMargin = insets.right;
                        layoutParams.topMargin = insets.top;
                        view.setLayoutParams(layoutParams);
                        return WindowInsets.CONSUMED;
                    }
                });
    }

    @Override