diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardListView.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardListView.kt
index fd6df425f..b2ef1a92f 100644
--- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardListView.kt
+++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardListView.kt
@@ -20,11 +20,14 @@
package org.isoron.uhabits.activities.habits.list.views
import android.content.Context
+import android.graphics.Rect
import android.os.Bundle
import android.os.Parcelable
import android.view.GestureDetector
import android.view.MotionEvent
import android.view.View
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowInsetsCompat
import androidx.recyclerview.widget.ItemTouchHelper
import androidx.recyclerview.widget.ItemTouchHelper.DOWN
import androidx.recyclerview.widget.ItemTouchHelper.END
@@ -75,9 +78,30 @@ class HabitCardListView(
setHasFixedSize(true)
isLongClickable = true
layoutManager = LinearLayoutManager(context)
+ applyBottomInset()
super.setAdapter(adapter)
}
+ private fun applyBottomInset() {
+ ViewCompat.setOnApplyWindowInsetsListener(this) { _, insets ->
+ val systemBarsInsets = insets.getInsets(WindowInsetsCompat.Type.systemBars())
+ addItemDecoration(object : ItemDecoration() {
+ override fun getItemOffsets(
+ outRect: Rect,
+ view: View,
+ parent: RecyclerView,
+ state: State
+ ) {
+ val itemCount = parent.adapter?.itemCount
+ if (parent.getChildAdapterPosition(view) == itemCount?.minus(1)) {
+ outRect.bottom = systemBarsInsets.bottom
+ }
+ }
+ })
+ insets
+ }
+ }
+
fun createHabitCardView(): HabitCardView {
return cardViewFactory.create()
}
diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitView.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitView.kt
index fb484745d..c707f2d6d 100644
--- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitView.kt
+++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitView.kt
@@ -25,6 +25,7 @@ import android.widget.FrameLayout
import org.isoron.uhabits.core.ui.screens.habits.show.ShowHabitPresenter
import org.isoron.uhabits.core.ui.screens.habits.show.ShowHabitState
import org.isoron.uhabits.databinding.ShowHabitBinding
+import org.isoron.uhabits.utils.applyBottomInset
import org.isoron.uhabits.utils.applyToolbarInsets
import org.isoron.uhabits.utils.setupToolbar
@@ -57,6 +58,7 @@ class ShowHabitView(context: Context) : FrameLayout(context) {
} else {
binding.targetCard.visibility = GONE
}
+ binding.linearLayout.applyBottomInset()
}
fun setListener(presenter: ShowHabitPresenter) {
diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/utils/ViewExtensions.kt b/uhabits-android/src/main/java/org/isoron/uhabits/utils/ViewExtensions.kt
index 8086ddb93..5663ae8a2 100644
--- a/uhabits-android/src/main/java/org/isoron/uhabits/utils/ViewExtensions.kt
+++ b/uhabits-android/src/main/java/org/isoron/uhabits/utils/ViewExtensions.kt
@@ -260,6 +260,14 @@ fun View.applyRootViewInsets() {
}
}
+fun View.applyBottomInset() {
+ ViewCompat.setOnApplyWindowInsetsListener(this) { view, insets ->
+ val systemBarsInsets = insets.getInsets(WindowInsetsCompat.Type.systemBars())
+ view.setPadding(0, 0, 0, systemBarsInsets.bottom)
+ insets
+ }
+}
+
fun View.applyToolbarInsets() {
ViewCompat.setOnApplyWindowInsetsListener(this) { view, insets ->
val systemBarsInsets = insets.getInsets(WindowInsetsCompat.Type.systemBars())
diff --git a/uhabits-android/src/main/res/layout/show_habit.xml b/uhabits-android/src/main/res/layout/show_habit.xml
index 72f1b7ca9..7631d8c9e 100644
--- a/uhabits-android/src/main/res/layout/show_habit.xml
+++ b/uhabits-android/src/main/res/layout/show_habit.xml
@@ -17,8 +17,7 @@
~ with this program. If not, see .
-->
-
+ android:layout_alignParentTop="true" />
+ style="@style/ShowHabit.Subtitle" />
+ android:paddingTop="12dp" />
+ android:paddingTop="12dp" />
+ android:gravity="center" />
+ android:gravity="center" />
+ android:paddingBottom="0dp" />
+ style="@style/Card" />
+ style="@style/Card" />