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

Unverified Commit b39c5b88 authored by Ashley Soucar's avatar Ashley Soucar Committed by GitHub
Browse files

Merge pull request #9614 from asoucar/fix-edge2edge

Fix edge-to-edge regressions
parents 5edbefc3 de009713
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -8,8 +8,7 @@ import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.navigationBars
import androidx.compose.foundation.layout.statusBars
import androidx.compose.foundation.layout.safeDrawing
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.layout.windowInsetsPadding
import androidx.compose.runtime.Composable
@@ -42,7 +41,6 @@ internal fun DrawerContent(

    Surface(
        modifier = modifier
            .windowInsetsPadding(WindowInsets.statusBars)
            .width(DRAWER_WIDTH + additionalWidth)
            .fillMaxHeight()
            .testTagAsResourceId("DrawerContent"),
@@ -53,7 +51,7 @@ internal fun DrawerContent(

        Column(
            modifier = Modifier
                .windowInsetsPadding(WindowInsets.navigationBars)
                .windowInsetsPadding(WindowInsets.safeDrawing)
                .windowInsetsPadding(horizontalInsetPadding),
        ) {
            selectedAccount?.let {
+18 −0
Original line number Diff line number Diff line
@@ -3,6 +3,8 @@ package com.fsck.k9.ui.base
import android.content.Context
import android.os.Build
import android.os.Bundle
import android.util.AttributeSet
import android.view.View
import androidx.activity.enableEdgeToEdge
import androidx.annotation.LayoutRes
import androidx.appcompat.app.AppCompatActivity
@@ -10,6 +12,7 @@ import androidx.appcompat.widget.Toolbar
import androidx.core.app.ActivityCompat
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat.Type.displayCutout
import androidx.core.view.WindowInsetsCompat.Type.navigationBars
import androidx.core.view.WindowInsetsCompat.Type.systemBars
import androidx.lifecycle.asLiveData
import com.fsck.k9.controller.push.PushController
@@ -89,6 +92,21 @@ abstract class K9Activity(private val themeType: ThemeType) : AppCompatActivity(
        }
    }

    override fun onCreateView(parent: View?, name: String, context: Context, attrs: AttributeSet): View? {
        val newView = super.onCreateView(parent, name, context, attrs)
        if (newView != null) initializeInsets(newView)
        return newView
    }

    private fun initializeInsets(view: View) {
        ViewCompat.setOnApplyWindowInsetsListener(view) { v, windowsInsets ->
            val insets = windowsInsets.getInsets(displayCutout() or navigationBars())
            v.setPadding(insets.left, 0, insets.right, insets.bottom)

            windowsInsets
        }
    }

    protected fun recreateCompat() {
        ActivityCompat.recreate(this)
    }
+11 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.os.Handler;
import android.os.Parcelable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.AttributeSet;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -45,7 +46,10 @@ import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.appcompat.app.ActionBar;
import androidx.core.content.IntentCompat;
import androidx.core.graphics.Insets;
import androidx.core.os.BundleCompat;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import app.k9mail.core.ui.legacy.designsystem.atom.icon.Icons;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
@@ -121,6 +125,7 @@ import net.thunderbird.core.android.contact.ContactIntentHelper;
import net.thunderbird.core.preference.GeneralSettingsManager;
import net.thunderbird.core.ui.theme.manager.ThemeManager;
import net.thunderbird.feature.search.legacy.LocalMessageSearch;
import org.jetbrains.annotations.NotNull;
import org.openintents.openpgp.OpenPgpApiManager;
import org.openintents.openpgp.util.OpenPgpIntentStarter;
import net.thunderbird.core.logging.legacy.Log;
@@ -344,6 +349,12 @@ public class MessageCompose extends K9Activity implements OnClickListener,
        messageContentView = findViewById(R.id.message_content);
        messageContentView.getInputExtras(true).putBoolean("allowEmoji", true);

        ViewCompat.setOnApplyWindowInsetsListener(messageContentView.getRootView(), (v, windowInsets) -> {
            final Insets newInsets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars() | WindowInsetsCompat.Type.displayCutout() | WindowInsetsCompat.Type.ime());
            v.setPadding(newInsets.left, 0, newInsets.right, newInsets.bottom);
            return windowInsets;
        });

        attachmentsView = findViewById(R.id.attachments);

        TextWatcher draftNeedsChangingTextWatcher = new SimpleTextWatcher() {
+0 −15
Original line number Diff line number Diff line
@@ -16,9 +16,6 @@ import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.ActionBar
import androidx.appcompat.view.ActionMode
import androidx.appcompat.widget.SearchView
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat.Type.displayCutout
import androidx.core.view.WindowInsetsCompat.Type.navigationBars
import androidx.core.view.isGone
import androidx.drawerlayout.widget.DrawerLayout
import androidx.drawerlayout.widget.DrawerLayout.DrawerListener
@@ -202,18 +199,6 @@ open class MessageList :
        initializeFragments()
        displayViews()
        initializeFunding()
        initializeContainerInsets()
    }

    private fun initializeContainerInsets() {
        val container = findViewById<View>(R.id.container)

        ViewCompat.setOnApplyWindowInsetsListener(container) { v, windowsInsets ->
            val insets = windowsInsets.getInsets(displayCutout() or navigationBars())
            v.setPadding(insets.left, 0, insets.right, insets.bottom)

            windowsInsets
        }
    }

    private fun initializeFunding() {
+1 −13
Original line number Diff line number Diff line
@@ -17,11 +17,8 @@ import androidx.annotation.StringRes
import androidx.appcompat.view.ActionMode
import androidx.core.os.bundleOf
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.WindowInsetsCompat.Type.navigationBars
import androidx.core.view.WindowInsetsCompat.Type.systemBars
import androidx.core.view.insets.GradientProtection
import androidx.core.view.insets.ProtectionLayout
import androidx.core.view.isGone
import androidx.core.view.isVisible
import androidx.core.view.setPadding
@@ -333,15 +330,6 @@ class MessageListFragment :
                    typedValued,
                    true,
                )
                view.findViewById<ProtectionLayout>(R.id.protection_layout)
                    .setProtections(
                        listOf(
                            GradientProtection(
                                WindowInsetsCompat.Side.BOTTOM,
                                typedValued.data,
                            ),
                        ),
                    )

                setFragmentResultListener(
                    SetupArchiveFolderDialogFragmentFactory.RESULT_CODE_DISMISS_REQUEST_KEY,
@@ -432,7 +420,7 @@ class MessageListFragment :
            v.updateLayoutParams<ViewGroup.MarginLayoutParams> {
                val fabMargin = view.resources.getDimensionPixelSize(R.dimen.floatingActionButtonMargin)

                bottomMargin = fabMargin + insets.bottom
                bottomMargin = fabMargin
                rightMargin = fabMargin + insets.right
                leftMargin = fabMargin + insets.left
            }