Loading feature/navigation/drawer/dropdown/src/main/kotlin/net/thunderbird/feature/navigation/drawer/dropdown/ui/DrawerContent.kt +2 −4 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -42,7 +41,6 @@ internal fun DrawerContent( Surface( modifier = modifier .windowInsetsPadding(WindowInsets.statusBars) .width(DRAWER_WIDTH + additionalWidth) .fillMaxHeight() .testTagAsResourceId("DrawerContent"), Loading @@ -53,7 +51,7 @@ internal fun DrawerContent( Column( modifier = Modifier .windowInsetsPadding(WindowInsets.navigationBars) .windowInsetsPadding(WindowInsets.safeDrawing) .windowInsetsPadding(horizontalInsetPadding), ) { selectedAccount?.let { Loading legacy/ui/base/src/main/java/com/fsck/k9/ui/base/K9Activity.kt +18 −0 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading Loading @@ -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) } Loading legacy/ui/legacy/src/main/java/com/fsck/k9/activity/MessageCompose.java +11 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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() { Loading legacy/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt +0 −15 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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() { Loading legacy/ui/legacy/src/main/java/com/fsck/k9/ui/messagelist/MessageListFragment.kt +1 −13 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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, Loading Loading @@ -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 } Loading Loading
feature/navigation/drawer/dropdown/src/main/kotlin/net/thunderbird/feature/navigation/drawer/dropdown/ui/DrawerContent.kt +2 −4 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -42,7 +41,6 @@ internal fun DrawerContent( Surface( modifier = modifier .windowInsetsPadding(WindowInsets.statusBars) .width(DRAWER_WIDTH + additionalWidth) .fillMaxHeight() .testTagAsResourceId("DrawerContent"), Loading @@ -53,7 +51,7 @@ internal fun DrawerContent( Column( modifier = Modifier .windowInsetsPadding(WindowInsets.navigationBars) .windowInsetsPadding(WindowInsets.safeDrawing) .windowInsetsPadding(horizontalInsetPadding), ) { selectedAccount?.let { Loading
legacy/ui/base/src/main/java/com/fsck/k9/ui/base/K9Activity.kt +18 −0 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading Loading @@ -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) } Loading
legacy/ui/legacy/src/main/java/com/fsck/k9/activity/MessageCompose.java +11 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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() { Loading
legacy/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt +0 −15 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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() { Loading
legacy/ui/legacy/src/main/java/com/fsck/k9/ui/messagelist/MessageListFragment.kt +1 −13 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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, Loading Loading @@ -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 } Loading